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

單片機流水燈

發布時間:2022-01-13 23:03:49

『壹』 單片機流水燈

用匯流排操作,因為單片機的P0和P2口對應著DPTR,所可以通過這個指針來操作16個LED.這是第一個方法,第二個方法是,用其他IO口,只要組合起來為16可以了,只不過要分別控制,先控制8個IO口。再控制另外8個IO口。至於程序,只要知道流程圖就好辦了。

『貳』 單片機流水燈的解釋(匯編語言)

程序很簡單的,只不過程序編的確實不那麼規范,還有些啰嗦,有中斷那個程序更是有很多畫蛇添足的意思,既然用來中斷,按鍵來控制流水,還加什麼延時,多此一舉。給你梳理一下:

ORG0000H
LJMPMAIN
ORG0100H
MAIN:
MOVA,#01H
LOOP:
MOVP2,A
LCALLDELAY
RLA
SJMPLOOP
DELAY:
MOVR2,#250
DLY:
MOVR3,#250
DJNZR3,$
DJNZR2,DLY
RET
END

『叄』 單片機流水燈程序

程序如下:

#include <reg52.h>

sbit led1 = P2^0;

sbit led2 = P2^1;

sbit led3 = P2^2;

sbit led4 = P2^3。

讓電子信息技術與單片機技術相融合,有效提高了單片機應用效果。作為計算機技術中的一個分支,單片機技術在電子產品領域的應用,豐富了電子產品的功能,也為智能化電子設備的開發和應用提供了新的出路,實現了智能化電子設備的創新與發展。

從二十世紀九十年代開始,單片機技術就已經發展起來,隨著時代的進步與科技的發展,目前該技術的實踐應用日漸成熟,單片機被廣泛應用於各個領域。現如今,人們越來越重視單片機在智能電子技術方面的開發和應用,單片機的發展進入到新的時期。

無論是自動測量還是智能儀表的實踐,都能看到單片機技術的身影。當前工業發展進程中,電子行業屬於新興產業,工業生產中人們將電子信息技術成功運用。

『肆』 單片機流水燈的目的及意義

在如今這個科學技術發展迅猛的時代,傳統的分立元件或邏輯電路構成的控制系統正以前所未有的速度被單片機智能控制系統所代替。在電子領域尤其是自動化智能控制領域,晶元技術取得了飛速發展,使單片機技術在各種民用和工業測控等領域得到了更為廣泛的應用。

單片機憑其體積小、功能強、低成本、應用方面廣等優點,已經成為微電腦控制的主力軍。可以說,控制系統與自動控制的核心就是單片機。最能體現單片村應用價值之一的就是如今花樣百出的流水燈了。

目前,國內外對於單片機流水燈的研究,大多數是利用AT89C51單片機,軟硬體村結合,構造出最簡單的流水燈,此舉旨在拋磚引玉,廣大用戶又在此基礎上擴展出更復雜的流水燈控制,比如鍵盤控制流水花樣、控制流水燈顯示數字或圖案等等。

另外有關單片機音樂的研究,主要是針對單片機演奏音樂時音調和節拍的確定方法,以期產生更加純正的音色來。由於這兩個方面的研究比較成熟,因而就衍生出了單片機音樂流水燈的研究,詳細了解並掌握音樂流水燈的理論基礎和實踐,對於單片機的學習將會產生可估量的作用。

簡介

單片機也被稱為單片微控器,屬於一種集成式電路晶元。在單片機中主要包含CPU、只讀存儲器ROM和隨機存儲器RAM等,多樣化數據採集與控制系統能夠讓單片機完成各項復雜的運算,無論是對運算符號進行控制,還是對系統下達運算指令都能通過單片機完成。

由此可見,單片機憑借著強大的數據處理技術和計算功能可以在智能電子設備中充分應用。簡單地說,單片機就是一塊晶元,這塊晶元組成了一個系統,通過集成電路技術的應用,將數據運算與處理能力集成到晶元中,實現對數據的高速化處理。

『伍』 單片機流水燈

P0口控制,先奇數亮再偶數亮,循環三次;一個燈上下循環三次;兩個分別從兩邊往中間流動三次;再從中間往兩邊流動三次;不過這個程序實現的應該是這樣的
先奇數亮再偶數亮,循環三次;一個燈上下循環三次;兩個分別從兩邊往中間流動;再從中間往兩邊流動(延時0.1s)
#include< reg52.h>
#include< intrins.h>//頭文件
#define uint unsigned int
#define uchar unsigned char//聲明用unit代替unsigned int,下個同理
void delay();
void main()
{ uchar temp,temp1,temp2,a,b;
while(1)
{ for(b=3;b>0;b--)
{ temp=0xaa;
P0=temp;
delay();
temp=0x55;
P0=temp;
delay();//調用延時函數
}
for(a=3;a>0;a--)
{ temp=0xfe;
for(b=7;b>0;b--)
{ P0=temp;
temp=_crol_(temp,1);
delay();
P0=temp;
delay();
}
}
temp1=0xfe;
temp2=0x7f;
for(a=8;a>0;a--)
{
temp=temp1&temp2;
P0=temp;
delay();
temp1=_crol_(temp1,1);
temp2=_cror_(temp2,1);
}
}
}
void delay()
{ uint a,b;
for(a=100;a>0;a--)
for(b=100;b>0;b--);
} //延時函數
希望可以幫助到您

謝謝

『陸』 如何用單片機簡單製作一個流水燈

  1. 工具:STC系列51單片機、串口轉換器(USB轉TTL 或232轉TTL)

  2. 材料:實驗板一塊(可以買現成的,也可以買麵包板自己搭建),電阻、LED燈 若干,5V電源等。

  3. 以下程序可以直接用Keil C 直接編譯執行。

//可以通過左移函數_crol_()和右移函數_cror_()來實現LED等的來迴流動。


//具體實現方法可以參考如下程序:


#include<reg51.h>

#include<intrins.h>

#defineuintunsignedint

#defineucharunsignedchar

voiddelay(uinta);

voidmain()

{

P1=0xfe;

while(1)

{

//向左循環點亮LED

for(i=0;i<7;i++)

{

P1=_crol_(P1,1);//左移一位,點亮下一位LED

delay(55);

}

//向右循環點亮LED

for(i=0;i<7;i++)

{

P1=_cror_(P1,1);//右移一位,,點亮上一位LED

delay(55);

}

}

}

//延時函數,延時a毫秒

voiddelay(uinta)

{

uintx,y;

for(x=a;x>0;x--)

for(y=110;y>0;y--);

}

『柒』 單片機,流水燈

下圖為主控晶元和流水燈模塊的原理圖。流水燈模塊接在單片機的P1口,由原理圖可以知道,在P1口給一個低電平即可點亮LED燈。相反,如果要LED燈熄滅,就要把P1口的電平變為高電平即可。要實現流水燈功能,我們只要將LED1~LED8依次點亮、熄滅,依始類推,8隻LED變會一亮一暗的做流水燈了。

基於單片機的流水燈介紹_51單片機流水燈的五種實現方法

基於單片機的流水燈介紹_51單片機流水燈的五種實現方法

實現8個LED流水燈程序用中文表示為:P1.0低、延時、P1.0高、P1.1低、延時、P1.1高、P1.2低、延時、P1.2高、P1.3低、延時、P1.3高、P1.4低、延時、P1.4高、P1.5低、延時、P1.5高、P1.6低、延時、P1.6高、P1.7低、延時、P1.7高、返回到開始、程序結束。

1、通過改變賦值實現流水燈

void main()

{ while(1) {

P2=0xfe;

delay1ms(500); P2=0xfd; delay1ms(500); P2=0xfb;

delay1ms(500); P2=0xf7; delay1ms(500); P2=0xef; delay1ms(500); P2=0xdf;

delay1ms(500); P2=0xbf; delay1ms(500); P2=0x7f;

delay1ms(500); } }

2、通過公式運算實現流水燈

void main() {

while(1) {

uinta,b=1; P2=0xfe; delayms(500); for(a=0;a<7;a++)

P2-=b; // P2=P2-b delayms(500); b=b*2; //都化為同一類型進制運算 } } }

3、通過操作符<<與「|」實現流水燈 (通過移位實現流水燈)

void main() {

uchara,i;

while(1) {

a=0xfe; //點亮第一位LED燈 for(i=0;i<8;i++)

{ P2=a;

a=a<<1; //左移一位

a=a|0x01; //左移一位後與0x01相或,保證左移後最低位為1 delay_ms(500); } } }

4、通過庫函數_crol_(字元左移)實現流水燈

void main()

{

uint a; a=0xfe; while(1) {

P2=a;a=_crol_(a,1); delay_ms(500); } }

5、採用數組實現流水燈

uchar code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

void main(void) {

uchari;

while (1) {

for(i=0;i<8;i++) //循環點亮8隻LED燈 {

P2=table[i];

delay_ms(500); //延時500毫秒 } } }

『捌』 什麼是單片機流水燈

就是單片機驅動多個LED燈,亮的時候順序亮,滅的時候也是順序滅,看起來就像流水一樣。

『玖』 如何用單片機做流水燈

因為電路用單片機控制,所以電路非常簡潔。其電路原理圖見下圖,印製板圖如下圖所示。

電路的核心部分是AT89C2051單片機,前面提到它有Pl和P3兩組I/O口,我們這里只用到Pl口,共8個引腳。圖中Cl、R9組成典型的上電復位(即在加電時單片機復位)電路,XTAL、C2、C3與AT89C2051片內振盪電路組成時鍾振盪器。值得注意的是,C2、C3的容量不能與圖中數值偏差太大,否則可能引起不起振或振盪不穩定。XTAL的頻率可以在4-20MHz之間,不過,頻率的變化會導致程序運行速度的變化,這樣就需要調整延時子函數的參數。事實上,不調整參數亦可,只是此時延遲時間不再是1秒,其延遲時間會隨著XTAL頻率的降低而增加。

二、軟體部分

本程序包含兩個函數,一個是主函數,另一個是延時子函數。源程序如下(為了便於講解,我們為每行程序加上了編號):

程序各行作用如下:

00行:把AT89C2051的頭文件「AT89x051.H」包含進來。

01行:聲明Delay()延時子函數,該函數有一個無符號整型參數k,同時函數前面的void表明函數不返回函數值。

02行:延時子函數的開始,同時聲明兩個無符號整型變數i和j。

不過請注意,這里沒有象上期的程序一樣,把表示函數開始的「{」單獨成行,而是把下一行寫在一起了。事實上,寫C程序的時候,可以把多行寫作一行,C編譯器只要遇到分號就認為是一行語句的結束。

當然,我們不能因為C程序有這個特點,就隨意把多行合作一行書寫,實際書寫C程序的時候,還是要養成良好的程序書寫習慣,按照約定俗成的原則來書寫。

03行:聲明for()循環。這個循環的初始條件是i=0,終止條件是i<k,循環計數是每循環一次,用手計數的變數i加1。因此,這個循環的循環次數就是k次。這樣,只要改變k的值(即改變Delay()延時子函數的參數k的值),就可以很容易地控制循環次數,從而獲得不同的延時時間。

04行:聲明嵌套在03循環中的一個新的for()循環,這個循環與上一個循環相似,其循環次數是120次。本循環與上一個循環嵌套後,使得總的循環次數達120×k次。

05行:第一個分號,表示L條空語句,佔用一個機器時間,以實現延時的目的。後面的兩個「}」中,第一個「}」是04行for()循環的結束標志,程序遇到它時,將自動返回04行,使用於循環計數的變數j加1,同時判斷j是否小於120,如果否,則轉入05行;第二個是03行for()循環的結束標志,程序遇到它則會返回03行

閱讀全文

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

熱點內容
精品php源碼 瀏覽:958
自己編寫雲伺服器搶紅包 瀏覽:201
java解壓縮文件加密 瀏覽:886
dlink列印伺服器默認地址 瀏覽:351
php休眠函數 瀏覽:371
金蝶如何打開伺服器 瀏覽:764
e4a手游輔助源碼 瀏覽:776
什麼app可以實時直播 瀏覽:105
蘋果13的app閃退什麼原因 瀏覽:774
尾盤選股源碼公式 瀏覽:449
php日期運算 瀏覽:930
天龍八部長歌伺服器什麼時候開的 瀏覽:198
鬼泣4模型在那個文件夾 瀏覽:228
單片機的串列口 瀏覽:57
phpjson轉化為數組 瀏覽:267
pdf導入excel 瀏覽:427
蘋果xsmax信任app在哪裡設置 瀏覽:52
自動外鏈php源碼 瀏覽:244
我的世界新手獎勵箱命令 瀏覽:145
linux更新vim 瀏覽:997