找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6970|回復: 0
打印 上一主題 下一主題
收起左側

單片機流水燈移位操作原理程序分析

[復制鏈接]
跳轉到指定樓層
樓主
ID:889082 發(fā)表于 2021-3-7 17:14 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
在點亮流水燈的同時,我們要對移位操作進行了解左移
在C51中操作符“<<",每執(zhí)行一次左移指令,會將最高位移入單片機寄存器的CY位(CY是進位標志),CY會丟棄原來的數(shù)據(jù),并且在最低為補0;其他位依次向左移動一位,如圖所示:
右移
在C51中操作符“>>",每執(zhí)行一次左移指令,會將最低位移入單片機寄存器的CY位,CY會丟棄原來的數(shù)據(jù),并且在最高為補0;其他位依次向右移動一位,如圖所示:
循環(huán)左移
最高位移入最低位,其他位次向左移一位
循環(huán)右移
最低位移入最高位,其他位次向右移一位 下面讓我們實踐一下
#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);
}
}

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表