用定时器实现单个led灯闪烁(单片机定时器led灯闪烁程序)
单片机如何控制一个LED灯闪烁频率不断加快
首先定时器中断时间比如5ms,用来定时刷新数码管,他就不闪了。
其次,你另外申明一个全局变量,flash_count,每次定时中断,就是每次5ms,flash_count++,
同时你每次中断再判断flash_count==xxx时,你的led取反,同时设flash_count=0
你可以控制xxx,从1-255 改变,就可以控制闪烁的频率不断变化。
如何用TIMER0控制单只LED闪烁
#includereg51.h
#define uchar unsigned char
uchar cnt,sec,fls;
sbit led=P0^0;
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
cnt++;
fls++;
if(cnt=20)
{
cnt=0;
sec++;
if(sec=10)sec=0;
}
if(sec5)
{
if(fls=10)
{
fls=0;
led=~led;
}
}
if(sec=5)
{
if(fls=3)
{
fls=0;
led=~led;
}
}
}
main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET=1;
EA=1;
while(1);
}
用定时器实现51单片机上LED灯每隔两秒亮暗闪烁
你用的是几个灯啊?比如说8个灯吧,用P0口, 就是直接讲P0口与LED直接相连就行了啊,注意Led的另一端要接在一起,共地或者高电平都可以,但是为了保护LED,最好在每个小灯上串上一个电阻(若单片机采用的是5V电压,电阻可选用500欧左右的就可以了),以减小通过led的电流。剩余的就是单片机的最小系统了,没什么好说的吧,就是晶振,复位而已。
程序嘛,也很简单啊,你说用定时器,每个两秒如果单纯用一个定时器的话肯定不够用的,要结合循环判断语句,比如你采用12M的晶振,并且将定时中断时间定为50ms,那么设置一个变量,每20次就是一秒了,所以40次就是两秒。这样的话,每个40次就让led的状态(用0和1表示亮与灭)改变就可以了。main函数中应该设置一个死循环函数,可用while(1),让单片机不断的循环工作。
用定时器实现单个led灯闪烁的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于单片机定时器led灯闪烁程序、用定时器实现单个led灯闪烁的信息别忘了在本站进行查找喔。微信号:ymsc_2016
相关文章
发表评论
评论列表
- 这篇文章还没有收到评论,赶紧来抢沙发吧~