⑴ 流水燈原理圖
AT89C51單片機流水燈c語言程序
1、首先先在proteus畫出模擬圖,方便模擬程序
2、下面來編寫程序,先來寫入頭函數
3、根據自己在proteus畫的圖,定義一下管腳根據你的原理圖進行編寫
sbit p0=P1^0;
sbit p1=P1^1;
sbit p2=P1^2;
sbit p3=P1^3;
sbit p4=P1^4;
sbit p5=P1^5;
sbit p6=P1^6;
sbit p7=P1^7;
4、然後寫一個延時函數,來調節流水燈的時間間隔延時時間自己定義
void mdelay(unsigned int t)
{
unsigned char n;
for(;t》0;t--)
for(n=0;n《125;n++)
{;}
}
5、下面就是主函數,包括流水燈的反復循環和j流水燈的方向
6、檢查沒有錯誤,編譯一下。就可以進行模擬了
單片機32位LED花樣流水燈程序及原理圖
原理圖
LED心形排布圖:
程序:
#include《reg52
⑵ 求高手解說單片機流水燈的電路圖(如下),我是菜鳥
74573是鎖存器,你可以網上查這個晶元的引腳說明。
大概是這樣,D0-D7是輸入,Q0-Q7是輸出,LE是鎖存腳(LE=0是鎖存),/OE是使能端(0使能)。
如果將LE=1,則Q0-Q7等於D0-D7。
將J14的1腳接地。
J12接P0,J21的2、3短接。
則當對應埠1可驅動LED
#define DOUT P0
sbit LE=p1^0;
DOUT=0x01; //D11亮。
⑶ 用單片機控制流水燈的六種方案,要程序電路圖,詳細講解
;//*********************************************************
;//實現功能:本程序實現在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單片機P0口驅動流水燈的電路圖
驅動電路圖??
好像有點矛盾.....驅動應該是程序吧,而不是圖...>
ps:P0不是做地址口使用時,需要加上拉電阻.......
公共端是接電源的....
⑸ 一個超級簡單的用單片機控制流水燈實驗,糾結好久就是沒有點亮。請指點。或者給一個簡單的流水燈電路圖。
給你寫個測試程序看看,LED亮不亮
#include "REG52.H"
sbit VALUE_OE = P2.5 //74HC573 [ L ] 引腳鎖存腳
int main(void)
{
VALUE_OE = 1; //打開鎖存
P1 = 0xFE; //P1.0LED亮
VALUE_OE = 0; //關閉鎖存
while(1);
}
⑹ 51單片機流水燈的程序加電路圖
#include<reg51.h>
#include<intrins.h>
//sbitLED1=P1^1;
//sfrLED2=P2;
unsignedchara;
unsignedintb;
unsignedintc;
unsignedintd;
voiddelay(intz);
voidmain()
{
while(1)
{
for(a=0x01;a!=0x00;a=a*2)
{
P2=~a;
delay(2);
}
d=0x08;
for(a=0x7f;d!=0x00;a=_cror_(a,1))
{
d=d-1;
P2=a;
delay(2);
}
for(d=0x02;d!=0x00;d--)
{
//b=b-1;
P2=0x00;
delay(2);
P2=0xff;
delay(2);
}
for(d=0x02;d!=0x00;d--)
{
//b=b-1;
P2=0xaa;
delay(2);
P2=0x55;
delay(2);
}
P2=0x18;
delay(1);
P2=0x24;
delay(1);
P2=0x42;
delay(1);
P2=0x81;
delay(1);
P2=0x42;
delay(1);
P2=0x24;
delay(1);
P2=0x18;
delay(1);
}
}
voiddelay(intz)
{
unsignedinty;
for(y=z;y!=0;y--)
{
for(b=208;b>1;b--)
for(c=37;c>1;c--){}
}
}
⑺ 求用單片機控制流水燈的最簡單的電路圖!
單片機流水燈是初學者的典型常式。不但需要實現,還需要理解,並通過實現來熟悉單片機原理及編程。因此,建議你到各種開發板網站下載專業套件,這樣,會更有助於你的學習。
⑻ 求一份單片機流水燈電路圖 越簡單越好.......
這是proteus 繪制的電路圖 按位移位方法:#include<reg51.h>
#include<intrins.h>
#define uint unsigned int
void delay(uint k);void main(){
unsigned char temp;
temp = 0xfe;
while(1){
P2=temp;
delay(500);
P2=0Xff;
delay(500);
temp = _crol_(temp,1);
}
}
void delay(uint k){
uint i,j;
for(i=k;i>0;i--)
for(j=112;j>0;j--);
}
用數組的方法:#include<reg51.h>
void delay(unsigned int i);
unsigned char dis[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f);</p><p>void main(void)<br>{<br>unsigned char i;<br>while(1)<br>{<br>for(i=0;i<8;i++)<br>}P0=dis[i];
delay(500);
}
}
}void delay(unsigned int i)
{
unsigned int j;
for(;i!=0;i--)
for(j=3000;j>0;j--);
} 你看看哪種簡單就用哪個吧
⑼ 急求一個單片機流水燈(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
即可
夠詳細了吧?!
⑽ 單片機流水燈電路
可以把64個LED做成8*8的點陣,這樣比較好,
如果再用解碼器的話,IO口可以減為3+3個
如果再用串入並出的話,IO口可以為2個