




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、惠州學院課程設計報告姓名:班別:學號:單片機數字時鐘課程設計報告設計任務:1、能夠實現時間的精確顯示,以數字的形式顯示時間的時、分、秒2、時間以 24 小時為進制,能夠通過相應按鍵來調節時鐘時間3、能夠實現按鍵啟動與停止功能。4、能夠實現秒表功能。摘要此電子鐘采用C8951芯片,同時使用8位8段LED數碼管(兩個四位一體數碼 管)顯示小時、分鐘和秒的要求。該電子鐘有四個按鍵 ,進行相應的操作就可實現 時間調整、年月查看與復位功能 。整個過程就是先設計和焊接好硬件電路,再 通過匯編語言編寫應用程序來實現我們需要的功能, 這期間,進行的軟件仿真和 調試是本設計的重點和難點。關鍵詞:電子時鐘、 C8
2、951 芯片、程序設計、仿真調試目錄1. 系統的功能分析與設計方案1.1 系統的主要功能1.2 數碼管顯示工作原理1.3 電路硬件設計1.4 各電路工作原理1.5 設計原理框圖1 .6主芯片工作原理圖.1.7 材料清單1.8 電路原理圖及實物圖2. 軟件設計2.1 完整源程序2.2 系統安裝與調試2.3 硬件電路的安裝2.4 軟件調試2.5課程設計總結3. 參考文獻4. 致謝1.系統的功能分析與設計方案1.1 系統的主要功能利用89c51單片機內部的定時/計數器、中斷系統、以及行列鍵盤和 LED顯示器等部件, 設計一個單片機電子時鐘。 設計的電子時鐘通過數碼管顯示, 并能 通過按鍵實現設置時間
3、和復位控制等。此外還要實現對時間的調整功能,89c51的P1.0 P1.1、RST外接三個獨立按鍵, 當按下P1.0按鍵時,系統進入調時間的狀態或啟動時間顯示的功能;當按下P1.1按鍵時,對顯示的數碼管進行加一的功能,達到調整時間的目的;當按下RST按鍵時,實現對電子時鐘進行復位的功能。系統的設計方案整個系統采用應用廣泛的AT89S52乍為時鐘控制芯片,利用單片機內部的定時器 計數器來實現的,它的處理過程如下:首先設定單片機內部的一個定時器 計數 器工乍于定時方式,對機器周期計數形成基準時間,然后用另一個定時器 計數 器或軟件計數的方法對基準時間計數形成秒, 秒計 60次形成分,分計 60次形
4、成 小時,小時計 24 次則計滿一天。然后通過數碼管把它們的內容在相應位置顯示 出來即可。數碼管顯示可以采用靜態顯示方法或動態顯示方法。 靜態顯示方法需要數據鎖存 器等硬件, 接口復雜, 時鐘顯示一般用 6個或8個數碼管。由于系統沒有其他的 復雜的任務處理,而且顯示的時鐘信息隨時都可能變化, 一般采用動態顯示方式。 動態顯示方法線路相對簡單, 但需動態掃描,掃描頻率要大于人眼視覺暫留頻率, 信息看起來才穩定。 譯碼方式可分為軟件譯碼和硬件譯碼, 軟件譯碼通過譯碼程 序查得顯示信息的字段碼; 硬件譯碼通過硬件譯碼器得到顯示信息的字段碼, 實 際中通常采用軟件譯碼。在具體處理時, 定時器計數器采用
5、中斷方式工乍, 對時鐘的形成在中斷服務程序 中實現。在主程序中只需對定時器計數器初始化、 調用顯示子程序和控制子程序。 另外,為了使用方便,設計了簡單的按鍵,可以通過按鍵實現時間調整和復位。1.2 數碼管顯示工乍原理數碼管是一種把多個LED顯示段集成在一起的顯示設備。有兩種類型,一種是共 陽型,一種是共陰型。共陽型就是把多個LED顯示段的陽極接在一起,又稱為公 共端。共陰型就是把多個LED顯示段的陰極接在一起,即為公共商。陽極即為二 極管的正極,又稱為正極,陰極即為二極管的負極,又稱為負極。通常的數碼管 又分為8段,即8個LED顯示段,這是為工程應用方便如設計的,分別為 A、B、 C、D、E、
6、F、G、DP,其中DP是小數點位段。而多位數碼管,除某一位的公共 端會連接在一起,不同位的數碼管的相同端也會連接在一起。即,所有的A段都會連在一起,其它的段也是如此,這是實際最常用的用法。數碼管顯示方法可分 為靜態顯示和動態顯示兩種。靜態顯示:所謂靜態顯示,就是當顯示器顯示某一字符時,相應的發光二極管恒 定的導通或截止。該方式每一位都需要一個8位輸出口控制。靜態顯示時較小的 電流能獲得較高的亮度,且字符不閃爍。但當所顯示的位數較多時,靜態顯示所 需的I/O 口太多,造成了資源的浪費。動態顯示:所謂動態顯示,就是一位一位的輪流點亮各個位, 對于顯示器的每一 位來說,每隔一段時間點亮一次。利用人的
7、視覺暫留功能可以看到整個顯示,但 必須保證掃描速度足夠快,字符才不閃爍。顯示器的亮度既與導通電流有關, 也 于點亮時間與間隔時間的比例有關。調整參數可以實現較高穩定度的顯示。動態 顯示節省了 I/O 口,降低了能耗。從節省I/O 口和降低能耗出發,本設計采用動態顯示。1.3電路硬件設計1.31設計原理框圖此設計原理框圖如圖1所示,此電路包括以下六個部分:單片機,按鍵,指示燈, 復位電路,晶振及顯示電路。設計原理框圖 電路設計分為復位電路、指示燈電路、按鍵電路、時鐘電路及數碼管連接電路, 總電路工作原理圖如下圖所示復位電路機顯示電路89c51芯片該系列單片機是采用高性能的靜態80C51設計由先進
8、CMOS工藝制造并帶有非易 失性Flash程序存儲器全部支持12時鐘和6時鐘操作P89C51X2和 P89C52XE4X258X2 分別包含 128 字節和 256 字節 RAM32 條 I/O 口 線3個16位定時/計數器6輸入4優先級嵌套中斷結構1個串行I/O 口可用于多機通信I/O擴 展或全雙工UART以及片內振蕩器和時鐘電路此外由于器件采用了靜態設計可提供很寬的操作頻率范圍頻率可降至0可實現兩個由軟件選擇的節電模式空閑模式和掉電模式空閑模式凍結 CPU但RAM定時器串口和中斷系統仍然工作 掉電模式保存RAM的內容但是凍結振蕩器導致所有其它的片內功能停止工作由于設計是靜態的時鐘可停止而不
9、會丟失用戶數據運行可從時鐘停止處恢復4個中斷優先級y 6個中斷源4個8位I/O 口 全雙工增強型UART幀數據錯誤檢測一自動地址識別3個16位定時/計數器T0T1標準80C51和增加的T2捕獲和比較可編程時鐘輸出 異步端口復位低EMI禁止ALE以及6時鐘模式)掉電模式可通過外部中斷喚醒 其引腳圖如下所示PLC tPL1 cPl.2 cPI ”3 cPI .4 cPL5 cPI W匚P1.7 gRST RXD)P3.0 c (TXD)P3c (!NT0)P37 c (INTT)P3.3 匸 (TO)PS,4 匚 (T1)P5.5 c 21 P2.6(A14) 二 P25(A13) 3 P2.4(
10、A12) n P23(All 3 P22(AW) n P2J(A9) 二 P2.O(A8)材料清單8051芯片瓷介電容極性電容芯片底座 1 4位7段數碼管10K歐電阻電池盒電池獨立按鍵自鎖開關排阻12M晶振個個個5個仆12軟件設計2.1軟件設計流程電子時鐘的軟件系統由主程序和子程序組成,主程序程序包含初始化參數設置、 按鍵處理、數碼管顯示模塊等,(1)主程序主程序先對顯示單元和定時器/計數器初始化,然后重復調用數碼管顯示模塊和 按鍵處理模塊,當有鍵按下,則轉入相應的功能程序。主程序執行流程如圖Y2)定時器/計數器TO中斷程序定時器/計數器TO用于時間計時。選擇方式1,重復定時,定時時間設為20
11、ms, 定時時間到則中斷,在中斷程序中用一個計數器對 20ms計數,計50次則對秒 單元加1,秒單元加到60則對分單元加1,同時秒單元清0;分單元加到60則 對時單元加1,同時分單元清0;時單元加到24則對時單元清0,標志一天時間 計滿。在對各單元計數的同時,把它們的值放到存儲單元的指定位置。定時器 / 計數器T0中斷程序流程圖如圖SETB IT0SETB TR0 SETB PT0MAIN:CLR P3.7 JNB P1.7, LOOP LCALL DISPLAY LCALL KEYSETB EX0 LJMP MAIN LOOP:MOV S6,#09H ZN:MOV S7,#0FFH SETZ
12、H:CLR P3.2 SETB P3.2LCALL KEY DJNZ S7,SETZH DJNZ S6,ZNLJMP MAINSHOW:PUSH ACC PUSH PSW LCALL DISPLAY1 POP PSW POP ACC RETIZDN:PUSH ACCPUSH PSWINC R7CJNE R7,#200,ZD MOV R7,#00HINC S0MOV A,S0CJNE A,#20,ZDMOV S0,#00HINC R0CJNE R0,#60,ZD MOV R0,#00H完整源程序:50 EQU 31H51 EQU 32H52 EQU 33H53 EQU 34H54 EQU 35H
13、55 EQU 36H56 EQU 37H57 EQU 38H58 EQU 39H59 EQU 40HS10 EQU 41HORG 0000HAJMP STARTORG 000BHAJMP ZDNORG 0003HLJMP SHOWORG 0045HSTART:MOV R0,#57MOV R1,#59MOV R2,#12MOV R3,#20MOV R4,#11MOV R5,#15MOV R6,#20MOV R7,#00HMOV S0,#00HMOV S1,#00HMOV S2,#00HMOV S3,#00HMOV S4,#00HMOV S5,#00HMOV S6,#00HMOV S7,#00HM
14、OV S8,#00HMOV S9,#00HMOV S10,#00HMOV TMOD,#02HMOV TH0,#06HMOV TL0,#06HMOV IE,#83HMOV R1,#00HINC R2CJNE R2,#24,ZDMOV R2,#00HINC R3CJNE R4,#2,LOOP31LCALL JUDGE_YLCALLZDLOOP31:CJNE R4,#4,V1AJMP SMALLV1:CJNE R4,#6,V2AJMP SMALLV2:CJNE R4,#9,V3AJMP SMALLV3:CJNE R4,#11,MAXSMALL:CJNE R3,#31,ZDMOV R3,#01HINC
15、 R4MAX:CJNE R3,#32,ZDMOV R3,#01HINC R4CJNE R4,#12,ZDMOV R4,#01HINC R5CJNE R5,#99,ZDMOV R5,#00HINC R6CJNE R6,#99,ZDMOV R6,#00HZD:POP PSWPOP ACCRETIJUDGE_Y:MOV A,R5CJNE A,#0,L1MOV A,R6MOV B,#4DIV ABMOV A,BCJNE A,#0,PINGNIANLJMP L2L1:MOV A,R5MOV B,#4DIV ABMOV A,BCJNE A,#0,PINGNIAN L2:CJNE R3,#30,L3 MOV
16、 R3,#01HINC R4PINGNIAN:CJNE R3,#29,L3MOV R3,#01HINC R4L3:RETDISPLAY:MOV DPTR,#TABCJNE R0,#0,BBCJNE R1,#0,BBSETB P3.7LCALL DELAY10MSCLR P3.7BB:MOV A,R0MOV B,#10DIV ABMOV S9,AMOV S10,BMOV A,BMOVC A,A+DPTRMOV P0,ACLR P2.7LCALL DELAYSETB P2.7MOV A,S9MOVC A,A+DPTRMOV P0,ACLR P2.6LCALL DELAYSETB P2.6MOV A
17、,#10MOVC A,A+DPTRMOV P0,AMOVC A,A+DPTRMOV P0,ACLR P2.0LCALL DELAYSETB P2.0RETTAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H;CLR P2.5LCALL DELAYSETB P2.5MOV A,R1MOV B,#10DIV ABMOV S9,AMOV S10,BMOV A,BMOVC A,A+DPTRMOV P0,ACLR P2.4LCALL DELAYSETB P2.4MOV A,S9MOVC A,A+DPTRMOV P0,ACLR P2.3LCALL DELAYS
18、ETB P2.3MOV A,#10MOVC A,A+DPTRMOV P0,ACLR P2.2LCALL DELAYSETB P2.2MOV A,R2MOV B,#10DIV ABMOV S9,AMOV S10,BMOV A,BMOVC A,A+DPTRMOV P0,ACLR P2.1LCALL DELAYSETB P2.1MOV A,S9DISPLAY1:MOV DPTR,#TAB1MOV A,R3MOV B,#10DIV ABMOV S9,AMOV S10,BMOV A,BMOVC A,A+DPTRMOV P0,ACLR P2.7LCALL DELAYSETB P2.7MOV A,S9MOV
19、C A,A+DPTRMOV P0,ACLR P2.6LCALL DELAYSETB P2.6MOV A,#10MOVC A,A+DPTRMOV P0,ACLR P2.5LCALL DELAYSETB P2.5MOV A,R4MOV B,#10DIV ABMOV S9,AMOV S10,BMOV S10,BMOV A,BMOVC A,A+DPTRMOV P0,ACLR P2.1LCALL DELAYSETB P2.1MOV A,S9MOVC A,A+DPTRMOV P0,ACLR P2.0LCALL DELAYSETB P2.0RETTAB1:DB3FH,06H,5BH,4FH,66H,6DH,
20、7DH,07H,7FH,6FH,80H;MOV A,BMOVC A,A+DPTRMOV P0,ACLR P2.5LCALL DELAYSETB P2.5MOV A,S9MOVC A,A+DPTRMOV P0,ACLR P2.4LCALL DELAYSETB P2.4MOV A,#10MOVC A,A+DPTRMOV P0,ACLR P2.3LCALL DELAYSETB P2.3MOV A,R5MOV B,#10DIV ABMOV S9,AMOV S10,BMOV A,BMOVC A,A+DPTRMOV P0,ACLR P2.3LCALL DELAYSETB P2.3MOV A,S9MOVC
21、A,A+DPTRMOV P0,ACLR P2.2LCALL DELAYSETB P2.2MOV A,R6MOV B,#10DIV ABMOV S9,AKEY:MOV P1,#0FFHMOV A,P1CPL AANL A,#70HJZ RET1LCALL DELAY10MSMOV A,P1CPL AANL A,#70HJZ RET1JB ACC.4,MKEYJB ACC.5,ADDKEYJB ACC.6,DECKEYRET1:RETMKEY:CLR TR0LCALL K1LJMP DISPLAY ADDKEY:LCALL K2LJMP DISPLAY DECKEY:LCALL K3LJMP DI
22、SPLAYK1:MOV A,S8CJNE A,#9,LOOP1MOV S8,#00HLJMP FHLOOP1:INC S8CJNE A,#8,FHSETB TR0FH:RETK2:MOV A,S8CJNE A,#1,LOOP2CJNE R6,#99,LOOP3MOV R6,#00HLJMP LOOP15LOOP3:INC R6LJMP LOOP15LOOP2:CJNE A,#2 ,L OOP4CJNE R5,#99,LOOP5MOV R5,#00HLJMP LOOP15LOOP5:INC R5LJMP LOOP15LOOP4:CJNE A,#3,LOOP6CJNE R4,#12, LOOP7M
23、OV R4,#01HLJMP LOOP15LOOP7:INC R4LJMP LOOP15LOOP6:CJNE A,# 4,L OOP8CJNE R4,#2,LOOP32LCALL JUDGE_Y1LJMP LOOP15LOOP32:CJNE R4,#4,N6AJMP SMALL1N6:CJNE R4,#6,N7AJMP SMALL1N7:CJNE R4,#9,N8AJMP SMALL1N8:CJNE R4,#11,MAX1SMALL1:CJNE R3,#30,LOOP9MOV R3,#01HLJMP LOOP15LOOP9:INC R3LJMP LOOP15MAX1:CJNE R3,#31,L
24、OOP35MOV R3,#01HLJMP LOOP15LOOP35:INC R3LJMP LOOP15LOOP8:CJNE A,#5,LOOP10 CLR EX0CJNE R2,#23 ,L OOP11MOV R2,#00HLJMP LOOP15 LOOP11:INC R2LJMP LOOP15LOOP10:CJNE A,#6,LOOP12CJNE R1,#59 ,L OOP13 MOV R1,#00HLJMP LOOP15 LOOP13:INC R1LJMP LOOP15LOOP12:CJNE A,#7,LOOP15CJNE R0,#59,LOOP14MOV R0,#00HLJMP LOOP
25、15LOOP14:INC R0LOOP15:RETJUDGE_Y1:MOV A,R5CJNE A,#0,N1MOV A,R6MOV B,#4DIV ABMOV A,BCJNE A,#0,PINGNIAN1LJMP N2N1:M0V A,R5MOV B,#4DIV ABMOV A,BCJNE A,#0,PINGNIAN1N2:CJNE R3,#29,N3MOV R3,#01HLJMP N5N3:INC R3LJMP N5PINGNIAN1:CJNE R3,#28,N4MOV R3,#01HLJMP N5N4:INC R3N5:RETK3:MOV A,S8CJNE A,#1,LOOP16CJNE
26、R6,#0,LOOP17MOV R6,#99LJMP LOOP30LOOP17:DEC R6LJMP LOOP30LOOP16:CJNE A,#2,LOOP18CJNE R5,#0,LOOP19MOV R5,#99LJMP LOOP30LOOP19:DEC R5LJMP LOOP30LOOP18:CJNE A,#3,LOOP20CJNE R4,#01H, LOOP21MOV R4,#12LJMP LOOP30LOOP21:DEC R4LJMP LOOP30LOOP20:CJNE A,# 4, LOOP22CJNE R4,#2,LOOP33LCALL JUDGE_Y2LJMP LOOP30LOO
27、P33:CJNE R4,#4,M6AJMP SMALL2 M6:CJNE R4,#6,M7AJMP SMALL2M7:CJNE R4,#9,M8AJMP SMALL2M8:CJNE R4,#11,MAX2SMALL2:CJNE R3,#01,LOOP23 MOV R3,#30LJMP LOOP30LOOP23:DEC R3LJMP LOOP30MAX2:CJNE R3,#01,LOOP34 MOV R3,#31LJMP LOOP30 LOOP34:DEC R3LJMP LOOP30LOOP22:CJNE A,#5,LOOP24 CLR EX0CJNE R2,#0,LOOP25 MOV R2,#23 LJMP LOOP30 LOOP25:DEC R2 LJMP LOOP30 LOOP24
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論