精确定时LED一秒闪烁 求指教
我用的是铁牛单片机,晶振12MHz。在学习了小宋老师的定时器学习的教程之后,针对我的板子写了个定时一秒闪烁的程序。
但是闪烁频率好快,明显快于一秒了。求解答恩。
程序如下:
#include<stdio.h>
#include<reg52.h>
typedef unsigned char unit8;
typedef unsigned int unit16;
sbit led=P2^0;
main()
{
unit16 counter=0;
led=0;
TMOD=0x10;
TR1=1;
TH1=0x00;
TL1=0xe0;
while(1)
{
if(TF1==1)
{ TH1=0xfc;
TL1=0x67;
counter++;
TF1=0;}
if(counter==50)
{
led=~led;
counter=0;
}
}
}
[解决办法]
他用定时器T1,计数初值0FC67H,定时时间400微秒离20毫秒差远了,所以闪的快