版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、10分平位 秒十位 秒個位+5V圖21采用89C205110分平位 秒十位 秒個位+5V圖21采用89C2051的六位時鐘電路例 2 數(shù)碼管時鐘電路的設(shè)計LED 數(shù)碼管時鐘電路采用 24 小時計時方式,時、分、秒用六位數(shù)碼管顯示。 采用AT89C2051單片機,可使用3V電池供電,使用一個按鍵開關(guān),可進入調(diào)時、 省電(不顯示 LED 數(shù)碼管)和正常顯示三種狀態(tài)。1 時鐘電路硬件的設(shè)計XTAI2XTAL1P3.2P3.3電路如上圖2 1,采用AT89C2051單片機最小化應(yīng)用設(shè)計,LED顯示采用動 態(tài)掃描方式實現(xiàn), P1 口輸出段碼數(shù)據(jù), P3.0P3.5 口作掃描輸出, P3.7 接按鈕 開關(guān)
2、。為了提供LED數(shù)碼管的驅(qū)動電流,用三極管9012作電源驅(qū)動輸出。為了 提高秒計時的精確性,采用 12MHz 晶振。2系統(tǒng)主要程序的設(shè)計(1)主程序本設(shè)計中計時采用定時器T0中斷完成,其余狀態(tài)循環(huán)調(diào)用顯示子程序,當(dāng)P3.7 端口開關(guān)按下時,轉(zhuǎn)入調(diào)時功能程序。其主程序執(zhí)行流程見圖 2-2。(2)顯示子程序數(shù)碼管顯示的數(shù)據(jù)存放在內(nèi)存單元 70H75H 中,其中 70H71H 存放秒數(shù) 據(jù),72H73H存放分?jǐn)?shù)據(jù),74H75H存放時數(shù)據(jù),每一地址單元內(nèi)均為十進制 BCD碼。由于采用軟件動態(tài)掃描實現(xiàn)數(shù)據(jù)顯示功能,顯示用十進制BCD碼數(shù)據(jù)的對應(yīng)段碼存放在 ROM 表中,顯示時,先取出 70H75H 某一
3、地址中的數(shù)據(jù),然后 查得對應(yīng)的顯示用段碼從P1 口輸出,P3 口將對應(yīng)的數(shù)碼管選中,就能顯示該地 址單元的數(shù)據(jù)值。圖22主程序流程圖圖22主程序流程圖圖23 TO中斷服務(wù)程序(3)定時器TO中斷服務(wù)程序定時器TO用于時間計時。定時溢出中斷周期設(shè)為50ms,中斷累計20次(即 1秒)時對秒計數(shù)單元進行加1操作。時間計數(shù)單元地址分別在70H71H (秒)、 76H77H (分)、78H79H (時),7AH單元內(nèi)存放“熄滅符”數(shù)據(jù)(#OAH)。在 計數(shù)單元中采用十進制BCD碼計數(shù),滿60進位,TO中斷服務(wù)程序執(zhí)行流程見圖2-3。(4)T1中斷服務(wù)程序T1中斷服務(wù)程序用于指示調(diào)整單元數(shù)字的亮閃,在時
4、間調(diào)整狀態(tài)下,每過0.3 秒,將對應(yīng)單元的顯示數(shù)據(jù)換成“熄滅符”數(shù)據(jù)(#0AH)。這樣在調(diào)整時間時, 對應(yīng)調(diào)整單元的顯示數(shù)據(jù)會間隔閃亮。( 5)調(diào)時功能程序調(diào)時功能程序的設(shè)計方法是:按下按鍵,若按下時間小于1 秒,進入省電狀 態(tài)(數(shù)碼管不亮,時鐘不停),否則進入調(diào)分狀態(tài),等待操作。此時計時器停止 走動。當(dāng)再按下按鈕時,若按下時間小于0.5秒,則時間加1分,若按下時間大 于 0.5 秒,則進入小時調(diào)整狀態(tài)。在小時調(diào)整狀態(tài)下,當(dāng)按鍵按下的時間大于 0.5 秒時退出調(diào)整狀態(tài),時鐘繼續(xù)走動。以下是LED數(shù)碼管時鐘電路的完整源程序:AT89C2051 時鐘程序定時器TO、T1溢出周期為50MS, T0為
5、秒計數(shù)用,T1為調(diào)整時閃爍用, P3.7為調(diào)整按鈕,P1 口為字符輸出口,采用共陽顯示管。中斷入口程序ORG OOOOH;程序執(zhí)行開始地址LJMPSTART;跳到標(biāo)號START執(zhí)行ORG OOO3H;外中斷 O 中斷程序入口RETI;外中斷 O 中斷返回ORG OOOBH;定時器T0中斷程序入口LJMPINTTO;跳至 INTTO 執(zhí)行ORG OO13H;外中斷 1 中斷程序入口RETI;外中斷 1 中斷返回ORG OO1BH;定時器T1中斷程序入口LJMP INTT1 ;跳至 INTT1 執(zhí)行ORG 0023H ;串行中斷程序入口地址RETI ;串行中斷程序返回主程序START:MOVMOV
6、R0,#70HR7,#0BH;清70H-7AH共11個內(nèi)存單元9CLEARDISP:MOVR0,#00H9INCR09DJNZR7,CLEARDISP9MOV20H,#00H;清20H (標(biāo)志用)MOV7AH,#0AH;放入“熄滅符”數(shù)據(jù)MOVTMOD,#11H;設(shè) T0、T1 為 16 位定時器MOVTL0,#0B0H;50MS定時初值(TO計時用)MOVTH0,#3CH; 50MS 定時初值MOVTL1,#0B0H;50MS定時初值(T1閃爍定時用)MOVTH1,#3CH; 5OMS 定時初值SETBEA;總中斷開放SETBET0;允許 TO 中斷SETBTR0;開啟 TO 定時器MOVR
7、4,#14H;1秒定時用初值(50MSX20)START1:LCALLDISPLAY;調(diào)用顯示子程序JNBP3.7,SETMM1; P3.7 口為 O 時轉(zhuǎn)時間調(diào)整程序SJMPSTART1; P3.7 口為 1 時跳回 START1SETMM1:LJMP SETMM;轉(zhuǎn)到時間調(diào)整程序 SETMM1 秒計時程序;T0 中斷服務(wù)程序INTTO: PUSHACC;累加器入棧保護PUSHPSW;狀態(tài)字入棧保護CLRETO;關(guān)TO中斷允許CLRTRO;關(guān)閉定時器 TOMOVA,#OB7H;中斷響應(yīng)時間同步修正ADDA,TLO;低 8 位初值修正MOVTLO,A;重裝初值(低8 位修正值)MOVA,#3C
8、H;高 8 位初值修正ADDCA,THO9MOVTHO,A;重裝初值(高8 位修正值)SETBTRO;開啟定時器 TODJNZR4, OUTT0;20 次中斷未到中斷退出ADDSS: MOVR4,#14H;20 次中斷到(1 秒)重賦初值MOVR0,#71H;指向秒計時單元(71H-72H)ACALLADD1;調(diào)用加 1 程序(加 1 秒操作)MOVA,R3;秒數(shù)據(jù)放入A (R3為2位十進制數(shù)組合)CLRC;清進位標(biāo)志CJNEA,#60H,ADDMM9ADDMM: JCOUTT0;小于 60 秒時中斷退出ACALLCLR0;大于或等于 60 秒時對秒計時單元清 0MOVR0,#77H;指向分計
9、時單元(76H-77H)ACALLADD1;分計時單元加 1 分鐘MOVA,R3;分?jǐn)?shù)據(jù)放入 ACLRC;清進位標(biāo)志CJNEA,#60H,ADDHH9ADDHH: JCOUTT0;小于 60 分時中斷退出ACALLCLR0;大于或等于60 分時分計時單元清0MOVR0,#79H;指向小時計時單元(78H-79H)ACALLADD1;小時計時單元加 1 小時MOVA,R3;時數(shù)據(jù)放入ACLRC;清進位標(biāo)志CJNEA,#24H,HOUR9HOUR: JCOUTT0;小于 24 小時中斷退出ACALLCLR0;大于或等于24 小時小時計時單元清0OUTT0: MOV72H,76H;中斷退出時將分、時
10、計時單元數(shù)據(jù)移MOV73H,77H;入對應(yīng)顯示單元MOV74H,78H9MOV75H,79H9POPPSW;恢復(fù)狀態(tài)字(出棧)POPACC;恢復(fù)累加器SETBET0;開放 T0 中斷RETI;中斷返回閃動調(diào)時 程 序;T1 中斷服務(wù)程序,用作時間調(diào)整時調(diào)整單元閃爍指示INTT1:PUSHACC;中斷現(xiàn)場保護PUSHPSW;MOVTL1, #0B0H;裝定時器 T1 定時初值MOVTH1, #3CH9DJNZR2,INTT1OUT;0.3秒未到退出中斷(50MS中斷6次)MOVR2,#06H;重裝 0.3 秒定時用初值CPL02H;0.3 秒定時到對閃爍標(biāo)志取反JB02H,FLASH1;02H位
11、為1時顯示單元“熄滅”MOV72H,76H;02H位為0時正常顯示MOV73H,77H9MOV74H,78H9MOV75H,79H9INTT1OUT:POPPSW;恢復(fù)現(xiàn)場POPACC9RETI;中斷退出FLASH1:JB01H,FLASH2;01H位為1時,轉(zhuǎn)小時熄滅控制MOV72H,7AH;01H位為0時,“熄滅符”數(shù)據(jù)放入分MOV73H,7AH;顯示單兀(72H-73H),將不顯示分?jǐn)?shù)據(jù)MOV74H,78H9MOV75H,79H9AJMPINTT1OUT;轉(zhuǎn)中斷退出FLASH2:MOV72H,76H;01H位為1時,“熄滅符”數(shù)據(jù)放入小時MOV73H,77H;顯示單兀(74H-75H),
12、小時數(shù)據(jù)將不顯示MOV74H,7AH9MOV75H,7AH9AJMPINTT1OUT;轉(zhuǎn)中斷退出,; 加 1 子 程 序 ;ADD1: MOVA,R0;取當(dāng)前計時單兀數(shù)據(jù)到 ADECR0;指向前一地址SWAPA; A 中數(shù)據(jù)高四位與低四位交換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;指向當(dāng)前地址單兀SWAPA; A 中數(shù)據(jù)高四位與低四位交換ANLA,#0FH;高四位變 0MOVR0,A;
13、數(shù)據(jù)放入當(dāng)削地址單兀中RET;子程序返回清零程序;對計時單元復(fù)零用CLR0: CLR A ;清累加器MOVR0,A;清當(dāng)前地址單元DECR0;指向前一地址MOVR0,A;前一地址單元清 0RET;子程序返回時鐘調(diào)整程序;當(dāng)調(diào)時按鍵按下時進入此程序SETMM:cLRET0;關(guān)定時器TO中斷CLRTR0;關(guān)閉定時器TOLCALLDL1S;調(diào)用 1 秒延時程序JBP3.7,CLOSEDIS;鍵按下時間小于1 秒,關(guān)閉顯示(省電)MOVR2,#06H;進入調(diào)時狀態(tài),賦閃爍定時初值SETBET1;允許T1中斷SETBTR1;開啟定時器T1SET2:JNBP3.7,SET1;P3.7 口為0 (鍵未釋放)
14、,等待SETB00H;鍵釋放,分調(diào)整閃爍標(biāo)志置 1SET4:JBP3.7,SET3;等待鍵按下LCALLDL05S;有鍵按下,延時 0.5 秒JNBP3.7,SETHH;按下時間大于0.5秒轉(zhuǎn)調(diào)小時狀態(tài)MOVR0,#77H;按下時間小于0.5秒加1 分鐘操作LCALLADD1;調(diào)用加 1 子程序MOVA,R3;取調(diào)整單元數(shù)據(jù)CLRC;清進位標(biāo)志CJNEA,#60H,HHH;調(diào)整單元數(shù)據(jù)與 60 比較HHH:JCSET4;調(diào)整單元數(shù)據(jù)小于60 轉(zhuǎn) SET4 循環(huán)LCALLCLR0;調(diào)整單元數(shù)據(jù)大于或等于60時清0CLRC;清進位標(biāo)志AJMPSET4;跳轉(zhuǎn)到SET4循環(huán)CLOSEDIS:SETBE
15、T0;省電(LED不顯示)狀態(tài)。開TO中斷SETBTR0;開啟 T0 定時器(開時鐘)CLOSE:JBP3.7,CLOSE;無按鍵按下,等待。LCALLDISPLAY;有鍵按下,調(diào)顯示子程序延時削抖JBP3.7,CLOSE;是干擾返回 CLOSE 等待WAITH:JNBP3.7,WAITH;等待鍵釋放LJMPSTART1;返回主程序(LED數(shù)據(jù)顯示亮)SETHH:CLR00H;分閃爍標(biāo)志清除(進入調(diào)小時狀態(tài))SETHH1:JNBP3.7,SET5;等待鍵釋放SETB01H;小時調(diào)整標(biāo)志置 1SET6:JBP3.7,SET7;等待按鍵按下LCALLDL05S;有鍵按下延時 O.5 秒JNBP3.
16、7,SETOUT;按下時間大于0.5秒退出時間調(diào)整MOVR0,#79H;按下時間小于0.5秒加1小時操作LCALLADD1;調(diào)加 1 子程序MOVA,R39CLRC9CJNEA,#24H,HOUU;計時單元數(shù)據(jù)與24 比較HOUU: JCSET6;小于24 轉(zhuǎn) SET6 循環(huán)LCALLCLR0;大于或等于24 時清 0 操作AJMPSET6;跳轉(zhuǎn)到SET6循環(huán)SETOUT: JNBP3.7,SETOUT1;調(diào)時退出程序。等待鍵釋放LCALLDISPLAY;延時削抖JNBP3.7,SETOUT;是抖動,返回 SETOUT 再等待CLR01H;清調(diào)小時標(biāo)志CLR00H;清調(diào)分標(biāo)志CLR02H;清閃
17、爍標(biāo)志CLRTR1;關(guān)閉定時器 T1CLRET1;關(guān)定時器 T1 中斷SETBTR0;開啟定時器 T0SETBET0;開定時器T0中斷(計時開始)LJMPSTART1;跳回主程序SET1: LCALLDISPLAY;鍵釋放等待時調(diào)用顯示程序(調(diào)分)AJMPSET2;防止鍵按下時無時鐘顯示SET3: LCALLDISPLAY;等待調(diào)分按鍵時時鐘顯示用AJMPSET4SET5: LCALLDISPLAY;鍵釋放等待時調(diào)用顯示程序(調(diào)小時)AJMPSETHH1;防止鍵按下時無時鐘顯示SET7: LCALLDISPLAY;等待調(diào)小時按鍵時時鐘顯示用AJMPSET6SETOUT1: LCALLDISPL
18、AY;退出時鐘調(diào)整時鍵釋放等待AJMPSETOUT;防止鍵按下時無時鐘顯示顯示程序顯示數(shù)據(jù)在70H-75H單元內(nèi),用六位LED共陽數(shù)碼管顯示,P1 口輸出段碼數(shù)據(jù),P3 口作 掃描控制,每個LED數(shù)碼管亮IMS時間再逐位循環(huán)。DISPLAY: MOVR1,#70H;指向顯示數(shù)據(jù)首址MOVR5,#0FEH;掃描控制字初值PLAY: MOVA,R5;掃描字放入 AMOVP3,A;從 P3 口輸出MOVA,R1;取顯示數(shù)據(jù)到 AMOVDPTR,#TAB;取段碼表地址MOVCA,A+DPTR;查顯示數(shù)據(jù)對應(yīng)段碼MOVP1,A;段碼放入 P1 口LCALLDL1MS;顯示 1MSINCR1;指向下一地址MOVA,R5;掃描控制字放入 AJNBACC.5,ENDOUT; ACC.5=0 時一次顯示結(jié)束RLA; A 中數(shù)據(jù)循環(huán)左移MOVR5,A;放回 R5 內(nèi)AJMPPLAY;跳回 PLAY 循環(huán)ENDOUT: SETBP3.5;一次顯示結(jié)束, P3 口復(fù)位MOVP1,#0FFH; P1 口復(fù)位RET;子程序返回TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH;共陽段碼表“0”“1”“2” “3”“4”“5”“6
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 排水安全生產(chǎn)制度
- 安全生產(chǎn)停工制度
- 生產(chǎn)技術(shù)部門規(guī)章制度
- 實驗線生產(chǎn)線管理制度
- 食品生產(chǎn)工廠規(guī)章制度
- 安全生產(chǎn)聯(lián)鎖制度
- 商混站生產(chǎn)部規(guī)章制度
- 吊蔓西瓜生產(chǎn)管理制度
- 安全生產(chǎn)信息交流制度
- 農(nóng)業(yè)生產(chǎn)管理工人制度
- 天貓店主體變更申請書
- 幼兒園老師面試高分技巧
- 航空運輸延誤預(yù)警系統(tǒng)
- DLT 5142-2012 火力發(fā)電廠除灰設(shè)計技術(shù)規(guī)程
- 文化藝術(shù)中心管理運營方案
- 肩袖損傷臨床診療指南
- 2026年管線鋼市場調(diào)研報告
- 2025年江蘇省公務(wù)員面試模擬題及答案
- 2025中國家庭品牌消費趨勢報告-OTC藥品篇-
- 機器人學(xué):機構(gòu)、運動學(xué)及動力學(xué) 課件全套 第1-8章 緒論-機器人綜合設(shè)計
- JJG 694-2025原子吸收分光光度計檢定規(guī)程
評論
0/150
提交評論