led灯闪烁 51代码

/*名称:从左到右的流水灯
    说明:接在P0口的8个LED从左到右循环依次点亮,产生走马灯效果
    日期;20230718
*/
#include//头文件,每个程序都必须有。
#include//_crol_()在intrins.h中定义的
#define uchar unsigned char//定义8位无符号数据的宏定义,可以缩短程序,可读性好。
#define uint unsigned int//定义16位无符号数据的宏定义,可以缩短程序,可读性好。
//延时
void DelayMS(uint x)//X=1,就是延时1ms。
{
    uchar i;//定义一个局部参数i。
    while(x--)//循环X--,直到0为止跳出while循环。
    {
        for(i=0;i<120;i++);//for循环,循环120次,当i>120时跳出for循环。
    }//在第一章中已解析for(i=0;i<120;i++)为什么的是1us,请移步第一章查看详解
}
//主程序
void main()//主程序
{
    P0=0xfe;//1111 1110,先P0.0灯亮就是低位灯亮
    while(1)//while循环。
    {
        P0=_crol_(P0,1); //P0的值1111 1110循环左移,最高位移出去后不丢弃,而是补到最低位,也就是说,最低位不补0。
        DelayMS(150);//延时150MS,延时要长一点,否则会导致闪烁太快,肉眼无法分辨,看到的是全亮可以用1ms试一下,就是全亮,作者已试过
    }
}

你可能感兴趣的:(51单片机,51单片机)