维修网

 找回密码
 注册

QQ登录

只需一步,快速开始

微信扫码 , 快速开始

查看: 219|回复: 0

定时器为什么不稳定啊

[复制链接]

classn_11

发表于 2010-1-22 21:18:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

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

, r1 A" d: b& x6 [TIME EQU 31H ;50mS定时器
) e. P) L: O( d% T. ISEC EQU 32H ;秒计数器
& `- H) c7 u7 ~" l9 N. `MIN EQU 33H ;分钟计数器0 M; \8 G9 @# Z* S
HR EQU 34H ;小时计数器
' q* M- h, {/ vORG 0000H;
3 \$ |8 Q4 o  u+ B9 ^4 L3 nAJMP START;
0 F' _5 y1 m# \  \. SORG 000BH;9 y! F' ]' f" s$ J
AJMP TIME0;5 {$ Q3 n! R% K0 B; h/ l3 I
ORG 30H;9 v0 x. c/ o9 A+ @1 |% E. r
5 w5 O$ ~% t0 V2 p) G
;---初始化定时器--------
( X; o. ?, L3 s3 m) PSTART:! ~% `5 N/ T$ A1 E+ U3 @$ l, \
clr p1.0;
6 V# x9 V# H8 r/ K9 OMOV TMOD,#1H ;初始化T0为定时器方式,模式1
, n" \( ]$ Y# |& O  J+ sMOV TL0,#0B0H2 `8 _: e, |# e( u  p# f
MOV TH0,#3CH ;50MS定时初值(12M时)
2 E0 Y0 z, m, u% ]! |0 [* @SETB ET0 ;允许T0中断* d, x; j- g8 z* y  k2 u: `
SETB TR0 ;启动定时器T0
& t9 n9 j5 `3 m' l! E# K, TSETB EA;
! R" l; Q# Z6 V, ^LOOP:AJMP LOOP;& ~. A2 O9 z# }* x0 d0 A. Y9 p
;----定时器中断--------------------. ^5 W2 d; B/ L" c
;T0 50MS中断==对应12MHZ3 m' \' ]* b/ }
TIME0: PUSH ACC9 v  b1 q; A) U# {! A) \
MOV TL0,#0B0H& c. A$ F( v1 B1 h( G8 f. {7 u# d2 M
MOV TH0,#3CH ;重装50MS定时
+ n6 L) h6 P" O7 [ INC TIME
4 S! A5 ^5 N1 a9 ^ MOV A,TIME; D0 @" B9 R9 a
CJNE A,#20,T0EXIT ;20个50MS=1S0 _4 k) P# z7 a# h. h  i/ t3 G
MOV TIME,#0;) u! K8 ~# h6 c6 ~. f
INC SEC;; n; V) J3 p: ~6 p% i& w' K1 C9 n# I- D
MOV A,SEC;
7 H5 ?4 E/ P3 {1 z3 @* _+ T CJNE A,#20,T0EXIT;) [1 n7 H3 W( E" T
setb p1.0;1 k- @& V4 A! J- X
T0EXIT: POP ACC
, E) n: X: G3 }! i8 s) a! A RETI;
2 V) t; {: j! d- e: o9 o end.

手机扫码浏览
*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|申请友链|手机版|小黑屋|最新贴|维修网 ( 粤ICP备09047344号

GMT+8, 2024-5-4 14:37 , Processed in 0.270608 second(s), 30 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表