單片機課堂展示 基于AT89C51單片機的數(shù)字時鐘設(shè)計_第1頁
單片機課堂展示 基于AT89C51單片機的數(shù)字時鐘設(shè)計_第2頁
單片機課堂展示 基于AT89C51單片機的數(shù)字時鐘設(shè)計_第3頁
單片機課堂展示 基于AT89C51單片機的數(shù)字時鐘設(shè)計_第4頁
單片機課堂展示 基于AT89C51單片機的數(shù)字時鐘設(shè)計_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、基于AT89C51單片機的數(shù)字(shz)時鐘設(shè)計小組(xioz)成員:共二十四頁設(shè)計簡介一設(shè)計背景二AT89C51單片機簡介 三設(shè)計方案四硬件電路設(shè)計五軟件設(shè)計與程序代碼 六主要內(nèi)容共二十四頁一、設(shè)計簡介本設(shè)計利用Atmel公司的AT89C51單片機對電子時鐘進行開發(fā),設(shè)計了實現(xiàn)所需功能的硬件電路,應(yīng)用匯編進行軟件編程,并用Proteus軟件進行仿真演示、驗證。主要介紹用單片機內(nèi)部的定時/計數(shù)器來實現(xiàn)電子時鐘的方法,本設(shè)計由單片機80C51芯片和LED數(shù)碼管為核心,輔以必要的電路,構(gòu)成了一個單片機的數(shù)字電子時鐘。它的計時周期為24小時,顯滿刻度為“23時59分59秒”,且配有3個獨立鍵盤,可以

2、靈活地調(diào)節(jié)時間,并具有一定的擴展性。 共二十四頁二、設(shè)計背景十一世紀(jì)的今天,最具代表性的計時產(chǎn)品就是電子萬年歷,它是近代世界鐘表業(yè)界的第三次革命。第一次是擺和擺輪游絲的發(fā)明,相對穩(wěn)定的機械振蕩頻率源使鐘表的走時差從分級縮小到秒級,代表性的產(chǎn)品就是帶有擺或擺輪游絲的機械鐘或表。第二次革命是石英晶體振蕩器的應(yīng)用,發(fā)明了走時精度更高的石英電子鐘表,使鐘表的走時月差從分級縮小到秒級。第三次革命就是單片機數(shù)碼計時技術(shù)的應(yīng)用(電子萬年歷),使計時產(chǎn)品的走時日差從分級縮小到1/600萬秒,從原有傳統(tǒng)指針計時的方式發(fā)展為人們?nèi)粘8鼮槭煜さ囊构鈹?shù)字顯示方式,直觀明了,并增加了全自動日期、星期、溫度以及其他日常附

3、屬信息的顯示功能,它更符合消費者的生活需求!共二十四頁四、設(shè)計方案1、主程序主程序執(zhí)行流程圖如圖1所示。主程序先對顯示單元和定時器計數(shù)器初始化,然后重復(fù)調(diào)用數(shù)碼管顯示模塊和按鍵處理模塊,當(dāng)有建按下,則轉(zhuǎn)入相應(yīng)的功能程序。 共二十四頁共二十四頁四、設(shè)計方案2、數(shù)碼管顯示模塊 本設(shè)計的顯示模塊采用6位一體共陽極數(shù)碼管,顯示分為時鐘顯示模式,從右到左依次顯示秒個位,秒十位,分個位,分十位,時個位,時十位;數(shù)碼管顯示的信息用6個內(nèi)存單元存放,這6個內(nèi)存單元為顯示緩沖區(qū),其中秒個位和秒十位,分個位和分十位,時個位和時十位分別由秒數(shù)據(jù),分數(shù)據(jù)和小時數(shù)據(jù)分拆得到。共二十四頁四、設(shè)計方案3、定時器計數(shù)器T0中

4、斷服務(wù)程序 定時器計數(shù)器T0用于時間計時,選擇方式1,重復(fù)定時,定時時間設(shè)為20MS,定時時間到則溢出中斷,計50次則對秒單元加1,秒單元加到60則對分單元加1,同時秒單元清零。分單元加到60的時候,則對時單元加1,同時分單元清零,時單元加到24的時候則對時單元清零,標(biāo)志一天時間計滿,此時所以單元清零。在對各單元計數(shù)的同時,把它們的值放到存儲器單元的制定位置 共二十四頁四、設(shè)計方案4、按鍵處理模塊 按鍵處理設(shè)置為:如果沒有按鍵,則為時鐘模式,時鐘正常走時.按鍵KEY1為工作模式鍵,用于時鐘顯示或調(diào)秒、調(diào)分、調(diào)時的功能切換選擇。R3寄存器記錄KEY1按鍵的次數(shù),R3=0,顯示時鐘;R3=1,調(diào)秒

5、;R3=2,調(diào)分;R3=3,調(diào)時。按鍵KEY2為增1鍵,對選定的被調(diào)項的當(dāng)前值增1;按鍵KEY3為減1鍵,對選定的被調(diào)項的當(dāng)前值減1共二十四頁五、硬件電路設(shè)計共二十四頁六、軟件設(shè)計與程序代碼 1、軟件選擇與介紹 Proteus7.8是一款電路分析實物仿真系統(tǒng),可仿真各種電路和IC,并支持單片機,元件庫齊全,使用方便,是不可多得的專業(yè)的單片機軟件仿真系統(tǒng) 。共二十四頁六、軟件設(shè)計與程序代碼 2、軟件仿真電路全圖 1.模式(msh)0顯示(xinsh)時鐘共二十四頁2.模式(msh)1第1次按KEY1鍵選擇(xunz)調(diào)秒共二十四頁3.模式(msh)2第2次按KEY1鍵選擇(xunz)調(diào)分共二十四

6、頁4.模式(msh)3第3次按KEY1鍵選擇(xunz)調(diào)時共二十四頁六、軟件設(shè)計與程序代碼 3、程序代碼KEY1 BIT P1.0KEY2 BIT P1.1KEY3 BIT P1.2CLK BIT P1.3LOAD BIT P1.4DIN BIT P1.5SECOND DATA 30HMINUTE DATA 31HHOUR DATA 32H ORG 0000H AJMP MAIN ORG 000BH AJMP TIMER0MAIN:MOV SP,#60H MOV TMOD,#01H;定時器T0方式(fngsh)設(shè)置 MOV TH0,#0B1H;定時器T0裝入初值20ms MOV TL0,#0

7、E0H SETB ET0;T0中斷允許(ynx) SETB EA;總中斷允許 MOV R2,#50;T0中斷為1s SETB TR0;啟動T0 MOV SECOND,#00H MOV MINUTE,#00H MOV HOUR,#08H ;初始化時間8點00分00秒 MOV A,HOUR時間值送顯示緩沖區(qū)79H7EH ANL A,#0F0H SWAP A MOV 79H,A共二十四頁 MOV A,HOUR ANL A,#0FH MOV 7AH,A MOV A,MINUTE ANL A,#0F0H SWAP A MOV 7BH,A MOV A,MINUTE ANL A,#0FH MOV 7CH,A

8、 MOV A,SECOND ANL A,#0F0H SWAP A MOV 7DH,A MOV A,SECOND ANL A,#0FH MOV 7EH,A MOV R3,#00H;R3初值設(shè)為0,顯示(xinsh)時鐘 ACALL INI7219;調(diào)用7219初始化子程序I NI7219:MOV 50H,#0FH;顯示測試寄存器設(shè)置(shzh) MOV 51H,#00H;非測試模式,正常顯示MOV R0,#50HACALL SEND7219MOV 50H,#0CH;關(guān)閉顯示寄存器MOV 51H,#01H;正常顯示MOV R0,#50HACALL SEND7219MOV 50H,#0BH;掃描界限

9、寄存器MOV 51H,#05H;6位顯示MOV R0,#50HACALL SEND7219MOV 50H,#0AH;亮度寄存器,其值為000EH,設(shè)置為0AH共二十四頁 MOV 51H,#09HMOV R0,#50HACALL SEND7219MOV 50H,#09H;譯碼方式(fngsh)寄存器MOV 51H,#0FFH;8位顯示全部B譯碼MOV R0,#50HACALL SEND7219RETDISPLAY:MOV 50H,#01H;顯示子程序 MOV 51H,79H;顯示緩沖區(qū)設(shè)在79H7EH單元MOV R0,#50H;其內(nèi)容從左至右一次顯示在數(shù)碼管顯示器上ACALL SEND7219M

10、OV 50H,#02HMOV 51H,7AH MOV R0,#50HACALL SEND7219MOV 50H,#03HMOV 51H,7BHMOV R0,#50HACALL SEND7219MOV 50H,#04HMOV 51H,7CHMOV R0,#50HACALL SEND7219MOV 50H,#05HMOV 51H,7DHMOV R0,#50HACALL SEND7219MOV 50H,#06HMOV 51H,7EHMOV R0,#50HACALL SEND7219RET共二十四頁SEND7219:CLR LOAD;向7219寫入數(shù)據(jù)子程序 MOV R4,#02H;寫入16位串行數(shù)據(jù)

11、CLR CLOP1: MOV R1,#08H MOV A,R0LOP2: RLC A MOV DIN,C SETB CLK CLR CLK DJNZ R1,LOP2 INC R0 DJNZ R4,LOP1 SETB LOAD RET;鍵掃描處理(chl)子程序KEY: JNB KEY1,KK1;判斷KEY1鍵是否按下 JB KEY1,$;等待KEY1鍵是否釋放INC R3;模式(msh)值增1 ,在0、1、2、3間逐項切換 CJNE R3,#04H,JMPKK3;當(dāng)讓中的模式值為4時,在設(shè)置為0 MOV R3,#00HJMPKK3:AJMP KK3;轉(zhuǎn)至KK3,按R3內(nèi)容選擇顯示KK1:JNB

12、 KEY2,KK2;判斷KEY2鍵是否按下 JB KEY2,$;等待KEY2鍵釋放MOV A,R3;根據(jù)當(dāng)前R3值對時間項增1調(diào)整RL AMOV DPTR,#KJMP1JMP A+DPTRKJMP1: AJMP DISCLK AJMP SINC AJMP MINC AJMP HINC共二十四頁SINC: MOV A,SECOND;秒增1 ADD A,#01H DA A MOV SECOND,A CJNE A,#60H,DISS1 MOV 30H,#01HDISS1:AJMP DISS;轉(zhuǎn)至秒顯示(xinsh)緩沖區(qū)設(shè)置MINC:MOV A,MINUTE;分增1 ADD A,#01H DA A

13、MOV MINUTE,A CJNE A,#60H,DISM1 MOV MINUTE,#00HDISM1:AJMP DISM;轉(zhuǎn)至分顯示緩沖區(qū)設(shè)置HINC: MOV A,HOUR;時增1 ADD A,#01H DA A MOV HOUR,A CJNE A,#24H,DISH1 MOV HOUR,#00HDISH1:AJMP DISH;轉(zhuǎn)至?xí)r顯示緩沖區(qū)設(shè)置KK2:JNB KEY3,KK3;判斷KEY3是否按下 JB KEY3,$;等待(dngdi)KEY3鍵釋放MOV A,R3RL AMOV DPTR,#KJMP2JMP A+DPTRKJMP2:AJMP DISCLK AJMP SDEC AJMP

14、 MDEC AJMP HDECSDEC:MOV A,#9AH;秒減1 CLR C SUBB A,#01H ADD A,SECOND DA A共二十四頁MOV SECOND,A CJNE A,#00H,DISS2 MOV SECOND,#59HDISS2:AJMP DISS;轉(zhuǎn)至秒顯示(xinsh)緩沖區(qū)設(shè)置MDEC:MOV A,#9AH;分減1 CLR C SUBB A,#01H ADD A,MINUTE DA A MOV MINUTE,A CJNE A,#0,DISM2 MOV MINUTE,#59HDISM2:AJMP DISM;轉(zhuǎn)至分顯示緩沖區(qū)設(shè)置HDEC:MOV A,#9AH;時減1

15、CLR C SUBB A,#01H ADD A,HOUR DA A MOV HOUR,A CJNE A,#99H,DISH2 MOV HOUR,#23HDISH2:AJMP DISH;轉(zhuǎn)至?xí)r顯示緩沖區(qū)設(shè)置(shzh)KK3:MOV A,R3 RL AMOV DPTR,#KJMP3 JMP A+DPTRKJMP3:AJMP DISCLK ;R3=0顯示時鐘 AJMP DISS;R3=1顯示秒 AJMP DISM;R3=2顯示分 AJMP DISH;R3=3顯示時DISCLK:MOV R0,#79H MOV R1,#HOUR MOV R4,#03H共二十四頁CFLOOP:MOV A,R1 SWAP

16、 A ANL A,#0FH MOV R0,A INC R0 MOV A,R1 ANL A,#0FH MOV R0,A INC R0 DEC R1 DJNZ R4,CFLOOP SETB TR0 RETDISS:CLR TR0;顯示(xinsh)秒,時與分的數(shù)碼管不亮 MOV A,SECOND SWAP A ANL A,#0FH MOV 7DH,A MOV A,SECOND ANL A,#0FH MOV 7EH,A MOV 79H,#0FH MOV 7AH,#0FH MOV 7BH,#0FH MOV 7CH,#0FH AJMP KK5DISM:CLR TR0;顯示(xinsh)分,時與秒的數(shù)碼管

17、不亮 MOV A,MINUTE SWAP A ANL A,#0FH MOV 7BH,A MOV A,MINUTE ANL A,#0FH MOV 7CH,A MOV 79H,#0FH MOV 7AH,#0FH MOV 7DH,#0FH MOV 7EH,#0FH AJMP KK5共二十四頁DISH: CLR TR0;顯示時,分與秒的數(shù)碼管不亮 MOV A,HOUR SWAP A ANL A,#0FH MOV 79H,A MOV A,HOUR ANL A,#0FH MOV 7AH,A MOV 7BH,#0FH MOV 7CH,#0FH MOV 7DH,#0FH MOV 7EH,#0FHKK5:RET

18、;定時器T0中斷處理子程序TIMER0:PUSH ACC;保護現(xiàn)場 PUSH PSW MOV TH0,#0B1H;重裝定時常數(shù) MOV TL0,#0E0H DJNZ R2,NEXT;判斷是否中斷了50次,不足50次,中斷返回MOV R2,#50;若達到(d do)50次,計時滿1s,刷新時間單元格 MOV A,SECOND ADD A,#01H DA A MOV SECOND,A CJNE A,#60H,NEXTS1:MOV SECOND,#00H MOV A,MINUTEADD A,#01HDA AMOV MINUTE,ACJNE A,#60H,NEXTS2:MOV MINUTE,#00H MOV A,HOUR ADD A,#01H DA A MOV HOUR,A CJNE A,#24H,NEXT MOV HOUR,#00HNEXT:POP PSW;恢復(fù)(huf)現(xiàn)場 POP ACCRETI;中斷返回 END共二十四頁內(nèi)容摘要基于AT89C51單片機的數(shù)字時鐘設(shè)計。本設(shè)計利用At

溫馨提示

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

評論

0/150

提交評論