1 .单片机晶振脉冲的频率和周期为f=f/12=11.0592 m/12=0.9216 mhzt=1/f=1.085 us
2 .主频为11.0592M时,每1个脉冲为1.085us,所以1次溢出的时间为1.085usx65536=71.1ms。
代码如下所示。
1 .实现4个LED灯闪烁1秒
#includereg51.h
char c;
void Timer () )
{
TMOD=0x01;
TH0=0;
TL0=0; //计时器的计数开始点为0
TR0=1; //开始计时器0
}
void main () )
{
Timer (;
while(1)。
{
if(TF0==1) ) ) ) )。
{
TF0=0;
C;
if(c==14 )//71*14=1s
{
c=0;
P2=~P2;
}
}
}
}
2 .实现一个LED灯闪烁1秒
#includereg51.h
sbit LD1=P2^0;
void Timer ()//初始化计时器
{
TMOD=0x01;
TH0=0;
TL0=0; //计时器的计数开始点为0
TR0=1; //开始计时器0
}
void TimerOverflow ()//处理计时器0的溢出事件
{
静态字符c;
检测if(TF0==1)//计时器0是否溢出,每65535次
{
TF0=0;
C;
if(c==14 ) )。
{
c=0;
LD1=! LD1;
}
}
}
void main () )
{
Timer (;
while(1)。
{
TimerOverflow (;
}
}