标题:
求助,为什么定时1ms,用cnt计数100次后led会以1s闪烁
[打印本页]
作者:
liugc123
时间:
2020-1-25 08:43
标题:
求助,为什么定时1ms,用cnt计数100次后led会以1s闪烁
#include "reg52.h"
sbit led1 = P2^0;
unsigned int cnt = 0;
void Timer0Init();
void main()
{
Timer0Init();
while(1)
{
}
}
void Timer0Init() //定时1ms,11.0592M
{
TMOD = 0X01;
TL0 = 0XCD;
TH0 = 0XD4;
TR0 = 1;
TF0 = 0;
ET0 = 1;
EA = 1;
}
void Timer0() interrupt 1
{
TL0 = 0XCD;
TH0 = 0XD4;
cnt++;
if(cnt>=100)
{
cnt = 0;
led1 = ~led1;
}
}
作者:
liugc123
时间:
2020-1-25 12:23
我知道了,我定时器T0配置错了,我把定时器时钟弄成了1T
弄错了
作者:
wulin
时间:
2020-1-25 14:09
楼主定时器设置错误,你这个TL0 = 0XCD;TH0 = 0XD4;接近10ms,11.0592MHz设置1ms:TL0 = 0x66;TH0 = 0xFC;
作者:
csmyldl
时间:
2020-1-25 14:14
TL0 = 0X66; TH0 = 0XFC; 是12T的初值,TL0 = 0XCD; TH0 = 0XD4; 是1T的初值,程序中需用AUXR设置1T还是12T模式
作者:
yzwzfyz
时间:
2020-1-26 21:02
定时器也就是一个加法计数器,每个CLK+1!
你要看看定时器的原理框图(书上定时器章节中找),看看CLK取自何处?它的频率是多少?一看就明白你错在哪里了。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1