标题: 单片机流水灯移位操作原理程序分析 [打印本页]

作者: zq0109    时间: 2021-3-7 17:14
标题: 单片机流水灯移位操作原理程序分析
在点亮流水灯的同时,我们要对移位操作进行了解左移
在C51中操作符“<<",每执行一次左移指令,会将最高位移入单片机寄存器的CY位(CY是进位标志),CY会丢弃原来的数据,并且在最低为补0;其他位依次向左移动一位,如图所示:
右移
在C51中操作符“>>",每执行一次左移指令,会将最低位移入单片机寄存器的CY位,CY会丢弃原来的数据,并且在最高为补0;其他位依次向右移动一位,如图所示:
循环左移
最高位移入最低位,其他位次向左移一位
循环右移
最低位移入最高位,其他位次向右移一位 下面让我们实践一下
#include <REG51F.H>                                             //以51为例
#include <intrins.H>                                            //引入_crol_
void Delay100ms(unsigned char cnt);
void main(){
    P1 = 0xfe;                                                  //赋值 11111110
    while (1){
        Delay100ms(20);
        P1 = _crol_(P1,1);
    }
}
void Delay100ms(unsigned char cnt)      //@12.000MHz
{
    unsigned char i, j;
    while(cnt--){
    i = 195;
    j = 138;
    do
    {
        while (--j);
    } while (--i);
}
}

https://www.bilibili.com/video/av971977070/?zw






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1