C51單片機一看就會的精品課件_第1頁
C51單片機一看就會的精品課件_第2頁
C51單片機一看就會的精品課件_第3頁
C51單片機一看就會的精品課件_第4頁
C51單片機一看就會的精品課件_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第10章 單片機系統(tǒng)開發(fā),教學目標 10.1 單片機系統(tǒng)設計步驟 10.2 單片機應用系統(tǒng)開發(fā)工具 10.3 單片機開發(fā)系統(tǒng)應用實例 10.4 課程設計 本章小結 思考題與習題,1. 了解單片機應用系統(tǒng)設計的過程和要求;知道單片機應用系統(tǒng)硬件設計的內容和要求;知道單片機應用系統(tǒng)軟件設計的步驟和要求;理解軟件設計與硬件設計的關系。 2. 了解單片機開發(fā)工具的主要作用;了解單片機開發(fā)系統(tǒng)的分類;知道單片機開發(fā)系統(tǒng)的功能;理解單片機應用系統(tǒng)軟、硬件調試的方法。,教學目標,3. 理解單片機應用系統(tǒng)設計實例:數碼管數字時鐘電路的設計、數字式音樂盒設計設計步驟、設計方案、硬件設計、軟件設計等知識。舉一反三

2、,具備簡單常用單片機系統(tǒng)的設計開發(fā)能力。,10.1 單片機系統(tǒng)設計步驟,一個完備的單片機應用系統(tǒng)包括硬件和軟件兩大部分,硬件是軀體,軟件是靈魂。只有系統(tǒng)的軟、硬件緊密配合、協(xié)調一致才能發(fā)揮其高性能作用。在單片機應用系統(tǒng)的開發(fā)過程中,涉及多種開發(fā)技術和工具,需要反復修改調整軟、硬件,以便盡可能提高系統(tǒng)的工作效率。 單片機應用系統(tǒng)的功能不同,其硬件和軟件結構也不相同,但研制、開發(fā)的方法和步驟基本一致。,10.1.1 總體設計,1. 可行性調研 可行性調研的目的,是分析完成該項目的可能性。進行這方面的工作,可參考國內外有關資料,看是否有人進行過類似的工作。如果有,則可分析他人是如何進行的,有什么優(yōu)缺

3、點,有何值得借鑒的地方;如果沒有,則需作進一步的研究,此時的重點應放在能否實現目標這個環(huán)節(jié),首先從理論上進行分析,探討實現的可能性,所,要求的客觀條件是否具備(環(huán)境、測試手段、儀器設備、資金、人員等),然后結合實際情況,確定能否立項的問題。,2. 擬制設計任務書 設計者首先應對系統(tǒng)的任務、控制對象、工作環(huán)境作周密的調查研究,必要時還要勘察工業(yè)現場,明確系統(tǒng)的各項指標。進而編寫設計任務書,整個系統(tǒng)的設計開發(fā)都要圍繞著如何達到技術指標來進行。,3. 建立數學模型 設計任務書擬定后,接下來應對被控對象的物理過程和計算任務進行全面分析,并從中抽象出數學表達式,即建立數學模型。數學模型的形式是多種多樣的

4、,可以是一系列的數學表達式,可以是數學推理和判斷,也可以是運行狀態(tài)的模擬等。數學模型要能真實描述客觀控制過程,要精確而簡單。,4. 總體方案設計,在上述基礎上,對系統(tǒng)各部分構成進行總體規(guī)劃。主要考慮以下幾個問題: 系統(tǒng)組成:根據系統(tǒng)功能,確定系統(tǒng)主要由哪些功能模塊構成:如鍵盤、顯示、輸入/輸出通道、通信等。 單片機選型:根據系統(tǒng)的精度和速度要求合理選擇單片機機型??梢跃C合考慮單片機的實用性、性價比、開發(fā)工具和研發(fā)人員的熟悉程,等方面因素。 軟硬件功能分配:確定哪些功能由硬件實現,哪些功能由軟件完成。在不影響系統(tǒng)技術指標的前提下,提倡盡量用軟件實現。,10.1.2 硬件設計,根據總體方案畫出硬件

5、電路原理圖,然后在單片機開發(fā)儀或實驗板上搭出電路,并且在調試和運行軟件中隨時加以修改和補充,最后制作印制電路板并裝成樣機。,為使硬件設計合理,系統(tǒng)的電路設計應注意以下幾個方面: 盡可能選擇標準化、模塊化的典型電路,提高設計的成功率和結構的靈活性。,盡量選用功能強、集成度高的電路或芯片。 選擇通用性強、市場貨源充足的元器件。 系統(tǒng)擴展及各功能模塊在設計滿足應用系統(tǒng)功能要求基礎上,應適當留有余地。 盡量采用新技術。 充分考慮各部分的驅動能力。 系統(tǒng)的抗干擾設計。,10.1.3 軟件設計,在進行應用系統(tǒng)的總體設計時,軟件設計和硬件設計應統(tǒng)一考慮,相互結合。當系統(tǒng)硬件電路確定后,軟件的任務也就明確了。

6、 系統(tǒng)中的應用軟件是根據系統(tǒng)功能要求設計的。一般地講,軟件的功能可分為兩大類:一類是執(zhí)行軟件,它能完成各種實質性的功能,如測量、計算、顯示、打印、輸出控制等;另一類是監(jiān)控軟件,它是專門用來協(xié)調各執(zhí)行模塊和操作者的關系,在系,統(tǒng)軟件中充當組織調度角色。由于應用系統(tǒng)種類繁多,程序編制者風格不一,因此應用軟件因系統(tǒng)而異。盡管如此,作為優(yōu)秀的系統(tǒng)軟件還是有其共同點及規(guī)律的。,1. 程序的總體設計 程序總體設計是指從系統(tǒng)的高度考慮程序結構、數據形式和程序功能的實現方法和手段。,在擬定總體設計方案時,設計者必須合理選擇切合實際的程序設計方法。常用的程序設計方法有三種:, 模塊化程序設計:把一個復雜的應用程

7、序按整體功能劃分成若干相對獨立的程序模塊,各模塊可以單獨設計、編程、調試,然后裝配起來聯調,最終成為一個有實用價值的程序。, 結構化程序設計:在編程過程中,對程序結構進行適當限制,特別是限制轉移指令的使用,用于控制程序的復雜程序,使程序上下文與執(zhí)行流程保持一致。這是一種比較理想的程序設計方法。, 自頂向下程序設計:從系統(tǒng)一級的主干程序開始,集中精力解決全局問題,然后層層細化逐步求精,最終完成一個復雜的程序。,2. 畫程序流程圖 不論采用哪種設計方法,程序總體結構確定后,應結合數學模型確立各子任務的具體算法和步驟,畫出流程圖,以方便程序編寫。,3. 程序的編制 在開始編寫程序之前,應先對程序地址

8、空間的分配、工作寄存器的安排、數據結構、端口地址等進行分配。然后再根據程序流程圖用匯編語言或其他高級語言編寫程序。,4. 程序的檢查和修改 上機調試前,可借助一定的編譯軟件對程序中的語法錯誤查找出來并修改。,10.1.4 系統(tǒng)的調試與運行,調試包括硬件調試、軟件調試和系統(tǒng)聯調。調試通過后還要進行一段時間的試運行,以驗證系統(tǒng)能否經受實際環(huán)境的考驗。經過一段時間的試運行就可投入正式運行,在正式運行中還要建立一套健全的維護制度,以確保系統(tǒng)的正常工作。,10.2 單片機應用系統(tǒng)開發(fā)工具,1. 單片機開發(fā)系統(tǒng)的功能 在線仿真功能; 系統(tǒng)調試功能; 軟件輔助設計功能; 程序固化功能。,2. 開發(fā)系統(tǒng)的類型

9、 通用型單片機開發(fā)系統(tǒng); 實用型開發(fā)系統(tǒng); 通用機開發(fā)系統(tǒng); 模擬開發(fā)系統(tǒng)。,10.3.1 數碼管數字時鐘電路的設計,1. 設計要求 (1) 以AT89C51單片機為核心器件,構成一個數字式電子時鐘。 (2) 用6位數碼管分別顯示時、分、秒,采用24小時計時方式。 (3) 時鐘具有顯示時間、調整時間、省電狀態(tài)(數碼管不亮,時鐘不停)三種功能。,10.3 單片機開發(fā)系統(tǒng)應用實例,2. 總體設計 (1) 6位數碼管采用動態(tài)顯示方式,段選線用P1口控制,位選線用P2口低6位控制。 (2) 功能鍵由P2.7引入。 (3) 為節(jié)省硬件,采用定時計數器產生時間基準。,3. 硬件設計 根據總體設計,硬件電路

10、框圖如圖10.1所示。,硬件電路由4部分組成:單片機、時鐘與復位電路、LED顯示及驅動電路、按鍵輸入電路。 電路原理圖如下:,4. 軟件設計,片內RAM 50H55H作為顯示緩沖區(qū),共6個單元分別存放秒、分、時的BCD碼個位在低地址單元,十位在高地址單元。時鐘的基本單位為秒,定時器T0定時50ms,定時20次即為1S。秒、分逢60進位,時逢24回零。 按鍵具有以下功能:當按下時間小于1S,進入省電狀態(tài)(時鐘繼續(xù)運行,但不顯示);按下時間大于1S,進入調分狀態(tài),時鐘停止,等待繼,續(xù)按鍵,若再次按鍵時間小于0.5S,分加1;若大于0.5S,進入小時調整狀態(tài)。在小時調整狀態(tài)下,按鍵時間小于0.5S,

11、時加1,若大于0.5S,退出時鐘調整,時鐘按新設置的時間運行。 在時鐘調整狀態(tài)下,當前被調整的時間每0.3S閃爍顯示,定時器T1定時閃爍時間間隔0.3S。,(1) 主程序設計 主程序流程圖如下:,圖10.3 主程序流程圖,主程序如下: ORG 0000H AJMP MAINT ORG 000BH AJMP INT01 ORG 001BH AJMP INT11 MAINT:MOV R0,#7FH CLR A WZ1: MOV R0,A DJNZ R0,WZ1,MOV SP,#30H MOV 5AH,#0AH MOV TMOD,#11H MOV TL0,#0B0H MOV TH0,#3CH MOV

12、 TL1,#0B0H MOV TH1,#3CH SETB EA SETB ET0 SETB TR0 MOV R4,#14H,MAINT1:LCALL XZCX JNB P2.7,SJTZ0 SJMP MAINT1 SJTZ0: LCALL XSZCX JNB P2.7,SJTZ1 SJMP MAINT1 SJTZ1: CLR ET0 CLR TR0 LCALL YS1S JB P2.7, KMTES MOV R2, #06H,SETB ET1 SETB TR1 XYZ2: JNB P2.7, XYZ1 CLR 01H XYZ4: JB P2.7, XYZ3 LCALL YS05S JNB P2

13、.7, XYZHH MOV R0, #53H LCALL ADD1 MOV A, R3 CLR C,CJNE A, #60H, QWE QWE: JC XYZ4 CLR A MOV R0, A DEC R0 MOV R0, A CLR C AJMP XYZ4 KMTES: SETB ET0 SETB TR0 KMA: JB P2.7, $,LCALL XSZCX JB P2.7, KMA KMA1: JNB P2.7,$ LJMP MAINT1 XYZHH: JNB P2.7, XYZ5 SETB 01H XYZ6: JB P2.7, XYZ7 LCALL YS05S JNB P2.7, XY

14、ZOUT MOV R0, #55H LCALL ADD1,MVO A, R3 CLR C CJNE A, #24H, KMB1 KMB1: JC XYZ6 CLR A MOV R0, A DEC R0 MOV R0, A AJMP XYZ6 XYZOUT: JNB P2.7, XYZOUT1 LCALL XSZCX,JNB P2.7,XYZOUT MOV 20H,#00H MOV 56H,52H MOV 57H,53H MOV 58H,54H MOV 59H,55H CLR TR1 CLR ET1 SETB TR0 SETB ET0 LJMP MAINT1,XYZ1: LCALL XSZCX

15、AJMP XYZ2 XYZ3: LCALL XSZCX AJMP XYZ4 XYZ5: LCALL XSZCX AJMP XYZHH XYZ7: LCALL XSZCX AJMP XYZ6 XYZOUT1: LCALL XSZCX AJMP XYZOUT,(2) 顯示子程序設計 XSZCX: MOV R1, #50H MOV R5, #0FEH MAXY: MOV A, R5 MOV P2, A MOV A, R1 MOV DPTR, #ABC MOVC A, A+DPTR MOV P1, A LCALL YS1MS INC R1,MOV A, R5 JNB ACC.5, ENDOUT RL

16、A MOV R5, A AJMP MAXY ENDOUT: MOV P2, #0FFH MOV P1, #0FFH RET,(3) T0中斷服務程序設計 INT01: PUSH ACC PUSH PSW CLR ET0 CLR TR0 MOV A, #0B7H ADD A, TL0 MOV TL0, A MOV A, #3CH ADDC A, TH0 MOV TH0, A,SETB TR0 DJNZ R4, INT0U AD1: MOV R4, #14H MOV R0, #51H LCALL ADD1 MOV A, R3 CLR C CJNE A, #60H, AD2 AD2: JC INT0

17、U CLR A MOV R0, A,DEC R0 MOV R0, A MOV R0, #57H ACALL ADD1 MOV A, R3 CLR C CJNE A, #60H, AD3 AD3:JC INT0U CLR A MOV R0, A DEC R0,MOV R0, A MOV R0, #59H ACALL ADD1 MOV A, R3 CLR C CJNE A, #24H, AD4 AD4: JC INT0U CLR A MOV R0, A DEC R0 MOV R0, A,INT0U: MOV 52H, 56H MOV 53H, 57H MOV 54H, 58H MOV 55H, 5

18、9H POP PSW POP ACC SETB ET0 RETI,(4) T1中斷服務程序設計 INT11: PUSH ACC PUSH PSW MOV TL1, #0B0H MOV TH1, #3CH DJNZ R2, INT1U MOV R2, #06H CPL 02H JB 02H, CCC1 MOV 52H, 56H MOV 53H, 57H,MOV 54H, 58H MOV 55H, 59H INT1U: POP PSW POP ACC RETI CCC1: JB 01H, CCC2 MOV 52H, 5AH MOV 53H, 5AH MOV 54H, 58H MOV 55H, 59

19、H AJMP INT1U,CCC2: MOV 52H, 56H MOV 53H, 57H MOV 54H, 5AH MOV 55H, 5AH AJMP INT1U,(5) 加1子程序 ADD1: MOV A, R0 DEC R0 SWAP A ORL A, R0,ADD A,#01H DA A MOV R3,A ANL A,#0FH MOV R0,A MOV A,R3 INC R0 SWAP A ANL A,#0FH MOV R0,A RET,(6) 延時子程序 YS1MS: MOV R6,#14H YS1: MOV R7,#19H YS2: DJNZ R7,YS2 DJNZ R6,YS1 R

20、ET YS1S: LCALL YS05S LCALL YS05S RET,YS05S: MOV R3, #51H YS05S1: LCALL XSZCX DJNZ R3, YS05S1 RET ABC: DB 0C0H, 0F9H, 0A4H DB 0B0H, 99H, 92H, 82H, 0F8H DB 80H, 90H, 0FFH END,點擊觀看仿真演示,10.3.2 數字式音樂盒設計,本節(jié)以一個音樂盒為例,通過設計一個音樂盒,了解用單片機產生音頻的方法及音樂程序的設計。 音樂盒的音符范圍:C調低音1高音7,內部存儲一首歌曲,循環(huán)播放。,1. 基本樂理知識 在音樂中使用的各個固定頻率的音

21、叫音級,常用符號C、D、E、F、G、A、B表示。兩音之間音高的距離叫音程。表12-1列出C調高、中、低音對應的頻率值。 樂曲即是由不同的音符組成的,而每個音符都有其特定的頻率,這樣我們就可以利用不同的頻率的組合,即可構成我們所想要的音樂了。音符頻率,的產生可以使用定時計數器產生 ,T0工作于定時方式1,晶振為12MHz。則T0定時時間為某音符周期的1/2,定時時間到則將輸出取反,就可以得到固定頻率的方波信號。 低音1:頻率=262,定時時間=T/2=1/2*262(S) T0初值=65536-1000000/52463628。 低音2:頻率=294,定時時間=T/2=1/2*294(S) T0

22、初值=65536-1000000/58863835。,2. 總體設計 選擇AT89C2051單片機,通過T0的定時中斷,配合P3.0引腳輸出音頻頻率。P3.0引腳輸出,經音頻放大后接揚聲器。系統(tǒng)組成框圖如圖10.4所示。,音符持續(xù)時間的長短即時值,一般用拍數表示。1/8拍=0.05s,1/4拍=0.1s,以此類推,1拍就是0.4S。 節(jié)拍的產生,可以用定時器T1或延時方法產生,以1/8拍為基準。若某個音符節(jié)拍為1/4拍,則延時兩次即可。,3. 硬件設計 電路原理圖如下:,4. 軟件設計 為了產生音頻信號,需先對音符進行編碼。在程序中安排一張定時初值表,程序通過音符編碼查表得到對應的定時初值。編

23、碼如下表所示。,以1/8拍為延時單位,對節(jié)拍也進行編碼如下。,有了上述兩張編碼表,任何一首樂曲都可以用其編碼來表示。例如:生日快樂歌曲譜如下: C 1=3/4,對此進行編碼,音符編碼在前,節(jié)拍編碼在后,得曲譜簡碼表如下: SONG:DB 0CH,04H,00H,02H,0CH,02H,0DH,08H DB 0CH,08H, 0FH,08H,0EH,08H,00H,08H,0CH DB 04H,00H,02H,0CH,02H,0DH,08H,0CH,08H DB 10H,08H, 0FH,08H,00H,08H,0CH,04H,00H DB 02H,0CH,02H,13H,08H,11H,08H

24、,0FH,08H DB 0EH,08H,0DH,08H,12H,04H,00H,02H,12H DB 02H,11H, 08H,0FH,08H,10H,08H,0FH,08H DB 00H,08H,0FFH ;結束符,(1) 主程序框圖,(2) T0中斷服務程序框圖,圖10.6 主程序與中斷服務程序框圖,程序清單:,ORG 0000H LJMP MUSIC ORG 000BH LJMP SERT0 ORG 0030H MUSIC: MOV TMOD,#01H ; T0定時方式1 SETB EA SETB ET0 ; 開T0中斷 SETB P3.0 ; 不發(fā)音,STA: MOV 30H,#00H

25、 ;簡碼指針清0 NEXT:MOV DPTR,#SONG ;DPTR指向簡碼表首址 MOV A,30H ;簡碼指針送A INC 30H ;指針加1,指向節(jié)拍碼 MOVC A,A+DPTR ;取簡碼 MOV R2,A ;暫存簡碼 CPL A JNZ NEXT1 ;簡碼結束否? CLR TR0 ;T0停止 SJMP STA,NEXT1:MOV A, R2 ; 簡碼送A JNZ SING ; 是發(fā)音符,轉SING CLR TR0 ; 不發(fā)音 SJMP D1 ; 轉節(jié)拍控制 SING: DEC A ; 根據音符碼取定時初值 RL A MOV 22H, A MOV DPTR, #STAB MOVC A,

26、 A+DPTR MOV TH0, A ;送高字節(jié)定時初值,MOV 21H,A ;保存至21H MOV A,22H INC A MOVC A,A+DPTR MOV TL0,A ;送低字節(jié)定時初值 MOV 20H,A ;保存 SETB ET0 ;開T0中斷 SETB TR0 ;啟動T0 D1:MOV A,30H ;簡碼指針送A INC 30H ;簡碼指針加1,指向下一簡碼 MOV DPTR,#SONG,MOVC A, A+DPTR ;取節(jié)拍碼 MOV R5, A ;節(jié)拍碼送R5 LCALL DELAY ;調節(jié)拍控制 CLR TR0 ;節(jié)拍到,停止T0 SJMP NEXT ;轉下一簡碼發(fā)音控制 ;節(jié)

27、拍控制子程序 DELAY:MOV R3,#100 D2: MOV R4,#250 D3: DJNZ R4,D3 DJNZ R3,D2 DJNZ R5,DELAY ;節(jié)拍數到否? RET,;T0中斷服務程序 SERT0: CLR TR0 ;停止T0 MOV TL0,20H ;重裝初值 MOV TH0,21H CPL P3.0 ;音頻信號取反 SETB TR0 ;啟動T0 RETI ;中斷返回,;祝你生日快樂歌簡碼表 SONG:DB 0CH,04H,00H,02H,0DH,08H,0CH,08H DB 0FH,08H,0EH,08H,00H,08H,0CH,04H,00H DB 02H,0CH,02H,0DH,08H,0CH,08H,10H,08H DB 0FH,08H,00H,08H,0CH,04H,00H,02H,0CH DB 02H,13H,08H,11H,08H,0FH,08H,0EH,08H DB 0DH,08H,12H,04H,00H,02H,12H,02H,11H DB 08H,0FH,08H,1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論