|
一 課程設計的目的 單片計算機即單片微型計算機。(Single-Chip Microcomputer ),是 集CPU ,RAM ,ROM ,定時,計數和多種接口于一體的微控制器。他體積小,成本低,功能強,廣泛應用于智能產品和工業自動化上。而51單片機是各單片機中最為典型和最有代表性的一種。這次課程設計通過對它的學習,應用,從而達到學習、設計、開發軟、硬的能力。 二、課程設計的具體要求: 該課程設計是利用MCS-51單片機內部的定時/計數器、中斷系統、以及行列鍵盤和LED顯示器等部件,設計一個單片機電子時鐘。設計的電子時鐘通過數碼管顯示,并能通過按鍵實現設置時間和暫停、啟動控制等。用定時/計數器T0,工作于定時,采用方式1,對12MHZ的系統時鐘進行定時計數,初值設為XXYY(自己計算)。形成定時時間為50ms。用片內RAM的7BH單元對50ms計數,計20次產生秒計數器78H單元加1,秒計數器加到60則分計數器79H單元加1,分計數器加到60則時計數器7AH單元加1,時計數器加到24則時計數器清0。然后把秒、分、時計數器分成十位和個位放到8個數碼管的顯示緩沖區,通過數碼管顯示出來。顯示格式為小時十位、小時個位---分十位、分個位---秒十位、秒個位。在處理過程中加上了按鍵判斷程序,能對按鍵處理 三. MCS-51單片機系統簡介 40個引腳按引腳功能大致可分為4個種類:電源、時鐘、控制和I/O引腳。 ⒈ 電源: ⑴ VCC - 芯片電源,接+5V; ⑵ VSS - 接地端; 注:用萬用表測試單片機引腳電壓一般為0v或者5v,這是標準的TTL電平。但有時候在單片機程序正在工作時候測試結果并不是這個值而是介于0v-5v之間,其實這是萬用表的響應速度沒這么快而已,在某一個瞬間單片機引腳電壓仍保持在0v或者5v。 ⒉ 時鐘:XTAL1、XTAL2 - 晶體振蕩電路反相輸入端和輸出端。 ⒊ 控制線:控制線共有4根, ⑴ ALE/PROG:地址鎖存允許/片內EPROM編程脈沖 ① ALE功能:用來鎖存P0口送出的低8位地址 ② PROG功能:片內有EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。 ⑵ PSEN:外ROM讀選通信號。 ⑶ RST/VPD:復位/備用電源。 ① RST(Reset)功能:復位信號輸入端。 ② VPD功能:在Vcc掉電情況下,接備用電源。 ⑷ EA/Vpp:內外ROM選擇/片內EPROM編程電源。 ① EA功能:內外ROM選擇端。 ② Vpp功能:片內有EPROM的芯片,在EPROM編程期間,施加編程電源Vpp。 ⒋ I/O線 80C51共有4個8位并行I/O端口:P0、P1、P2、P3口,共32個引腳。 P3口還具有第二功能,用于特殊信號輸入輸出和控制信號(屬控制總線) 四、MCS-51單片機內部定時器/計數器、中斷系統簡介
定時/計數器是單片機中重要的功能模塊之一,在檢測,控制和智能儀器等設備中經常用它來定時。MCS-51系列中51子系列有2個16位的可編程定時/計數器:T0和T1;每個定時計數器既可以對系統時鐘計數實現定時,也可以對外部信號計數實現計數功能,通過編程設定來實現。T0有4種工作方式,T1有3種工作方式,T2有3種工作方式,可通過編程設定。每個定時/計數器計數事件到時產生溢出,使相應的溢出位置位,溢出可通過查詢或中斷方式處理。 2.中斷系統簡介 MCS-51單片機提供5個硬件中斷源:2個外部中斷源INT0(P3.2)和INT1(P3.3),2個定時/計數器T0和T1的溢出中斷TF0和TF1;1個串行口發送TI和接收RI中斷。 T0中斷服務程序流程圖如圖11.3。 五、鍵盤和LED數碼管顯示器簡介 本系統共用8個數碼管,從右到左依次顯示秒個位、秒十位、橫線、分個位、分十位、橫線、時個位和時十位。采用軟件譯碼動態顯示。按鍵處理設置為:如沒有按鍵,則時鐘正常走時。當按下K0按鍵時,進入調分狀態,時鐘停止走動;按K1可K2按鍵可進行加1或減1操作;繼續按K0鍵可分別進行分和小時的調整;最后按K0鍵將退出調整狀態,時鐘開始計時運行。
六、基本原理 1.定時器/計數器 T0 定時器/計數器T0用于時間計時。選擇方式1,重復定時,定時時間設為50ms,定時時間到則中斷,在中斷服務程序中用一個計數器對50ms計數,計20次則對秒單元加1,秒單元加到60則對分單元加1,同時秒單元清0;分單元加到60則對時單元加1,同時分單元清0;時單元加到24則對時單元清0,標志一天時間計滿。在對各單元計數的同時,把它們的值放到存儲單元的指定位置。。 七.硬件電路 file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps112D.tmp.png
八、軟件程序流程及代碼 1. T0中斷服務程序流程圖 file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps112E.tmp.png file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps112F.tmp.pngfile:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps1140.tmp.png 3.程序代碼 ORG 0000H LJMP START ORG 000BH ;定時器/計數器T0中斷程序入口 LJMP INTT0 ;主程序 START:MOV R0,#70H MOV R7,#0CH INIT: MOV @R0,#00H INC R0 DJNZ R7,INIT MOV 72H,#10 MOV 75H,#10 MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,#03CH SETB EA SETB ET0 SETB TR0 START1:LCALL SCAN LCALL KEYSCAN SJMP START1 ;延時1MS子程序 DL1MS:MOV R6,#14H DL1:MOV R7,#19H DL2:DJNZ R7,DL2 DJNZ R6,DL1 RET ;延時20MS子程序 DL20MS:ACALL SCAN ACALL SCAN ACALL SCAN RET ;數碼管顯示程序 SCAN: MOV A,78H ;時間存入顯示緩沖區相應位置 MOV B,#0AH DIV AB MOV 71H,A MOV 70H,B MOV A,79H MOV B,#0AH DIV AB MOV 74H,A MOV 73H,B MOV A,7AH MOV B,#0AH DIV AB MOV 77H,A MOV 76H,B MOV R1,#70H ;循環掃描顯示 MOV R5,#80H MOV R3,#08H SCAN1:MOV A,R5 MOV P2,A MOV A,@R1 MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A MOV A,R5 LCALL DL1MS INC R1 MOV A,R5 RR A MOV R5,A DJNZ R3,SCAN1 MOV P2,#00H MOV P0,#0FFH RET TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH ;“0~9”,“-”的共陽極字段碼
;定時器/計數器T0中斷服務程序 INTT0: PUSH ACC PUSH PSW CLR ET0 CLR TR0 MOV TL0,#0B0H MOV TH0,#03CH SETB TR0 INC 7BH MOV A,7BH CJNE A,#14H,OUTT0 MOV 7BH,#00 INC 78H MOV A,78H CJNE A,#3CH,OUTT0 MOV 78H,#00 INC 79H MOV A,79H CJNE A,#3CH,OUTT0 MOV 79H,#00 INC 7AH MOV A,7AH CJNE A,#18H,OUTT0 MOV 7AH,#00 OUTT0: SETB ET0 POP PSW POP ACC RETI ;按鍵處理程序 KEYSCAN:CLR EA JNB P1.0,KEYSCAN0 JNB P1.1,KEYSCAN1 JNB P1.2,KEYSCAN2 KEYOUT:SETB EA RET KEYSCAN0:LCALL DL20MS JB P1.0,KEYOUT WAIT0:JNB P1.0,WAIT0 INC 7CH MOV A,7CH CLR ET0 CLR TR0 CJNE A,#03H,KEYOUT MOV 7CH,#00 SETB ET0 SETB TR0 SJMP KEYOUT KEYSCAN1:LCALL DL20MS JB P1.1,KEYOUT WAIT1:JNB P1.1,WAIT1 MOV A,7CH CJNE A,#02H,KSCAN11 INC 79H MOV A,79H CJNE A,#3CH,KEYOUT MOV 79H,#00 SJMP KEYOUT KSCAN11:INC 7AH MOV A,7AH CJNE A,#18H,KEYOUT MOV 7AH,#00 SJMP KEYOUT KEYSCAN2:LCALL DL20MS JB P1.2,KEYOUT WAIT2:JNB P1.2,WAIT2 MOV A,7CH CJNE A,#02H,KSCAN21 DEC 79H MOV A,79H CJNE A,#0FFH,KEYOUT MOV 79H,#3BH SJMP KEYOUT KSCAN21:DEC 7AH MOV A,7AH CJNE A,#0FFH,KEYOUT MOV 7AH,#17H SJMP KEYOUT END 九.設計制作流程 1、在PROTEUS中設計硬件 PROTEUS軟件使用過程如下: 1)選擇元器件 2)放置元器件 3)連線 4)添加程序 5)運行仿真 元器件清單如下: 單片機:80C52 按鍵:BUTTON 電阻:RES 電容:CAP 晶振:CRYSTAL LED數碼管:7SEG-MPX8-CA-BLUE(CA:共陽,CC:共陰) 地:GRAND 電源:POWER 2、在KEIL51中編寫程序,編譯、連接形成HEX文件。 3、在PROTEUS中把HEX文件加載到單片機芯片上。 4、運行仿真看結果。
|