不好意思,打错字了,是16位捕捉
修改代码如下,不过
;/******************************************************************************* ;** T2自动捕捉测试程序 ;********************************************************************************/
OVERTIME EQU 040H ;// 溢出次数软计数 RCAP0 EQU 041H RCAP1 EQU 042H RCAP_BANK0 EQU 050H RCAP_BANK1 EQU 051H RCAP_BANK2 EQU 052H
RCAP_READ BIT 010H
ORG 0000H ;// 主程序入口 JMP MAIN ORG 002BH ;// T2定时器中断入口 JMP INT_Timer2
ORG 0050H ;// 主程序 MAIN: MOV SP,#07FH ;// 计数单元清零 CLR A MOV RCAP0,A MOV RCAP1,A MOV OVERTIME,A MOV TH2,A MOV TL2,A ;// 清零完毕 MOV T2CON,#00001101B;// T2工作于16位捕捉
SETB ET2 SETB EA
LOOP: JNB RCAP_READ,NETX CLR RCAP_READ SJMP LOOP ;// 虚拟捕捉处理程序 NETX: ORL PCON,#01H SJMP LOOP
;// T2中断服务程序 INT_Timer2: JBC EXF2,INT_NEXT ;// 溢出中断 INC OVERTIME CLR TF2 RETI INT_NEXT: PUSH PSW PUSH ACC CLR C MOV A,RCAP2L SUBB A,RCAP0 MOV RCAP_BANK0,A MOV RCAP0,RCAP2L
MOV A,RCAP2H SUBB A,RCAP1 MOV RCAP_BANK1,A MOV RCAP1,RCAP2H
MOV A,OVERTIME SUBB A,#0 MOV RCAP_BANK2,A CLR A MOV OVERTIME,A
SETB RCAP_READ POP ACC POP PSW RETI END |
|