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

單片機流水燈圖示

發布時間:2022-06-23 23:16:39

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

;//*********************************************************
;//實現功能:本程序實現在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;//熄滅所有燈
}
}
}

㈡ 如何用單片機做流水燈

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

電路的核心部分是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行

㈢ 51單片機流水燈5v怎麼畫

1、首先要設計電路圖,利用proteus軟體進行電路圖的設計。所需元器件:AT89C51單片機1個。LED-RED8個。電源VCC1個。
2、使用keil4軟體進行流水燈程序的編輯。
3、方法一編寫程序採用的是左移函數(_crol_(a,b))和右移函數(_cror_(a,b))的方法,需在前加上頭文件#include。方法二是一個比較笨的方法,需要計算出每個燈亮的位編碼。
4、總結:單片機流水燈的設計分為兩個步驟,第一步是原理圖的繪制;第二步是keil4流水燈控製程序的編寫。在寫程序的時候最好使用第一種方法,採用位移函數來進行流水燈的設計。

㈣ 51單片機8個流水燈流程圖

一單片機8個流水燈的這個流程表的話,這個你這個你要看他的一個品牌牌子型號,這樣的話才能更好的配合他的一個這個這個表。

㈤ 單片機,流水燈程序。急!有圖!

#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit key=P0^1; //用的時候需加上拉電阻
uint t;
void Delay_ms(uint z)
{
uint i,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
void Led_F() //從上往下流動
{
uchar a=0xfc; //a=11111100
while(t) //當按了一下按鍵流水燈開始
{
P1=a;
Delay_ms(500);
a=_crol_(a,2); //a數據位向左移兩位11111100->11110011
if(t==2) //如果是第二次按下按鍵則回到初始狀態
{
t=0;
P1=0xff;
break;
}
}
}
void Key_T() //鍵盤檢測
{
if(key==0)
{
Delay_ms(50);
if(key==0)
{
t++;
}
}
}
void main()
{
while(1)
{
Key_T();
Led_F();
}
}

㈥ 單片機流水燈設計程序,圖,帶開關的

開關可以裝在電源上,按下電源接通! /*************************************************************51單片機流水燈C語言源程序
文件名稱:led.c
文件說明:流水燈C程序
編寫人員:
編寫日期:程序說明:MCU採用AT89S51,外接12M晶振,P1口輸出
版權標註:*************************************************************/
#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++);
}

㈦ 如何用單片機簡單製作一個流水燈

  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--);

}

㈧ 急求一個單片機流水燈(16個燈)電路圖!!

電路如下:

將16個LED的陰極(Led-、K極)連接到單片機的IO口(P1.0、P1.1...P1.7。。。),
LED的陽極(Led+、A極)串聯一個560歐姆電阻(一共16個)到電源正極
(Vcc、5V)

如果要點亮一個Led的話(P1.0)只要
CLR P1.0

要熄滅一個Led的話(P1.0)只要
SETB P1.0

即可

夠詳細了吧?!

㈨ 求用單片機控制流水燈的最簡單的電路圖!

單片機流水燈是初學者的典型常式。不但需要實現,還需要理解,並通過實現來熟悉單片機原理及編程。因此,建議你到各種開發板網站下載專業套件,這樣,會更有助於你的學習。

閱讀全文

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

熱點內容
攻城掠地如何注銷其他伺服器 瀏覽:892
資料庫日誌文件壓縮 瀏覽:495
k3壓縮機不工作 瀏覽:728
java編譯後的文件 瀏覽:652
程序員那麼可愛追妻片段28 瀏覽:667
app怎麼上傳相冊的照片 瀏覽:467
詩經集PDF 瀏覽:919
什麼安卓車機互聯軟體最好用 瀏覽:459
列印機伺服器是什麼 瀏覽:546
upxapp是什麼軟體 瀏覽:454
程序員平均年薪40萬 瀏覽:224
java設置單元格格式 瀏覽:957
手機app怎麼主動還款 瀏覽:828
下音樂用什麼app好 瀏覽:598
什麼app能代替酷狗音樂 瀏覽:161
雨刮器怎麼連接安卓手機 瀏覽:85
colorfilterandroid 瀏覽:563
如何連接學院伺服器 瀏覽:954
除了蜜柚app還有什麼 瀏覽:341
單片機寫延時 瀏覽:422