STC89C52有三个定时哦,还有个定时器2可以做串口波特率发生器的.
参考;
ORG 0000H
SJMP START
ORG 000BH
LJMP T0_INT
ORG 001BH
LJMP T1_INT
;---------------------------------------
START:
MOV TMOD, #0010 0111B ;27H
;TMOD = [G C/T M1 M0|G C/T M1 M0]
; T1定时方式2
; T0方式3, TH0定时、TL0计数.
MOV TH1, #0FDH
MOV TL1, #0FDH ;9600@11.0592MHz
MOV TH0, #06H ;定时250T
MOV TL0, #0 ;从0开始计数.
SETB TR1 ;启动TH0定时.
SETB TR0 ;启动TL0计数.
MOV IE, #10001010B;开中断.
SJMP $
;---------------------------------------
T0_INT:
;.......
RETI
;---------------------------------------
T1_INT: ;每250T执行一次.
MOV TH0, #06H ;定时250T
;.......
RETI
;---------------------------------------
END
1, 52系列单片机 有 独立的波特率发生器
2, 有 T0、T1、T2 三个定时器
3, 如果是 51 的, 哪么可以 T0 计数, T1 计时 & 波特率发生器 分时使用,
即 做计时 又做 波特率发生器, 只要 时间差开,当然在做不同用途前 先要设置。