久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > c51循環移位的淺談

c51循環移位的淺談

作者: 時間:2016-11-18 來源:網絡 收藏
如果學習單片機,最基本的考題就是流水燈了,呵呵,可是有時候一個很厲害的工程師,還真是不好弄出來,當然,我不是工程師,可是學習51單片機也有很長時間了,回想起當初學習51的時候,一直都是沒有自己的核心的東西,今天就談談c51循環移位的見解

記得如果你打開intrins.h(51自帶的一個頭文件),你會發現其中有關于定義_crol_()(字符循環左移函數)(一般我們用的多的是這個,呵呵),還有一個是_cror_()(字符循環右移函數)

本文引用地址:http://cqxgywz.com/article/201611/315830.htm

可是,如果你去面試的時候,這個時候,你難道還用它自帶的循環函數么?當然不能了。真是的(有時候我們自己小組出的筆試題就是流水燈,可是我卻緊鎖眉頭,感覺很是窩囊。咳,今天就把源程序寫出來。)這時候就要用到你的c語言知識了,呵呵。

假如說是共陰極數碼管的話:

程序可以這樣(只寫主要算法):

while(1)

{

temp=0x01;

P1=temp;

delay(100); //延時100ms

for(i=1;i<8;i++)

{

temp=temp<<1;

P1=temp;

delay(100);

}

}

可是假如是共陽極流水燈的話,就得寫成這樣,更好些:

while(1)

{

temp=0xfe;

P1=temp;

delay(100);

for(i=1;i<8;i++)

{

P1=(temp<>(8-i);

delay(100);

}

}

看到沒有,其中核心的一條語句就是 temp=temp<<1;P1=temp;和P1=(temp<>(8-i);,其實第一個可以用第二個代替,不過對于共陰極的太過簡單,直接寫出來就行了,可是對于共陽極的話,就得思考思考了,先左移,然后和右移的數進行相或,這是相當經典的(8次)。呵呵,可能還有更經典的,以后有時間補充上,呵呵。



關鍵詞: c51循環移

評論


技術專區

關閉