1樓:匿名使用者
首先我不明白你的i是什麼引數,i<0;i<8,這個迴圈是什麼邏輯含義?然後,你的程式是想實現流水燈先迴圈左移嗎?如果是的話,在開始,p1已經設定成0xfe了,也就是最低位的燈是亮著的,設想一下,要是沒有p1|0x01,那麼,在第一次左移之後,p1=1111 1100 ,因為p1<<=1之後最低位變成0,而不是1,所以要p1|0x01。
在第二次移位之後,p1=1111 1010,此時也要|0x01,則p1=1111 1011。依次迴圈。當右移的時候|0x80其實是一樣的,只是因為左右順序變了,所以0x01變成了0x80。
我只能解釋這麼清楚了,希望你能懂。再說一個,你要是想以後找微控制器工作的話,還是去北京上海,要是不不是這兩個城市的話,還是學好自己專業,不然你會覺得現實很殘忍!
2樓:匿名使用者
其實就是想保證左移完,最低位是1,感覺可以用迴圈左移或者迴圈右移來實現,讓**看起來更清爽,
#include
#include
#define uchar unsigned char#define uint unsigned intvoid main()
3樓:匿名使用者
移到第八次的時候,不執行按位或,應該就不會有燈亮了,移到cy位去吧。
用51微控制器寫了一個流水燈程式,有一點問題,請高手解惑
4樓:匿名使用者
微控制器的流水燈程式,因為程式就這麼寫的,決定了流水燈左移7次,再右移7次,結束兩個迴圈後,才能執行下面的while(!key),按鍵才有效,而在迴圈過程中,不執行while(!key),所以按鍵無效。
下圖畫紅框內的兩個迴圈。
要想按鍵隨時有效,應該把兩個移位函式_cror_,_crol_ 放在主程中,檢測key也放在主程中,而不能這樣放一個子程式中。
5樓:a葰汰
#include
#include
#define led p2
void delay(char i);
void main() }
void delay(char i)
關於微控制器流水燈左移右移的問題?
6樓:匿名使用者
51微控制器的左移右移,首先在開始要呼叫"intrins.h"的檔案包,這個檔案包含_cror_(右移),_crol_(左移);然後通過for語句來控制;
for(m=20;m>0;m--)
for(n=20;n>0;n--)
for(k=250;k>0;k--);
理解這三句,第一句是指:m=20;m>0然後m--是真就執行:
for(n=20;n>0;n--)
for(k=250;k>0;k--);
這兩句,m--一直減,減一次,裡面就執行一次,這裡是20次。
流水燈的左右移,第一用"intrins.h"的檔案包,第二要要會定義賦值變數,第三延時,這是關鍵。
7樓:
沒什麼為什麼 就是保證每次只有一個燈亮 fe>>(8-i)保證了第i位及前為0,且第i位後面的位為1 而fe<
8樓:
是說這幾句吧:
a=led<>(8-i);
p1=a|b;
這樣寫可以防止產生錯誤吧,就像讀資料是要用異或一樣的其實不這樣也可以
就寫a=led《i;
p1=a;
不發生特殊情況時和上面一樣的
9樓:因貝**作
51微控制器內有左移右移命令,何苦自己再寫???
51微控制器新手,關於流水燈的問題、、
10樓:賓興胡昭
思路是正確的,只是注意下編碼與p1引腳線的順序,比喻0xfe換成二進位制為1111
1110
如果是低電壓控制led燈,那麼p1_0口亮,其它全滅,反之如果高電壓控制led燈,那麼p1_0口燈滅,其它全亮。
語句塊括號不匹配。
while(1)後面加大括號,如下
while(1)
-----此處也多加個大括號}}
求高手解說微控制器流水燈的電路圖(如下),我是菜鳥
11樓:匿名使用者
一個鎖存器 控制高低電平 通過軟體編寫
求基於51微控制器的流水燈的設計
摩凌文 include define uint unsigned int define uchar unsigned charsbit keya p2 1 這裡看你把按鍵設定在哪個引腳上,這個是實現功能2 sbit keyb p2 2 這個是實現功能2sbit keyc p2 7 實現功能3void...
微控制器led流水燈方向如何改變,51微控制器定時器實現流水燈,並用按鍵外部中斷控制改變流水燈的流向,這個程式怎麼寫?最好有註釋,謝謝
輕候念雲 微控制器 single chip microcomputer 是一種積體電路晶片,是採用超大規模積體電路技術把具有資料處理能力的 處理器cpu 隨機儲存器ram 只讀儲存器rom 多種i o口和中斷系統 定時器 計數器等功能 可能還包括顯示驅動電路 脈寬調製電路 模擬多路轉換器 a d轉換...
51微控制器流水燈使其倒流怎麼寫
我也不知道你那個enled p1 4 是啥意思。像這種單一i o口的操作一般會直接巨集定義一個引數,這樣寫的話就會簡便很多了。我給你寫一個吧 define led p1 void main for i 0 i 20000 i 先延時一下,讓最後一個燈看起來能是逆流的第一個燈 for k 0 k 4 ...