




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精品 料推薦at89c2051制電子鐘時鐘源程序本程序來自于互聯(lián)網(wǎng),站長尚沒試驗,但是,該程序給出了詳細的說明,相信對大家很有幫助!因此,站長向原作者表示真誠謝意!;at89c2051時鐘程序;定時器 t0 、 t1 溢出周期為50ms , t0 為秒計數(shù)用,t1 為調(diào)整時閃爍用,;p3.7為調(diào)整按鈕,p1 口 為字符輸出口,采用共陽顯示管。;中斷入口程序;org 0000h; 程序執(zhí)行開始地址ljmpstart ;跳到標號start 執(zhí)行org 0003h; 外中斷 0 中斷程序入口reti; 外中斷 0 中斷返回org 000bh; 定時器 t0 中斷程序入口ljmpintt0 ;跳至 i
2、ntto執(zhí)行org 0013h; 外中斷 1 中斷程序入口reti; 外中斷 1 中斷返回org 001bh; 定時器 t1 中斷程序入口ljmpintt1 ;跳至 intt1執(zhí)行org 0023h; 串行中斷程序入口地址reti; 串行中斷程序返回;主 程 序;1精品 料推薦;start: movr0,#70h; 清 70h-7ah共 11 個內(nèi)存單元movr7,#0bh;cleardisp: movr0,#00h;incr0;djnz r7,cleardisp;mov20h,#00h; 清 20h (標志用)mov7ah,#0ah; 放入 熄滅符 數(shù)據(jù)movtmod,#11h; 設(shè) t0
3、、 t1 為 16 位定時器movtl0,#0b0h;50ms定時初值(t0 計時用)movth0,#3ch;50ms定時初值movtl1,#0b0h;50ms定時初值(t1 閃爍定時用)movth1,#3ch;50ms定時初值setb ea; 總中斷開放setb et0; 允許t0 中斷setb tr0; 開啟t0 定時器movr4,#14h;1秒定時用初值( 50ms 20 )start1: lcall display; 調(diào)用顯示子程序jnbp3.7,setmm1;p3.7 口為 0 時轉(zhuǎn)時間調(diào)整程序sjmp start1;p3.7 口為 1 時跳回 start1setmm1:ljmp s
4、etmm; 轉(zhuǎn)到時間調(diào)整程序setmm;1 秒計時程序;t0 中斷服務(wù)程序intt0: push acc; 累加器入棧保護push psw; 狀態(tài)字入棧保護clret0; 關(guān) t0 中斷允許clrtr0; 關(guān)閉定時器 t0mova,#0b7h; 中斷響應(yīng)時間同步修正adda,tl0; 低 8位初值修正movtl0,a; 重裝初值(低 8位修正值)mova,#3ch; 高 8位初值修正addc a,th0;movth0,a; 重裝初值(高 8位修正值)setb tr0; 開啟定時器 t0djnz r4, outt0;20 次中斷未到中斷退出addss: movr4,#14h;20 次中斷到( 1
5、 秒)重賦初值movr0,#71h; 指向秒計時單元(71h-72h )acall add1; 調(diào)用加 1 程序(加 1秒操作)mova,r3; 秒數(shù)據(jù)放入 a ( r3 為 2 位十進制數(shù)組合)clrc; 清進位標志cjne a,#60h,addmm;addmm: jcoutt0; 小于 60 秒時中斷退出2精品 料推薦acall clr0; 大于或等于 60秒時對秒計時單元清0movr0,#77h; 指向分計時單元( 76h-77h)acall add1; 分計時單元加 1 分鐘mova,r3; 分數(shù)據(jù)放入 aclrc; 清進位標志cjne a,#60h,addhh;addhh: jcou
6、tt0; 小于 60分時中斷退出acall clr0; 大于或等于 60分時分計時單元清0movr0,#79h; 指向小時計時單元( 78h-79h)acall add1; 小時計時單元加1 小時mova,r3; 時數(shù)據(jù)放入 aclrc; 清進位標志cjne a,#24h,hour;hour: jcoutt0; 小于 24 小時中斷退出acall clr0; 大于或等于 24小時小時計時單元清0outt0: mov72h,76h; 中斷退出時將分、時計時單元數(shù)據(jù)移mov73h,77h; 入對應(yīng)顯示單元mov74h,78h;mov75h,79h;poppsw; 恢復(fù)狀態(tài)字(出棧)popacc;
7、恢復(fù)累加器setb et0; 開放t0 中斷reti; 中斷返回;閃動調(diào)時程 序;t1中斷服務(wù)程序,用作時間調(diào)整時調(diào)整單元閃爍指示intt1:pushacc; 中斷現(xiàn)場保護pushpsw;movtl1,#0b0h; 裝定時器t1 定時初值movth1,#3ch;djnzr2,intt1out;0.3秒未到退出中斷( 50ms中斷 6 次)movr2,#06h; 重裝 0.3 秒定時用初值cpl02h;0.3 秒定時到對閃爍標志取反jb02h,flash1;02h位為 1 時顯示單元 熄滅 mov72h,76h;02h位為 0 時正常顯示mov73h,77h;mov74h,78h;mov75h,
8、79h;intt1out:poppsw; 恢復(fù)現(xiàn)場popacc;reti; 中斷退出flash1:jb01h,flash2;01h位為 1 時,轉(zhuǎn)小時熄滅控制mov72h,7ah;01h位為 0 時, 熄滅符 數(shù)據(jù)放入分mov73h,7ah; 顯示單元( 72h-73h ),將不顯示分數(shù)據(jù)3精品 料推薦mov74h,78h;mov75h,79h;ajmpintt1out; 轉(zhuǎn)中斷退出flash2:mov72h,76h;01h 位為 1時, 熄滅符 數(shù)據(jù)放入小時mov73h,77h; 顯示單元( 74h-75h),小時數(shù)據(jù)將不顯示mov74h,7ah;mov75h,7ah;ajmpintt1ou
9、t; 轉(zhuǎn)中斷退出;加 1 子 程序;add1: mova,r0; 取當(dāng)前計時單元數(shù)據(jù)到adecr0; 指向前一地址swap a;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; 數(shù)據(jù)放入當(dāng)削地址單元中ret; 子程序返回;清零程序; 對計時單元復(fù)零用cl
10、r0: clra; 清累加器movr0,a; 清當(dāng)前地址單元decr0; 指向前一地址movr0,a; 前一地址單元清0ret; 子程序返回;時鐘調(diào)整程序; 當(dāng)調(diào)時按鍵按下時進入此程序setmm: clret0; 關(guān)定時器t0 中斷clrtr0; 關(guān)閉定時器t0lcalldl1s; 調(diào)用 1 秒延時程序4精品 料推薦jbp3.7,closedis ;鍵按下時間小于1秒,關(guān)閉顯示(省電)movr2,#06h; 進入調(diào)時狀態(tài),賦閃爍定時初值setbet1; 允許 t1 中斷setbtr1; 開啟定時器 t1set2: jnbp3.7,set1;p3.7 口為 0 (鍵未釋放) ,等待setb00h
11、; 鍵釋放,分調(dià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; 清進位標志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; 清進位標志ajmpset4; 跳轉(zhuǎn)到 set4 循環(huán)closedis: s
12、etbet0; 省電( led 不顯示)狀態(tài)。開t0 中斷setbtr0; 開啟t0 定時器(開時鐘)close:jbp3.7,close; 無按鍵按下,等待。lcalldisplay; 有鍵按下,調(diào)顯示子程序延時削抖jbp3.7,close; 是干擾返回 close等待waith:jnbp3.7,waith; 等待鍵釋放ljmpstart1; 返回主程序( led 數(shù)據(jù)顯示亮)sethh: clr00h; 分閃爍標志清除(進入調(diào)小時狀態(tài))sethh1: jnbp3.7,set5; 等待鍵釋放setb01h; 小時調(diào)整標志置1set6: jbp3.7,set7; 等待按鍵按下lcalldl05
13、s; 有鍵按下延時 0.5秒jnbp3.7,setout; 按下時間大于0.5秒退出時間調(diào)整movr0,#79h; 按下時間小于0.5秒加 1 小時操作lcalladd1; 調(diào)加 1 子程序mova,r3;clrc;cjnea,#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 再等待cl
14、r01h; 清調(diào)小時標志clr00h; 清調(diào)分標志clr02h; 清閃爍標志clrtr1; 關(guān)閉定時器 t15精品 料推薦clret1; 關(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: lc
15、alldisplay; 等待調(diào)小時按鍵時時鐘顯示用ajmpset6setout1: lcalldisplay; 退出時鐘調(diào)整時鍵釋放等待ajmpsetout; 防止鍵按下時無時鐘顯示;顯示程序;顯示數(shù)據(jù)在70h-75h單元內(nèi),用六位led 共陽數(shù)碼管顯示,p1 口輸出段碼數(shù)據(jù),p3 口作; 掃描控制,每個 led 數(shù)碼管亮 1ms 時間再逐位循環(huán)。display: movr1,#70h; 指向顯示數(shù)據(jù)首址movr5,#0feh; 掃描控制字初值play: mova,r5; 掃描字放入 amovp3,a; 從 p3口輸出mova,r1; 取顯示數(shù)據(jù)到 amovdptr,#tab; 取段碼表地址m
16、ovca,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; 共陽段碼表012 34567 89不亮 ;延時程序;1ms延時程序, led 顯示程序用6精品 料推薦dl1ms: mo
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年新能源汽車充電站布局優(yōu)化與充電設(shè)備性能優(yōu)化報告
- xx區(qū)農(nóng)貿(mào)市場建設(shè)項目可行性研究報告
- 現(xiàn)代管理學(xué)中的問題解決技巧試題及答案
- 水利水電工程建模技術(shù)試題及答案
- 公文寫作的基本原則試題及答案
- 2025數(shù)字人民幣跨境支付技術(shù)難題解析及前瞻性解決方案報告
- 管理心理學(xué)前沿研究試題及答案
- 行政管理中的風(fēng)險控制試題及答案
- 大貨車夜間火災(zāi)應(yīng)急預(yù)案(3篇)
- 市政工程動態(tài)監(jiān)測試題及答案
- 2025團員考試試題及答案
- 2025年全國防災(zāi)減災(zāi)日專題培訓(xùn)課件
- 2025-2030中國氯氧化鉍行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 2025年中考語文二輪復(fù)習(xí):說明文閱讀 測試卷(含答案解析)
- 視頻監(jiān)控介紹課件
- 統(tǒng)計學(xué)試題及答案解析
- 跨學(xué)科實踐制作微型密度計人教版物理八年級下學(xué)期
- 2025屆高考語文作文備考之審題立意30道選擇題訓(xùn)練(附答案)
- 21. 三黑和土地 課件
- 挖掘機理論試題及答案
- 2025年銀行從業(yè)資格考試個人理財真題卷權(quán)威解讀
評論
0/150
提交評論