標(biāo)題: STC89C52單片機(jī)定時(shí)計(jì)數(shù)器2使用遞加遞減計(jì)數(shù)不知那里錯(cuò)了 [打印本頁]

作者: 一度    時(shí)間: 2013-10-11 14:25
標(biāo)題: STC89C52單片機(jī)定時(shí)計(jì)數(shù)器2使用遞加遞減計(jì)數(shù)不知那里錯(cuò)了
;------------單元賦值--------------------
        T2CON EQU 0C8H        ;T2CON定時(shí)/計(jì)數(shù)控制寄存器
        T2MOD EQU 0C9H        ;T2MOD控制寄存器
        RCAP2L EQU 0CAH;捕獲緩沖寄存器低
        RCAP2H EQU 0CBH;捕獲緩沖寄存器高
        TL2 EQU 0CCH ;16位計(jì)數(shù)儲存低位
        TH2 EQU 0CDH ;16位計(jì)數(shù)儲存高位
        TR2 BIT 0C8H.2;啟動T2
        TF2 BIT 0C8H.7 ;溢出標(biāo)志
        ET2 BIT IE.5  ;中斷允許
        EXF2 BIT 0C8H.6        ;外部中斷標(biāo)志
;-------------------------------------------------------
;-----------程序---------------------

        ORG 00H
        SJMP ABC             ;主程序
        ORG 2BH                                 ;中斷入口
        SJMP T2MAIN                         ;
ABC:
        MOV T2CON,#02H                 ;設(shè)置16自動重裝計(jì)數(shù)
        MOV R0,#0C9H
        MOV A,#0FFH
        MOV @R0, A
        MOV T2MOD,#0FFH                 ;設(shè)置可遞減計(jì)數(shù)
        MOV P3,0C9H                         ;我剛才檢測T2MOD,對不對
        MOV TH2,#0FFH                 ;送人計(jì)數(shù)初始值
        MOV TL2,#0F5H
        MOV RCAP2L,#0F5H         ;自動重裝值
        MOV RCAP2H,#0FFH
        SETB EA                                 ;開啟中斷
        SETB ET2                     ;允許T2中斷
        CLR P0.0
        ;CLR P1.1                         ;我剛調(diào)試用的
        SETB TR2                         ;啟動計(jì)數(shù)2
SSS:
        MOV P2,TL2                         ;捕獲16位計(jì)數(shù)地位數(shù)值
        LCALL YS1S                         ;延時(shí)1s
        SJMP SSS                         ;重新捕獲
T2MAIN:                                         ;T2中斷服務(wù)
        CLR TF2
        CLR EXF2                                 ;軟清零
        MOV A,TH1                         ;判斷重新裝載數(shù)值
        CJNE A,#0FFH,T2MAIN1  ;判斷是遞加?還是遞減?
        CLR P0.1          ;遞減幫p0.1清零
        SJMP T2END
T2MAIN1:
        CLR P0.2          ;遞加p0.2清零
T2END:
        RETI                   ;返回中斷服務(wù)斷點(diǎn)開始
YS1S:                                   ;延時(shí)1s
         MOV R6,#04H
DL0:
        MOV R5,#0F8H
        DJNZ R5,$
        DJNZ R6,DL0
        NOP
        RET
        END

作者: ahshmj    時(shí)間: 2013-10-13 19:19
捕獲或重裝載不能同時(shí)用,T2CON.0置位時(shí),是捕獲功能,清0時(shí),是重裝載功能。重裝載16位數(shù)值或捕獲的16位數(shù)值都是在RCAP2L、RCAP2H中。

如果是捕獲的話,需要將T2CON.3置位。
作者: 13620819446    時(shí)間: 2013-10-13 22:06
匯編看不懂




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1