标题:
关于定时器,if为什么是50,可是初始值是50ms啊,这样会是一秒吗?
[打印本页]
作者:
董亚伟
时间:
2014-12-18 21:51
标题:
关于定时器,if为什么是50,可是初始值是50ms啊,这样会是一秒吗?
#include<reg52.h>
sbit LED = P2^0;
void main()
{
unsigned char cnt = 0;
TMOD = 0x01;
TH0 = 0x3Cb2;
TL0 = 0x00;
TR0 = 1;
while(1)
{
if(1 == TF0)
{
TF0 = 0;
TH0 = 0x3Cb2;
TL0 = 0x00;
cnt++;
if(cnt>=50)
{
cnt = 0;
LED = ~LED;
}
}
}
}
作者:
明白
时间:
2014-12-18 22:08
TMOD = 0x01;
TH0 = 0x3C;
TL0 = 0xb2;
TR0 = 1;
作者:
忠信1314
时间:
2014-12-19 01:29
如果定时器50毫秒溢出一次 那就应该是这样 if(cnt==20)
就是让定时器溢出20次 刚好1秒
作者:
忠信1314
时间:
2014-12-19 01:42
忠信1314 发表于 2014-12-19 01:29
如果定时器50毫秒溢出一次 那就应该是这样 if(cnt==20)
就是让定时器溢出20次 刚好1秒
如果你的晶振是11.05926 那让定时器溢出18次就行了 另3CB2=15538 65536-15538=49998
作者:
海哥沧海一笑
时间:
2014-12-19 22:45
而且需要开总中断和启动定时器,
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1