微控制器流水燈不能迴圈,微控制器LED流水燈迴圈問題

時間 2022-03-14 00:15:17

1樓:落葉l無情

這是由於定時器設定的1ms,間隔很短,在i歸零時,counter很難落到0-100之間,而是落在100-800間,這時counter=time[0]*100顯然無法成立,移位操作沒有執行,導致流水燈停止,只有等到counter溢位後回環,才會重新恢復正常(你可以觀察一下,卡住以後等一會會自動恢復)

為了驗證這個問題,你可以將time= ,這將很大機率在按加速按鈕第一下時卡住,你還可以設定time= ,由於300和200相差不是很大,在按加速按鈕第一下時偶爾正常,偶爾卡住。

要修復這個問題也很簡單,將counter==(time[i]*100)改成counter>=(time[i]*100) 即可

2樓:匿名使用者

會不會是讀取time陣列溢位了?

把i++; //加速按鈕i&=0x03;//就是這裡出了問題

改成(i<3)?i++:i=0;

試試~~~

還有,在中斷裡用這種方式去抖是無效的,還會造成程式假死。

3樓:周軒儀加油

流水燈還弄的這麼複雜!!

4樓:匿名使用者

需要給i你完成乙份嗎

微控制器led流水燈迴圈問題

5樓:匿名使用者

#include

#include

#define uint unsigned int#define uchar unsigned charuint temp,i,cishu;

void delay(uint);

void main()

//左移

for(i=7;i>0;i--) //右移}delay(300);

temp=0xff; //兩次迴圈結束後 跳出while,執行此處的 p1口全部滅

p1=temp;

while(1);

}void delay(uint z)

6樓:濮野桖

程式好像沒得錯吧 我沒看出來 不過實驗板會迴圈執行燒寫的程式,所以 你可以看看 把跳出迴圈完的時間延時多一點 看看 是不是按照程式來的

51微控制器流水燈程式

7樓:電路diy手工

來自理科生的浪漫,用51微控制器製作心形流水燈

8樓:安迪的快樂時光

花樣流水燈的玩法,乙個51微控制器8位埠輪流輸出16顆燈珠,

9樓:匿名使用者

推薦你看郭天祥十天學會微控制器,回講實際程式的,講的挺好的

為什麼我用c51裡左移的指令不能實現流水燈的迴圈?

10樓:匿名使用者

因為普通的左移是右補零的,所以移動到最後,aa就等於0了。而_crol_是迴圈左移,aa的最高位左移後會寫入aa的最低位,所以燈看起來是流動的。

aa=0x1;

while(1)}

11樓:硬體開發

程式寫的不對,你主函式裡面

void main()

}在程式裡面寫個判斷語句移動完成後,在從新開始移動程式如下:

int main(void)}}

12樓:匿名使用者

你用的左移就是在移動一次後,在補上乙個零,最後七次移完都是零

微控制器流水燈迴圈無限迴圈,改成6次迴圈後熄滅 10

13樓:

#includereg51.h>

void delay()

void main()

while(1);}

微控制器實驗流水燈,51微控制器流水燈實驗(我用的是手把手教你學微控制器的教程)

org ooooh ljmp main org 1000h main mov a,ofeh again mov p1,a rl a lcall delay jnb p1.7,two 這裡判斷 是否為低電平,如果是就轉到 sjmp again two mov a,offh mov p1,a pp mo...

微控制器led流水燈方向如何改變,51微控制器定時器實現流水燈,並用按鍵外部中斷控制改變流水燈的流向,這個程式怎麼寫?最好有註釋,謝謝

輕候念雲 微控制器 single chip microcomputer 是一種積體電路晶片,是採用超大規模積體電路技術把具有資料處理能力的 處理器cpu 隨機儲存器ram 只讀儲存器rom 多種i o口和中斷系統 定時器 計數器等功能 可能還包括顯示驅動電路 脈寬調製電路 模擬多路轉換器 a d轉換...

51微控制器按鍵控制流水燈左移,51微控制器的c語言 左移右移怎麼用?想用來控制流水燈,請幫忙寫個完整的c程式,參考下,埠隨意

按鍵不能用while函式來寫,第八行 if k1 0 按一次執行一次函式內容 開始學習微控制器的同學們寫注意了,在執行程式後,現象不正確的時候,不要首先就找軟體的錯誤,我的經驗是從源頭開始找問題,首先你得確定你的平臺是正確的,你說是按鍵沒效果,先用萬用表測試一下你的引腳的電平,是否被拉低了如果按鍵沒...