循环点亮LED灯

//object: 循环点亮Led灯,每次点亮一个
//writer: mike
//time: 2020.10.1

#include<reg52.h>
//用于对位的循环
#include<intrins.h>

#define uchar unsigned char
#define uint  unsigned int

void delay(uint);

void main()
{
    uchar i;
    uchar temp;
    //注意16进制,左侧才是低位,右侧是高位
    temp = 0x7f;
    //这里不能直接操作P0口,P0不是变量,直接就点亮小灯
    P1 = temp;
    while(1)
    {
        for(i=0;i<8;i++)
        {
            //每次将temp循环移动一位
            temp = _cror_(temp,1);
            //将移动好的二进制,给P0口
            P1 = temp;
            //延时函数
            delay(1000);
        }
    
    }

}

void delay(uint x)
{
    uint m, n;
    for(m=x;m>0;m--)
    {
        //120是调试出来的,大概执行120次是一个毫秒。
        for(n=120;n>0; n--);
    }


}

其中  intrins.h 头文件包含了 循环左移动,以及循环右移动函数   _crol_(),    _cror_()

原文地址:https://www.cnblogs.com/zijidefengge/p/13763682.html