首页 > 编程知识 正文

51单片机led灯闪烁程序汇编,51单片机控制led灯闪烁

时间:2023-05-03 18:38:48 阅读:162586 作者:1819

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 (;

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。