Keil软件使用及流水灯设计

Keil软件使用及流水灯设计

在点亮流水灯的同时,我们要对移位操作进行了解

左移

在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);
}
}

Keil软件使用及流水灯设计

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值