導航:首頁 > 操作系統 > 單片機如何做兩組流水燈

單片機如何做兩組流水燈

發布時間:2023-08-19 00:52:25

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

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

② 51單片機流水燈依次點亮循環兩次怎麼實現只循環兩次!

#include<reg52.h> // 這是下圖的程序,可以模擬 試試

#define uchar unsigned char

#define uint unsigned int

uchar i,t;

uchar code table[]={0xf6,0xed,0xdb,0xf6,0xed,0xdb}; // 發光二極體循環點亮可以有很多方法

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

void delay(uint z) // 延時程序

{

uint x,y;

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

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

}

void main()

{

t=30;

while(1)

{

t++;

if(t==100) t=10;

for(i=0;i<20;i++) // 發光二極體 循環亮

{

P1=tabled[i];

delay(250); // 調用延時程序

}

}

}

③ 求51單片機驅動32盞LED流水燈(單向流水,全部亮時閃爍兩次,雙向流水,全部亮時閃爍兩次)的C程序!謝謝

這個比較簡單吧
uchar table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

void delay();//自己寫吧 延遲一秒
void led_blink();//~~~~~~~~~~~~
void single_stream();//單向流水函數聲明
void double_stream();//~~~~~~~~

void led_blink() //全部亮時閃爍兩次

{
uchar i;
if(P3^7==0)

{ i=2;

while(i--)

{
P0=0x00;//低電平點亮
P1=0x00;
P2=0x00;
P3=0x00;
delay();
P0=0xff;//熄滅
P1=0xff;
P2=0xff;
P3=0xff;
delay();

}
}

}
void single_stream()//單向流水燈
{
uchar i;//自己定義一下 unsigned char

for(i=0;i<8;i++)
{
P0=table[i];//逐個點亮led0-7 第零組

delay();

}
for(i=0;i<8;i++)
{
P1=table[i];//第一組
delay();
}
for(i=0;i<8;i++)
{
P2=table[i];//第二組
delay();
}
for(i=0;i<8;i++)
{
P3=table[i];//第三組
delay();
}

}

void double_stream()//這個你也自己寫吧
{

}

void main()//main 函數就調用下 前面的就可以了。。

{
while(1)
{
single_stream();
led_blink();
double_stream();
led_blink();
}

}// 大概就是這樣。。我沒測試

④ 用51單片機做多隻流水燈(跑馬燈)

元件表:
12M晶振 1個
30P瓷片電容 2個
10U電解電容 1個
4.7K電阻 1個
51單片機 1個
1K電阻 N個(你要顯示的字需要多少個LED就用多少個電阻)
LED發光二極體 N個(同上)
電路板、焊錫、導線什麼的我就不說了。

硬體電路製作:
去搜索圖片「單片機最小系統」或「跑馬燈」就能找到很多電路圖,依圖做。

程序設計:
#include <reg52.h>
void delay()
{
int a,b;
for(a=245;a>0;a--)
for(b=100;b>0;b--);
}
void main()
{
int temp=0x01;
while(1)
{
P0=temp;
delay();
temp<<=1;
}
}
P0口的八隻管腳分別流水過去,但要接排阻或上拉電阻。
還有什麼不懂的,盡管追問。

⑤ 用c語言編寫單片機流水燈程序,(8個發光二極體從左至右循環點亮)

#include<reg51.h>拿薯殲

voiddelay(void)

{

unsignedinti,j;

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

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

;

}

voidmain(void)

{

while(1)

{

P3=0xfe;//第一個燈亮

delay();//延時

P3=0xfd;//第二個燈亮

delay();

P3=0xfb;//第三個燈亮

delay();

P3=0xf7;//第四個燈手爛亮

delay();

P3=0xef;//第五個燈亮

delay();

P3=0xdf;//第六個燈亮

delay();

P3=0xbf;//第七消沖個燈亮

delay();

P3=0x7f;//第八個燈亮

delay();

}

}

(5)單片機如何做兩組流水燈擴展閱讀

單片機C語言16種方式流水燈

voidmain()

{

while(1)

{

P1=0xfe;//點亮第一個發光管

Delay(5000);

P1=0xfd;//點亮第二個發光管

Delay(5000);

P1=0xfb;

Delay(5000);

P1=0xf7;

Delay(5000);

P1=0xef;

Delay(5000);

P1=0xdf;

Delay(5000);

P1=0xbf;

Delay(5000);

P1=0x7f;//點亮第八個發光管

}

}

閱讀全文

與單片機如何做兩組流水燈相關的資料

熱點內容
shell命令jar 瀏覽:301
有什麼做手帳app 瀏覽:156
phpjquery源碼 瀏覽:886
大話西遊手游源碼 瀏覽:655
javaudp代碼 瀏覽:660
linuxu盤啟動win7 瀏覽:990
如何啟用交換機dhcp伺服器 瀏覽:237
三田汽車壓縮機好嗎 瀏覽:294
馬蜂窩app偏向什麼客戶 瀏覽:366
php簡單的登錄注冊 瀏覽:554
我們接到上級命令 瀏覽:349
php本周星期一 瀏覽:65
裘錫圭pdf 瀏覽:726
android模擬器調試 瀏覽:135
sap命令大全 瀏覽:296
mysql導出數據命令 瀏覽:954
文件夾隱藏了出不來 瀏覽:564
電信網上大學源碼 瀏覽:208
rr輪轉調度演算法 瀏覽:255
我的世界無法登入伺服器怎麼辦 瀏覽:151