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

51單片機花樣流水燈

發布時間:2024-08-07 03:32:51

㈠ 51單片機流水燈程序

程序如下:

#include <reg52.h>

sbit led1 = P2^0;

sbit led2 = P2^1;

sbit led3 = P2^2;

sbit led4 = P2^3;

sbit led5 = P2^4;

sbit led6 = P2^5;

sbit led7 = P2^6;

sbit led8 = P2^7;


void main()

{

int i,j;

//點亮第一個燈

led1 = 1;

led2 = 0;

led3 = 0;

led4 = 0;

led5 = 0;

led6 = 0;

led7 = 0;

led8 = 0;

//延時1秒

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

{

for(j = 0; j < 1000; ++j)

{

;//什麼也不做

}

}

//點亮第二個燈

led1 = 0;

led2 = 1;

led3 = 0;

led4 = 0;

led5 = 0;

led6 = 0;

led7 = 0;

led8 = 0;

//點亮剩餘的燈

//省略……

while(1);

}

(1)51單片機花樣流水燈擴展閱讀:

流水燈幾點說明:

void:因為該延時函數不需要返回值,所以寫為void

delay1s:該函數的函數名,命名需要符合C語言的標識符命名規則。

(): 不需要傳入參數,所以括弧中為空

至此我們可以把流水燈程序寫為以下形式:

㈡ 51單片機實現流水燈,計數器顯示燈亮的序號

51單片機實現流水燈,計數器顯示燈亮的序號。程序中用的變數ledi和b重復了,只用b就行。把主程序第二行聲明換成b,畫紅線的3行刪掉,紅箭頭的是替換。強調,原來b不能在那裡賦值為0,這樣b永遠為0,雖然有b++,下面還有b=0,又回0了。

㈢ 51單片機中如何用匯編語言編寫流水燈

流水燈就是51單片機控制led燈依次點亮的控制方式。具體程序如下:

ORG 0000H;復位啟動
AJMP START;
ORG 001BH;T1中斷
AJMP T1INT;

;定義變數========================
YSJSEQU 30H;延時計數器
LEDEQU 31H;LED控制緩沖器

;主程序==========================
START:MOV LED,#0FEH;初始化數據
MOV YSJS,#0;
MOV TMOD,#10H;定時器1工作於方式1,16位定時器
MOV TL1,#0B0H;設置定時初值
MOV TH1,#3CH;定時時間=50mS
SETB ET1;使能定時器1中斷
SETB TR1;啟動定時器1
SETB EA;開總中斷

MOV P1,LED;初始化流水燈
LOOP:JMP LOOP;循環等待中斷
T1INT:PUSH PSW;定時器1中斷程序
PUSH ACC;保護現場
MOV TH1,#3CH;定時時間=50mS
MOV TL1,#0B0H;
INC YSJS;

PUSH ACC;保護ACC
MOV A,YSJI;
CJNE A,#2,QT1;50mS*2=100mS
MOV P1,LED;
MOV A,LED;
RL A;累加器A的值循環左移1位
MOV LED,A;
MOV YSJS,#0;
QT1:POP ACC;恢復現場
POP PSW;
RETI;返回主程序
END;匯編程序結束

(3)51單片機花樣流水燈擴展閱讀:

實現流水燈的三個方法:

第一種,匯流排方法實現流水燈。這是一種比較笨但又最易理解的方法,採用順序程序結構,用位指令控制P1口的每一個位輸出高低電平,加上延時函數,即可控制每個LED燈的亮滅。

第二種,移位方法實現流水燈採用循環程序結構編程。首先在程序開始給P1.0口送一個低電平,其它位為高。然後延時一段時間再讓低電平往高位移動,這樣就實現「流水」的效果了。

第三種,庫函數實現流水燈。利用左移函數進行。

㈣ 單片機流水燈C語言程序(8個燈,依次點亮每個燈,延時500MS)

單片機流水燈C語言程序的源代碼如下:

#include //51系列單片機定義文件

#define uchar unsigned char //定義無符號字元

#define uint unsigned int //定義無符號整數

void delay(uint); //聲明延時函數

void main(void)

{

uint i;

uchar temp;

while(1)

{

temp=0x01;

for(i=0;i<8;i++) //8個流水燈逐個閃動

{

P1=~temp;

delay(100); //調用延時函數

temp<<=1;

}

temp=0x80;

for(i=0;i<8;i++) //8個流水燈反向逐個閃動

{

P1=~temp;

delay(100); //調用延時函數

temp>>=1;

}

temp=0xFE;

for(i=0;i<8;i++) //8個流水燈依次全部點亮

{

P1=temp;

delay(100); //調用延時函數

temp<<=1;

}

temp=0x7F;

for(i=0;i<8;i++) //8個流水燈依次反向全部點亮

{

P1=temp;

delay(100); //調用延時函數

temp>>=1;

}

void delay(uint t) //定義延時函數

{

register uint bt;

for(;t;t--)

for(bt=0;bt<255;bt++);

}

(4)51單片機花樣流水燈擴展閱讀

51單片機流水燈的源代碼如下

#include<reg51.h>

#include<intrins.h>

voiddelay(inta)

{

inti;

while(a--)for(i=0;i<110;i++);

}

main()

{

inti;

while(1)

{

P0=0xfe;

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

{

P0=_crol_(P0,1);

delay(500);

}

}

}

㈤ 怎樣用單片機做一個簡單的流水燈

單片機流水燈代碼:#include<reg51.h>//51頭文件void delay(int t)//定義延時函數{int j;while(t--){for(j=0;j<500;j++);}}void main(){int i;while(1){for(i=0;i<7;i++)//循環點亮LED,到第7個LED延時一會就結束循環。

在這個單片機流水燈代碼中,假設使用的是8051單片機。需要定義8個LED燈,分別連接到P1埠的不同引腳上。然後使用一個循環結構來控制這8個LED燈按照一定的順序逐個亮起,形成流水燈的效果。

具體來說,使用for循環來控制LED燈的亮滅順序。在每次循環中,通過給P1埠賦值來控制LED燈的亮滅狀態。例如,給P1埠賦值為0x01,那麼第一個LED燈就會亮起,其他LED燈則熄滅。然後使用delay函數來延遲一段時間,以便觀察到LED燈的亮滅變化。接著再給P1埠賦值為0x02,第二個LED燈就會亮起,其他LED燈則熄滅。以此類推,直到最後一個LED燈亮起為止。

最後,我們需要在程序中定義delay函數,以便實現LED燈的亮滅延遲。這個函數可以通過使用while循環來實現,需要注意的是,在實際應用中,需要根據不同的單片機型號和硬體環境來進行相應的調整和修改。

單片機流水燈的定義

單片機流水燈是一種常見的電子裝置,通過單片機控制多個LED燈以一定的順序逐個亮起,形成流水般的效果。其原理是通過編寫程序來控制單片機的輸出埠,從而控制LED燈的亮滅狀態。在實際應用中,可以使用不同的單片機型號和開發環境來實現流水燈功能,具體的實現方法會因硬體環境和軟體工具的不同而有所差異。

一般來說,實現流水燈功能需要以下步驟:首先確定單片機型號和開發環境,並熟悉指令集和寄存器配置。然後確定LED燈的連接方式,並編寫程序來控制LED燈的亮滅狀態。最後在程序中添加延時函數來實現LED燈的亮滅延遲。在編寫程序時,需要注意語法錯誤和邏輯錯誤,並進行測試和調試,以確保程序能夠正確運行並實現預期的流水燈效果。

㈥ 51單片機16路流水燈怎麼用C語言寫,並求每個步驟的講解

我給你個簡單的例子:

#include<AT89X51.H>//預處理文件裡面定義了特殊寄存器的名稱如P1口定義為P1

voidmain(void)

{

//定義花樣數據

constunsignedchardesign[32]={0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,

0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF,

0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x0,

0xE7,0xDB,0xBD,0x7E,0xFF};

unsignedinta;//定義循環用的變數

unsignedcharb;//在C51編程中因內存有限盡可能注意變數類型的使用

//盡可能使用少位元組的類型,在大型的程序中很

受用

do{

for(b=0;b<32;b++)

{

for(a=0;a<30000;a++);//延時一段時間

P1=design[b];//讀已定義的花樣數據並寫花樣數據到P1口

}

}while(1);

}

程序中的花樣數據可以自以去定義,因這里我們的LED要AT89C51的P1引腳為低電平才

會點亮,所以我們要向P1口的各引腳寫數據O對應連接的LED才會被點亮,P1口的八個引

腳剛好對應P1口特殊寄存器的八個二進位,如向P1口定數據0xFE,轉成二進制就是

11111110,最低位D0為0這里P1.0引腳輸出低電平,LED1被點亮。如此類推,大家不難算

出自己想要做的效果了。

留個郵箱給你發個入門文檔

㈦ 用51單片機寫程序,4個按鍵燈控制8個彩燈切換九種燈光效果

P1口接8個LED燈,P3口接4個按鍵K1~K4,用於控制流水燈的四種效果,模擬圖如下。

閱讀全文

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

熱點內容
devc編譯錯了怎麼辦 瀏覽:300
編譯系統都有哪些部分 瀏覽:707
資料庫技術pdf 瀏覽:232
如何把網頁部署到伺服器上 瀏覽:634
php用戶組 瀏覽:785
撫順自動數控編程軟體 瀏覽:747
如何判斷是否可以通過編譯 瀏覽:929
衛士通加密官網 瀏覽:55
程序員需要會盲打么 瀏覽:448
編譯c無法識別unsighed 瀏覽:433
怎麼給幾年前的安卓機強行刷機 瀏覽:316
天方地圓製作演算法 瀏覽:193
演算法失效分析 瀏覽:760
gcc編譯選項給gdb調試 瀏覽:590
ios和android前景好 瀏覽:66
蘋果如何藍牙傳送安卓app 瀏覽:552
方舟編譯器mod怎麼用 瀏覽:762
伺服器地址欄在哪裡 瀏覽:397
做安檢還是程序員好 瀏覽:529
程序員最火的bug 瀏覽:938