導航:首頁 > 操作系統 > 單片機流水燈的控制

單片機流水燈的控制

發布時間:2023-08-21 14:53:16

Ⅰ 如何在實現led流水燈時用單片機精確控制流水燈切換時間

1、首先新建一個工程(新項目)。
2、其次查看原理圖確定需求(流水燈)對應LED引腳在單片機上的哪個引腳。
3、然後編寫程序(通過查看原理圖可以看到需要控制整個P2口以控制8個LED燈)。
4、最後編譯程序,下載程序至開發板,查看效果(調試)即可。

Ⅱ 單片機如何控制流水燈每三秒循環一次

for循環三次後,執行while(1); ,這是一條死循環語句,相當於暫停指令,停止在此處。因單片機沒有暫停指令,只好用這行語句代替了。
如果3次後,需要保持亮或滅,可以換一下:
led=1;
led=0;這兩行就行了。
在實現流水燈之前,我們有必要提一點,C51代碼在寫之前,要參考電路圖來寫。拿流水燈來說,我們來看圖二,LED燈,也就是二極體,八隻LED的正極通過一根匯流排接在+5V的電壓上,再看圖一,可知八隻LED燈的負極接在LED、P2的8個I/O口上。根據二極體的導通條件可知,在單片機的IO口輸出低電平時,才能點亮LED燈。

Ⅲ 單片機中如何利用開關SW控制流水燈的啟動和停止

在單片機的某個IO腳上接一個開關SW,主程序檢測開關的狀態,當開閉合,引腳為低電平,流水燈就停止。當開關開啟,引腳為高電平,則啟動流水燈流動。

Ⅳ 單片機控制流水燈,

單片機中流水燈控制:
硬體連接很簡單,只要將8個led指示燈接在p1口上
另一端通過220歐姆的電阻接+5v電源上,就可以了。
主要靠軟體控制,簡單的可以使用左移或右移指令,將低電平0
逐漸移入寄存器中,即控制led指示燈逐漸一個一個地點亮或一個一個地熄滅。
復雜點:
可以進行花式流水控制。
例如:
可以由兩邊逐漸向內點亮
然後再由內逐漸向外一個一個熄滅。
還可以由由內逐漸向兩邊內點亮
然後再由兩邊漸向內逐一個一個熄滅。
在程序的實現上
可以把各種花式流水的p1口亮滅狀態字
事先定義成數組
然後每隔一定的時間
取出送p1口顯示。
呵呵
俺只提供給你一個號的演算法
程序就自己動手自立更生吧
滿意
就選滿意回答

Ⅳ 51單片機匯編控制8個流水燈

思路:

  1. 循環控制常亮狀態的值,將其從最高位循環到最低位。這個用於最後狀態的常亮

  2. 在常亮循環中,控制不是常亮的其它所有位進行再次循環,逐漸從最低位亮滅循環到最高位

代碼如下:

#include<reg51.h>

unsignedcharPData;//整體結果
unsignedcharCurrData;//變化的最高位

//延時,本函數是非精確延時,若需要精確延遲則需要根據本函數的匯編語句進行精確計算後調整循環體次數
voiddelay(unsignedintms){
unsignedchari;
while(ms--){
for(i=0;i<120;t++){
;
}
}
}


voidmain(){
unsignedchari=0,j=0;
PData=0x00;//全滅狀態
for(i=8;i>0;i--){//控制常亮的位置,先從最高位開始,依次循環到最低位
for(j=0;j<i-1;j++){//從最低位循環到不是常亮的最高位
P1=~(PData+(1<<j));//第i位亮
delay(500);
P1=~PData;//第i位滅
delay(500);
}
PData=PData+(1<<(i-1));//置最高位為常亮狀態
P1=~PData;
delay(500);
}
//停機
while(1){
;
}
}

Ⅵ 用單片機控制流水燈的六種方案,要程序電路圖,詳細講解

;//*********************************************************
;//實現功能:本程序實現在P0口模擬一種流水燈程序
;//*********************************************************
p_out equ P0 ;宏定義P0為p_out
org 00h ;程序的開始地址
ajmp main ;跳到main
org 030h
;//******************主函數***************************
;//描 述:實現在P0口模擬一個流水燈程序
;//設計人: lishengling24
;//****************************************************
main: ;主函數
mov sp,#50h ;設置sp堆棧的初始位置
mov a,#0feh ;初始化acc
main_1:
mov p_out,a ;點亮一個燈
mov r1,#250 ;
mov r0,#250 ;
Call delay_time;調用時間延遲子程序,上面兩句是設置延遲時間
mov p_out,#0ffh;熄滅燈
RL a ;循環左移一位準備點亮下一個燈
JMP main_1 ;跳到main_1循環
;//******************時間延遲函數**********************
;//描 述:用指令實現延時一段時間
;//入口參數:r1為高位,r0為低位,都是十六進製表示?
;//出口參數:無
;//設計人:lishengling24
;//****************************************************
delay_time:
push acc ;acc入棧
push psw ;psw入棧
mov a,r0 ;把r0賦給acc
inc r1 ;r1加1,因為djnz是先減1再比較是否為零,如果不加1
;當r1的初值為0的時候,減1後變成了0x0ff,改變了當
;初預想的延遲時間計數值
inc r0 ;道理和inc r1 一樣,當然r0和r1的初值不能為0x0ff
loop:
nop
nop
nop
nop
nop
nop
djnz acc,loop ;
mov a,r0 ;
djnz r1,loop ;
pop psw ;psw出棧
pop acc ;acc出棧
ret
end ;需要其他5種方案的程序和電路,在網路HI我。

以下是C的寫法:
//*********************************************************
//實現功能:本程序實現在P0口模擬一個流水燈程序
//*********************************************************
#include <reg51.h>
#define p_out P0 //宏定義輸出的i/o口為p0
//******************時間延遲函數**********************
//描 述:用指令實現延時一段時間
//入口參數:int i,為時間延遲參數
//****************************************************
void delay_time(int i)
{
while(i)
i--;
}
//******************主函數***************************
//描 述:實現在P0口模擬一個流水燈程序
//****************************************************
void main(void)
{
unsigned char i=0; //初始化一個局部變數為0
p_out=0xff; //初始化將要輸出的i/o口,輸出高電平,熄滅所有燈
while(1)
{
for(i=0;i<8;i++)
{
p_out=~(1<<i);//點亮一個燈,
delay_time(50000); //延遲一段時間
p_out=0xff;//熄滅所有燈
}
}
}

Ⅶ 大神求教用單片機一個按鈕控制流水燈

其實很簡單的,隨便使用一個定時/計數
器,使其工作在方式1(方便計算初值),然後寫中斷服務函數,使用_crol_()函數來反復循環做流水效果,然後在主函數最後寫while(1),一直不停掃描鍵盤函數,然後鍵盤函數定義4個按鍵,開始:trx=1,停止:trx=0,至於快慢的控制你可以在中斷函數里邊寫一個延時函數,然後按鍵3和4按下一次自增或自減1000(你可以取其他值),然後傳遞給延時函數。
有不懂的地方隨時回復我。
希望我的回答能幫助到你。

Ⅷ 51單片機匯編怎麼用四個獨立按鍵來控制流水燈的速度

不用中斷一樣的實現,而且可以有多少個按鍵就可以有多少種流水燈方式。你使用的鍵盤函數直接調用流水燈函數就可以。比如使用獨立鍵盤,if(P1.1==0) light_water(); 然後:
void light_water()
{
num=1;
for(a=0;a<8;a++)
{
P1.1=num<<1;
delay(1000); //延時;
keyboard();//執行時又不停掃描鍵盤函數;
}
}
這樣就會有一個LED從右往左移動8次;那麼當第一次流水未完時,又調用第二個流水函數light_water1就能中斷當前執行的流水函數又去執行第二個流水燈函數了。

閱讀全文

與單片機流水燈的控制相關的資料

熱點內容
計算機專業學51單片機 瀏覽:206
程序員不接受反駁 瀏覽:294
微軟自帶的壓縮軟體 瀏覽:286
中國玩家在日本伺服器做什麼 瀏覽:48
12864和單片機 瀏覽:898
25匹空調壓縮機 瀏覽:649
adkandroid下載 瀏覽:308
如何在蘋果電腦上裝python 瀏覽:327
哪個app的跑步訓練內容最豐富 瀏覽:583
廣訊通怎麼刪除文件夾 瀏覽:206
解壓的視頻化妝品 瀏覽:674
易語言新進程監視源碼 瀏覽:941
turbo碼解碼演算法 瀏覽:956
stc11f16xe單片機 瀏覽:282
linuxupdate命令行 瀏覽:578
pdf轉化成wps 瀏覽:765
php拋出錯誤 瀏覽:159
買車看車用什麼app 瀏覽:656
dos怎麼清除屏幕上的命令 瀏覽:813
壓縮褲冬天 瀏覽:449