關(guān) 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 用單片機(jī)89C2051制作的延時控制器

        用單片機(jī)89C2051制作的延時控制器

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

        ;***************************************************
        ;* 用 *
        ;* T0、TT0配合構(gòu)成為秒脈沖發(fā)生器 *
        ;* TSBIN 為秒計數(shù)器(二進(jìn)制,0~60) ;21H單元 *
        ;* TMBIN 為分計數(shù)器(二進(jìn)制,0~60) ;22H單元 *
        ;* THBIN 為時計數(shù)器(二進(jìn)制,0~24) ;23H單元 *
        ;* KEYCODE 為鍵盤值;29H單元 *
        ;* KEYPRE 為按鍵標(biāo)志字;PSW.5 *
        ;* 當(dāng)?shù)褂嫊r至00H00M00S 時,P3.0, P3.1端輸出 *
        ;* 反相信號。 *
        ;* S1----對時按鈕;S2--對分按鈕; *
        ;* S3--對秒按鈕;S4--退出對時 *
        ;***************************************************

        本文引用地址:http://www.104case.com/article/162125.htm

        TMSBIN EQU 20H
        TSBIN EQU 21H
        TMBIN EQU 22H
        THBIN EQU 23H
        KEYCODE EQU 29H
        TT0 EQU 2BH
        OUT EQU 2DH

        KEYPRE BIT PSW.5

        DPS1 DATA 11001111B;S4
        DPM0 DATA 11010111B;S3
        DPM1 DATA 11011111B;S2
        DPH0 DATA 11100111B;S1
        DPH1 DATA 11101111B
        HIDE DATA 11111111B;消隱字

        ORG 0000H
        AJMP MAIN

        ORG 000BH
        SJMP I_T0

        ORG 001BH
        I_T1:AJMP MAIN1
        RETI

        ;*********** T0中斷服務(wù) ***********
        ORG 0030H
        I_T0:PUSH ACC
        PUSH PSW
        MOV TH0,#0DCH;0.01s時間,常數(shù)因子為DC00H
        ;MOV TL0,#00H
        CLR C
        MOV A,TMSBIN
        SUBB A,#01H
        MOV TMSBIN,A
        MOV R3,TT0
        DJNZ R3,I_T01;中斷次數(shù)100(每次中斷0.01S),轉(zhuǎn)出
        CPL KEYPRE
        MOV R3,#100;中斷次數(shù)=100次,重新下一個計數(shù)
        MOV TMSBIN,#100
        CLR C
        MOV A,TSBIN;秒計數(shù)器加1
        SUBB A,#01H
        MOV TSBIN,A
        ;SUBB A,#60 ;秒計數(shù)器>59? Y,秒計數(shù)器=00
        JNC I_T01
        MOV A,TMBIN
        ADD A,THBIN
        JNZ M1
        MOV OUT,#11111101B
        CLR TR0
        MOV TSBIN,#00H
        SJMP I_T01
        M1:MOV TSBIN,#59
        CLR C
        MOV A,TMBIN;分計數(shù)器加1
        SUBB A,#01H
        MOV TMBIN,A
        JNC I_T01
        MOV A,THBIN
        JZ I_T01
        MOV TMBIN,#59
        CLR C
        MOV A,THBIN;時計數(shù)器加1
        SUBB A,#01H
        MOV THBIN,A
        ;SUBB A,#24;時計數(shù)器>23? Y,時計數(shù)器=00
        JNC I_T01
        MOV THBIN,#00H
        I_T01:MOV TT0,R3
        POP PSW
        POP ACC
        RETI

        ORG 00F0H
        MAIN:MOV P1,#0FFH
        MOV OUT,#11111110B ;P3.0輸出低電平
        MOV P3,OUT
        MOV SP,#40H;初始化堆棧指針
        MOV TMOD,#11H;T0、T1工作于16為定時器
        MOV TT0,#100
        MOV TH0,#0DCH;T0初值
        MOV TL0,#00H
        MOV TH1,#00H;T1初值
        MOV TL1,#00H
        MOV TSBIN,#59
        MOV TMBIN,#59
        MOV THBIN,#23
        CLR EX0
        CLR EX1
        CLR ES
        SETB ET0;開T0、T1中斷
        SETB ET1
        SETB TR0
        SETB TR1
        SETB EA
        MAIN1:MOV R6,#80H;主處理過程
        DISP:MOV KEYCODE,#00H
        MOV TH1,#00H
        MOV TL1,#00H
        ACALL DISPLY;調(diào)用顯示子程序
        DJNZ R6,DISP
        MOV DPTR,#KEY
        MOV A,KEYCODE;讀鍵盤值
        JMP @A+DPTR;按鍵值跳相應(yīng)處理程序


        上一頁 1 2 3 下一頁

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 玉屏| 丹巴县| 榆中县| 肇东市| 彰化市| 通州区| 中牟县| 佛坪县| 盐源县| 张家川| 邛崃市| 大渡口区| 海林市| 分宜县| 彝良县| 合川市| 镇雄县| 盈江县| 拉萨市| 柳江县| 新郑市| 五指山市| 绥宁县| 闵行区| 都兰县| 博湖县| 年辖:市辖区| 临洮县| 合山市| 武安市| 四川省| 马公市| 团风县| 平遥县| 达州市| 甘孜| 闽侯县| 扶绥县| 务川| 库伦旗| 鄂尔多斯市|