使用51单片机实现延时控制LED灯闪烁

控制/MCU

1814人已加入

描述

这篇文章我们讲解使用51单片机控制LED灯的闪烁。那么为了方便理解,我们要从最基础的讲起。闪烁,就是灯一会儿亮一会儿灭,这个一会儿就是时间间隔,也就是今天我们说的延时了。比如灯亮1s,再灭1s,循环往复就是闪烁。

那么首先借助原理图,使用LED1进行演示,也就是P1.0。注意:LED是低电平点亮,不了解原因的去看开头引用的文章。

闪烁

#include < reg52.h >
sbit LED1=P1^0;//定义LED1为P1.0

延时函数使用for循环或者while循环,其实就是执行一段空代码,因为每执行一次for或者while循环都要耗费一点时间,这个时间就由指令周期决定,指令周期由时钟频率决定,也就是外部晶振的频率决定。

void delay_ms(unsigned int nms)
{
    unsigned char cnt=125;
    unsigned char i,j;
    for (i=0;i< nms;i++)
        for(j=0;j< cnt;j++);
}//这里我们经验值给定是125个for循环为1ms

接下来就是主函数

void main()
{
    while(1)
    {
        LED1=0;
        delay_ms(500);
        LED1=1;
        delay_ms(500);
    }
}

主函数理解就很简单了,在永不休止的循环里面,给LED的引脚P1.0隔段时间赋不同的值,让其一会儿输出高电平,一会儿输出低电平,LED也就随着一会儿灭,一会儿亮了。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分