新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 利用AT89C2051制作的6位電子鐘

利用AT89C2051制作的6位電子鐘

作者: 時間:2011-12-06 來源:網(wǎng)絡(luò) 收藏

SETB ET0 ;允許T0中斷

SETB TR0 ;開啟T0定時器

MOV R4,#14H ;1秒定時用初值(50MS×20)

START1: LCALL DISPLAY ;調(diào)用顯示子程序

JNB P3.7,SETMM1 ;P3.7口為0時轉(zhuǎn)時間調(diào)整程序

SJMP START1 ;P3.7口為1時跳回START1

SETMM1: LJMP SETMM ;轉(zhuǎn)到時間調(diào)整程序SETMM

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; 1秒計時程序 ;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;T0中斷服務(wù)程序

INTT0: PUSH ACC ;累加器入棧保護(hù)

PUSH PSW ;狀態(tài)字入棧保護(hù)

CLR ET0 ;關(guān)T0中斷允許

CLR TR0 ;關(guān)閉定時器T0

MOV A,#0B7H ;中斷響應(yīng)時間同步修正

ADD A,TL0 ;低8位初值修正

MOV TL0,A ;重裝初值(低8位修正值)

MOV A,#3CH ;高8位初值修正

ADDC A,TH0

MOV TH0,A ;重裝初值(高8位修正值)

SETB TR0 ;開啟定時器T0

DJNZ R4, OUTT0;20次中斷未到中斷退出

ADDSS: MOV R4,#14H ;20次中斷到(1秒)重賦初值

MOV R0,#71H ;指向秒計時單元(71H-72H)

ACALL ADD1 ;調(diào)用加1程序(加1秒操作)

MOV A,R3 ;秒數(shù)據(jù)放入A(R3為2位十進(jìn)制數(shù)組合)

CLR C ;清進(jìn)位標(biāo)志

CJNE A,#60H,ADDMM

ADDMM: JC OUTT0 ;小于60秒時中斷退出

ACALL CLR0 ;大于或等于60秒時對秒計時單元清0

MOV R0,#77H ;指向分計時單元(76H-77H)

ACALL ADD1 ;分計時單元加1分鐘

MOV A,R3 ;分?jǐn)?shù)據(jù)放入A

CLR C ;清進(jìn)位標(biāo)志

CJNE A,#60H,ADDHH

ADDHH: JC OUTT0 ;小于60分時中斷退出

ACALL CLR0 ;大于或等于60分時分計時單元清0

MOV



關(guān)鍵詞: AT89C2051 6位電子鐘

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉