|
在點(diǎn)亮流水燈的同時,我們要對移位操作進(jìn)行了解左移在C51中操作符“<<",每執(zhí)行一次左移指令,會將最高位移入單片機(jī)寄存器的CY位(CY是進(jìn)位標(biāo)志),CY會丟棄原來的數(shù)據(jù),并且在最低為補(bǔ)0;其他位依次向左移動一位,如圖所示:
1.png (30.97 KB, 下載次數(shù): 97)
下載附件
2021-3-7 18:27 上傳
右移在C51中操作符“>>",每執(zhí)行一次左移指令,會將最低位移入單片機(jī)寄存器的CY位,CY會丟棄原來的數(shù)據(jù),并且在最高為補(bǔ)0;其他位依次向右移動一位,如圖所示:
2.png (35.01 KB, 下載次數(shù): 104)
下載附件
2021-3-7 18:27 上傳
循環(huán)左移最高位移入最低位,其他位次向左移一位
3.png (30.74 KB, 下載次數(shù): 105)
下載附件
2021-3-7 18:27 上傳
循環(huán)右移最低位移入最高位,其他位次向右移一位
4.png (35.5 KB, 下載次數(shù): 98)
下載附件
2021-3-7 18:27 上傳
下面讓我們實(shí)踐一下 #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);
}
}
|
評分
-
查看全部評分
|