㈠ 如何用AT89C51單片機點亮32個LED燈求詳細原理圖。各位幫幫忙了!!!謝謝啦!
呵呵,最簡單的,就是把四個埠的32條IO各連到一個LED的負極,然後每個LED各串一個電阻到電源.
不過這樣的話,你的單片機就不能幹別的事了.
當然也可以通過擴展,或者用矩陣,方法就很多了.
㈡ 單片機彩燈控制
ORG 0000H
MOV R1,#0FEH ;使左1燈亮的信號
MOV R6,#8 ;設置循環次數
LOOP:
MOV P1,R1
LCALL DEL_1S
MOV A,R1
RL A
MOV R1,A
DJNZ R6,LOOP ;當最右燈亮後結束循環
MOV R6,#8 ;再次設置模脊銀循環次數
LOOP1:
MOV A,R1
RR A
MOV R1,A
MOV P1,R1
LCALL DEL_1S
DJNZ R6,LOOP1 ;當最左邊的燈亮後旦宴結束循環
MOV R6,#4 ;第三次設置循環的次數 ;;;這里不用R6!!!!
LOOP2:
MOV P1,#0 ;全野悔亮
LCALL DEL_05S
MOV P1,#0FFH ;全滅
DJNZ R6,LOOP2 ;四次後結束循環
AJMP $
㈢ 單片機控制32盞燈循環顯示
按照單片機系統擴展與系統配置狀況,單片機應用系統可分為最小系統、最小功耗系統及典型系統。8051單片機是Intel公司生產的,除無片內ROM外,其餘特性與MCS-51單片機基本一樣。8051單片機都採用40引腳的直插封裝(DIP方式),在單片機的40條引腳中有2條專團悔用於主電源的引腳,2條外接晶體的引森或雀腳,4條控制或與其它電源復用的引腳,32條輸入/輸出(I/O)引腳。8051單片機的引腳除了電源、復位、時鍾接入,用戶I/O口外,其餘管腳是為實現系統擴展而設置的。
因此,本流水燈實際上就是一個帶有8個發光二極體的單片機最小應用系統,即為由單片機8051、發光二極體和必要的軟體組成的單個單片機系統。此系統利用單片機的P1.0-P1.7作為8段顯示LED的段控碼輸入,當位控線輸入高電平時對應的LED點亮。再利用單片機內部的定時器對每一個輸出口的電平做時間控制,實現每一個介面出現循環的高低電平,從而實現對每一個介面所接燈的循環控制,使32盞燈各依次亮滅。
(1)、單片機的選擇
選用8031單片機,配備11.0592MHz晶振,復位電路採用上電復位
(2)、顯示電路此早選擇
採用軟體解碼動態顯示,P0.0-P0.7作發光二極體的位選口。碼管的段選口。考慮直接用單片機I/O口作位選時可能驅動功率不夠,可採用三極體9012作驅動,共陽極數碼管顯示。 (3)、電源選擇 採用直流5V電源供電。
㈣ 單片機編程 彩燈閃爍
你可以將燈連接到p1口來實現( 假設有八個彩燈,且為共陽的);
1.輪流點亮 逐個點亮
MOV A,#11111110B
;先點亮連p1.0的燈,然後是p1.1的,一直到p1.7的,然後又點亮p1.0的
LOOP:
MOV P1,A
ACALL DELAY;你建一個延時子程序使燈亮一段時間
RL A
SJMP LOOP
2.間隔點亮
MOV A,#10101010B
;先點亮連p1.0,p1.2,p1.4,p1.6的燈,然後是p1.1,p1.3,p1.5,p1.7的
LOOP:
MOV P1,A
ACALL DELAY;你建一個延時子程序使燈亮保持一段時間
RL A
SJMP LOOP
3.全滅全亮
MOV A,#00000000B
;先全部點亮,然後再全滅
LOOP:
MOV P1,A
ACALL DELAY;你建一個延時子程序使燈亮保持一段時間
CPL A
SJMP LOOP
㈤ 怎麼用51單片機控制32個led燈但是不用完32個引腳,還要能實現很多方式的亮滅,怎麼實現。
用51單片機控制32個led燈,又不能全用32個IO引腳,還要能實現很多方式的亮滅,這很容易實現。擴展四個並行口就行了,一個並行口控制8個LED燈,最常用的是8位鎖存器74HC573,用P0口做數據線,再用P2.0~P2.3做鎖存控制線,共用12個IO腳,就可以了。剩下的引腳做其它用不受影響。而擴展的32個燈可以做任意的變化的花樣。
㈥ 51單片機能否正常驅動32盞LED燈LED燈做流水燈用。求高人解答!
驅動小功率LED是沒有問題的。1個51單片機外加4個PNP三極體(如C9012或8550),以及12個電阻就可以了。將32個LED分成4組共陽連接,採用動態掃描方式輸出驅動LED,這樣共佔用單片機12根口線。
㈦ 51單片機32個流水燈編程如何實現指定其中某一個燈亮,如何實現多種花樣亮燈
要51單片機控制32個流水燈,關鍵是要解決電路設計,只要能設計出電路來,編程實現控制指定其中某一個燈亮,並實現多種花樣亮燈,就容易了。如果只做32個流水燈,就用單片機的四個並行口,共32個IO引腳全部用上,正好控制32個流水燈。如果引腳還有其他應用,可用四片鎖存器,也可以控制32個流水燈了。
㈧ 求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();
}
}// 大概就是這樣。。我沒測試