新田羲贞 发表于 2010-1-22 21:18:53

定时器为什么不稳定啊

我做了个20S的定时器,却出现了奇怪的现像,就是时间不准,并且每一次的时间也不一样,比方说:让P1.0的LED灯从开机算,20S后熄灭,可是定时的时间总在变,有时可能要到40S以上才会灭,有时不到20S就灭了,都是同一个程序,几次反复开关机后,时间就不一样,换了一块芯片也不行,这是哪的问题啊?请高手指点一下,程序如下:

TIME EQU 31H ;50mS定时器
SEC EQU 32H ;秒计数器
MIN EQU 33H ;分钟计数器
HR EQU 34H ;小时计数器
ORG 0000H;
AJMP START;
ORG 000BH;
AJMP TIME0;
ORG 30H;

;---初始化定时器--------
START:
clr p1.0;
MOV TMOD,#1H ;初始化T0为定时器方式,模式1
MOV TL0,#0B0H
MOV TH0,#3CH ;50MS定时初值(12M时)
SETB ET0 ;允许T0中断
SETB TR0 ;启动定时器T0
SETB EA;
LOOP:AJMP LOOP;
;----定时器中断--------------------
;T0 50MS中断==对应12MHZ
TIME0: PUSH ACC
MOV TL0,#0B0H
MOV TH0,#3CH ;重装50MS定时
INC TIME
MOV A,TIME
CJNE A,#20,T0EXIT ;20个50MS=1S
MOV TIME,#0;
INC SEC;
MOV A,SEC;
CJNE A,#20,T0EXIT;
setb p1.0;
T0EXIT: POP ACC
RETI;
end.
页: [1]
查看完整版本: 定时器为什么不稳定啊