




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、1 系統(tǒng)設計1.1 框圖設計基于AT89S51單片機數(shù)字鐘由電源電路、單片機主控電路、按鍵控制電路和蜂鳴器等幾部分組成,系統(tǒng)框圖如下:單片機AT89S51電源復位電路晶振電路聲音提示數(shù)碼管顯示按鍵電路基于AT89S51單片機數(shù)字鐘系統(tǒng)框圖1.2 知識點本項目需要通過學習和查閱資料,了解和掌握以下知識。1. +5V電源原理及設計。2. 單片機復位電路工作原理及設計。3. 單片機晶振電路工作原理及設計。4. 按鍵電路的設計。5. 驅動電路74LS04的特性及使用。6. 蜂鳴器及其驅動電路的設計。7. 數(shù)碼管的特性及其使用。8. AT89S51單片機引腳。9. 單片機匯編語言及程序設計。2 硬件設計
2、2.1 電路原理基于AT89S51單片機數(shù)字鐘電路原理圖如附錄所示。按下P1.0口按鍵,若按下時間小于1S,則進入省電狀態(tài)(數(shù)碼管不亮,時鐘不停);否則進入調(diào)分狀態(tài),等待操作,此時計時器停止走動。當再按下P1.0口按鍵時,若按鍵時間小于0.5S,則時間加1min;若按下時間大于0.5S,則進入小時調(diào)整狀態(tài)。按下P1.1按鍵時,可進行減1調(diào)整。在小時調(diào)整狀態(tài)下,當按鍵按下的時間大于0.5S時,退出時間調(diào)整狀態(tài),時鐘從0S開始計時。在正常時鐘狀態(tài)下,若按下P1.1口按鍵,則進行時鐘/秒表功能的轉換,秒表中斷計時程序啟動,顯示地址改為60H,LED將顯示秒表計時單元60H-65H中的數(shù)據(jù)。按下P1.
3、2口的按鍵開關,可實現(xiàn)秒表清零、秒表啟動、秒表暫停功能;當再按下P1.1口按鍵時,關閉T1秒表中斷計時,顯示首址又改為70H,恢復正常時間的顯示功能。2.2 元件清單元件名稱型號數(shù)量用途元件名稱型號數(shù)量用途單片機AT89S511控制核心電阻10k4按鍵電路晶振12MHz1晶振電路按鍵4電容30pF2數(shù)碼管8段6位1顯示電路電解電容10uF/10V1復位電路電阻5008電阻10k1電阻4.7k1蜂鳴器及其驅動電路按鍵1蜂鳴器DC5V1電源+5V/0.5A1提供+5V電源三極管90151基于AT89S51單片機數(shù)字鐘的元件清單如下表。3 軟件設計3.1 程序流程圖1. 主程序流程圖如圖1-1所示。
4、2. 秒計時程序。秒計時由定時器T0完成,流程圖如圖1-2所示。3. 秒表、調(diào)時指示程序。秒表、調(diào)時由定時器T1完成,其流程圖如圖1-3所示。NY開始初始化顯示程序整點到?報時圖1-1主程序流程圖YNT0中斷保護現(xiàn)場改變定時初值1s時間到?加1s恢復現(xiàn)場中斷返回圖1-2秒計時程序流程圖YN中斷開始保護現(xiàn)場秒表/閃爍?閃爍恢復現(xiàn)場中斷返回叫10ms圖1-3秒表、調(diào)時指示程序流程圖3.2 程序清單DISBEG EQU 30HCALB EQU P1.7TIMCON EQU 2FHORG 0000HLJMP MAINORG 0003HRETIORG 000BHLJMP INTT0ORG 0013HRE
5、TIORG 001BHLJMP INTT1ORG 0023HRETITAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHI_TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHDLY1M: MOV R6,#14HDL_LOOP: MOV R7,#19HDL_LOOP1:DJNZ R7,DL_LOOP1 DJNZ R6,DL_LOOP RETDLY20M:CLR CALB LCALL D_II_PLAY LCALL D_II_PLAY LCALL D_II_PLAY SETB CALB RETDL_LOOPS:L
6、CALL DL05S LCALL DL05S RETDL05S: MOV R3,#20HDL05S1: LCALL D_II_PLAY DJNZ R3,DL05S1 RETCTIME: MOV A,#10H/整點報時MOV B,79HMUL ABADD A,78HMOV TIMCON,ACLOOP: LCALL DLY20M LCALL DL_LOOPS LCALL DL_LOOPS LCALL DL_LOOPS DJNZ TIMCON,CLOOP CLR 08HMAIN: MOV R0,#00H/主程序 MOV R7,#80HMLOOP: MOV R0,#00H INC R0 DJNZ R7
7、,MLOOP MOV 20H,#00H MOV 7AH,#0AH MOV TMOD,#11H MOV TL0,#0B0H MOV TH0,#3CH MOV TL1,#0B0H MOV TH1,#3CH SETB EA SETB ET0 SETB TR0 MOV R4,#14H MOV DISBEG,#70HMLOOP1:LCALL D_II_PLAY JNB P1.0,T_SETSC JNB P1.1,DLY5 JNB P1.2,FUNBT JNB P1.3,TSET JB 08H,CTIMEAJMP MLOOP1FUNBT: LJMP DLY6TSET: LCALL DLY20M/鬧鈴時間設
8、定程序,按P1.3進入設定JB P1.3,MLOOP1TS_LOOP:JNB P1.3,TS_LOOPJB 05H,CLRBELLMOV DISBEG,#50HMOV 50H,#0CHMOV 51H,#0AHMINCHG:SETB EALCALL D_II_PLAYJNB P1.2,DLY1JNB P1.0,DLY3JNB P1.3,DLYAJMP MINCHGCLRBELL:CLR 05HCLR CALBAJMP MLOOP1DLY:LCALL DLY20MJB P1.3,MINCHGLJMP DLY8T_SETSC:LJMP R_SETTIMDLY1:LCALL DLY20MJB P1.2
9、,MINCHGDLY2: LCALL D_II_PLAYJNB P1.2,DLY2CLR EAMOV R0,#53HLCALL ADD_1MOV A,R3CLR CCJNE A,#60H,ADD_MADD_M:JC MINCHGACALL CLR_HAJMP MINCHGDLY3:LCALL DLY20MJB P1.0,MINCHGDLY4:LCALL D_II_PLAYJNB P1.0,DLY4CLR EAMOV R0,#53HLCALL SUB_MLJMP MINCHGDLY5:LCALL DLY20M/秒表功能/時鐘轉換程序,按P1.1進行功能轉換JB P1.1,T_MLOOP1JNB
10、P1.1,$CPL 03HJNB 03H,DIS_SETMOV DISBEG,#60HMOV 60H,#00HMOV 61H,#00HMOV 62H,#00HMOV 63H,#00HMOV 64H,#00HMOV 65H,#00HMOV TL1,#0F0HMOV TH1,#0D8HSETB TR1SETB ET1T_MLOOP1:LJMP MLOOP1DIS_SET:MOV DISBEG,#70HCLR ET1CLR TR1T_MLOOP11:LJMP MLOOP1DLY6:LCALL DLY20M/秒表暫停/清零功能程序,按P1.2暫?;蚯辶?,JB P1.2,T_MLOOP11 P1.1退出
11、秒表,回到時鐘計時T_EST11:JNB P1.2,T_EST11CLR ET1CLR TR1T_EST22:JNB P1.1,DLY5JB P1.2,T_EST21LCALL DLY20MJB P1.2,T_EST22T_EST55:JNB P1.2,T_EST51MOV 60H,#00HMOV 61H,#00HMOV 62H,#00HMOV 63H,#00HMOV 64H,#00HMOV 65H,#00HT_EST33:JNB P1.1,DLY5JB P1.2,T_EST31LCALL DLY20MJB P1.2,T_EST33T_EST44:JNB P1.2,T_EST41SETB ET
12、1SETB TR1AJMP MLOOP1T_EST411:LCALL D_II_PLAY/以下為鍵等待釋放時顯示不會熄滅用 AJMP T_EST11T_EST21:LCALL D_II_PLAY AJMP T_EST22T_EST31:LCALL D_II_PLAY AJMP T_EST33T_EST41:LCALL D_II_PLAY AJMP T_EST44T_EST51:LCALL D_II_PLAY AJMP T_EST55INTT0:PUSH ACC/1S計時程序;T0中斷服務程序PUSH PSWCLR ET0CLR TR0MOV A,#0B7HADD A,TL0MOV TL0,AM
13、OV A,#3CHADDC A,TH0MOV TH0,ASETB TR0DJNZ R4,I_INT0A_DDS:MOV R4,#14HCPL 07HMOV R0,#71HACALL ADD_1MOV A,R3CLR CCJNE A,#60H,A_DDMA_DDM:JC I_INT0ACALL CLR_HMOV R0,#77HACALL ADD_1MOV A,R3CLR CCJNE A,#60H,A_DDHA_DDH:JC I_INT0ACALL CLR_HLCALL DLY20MSETB 08HMOV R0,#79HACALL ADD_1MOV A,R3CLR CCJNE A,#24H,RST
14、ARTRSTART:JC I_INT0ACALL CLR_HI_INT0:MOV 72H,76HMOV 73H,77HMOV 74H,78HMOV 75H,79HLCALL BELLPOP PSWPOP ACCSETB ET0RETIINTT1:PUSH ACC/閃動調(diào)試程序/秒表從能程序;T1中斷服務程序 PUSH PSW JB 03H,R_ADDS MOV TL1,#0B0H MOV TH1,#3CH DJNZ R2,I_INT1 MOV R2,#06H CPL 02H JB 02H,FLASH0 MOV 72H,76H MOV 73H,77H MOV 74H,78H MOV 75H,79
15、HI_INT1:POP PSW POP ACC RETIFLASH0:JB 01H,FLASH1 MOV 72H,7AH MOV 73H,7AH MOV 74H,78H MOV 75H,79H AJMP I_INT1FLASH1:MOV 72H,76H MOV 73H,77H MOV 74H,7AH MOV 75H,7AH AJMP I_INT1R_ADDS:CLR TR1 MOV A,#0F7H ADD A,TL1 MOV TL1,A MOV A,#0D8H ADDC A,TH1 MOV TH1,A SETB TR1 MOV R0,#61H ACALL ADD_1 CLR C MOV A,R
16、3 JZ R_ADDM AJMP I_INT01R_ADDM:ACALL CLR_H MOV R0,#63H ACALL ADD_1 MOV A,R3 CLR C CJNE A,#60H,R_ADDHR_ADDH:JC I_INT01 LCALL CLR_H MOV R0,#65H ACALL ADD_1I_INT01:POP PSW POP ACC RETIADD_1:MOV A,R0/加1子程序DEC R0SWAP AORL A,R0ADD A,#01HDA AMOV R3,AANL A,#0FHMOV R0,AMOV A,R3INC R0SWAP AANL A,#0FHMOV R0,AR
17、ETSUB_M:MOV A,R0/分減1子程序DEC R0SWAP AORL A,R0JZ SUB_M1DEC ASUB_M11:MOV R3,AANL A,#0FHCLR CSUBB A,#0AHSUB_M111:JC SUB_M110MOV R0,#09HSUB_M10:MOV A,R3INC R0SWAP AANL A,#0FHMOV R0,ARETSUB_M1:MOV A,#59HAJMP SUB_M11SUB_M110:MOV A,R3SUB_H:MOV A,R0/時減1子程序DEC R0SWAP AORL A,R0JZ SUB_H1DEC ASUB_H11:MOV R3,AANL
18、A,#0FHCLR CSUBB A,#0AHSUB_H111:JC SUB_H110MOV R0,#09HSUB_H10:MOV A,R3INC R0SWAP AANL A,#0FHMOV R0,ARETSUB_H1:MOV A,#23HAJMP SUB_H11SUB_H110:MOV A,R3CLR_H:CLR A/清零程序;對即使單元復零用MOV R0,ADEC R0MOV R0,ARETR_SETTIM:CLR ET0/時鐘時間調(diào)整程序CLR TR0LCALL DL_LOOPSLCALL DLY20MJB P1.0,SLEEPMOV R2,#06HMOV 70H,#00HMOV 71H,
19、#00HSETB ET1SETB TR1SET_2:JNB P1.0,SET_1SETB 00HSET_4:JB P1.0,SET_3LCALL DL05SLCALL DLY20MJNB P1.0,R_SETHHMOV R0,#77HLCALL ADD_1MOV A,R3CLR CCJNE A,#60H,SET_LOOPSET_LOOP:JC SET_4LCALL CLR_HCLR CAJMP SET_4SLEEP:SETB ET0SETB TR0SET_LOOP1:JB P1.0,SET_LOOP1LCALL DLY20MJB P1.0,SET_LOOP1SET_LOOP2:JNB P1.0
20、,SET_LOOP2LJMP MLOOP1R_SETHH:CLR 00HSETB 01HSET_LOOP3:JNB P1.0,SET_5SET_6:JB P1.0,SET_7LCALL DL05SLCALL DLY20MJNB P1.0,STOPMOV R0,#79HLCALL ADD_1MOV A,R3CLR CCJNE A,#24H,C_YHHC_YHH:JC SET_6LCALL CLR_HAJMP SET_6STOP:JNB P1.0,STOP1LCALL DLY20MJNB P1.0,STOPCLR 01HCLR 00HCLR 02HCLR TR1CLR ET1SETB TR0SET
21、B ET0LJMP MLOOP1SET_1:LCALL D_II_PLAYAJMP SET_2SET_3:LCALL D_II_PLAYJNB P1.1,DLY7AJMP SET_4SET_5:LCALL D_II_PLAYAJMP SET_LOOP3SET_7:LCALL D_II_PLAYJNB P1.1,DLY7BAJMP SET_6STOP1:LCALL D_II_PLAYAJMP STOPDLY7:LCALL DLY20M/分減1程序JB P1.1,SET_41DLY7_M:JNB P1.1,DLY7_MMOV R0,#77HLCALL SUB_MLJMP SET_4SET_41:L
22、JMP SET_4DLY7B:LCALL DLY20M/時減1程序JB P1.1,SET_61DLY7_H:JNB P1.1,DLY7_HMOV R0,#79HLCALL SUB_HLJMP SET_6SET_61:LJMP SET_6D_II_PLAY:MOV R1,DISBEG/顯示程序MOV R5,#0FEHPLAY:MOV A,R5MOV P2,AMOV A,R1MOV DPTR,#TABMOVC A,A+DPTRMOV P0,AMOV A,R5JB ACC.2,D_LOOPCLR P0.7D_LOOP:JB ACC.4,D_LOOP1CLR P0.7D_LOOP1:LCALL DLY
23、1MINC R1MOV A,R5JNB ACC.5,CLOSERL AMOV R5,AMOV P0,#0FFHAJMP PLAYCLOSE:MOV P2,#0FFHMOV P0,#0FFHRETSD_II_PLAY:MOV R1,DISBEG/上電顯示子程序MOV R5,#0FEHI_PLAY:MOV A,R5MOV P2,AMOV A,R1MOV DPTR,#I_TABMOVC A,A+DPTRMOV P0,AMOV A,R5LCALL DLY1MINC R1MOV A,R5JNB ACC.5,CLOSESRL AMOV R5,AAJMP I_PLAYCLOSES:MOV P2,#0FFHM
24、OV P0,#0FFHRETDLY8:LCALL D_II_PLAY/鬧鈴時間設定程序中的時調(diào)整程序JNB P1.3,DLY8MOV 50H,#0AHMOV 51H,#0CHR_BTIM:SETB EALCALL D_II_PLAYJNB P1.2,DLY12JNB P1.0,DLY14JNB P1.3,DLY9JNB P1.1,DLY10AJMP R_BTIMDLY9:LCALL DLY20MJB P1.3,R_BTIMDLY8M:LCALL D_II_PLAYJNB P1.3,DLY8MMOV DISBEG,#70HLJMP MLOOP1DLY10:LCALL DLY20MJB P1.1,
25、R_BTIMDLY11:LCALL D_II_PLAYJNB P1.1,DLY11CPL 05HJNB 05H,R_BTIM11MOV 50H,#00HAJMP R_BTIMR_BTIM11:MOV 50H,#0AHAJMP R_BTIMDLY12:LCALL DLY20MJB P1.2,R_BTIMDLY13:LCALL D_II_PLAYJNB P1.2,DLY13CLR EAMOV R0,#55HLCALL ADD_1MOV A,R3CLR CCJNE A,#24H,A_DDH33NA_DDH33N:JC R_BTIMACALL CLR_HAJMP R_BTIMDLY14:LCALL D
26、LY20MJB P1.0,R_BTIMDLY15:LCALL D_II_PLAYJNB P1.0,DLY15CLR EAMOV R0,#55HLCALL SUB_HLJMP R_BTIMBELL:JNB 05H,BBELL/鬧鈴判斷子程序MOV A,79HCJNE A,55H,BBELLMOV A,78HCLR CBELL_1:CJNE A,54H,BBELLMOV A,77HCLR CCJNE A,53H,BBELLMOV A,76HCLR CBELL_2:CJNE A,52H,BBELLJNB 07H,BBELLCLR CALBRETBBELL:SETB CALBRETEND小結為期兩周的
27、單片機數(shù)字鐘課程設計結束了,在這兩周里我和我的組員們運用單片機的知識完成了簡易數(shù)字鐘電路的設計,這使我對單片機這門課程有了更深一步的了解。當我知道我要做數(shù)字鐘這個課題時,起初感覺還是很有難度的,很怕自己做不好或者是做不出來。在這兩周的時間里,我去圖書館查閱大量資料,每當遇到不懂的問題或者困難時,我都會虛心向田老師請教。就在這種不懈的努力下,我和我的組員終于完成了簡易數(shù)字鐘的單片機課程設計。我們小組采用了單片機匯編語言完成了具有計時功能、秒表功能、整點報時功能以及分時調(diào)整功能的單片機簡易數(shù)字鐘課程設計.該設計的可靠性高,成本低,易操作,通用性強,通過鍵盤可以進行定時、校時??傊?,進一步加深了我對單片機這門學科的了解,充分鍛煉了我的個人能力,并培養(yǎng)了我的團隊配合能力。本次課程設計讓我體會到了只有付出才會有收獲,只有平日認真的學習,在關鍵的時刻才不會捉襟見肘,應用時的捉襟見肘讓我認識到了自己學習知識基礎上的不足,每一門專業(yè)基礎課都是我們手中不可替代的武器,只有把他們有機聯(lián)系起來才有可能實現(xiàn)一個完整的系統(tǒng)。致謝在這為期兩周的單片機課程設
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 化工用地租賃合同
- 國際空運運輸代理合同
- 裝潢施工方案
- 設備高溫防護施工方案
- 2025年碾磨谷物及谷物加工品合作協(xié)議書
- 荔枝水泥地板硬化施工方案
- 咸陽百葉聲屏障施工方案
- 鞍山海城初三數(shù)學試卷
- 四川活動板房框架施工方案
- 江門空調(diào)維修改造施工方案
- 中車招聘在線測評題
- 教學設計初中勞動教育創(chuàng)意設計的教學設計
- 2024年事業(yè)單位考試(綜合管理類A類)職業(yè)能力傾向測驗試卷及答案指導
- 山東省2024年中考數(shù)學試卷八套合卷【附答案】
- 血液透析護理質控
- 人工智能訓練師理論知識考核要素細目表四級
- 幼兒園大班韻律《朱迪警官破案記》課件
- DL∕T 253-2012 直流接地極接地電阻、地電位分布、跨步電壓和分流的測量方法
- (正式版)YS∕T 5040-2024 有色金屬礦山工程項目可行性研究報告編制標準
- GB/T 36548-2024電化學儲能電站接入電網(wǎng)測試規(guī)程
- NB-T35020-2013水電水利工程液壓啟閉機設計規(guī)范
評論
0/150
提交評論