;------------單元賦值--------------------
T2CON EQU 0C8H ;T2CON定時(shí)/計(jì)數(shù)控制寄存器
T2MOD EQU 0C9H ;T2MOD控制寄存器
RCAP2L EQU 0CAH;捕獲緩沖寄存器低
RCAP2H EQU 0CBH;捕獲緩沖寄存器高
TL2 EQU 0CCH ;16位計(jì)數(shù)儲(chǔ)存低位
TH2 EQU 0CDH ;16位計(jì)數(shù)儲(chǔ)存高位
TR2 BIT 0C8H.2;啟動(dòng)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自動(dòng)重裝計(jì)數(shù)
MOV R0,#0C9H
MOV A,#0FFH
MOV @R0, A
MOV T2MOD,#0FFH ;設(shè)置可遞減計(jì)數(shù)
MOV P3,0C9H ;我剛才檢測(cè)T2MOD,對(duì)不對(duì)
MOV TH2,#0FFH ;送人計(jì)數(shù)初始值
MOV TL2,#0F5H
MOV RCAP2L,#0F5H ;自動(dòng)重裝值
MOV RCAP2H,#0FFH
SETB EA ;開啟中斷
SETB ET2 ;允許T2中斷
CLR P0.0
;CLR P1.1 ;我剛調(diào)試用的
SETB TR2 ;啟動(dòng)計(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
|