新聞中心

        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)閉
        主站蜘蛛池模板: 嘉义市| 东安县| 三江| 汶川县| 宽城| 阜新市| 潢川县| 拜泉县| 深州市| 兴隆县| 新巴尔虎左旗| 星子县| 滨海县| 饶阳县| 清远市| 同江市| 甘德县| 顺昌县| 仙游县| 沙田区| 郴州市| 盐山县| 江北区| 抚顺市| 蕉岭县| 嘉义县| 河曲县| 栾川县| 平远县| 永平县| 榕江县| 台北市| 正定县| 玉山县| 东山县| 沛县| 三河市| 大洼县| 冀州市| 贡山| 察隅县|