找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5986|回复: 0
收起左侧

单片机流水灯移位操作原理程序分析

[复制链接]
ID:889082 发表于 2021-3-7 17:14 | 显示全部楼层 |阅读模式
在点亮流水灯的同时,我们要对移位操作进行了解左移
在C51中操作符“<<",每执行一次左移指令,会将最高位移入单片机寄存器的CY位(CY是进位标志),CY会丢弃原来的数据,并且在最低为补0;其他位依次向左移动一位,如图所示: 1.png
右移
在C51中操作符“>>",每执行一次左移指令,会将最低位移入单片机寄存器的CY位,CY会丢弃原来的数据,并且在最高为补0;其他位依次向右移动一位,如图所示: 2.png
循环左移
最高位移入最低位,其他位次向左移一位
3.png
循环右移
最低位移入最高位,其他位次向右移一位 4.png 下面让我们实践一下
#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);
}
}

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表