




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、51單片機做數(shù)字電子鐘懸賞分:10 -解決時間:2009-7-5 17:42設計一個數(shù)字電子鐘,要求可以進行時、分、秒顯示,最大顯示時間為23:59:59 ,并且可以通過按鍵進行時、分調(diào)整。畫出硬件連接電路圖,說明各個控制信號的作用。畫出程序流程圖,編寫程序,硬件連接調(diào)試,直至正確。編寫課程設計報告。3、給定條件在Dais-52PH+單片機實驗箱中,有一片 8155芯片用于擴展3X3鍵盤,還具有 6位LED 數(shù)碼顯示器,可分別用于按鍵和顯示控制。在PC機上調(diào)試可使用 MCS5傷真開發(fā)系統(tǒng)。數(shù)字電子鐘的工彳過程為:從00:00:00 (時:分:秒)開始計時,以24小時為一循環(huán),最大計時時間為23
2、:59:59。當需要校正時間時,按下調(diào)整鍵,小時的十位閃爍,等待鍵入 新值,若需調(diào)整則按下加 1按鍵,數(shù)值以秒為單位自動加1,當十位調(diào)整好后,按下確認鍵確認,然后小時的個位閃爍,等待鍵入新值,按照十位的調(diào)整步驟調(diào)整時間,并按下確認鍵確認,當確認后,分鐘的十位開始閃爍,等待鍵入新值,分鐘的十位和個位調(diào)整過程與小時調(diào)整一樣,只是當分的個位調(diào)整好后,按下確認鍵即啟動計時。數(shù)字電子鐘是以1s為最小定時單位的,51單片機自身具有兩個 16位定時/計數(shù)器,當晶振 頻率為6MHz時,最大定日時間為 0.13s。而具有時、分和秒的數(shù)字電子鐘只能以1s定時,所以要實現(xiàn)實現(xiàn)1s定時,必須采用軟件計數(shù)和定時器定時相
3、結合的方法。每1s定時到,修改顯示值,送6位LED顯示。本課題需用6個LED數(shù)碼管顯示時間值,并且需調(diào)整鍵、加 1鍵、確認鍵等控制鍵。在 Dais-52PH+單片機實驗箱中,6位LED數(shù)碼顯示器的字形口地址為0FFDCH字位口地址為0FFDDH字形表和字位表見附錄一??赏ㄟ^8155可編程接口芯片驅動的 3X3鍵盤實現(xiàn)按鍵控制(具體電路參考課題一數(shù)字秒表)。8155的PC0- PC2為3X3鍵盤的行掃線,PB0- PB2為3X3鍵盤的列掃線,鍵盤工作過程為:單片機從8155的PB0- PB2送出全零,并從PC PC2讀入數(shù)據(jù),當PC0- PC身000時,表明有鍵按下,則逐行從PB0- PB2送出
4、零,再從PC PC2口讀入,最終確定按鍵位置和鍵值,此后,轉入相應的按鍵處理程序,修改顯示緩沖區(qū) 內(nèi)容。提問者: wangalong211 - 一 級最佳答案源程序如下:ORG 0000H;程序開始入口LJMP STARTORG 0003H;外中斷0中斷程序入口RETIORG 000BH;定時器T0中斷程序入口LJMP INTT0 ;跳至 INTTO執(zhí)行外中斷1中斷程序入口定時器T1中斷程序入口串行中斷程序入口地址給R0,清70-7FH顯示內(nèi)存;0給R0中的數(shù)為地址的內(nèi)存中存放默認時間為12:00,鬧鐘5:00防止上電時數(shù)碼管顯示 00小時中斷退出時66H為1時,分、時計時上電默認鬧鐘開狀態(tài)鬧
5、鐘時十位ORG 0013H;RETIORG001BH;LJMP INTT1ORG0023H;RETI; 主程序START:MOV R0,#70H;70MOV R7,#0FHCLEARDISP:MOV R0,#00H(70H)INC R0DJNZR7,CLEARDISPMOV78H,#2;MOV79H,#1MOV74H,#2;MOV75H,#1MOV66H,#1;單元數(shù)據(jù)移入顯存標志MOV68H,#1;MOV7DH,#6;MOV 69H,#0MOV 7AH,#0AH ;MOV TMOD,#11H;MOV TL0,#0B0H;50MsMOV TH0,#3CHSETB EA;SETB ET0;SET
6、B TR0;T0MOV R4,#14H;1START1:LCALL DISPLAY ;LCALL BEEP;JNB P1.7,SETTIME ;P1.7JMP START1 ;P1.7; 時間鬧鐘調(diào)整系統(tǒng)NFLAG:MOV A,68H;CJNE A,#1,BEE68MOV68H,#0JMPE6BEE68:MOV 68H,#1E6:MOV 66H,#8;放入熄滅符數(shù)據(jù)設T0、T1為16位定時器定時初值(T0計時用)總中斷開放允許T0中斷定時器開始計時秒定時用初值(50MS 20)顯示子程序鬧鐘查詢口為0時轉時間調(diào)整程序口為1時跳回START1;設置鬧鐘開關狀態(tài)中斷退出66H不為1時分、時計時單元
7、數(shù)據(jù)移入顯存標志MOV72H,7BHMOV73H,7CHMOV74H,7DHMOV75H,7EHLCALLDDLLCALLDDLMOV72H,68HMOV73H,69HMOV74H,7AHMOV75H,7AHLCALLDDLLCALLDDLMOV66H,#1LJMPSTART1SETTIME:LCALL DDLJB P1.7,NFLAG ;鍵按下時間小于 1秒,設置鬧鐘開關狀態(tài)并查看鬧鐘時間,不關走時,確保準確,大于1秒調(diào)時閃爍定時初值進入調(diào)時狀態(tài),賦閃爍定時初值調(diào)鬧鐘時保持走時,關閉時鐘顯示數(shù)MOVTL1,#0B0H;T1MOVTH1,#3CHMOVR2,#06H;MOV66H,#8;SET
8、BET15允許T1中斷SETB TR1 ;SET1:LCALL DISPLAY ;JNB P1.7,SET1;P1.7MOVR5,#00H;SETN1:INC R5 ;SET5:LCALL DISPLAYJB P1.7,SET5SEETN1:LCALL DDL;(0.5秒加1),小于1秒轉調(diào)時狀態(tài)JB P1.7,SET6;MOVR0,#7CHLCALL ADD1MOVA,R3CLR CCJNEA,#60H,HHN1HHN1:JC SEETN1LCALL CLR0JMP SEETN1SET6:INC R5 ;SEET6:LCALL DISPLAY開啟定時器T1調(diào)用顯示,防止鍵按下無顯示口為。等待
9、鍵釋放清設置類型閃爍標志鬧鐘分調(diào)整有鍵按下大于1秒分時間連續(xù)加鍵釋放查詢,鍵釋放自動轉調(diào)時鬧鐘時調(diào)整JB P1.7,SEET6SEETNH1:LCALLDDLJBP1.7,SETFMOVR0,#7EHLCALLADD1MOVA,R3CLRCCJNE A,#24H,HOUU1HOUU1:JC SEETNH1LCALL CLR0JMP SEETNH1SETF:LCALL DISPLAYJB P1.7,SETFLCALL DDL短按調(diào)時,長按退出JNBP1.7,SETOUTCLRET0CLRTR0設定后的時間從00秒開始走時MOV 70H,#00H;MOV 71H,#00HINC R5SET3:LC
10、ALL DISPLAYJBP1.7,SET3SETMM:LCALLDDLJB P1.7,SET4MOVR0,#77HLCALL ADD1MOVA,R3CLRCCJNEA,#60H,MMHMMH:JC SETMMLCALL CLR0AJMP SETMMSET4:INC R5SEET4:LCALL DISPLAYJB P1.7,SEET4SETHH:LCALL DDLJBP1.7,SETOUT1MOVR0,#79HLCALLADD1MOVA,R3CLRCCJNE A,#24H,HOUUHOUU:JCSETHH計時開始清設置類型閃爍標志關閉T1關T1中斷5打包LCALL CLR0AJMP SETHH
11、SETOUT1:SETB ET0SETB TR0 ;SETOUT:MOV R5,#00H;CLR TR1;CLR ET1;MOV66H,#1SETOUT2:LCALLDISPLAYJNBP1.7,SETOUT2LJMPSTART1 延時1秒鐘-DDL:MOV 18H,#36DDL0:MOV 17H,#239DDL1:LCALL DISPLAYDJNZ17H,DDL1DJNZ18H,DDL0RETT0中斷程序INTT0: PUSH ACC;PUSH PSWCLR ET0CLR TR0MOV A,#0B7HADD A,TL0MOV TL0,AMOV A,#3CHADDC A,TH0MOV TH0,
12、ASETB TR0DJNZ R4, OUTT0 ;20ADDSS: MOV R4,#14H;20MOV R0,#71H;ACALLADD1;MOV A,R3;合)CLR C;CJNE A,#60H,ADDMMADDMM: JCOUTT01ACALL CLR0;MOV R0,#77H;次中斷未到中斷退出次中斷到(1秒)重賦初值指向秒計時單元(70-71H)調(diào)用加1程序(加1秒操作)秒數(shù)據(jù)放入A(R3為2位十進制數(shù)組清進位標志小于60秒退出等于或大于60秒清0指向分計時單元(76H-77H)ACALLADD1MOVA,R3SETB ET05開放T0CLR CCJNE A,#60H,ADDHHADD
13、HH: JC OUTT0ACALL CLR0MOV R0,#79HACALLADD1MOV A,R3CLR CCJNE A,#24H,HOURHOUR: JC OUTT0ACALL CLR0OUTT0: MOV A,66HCJNE A,#1,OUTT01MOV 72H,76H入對應顯示單元MOV 73H,77HMOV 74H,78HMOV 75H,79HOUTT01:POP PSWPOP ACC指向小時計時單元(78H-79H)查詢標志中斷退出時將分、時計時單元數(shù)據(jù)移出棧中斷返回RETI加1程序ADD1: MOVA,R0;取當前計時單元數(shù)據(jù)到ADECR0;指向前一地址SWAPA;A中數(shù)據(jù)高四位
14、與低四位交換ORLA,R0;前一地址中數(shù)據(jù)放入 A中低四位ADDA,#01H;A加1操作DAA;十進制調(diào)整MOVR3,A;移入R3寄存器ANLA,#0FH;高四位變0MOVR0,A;放回前一地址單元MOVA,R3;取回R3中暫存數(shù)據(jù)INCR0;指向當前地址單元SWAPA;A中數(shù)據(jù)高四位與低四位交換ANLA,#0FH;高四位變0MOVR0,A;數(shù)據(jù)放入當削地址單元中RETCLR0: CLRCCLRA;清累加器MOVR0,A;清當前地址單元DECR0;指向前一地址MOV R0,A;前一地址單元清0RET;; 調(diào)時閃爍程序INTT1:PUSH ACCPUSH PSWMOV TL1,#0B0HMOV
15、TH1,#3CHDJNZ R2,INTT1OUT;0.36次)MOV R2,#06H;CPL 02H;0.3JB 02H,FLASH1 ;02HMOV A,R5CJNE A,#01H,NLJMP NNN1NL:CJNE A,#02H,NL1LJMP NNN1NL1:CJNE A,#03H,NL2LJMP NLLNL2:CJNE A,#04H,INTT1OUT子程序返回;秒未到退出中斷(50MS中斷重裝0.3秒定時用初值秒定時到對閃爍標志取反位為1時顯示單元熄滅LJMP NLLNLL:MOV 72H,76HMOV 73H,77HMOV 74H,78HMOV 75H,79HAJMP INTT1OU
16、TNNN1:MOV 72H,7BHMOV 73H,7CHMOV 74H,7DHMOV 75H,7EHINTT1OUT:POP PSW;恢復現(xiàn)場POP ACCRETI;中斷退出FLASH1:MOV A,R5CJNE A,#01H,MLLJMP MNN1ML:CJNE A,#02H,ML1LJMP MNN2ML1:CJNE A,#03H,MNLJMP MLLMN:CJNE A,#04H,INTT1OUTLJMP MHLMLL:MOV 72H,7AHMOV 73H,7AH 據(jù)MOV 74H,78HMOV 75H,79HAJMP INTT1OUTMHL:MOV 72H,76HMOV 73H,77HMO
17、V 74H,7AH 顯示MOV 75H,7AHAJMP INTT1OUTMNN1:MOV 72H,7AHMOV 73H,7AH 分數(shù)據(jù)MOV 74H,7DHMOV 75H,7EHAJMP INTT1OUTMNN2:MOV 72H,7BHMOV 73H,7CHMOV 74H,7AHMOV 75H,7AH顯示單元(72-73H),將不顯示分數(shù)顯示單元(74-75H),小時數(shù)據(jù)將不顯示單元(72-73H),將不顯示鬧鐘顯示單元(74-75H),鬧鐘小時數(shù)據(jù)將不顯示AJMP INTT1OUT 顯示DISPLAY:MOV DPTR,#DISDATAMOV A,70HMOVC A,A+DPTRMOV P3
18、,ACLR P1.0NOPNOPNOPSETB P1.0MOV A,71HMOVC A,A+DPTRMOV P3,ACLR P1.1NOPNOPNOPSETB P1.1MOV A,72HMOVC A,A+DPTRMOV P3,ACLR P1.2NOPNOPNOPSETB P1.2MOV A,73HMOVC A,A+DPTRMOV P3,ACLR P1.3NOPNOPNOPSETB P1.3MOV A,74HMOVC A,A+DPTRMOV P3,ACLR P1.4NOPNOPNOPSETB P1.4MOV A,75HMOVC A,A+DPTRMOV P3,ACLR P1.5NOPNOPNOPSETB P1.5RETBEEP:MOV A,68HCJNE A,#1,BEEREMOV A,78H;CJNE A,7DH,BEEREMOV A,79H;CJNE A,7EH,B
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 7037-2025載重汽車翻新輪胎
- 公司房屋裝修合同正式合同范本
- 全新人身意外傷害保險合同范本
- 外幣貸款合同書標準格式
- 有關終止合作合同的通知書
- Module 3 unit 3 language in use教學設計2024-2025學年外研版八年級英語上冊
- 杭州市房地產(chǎn)買賣居間合同
- 酒店股份轉讓合同
- 企業(yè)與個人投資合作合同范本
- 拆遷項目舊房拆除合同書模板
- 建函201521號 廣鐵集團建管處關于發(fā)布《鄰近營業(yè)線施工物理隔離防護辦法》的通知
- 寫作必備制造懸念的145個方法
- 一年級下冊勞動教案
- 付款申請英文模板
- 大同大學綜測細則
- 生活會前談心談話提綱
- 比較思想政治教育(第二版)第十二章課件
- 普通外科常見疾病臨床路徑
- 人教版九年級下冊初中英語全冊作業(yè)設計一課一練(課時練)
- 2021新版GJB9001C-2017體系文件內(nèi)審檢查表
- 風篩式清選機的使用與維護
評論
0/150
提交評論