维修网

 找回密码
 注册

QQ登录

只需一步,快速开始

微信扫码 , 快速开始

查看: 221|回复: 0

定时器为什么不稳定啊

[复制链接]

classn_11

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

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

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

x
我做了个20S的定时器,却出现了奇怪的现像,就是时间不准,并且每一次的时间也不一样,比方说:让P1.0的LED灯从开机算,20S后熄灭,可是定时的时间总在变,有时可能要到40S以上才会灭,有时不到20S就灭了,都是同一个程序,几次反复开关机后,时间就不一样,换了一块芯片也不行,这是哪的问题啊?请高手指点一下,程序如下:" Q; b( Q3 B' S' u
6 R8 x5 Z8 Q" S1 R" S
TIME EQU 31H ;50mS定时器
, h) S$ M/ R- k9 I0 T9 aSEC EQU 32H ;秒计数器
% z' O" A+ z/ t4 bMIN EQU 33H ;分钟计数器
$ C1 u! W0 N+ K$ wHR EQU 34H ;小时计数器& r5 O: A& L  y! k# H
ORG 0000H;
. e- b) D2 y8 {AJMP START;
4 f4 t1 Y( b6 X, Q7 \$ D: UORG 000BH;1 p( w, f- ?0 h
AJMP TIME0;
! A2 g' X# k+ K4 TORG 30H;
2 g4 L) a/ m0 E* p; q/ c- n# Y- c& }
;---初始化定时器--------$ b$ P* f- G- B; H" i+ y
START:
. X+ n# p- o+ }( w  iclr p1.0;: ^/ w* q2 M, E
MOV TMOD,#1H ;初始化T0为定时器方式,模式1! D7 b. j1 e9 m" G5 I  F, V1 q9 C7 A
MOV TL0,#0B0H
; z( u3 f: ?1 m! Z' O0 Y4 Z( Z, y# K$ [MOV TH0,#3CH ;50MS定时初值(12M时)' p: ?3 Q5 R( I9 E% |" `3 u
SETB ET0 ;允许T0中断
7 K- C! F. C, z+ YSETB TR0 ;启动定时器T0
1 L) l7 H6 I$ e* n" D) q/ L* k! z- j1 {SETB EA;/ @; q: c6 E8 o* Q' E( u
LOOP:AJMP LOOP;! G& c6 l8 }/ N* T
;----定时器中断--------------------8 x: E- w1 W% J
;T0 50MS中断==对应12MHZ
+ d$ T& |. W4 {& D7 S  oTIME0: PUSH ACC4 o0 v$ W6 y: z' J4 i0 ~! `
MOV TL0,#0B0H
8 {# j# T4 H1 |7 E" T MOV TH0,#3CH ;重装50MS定时" q# P! h) l9 B3 a
INC TIME
( k0 K4 y, y. h+ W. d MOV A,TIME
% j" i8 D# O, q: r! R/ m CJNE A,#20,T0EXIT ;20个50MS=1S8 f; y. t- P5 [
MOV TIME,#0;3 `' M; ^5 v/ {
INC SEC;
( X( N* H. Y4 A% a MOV A,SEC;
2 r  R5 ^( v! {9 M" Y% O CJNE A,#20,T0EXIT;6 t6 @1 t/ J. ?% C% ]
setb p1.0;
# U1 n; _' i" nT0EXIT: POP ACC, U2 D5 ]1 Q) T  e8 L
RETI;
1 t/ p5 ~/ y, Y& f$ K$ K) | end.

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

本版积分规则

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

GMT+8, 2024-6-6 05:30 , Processed in 0.258057 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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