㈠ 用單片機控制LED燈要怎樣編寫
舉一個簡單例子:
#include<reg51.h>
#include<intrins.h>
sbitkey=P1^0;
unsignedcharled=0xfe;
voiddelay(inta)
{
while(a--);
}
main()
{
while(1)
if(key)
{
P0=led;
led=_crol_(led,1)
delay(30000);
}
else
{
P0=led;
led=_cror_(led,1)
delay(30000);
}
}
㈡ 如何用單片機點亮LED燈
接好單片機的硬體電路,然後編寫程序,再然後燒寫程序,然後就可以程序了,沒問題的話就可以按你的要求點亮了
㈢ 在單片機應用系統中。LED數碼管顯示電路通常有什麼顯示方式
動態掃描。
LED燈是繼電器工作狀態指示燈,點亮代表繼電器啟動中,熄滅代表繼電器關閉,LED1是伴同蜂鳴器報警的指示燈,只要數碼管不處於設置時間狀態,都能夠用E歸零鍵進行清零操作,數碼管就會顯示00:00 (此時不是對主晶元進行復位,只是對狀態進行清零) 。
(3)單片機led掃描燈擴展閱讀:
注意事項:
檢查時若發光暗淡,說明器件已老化,發光效率太低。如果顯示的筆段殘缺不全,說明數碼管已局部損壞。
對於型號不明、又無管腳排列圖的LED數碼管,用數字萬用表的h距擋可完成下述測試工作:判定數碼管的結構形式(共陰或共陽),識別管腳,檢查全亮筆段。預先可假定某個電極為公共極,然後根據筆段發光或不發光加以驗證。
㈣ 單片機控制的LED動態掃描顯示原理
現已DS8為個位來討論,十、百、千為分別為DS7、DS6、DS5。 1、首先要了解的是此數碼管為共陰極數碼管,即三極體Q16、Q15、Q14、Q13導通時數碼管才能點亮,亦即相應的單片機P23、P22、P21、P20為低電平。 2、動態掃描顯示原理如下: (1)P23、P22、P21、P20輸出高電平,關閉所有數碼管; (2)顯示個位——把要顯示的數據送到P10~P17,P23送低電平,延時5豪秒(時間不能太長,否則數碼管會閃爍),P23送高電平; (3)顯示十位——把要顯示的數據送到P10~P17,P22送低電平,延時5豪秒(時間不能太長,否則數碼管會閃爍),P22送高電平; (4)顯示百位——把要顯示的數據送到P10~P17,P21送低電平,延時5豪秒(時間不能太長,否則數碼管會閃爍),P21送高電平; (5)顯示千位——把要顯示的數據送到P10~P17,P20送低電平,延時5豪秒(時間不能太長,否則數碼管會閃爍),P20送高電平。 (6)以此順序循環,把它做成子程序,在主循環中調用。
㈤ 51單片機 LED點陣實現文字呼吸燈 應該怎麼做
點陣的話,我想應該可以通過修改掃描的延時來實現呼吸效果。
例如:行掃描,行切換之間的延時修改,亮度會不一樣。
其實掃描對於每個led來說,也是占空比的方波。
㈥ 如何用51單片機控制多個led燈
51單片機可以一次對一個埠的8個引腳賦值 對於這種LED矩形陣列 你只能用掃描的方法做 不可能一次就顯示出想要的圖形
㈦ 用匯編語言編寫 80c51單片機 用定時中斷延時方式鍵盤掃描並led燈顯示
KEYVAL EQU30H
KEYTM EQU31H
KEYSCAN EQU32H
DAT EQU33H
DCNT EQU37H
T0L EQU38H
T0H EQU39H
SPEED EQU3AH
SCANLED EQU3BH
CHKCNT EQU3CH
DLYCNT EQU3DH
KEYCNT EQU3EH
ORG0000H
LJMPMAIN
ORG000BH
LJMPT0ISR
ORG0030H
MAIN:
MOVSP,#5FH
MOVTMOD,#01H
MOVT0L,#0F0H
MOVT0H,#0D8H
MOVTH0,#0D8H
MOVTL0,#0F0H
MOVKEYVAL,#0
MOVP2,#00H
MOVDCNT,#0
MOVSCANLED,#0
MOV33H,#10H
MOV34H,#10H
MOV35H,#10H
MOV36H,#10H
MOVCHKCNT,#11H
MOVSPEED,#100
MOVDLYCNT,#0
MOVKEYCNT,#3
SETBEA
SETBET0
SETBTR0
LOOP:
; LCALLKEYSEL
MOVA,KEYVAL
CJNEA,#0FFH,LOOP1
SJMPLOOP
LOOP1:
CJNEA,#10,LOOP2 ;「ON」啟動LED測試
MOVDCNT,#0FFH
SJMPLOOP
LOOP2:
CJNEA,#11,LOOP3 ;「=」停止測試,接受數字鍵
MOV33H,#10H
MOV34H,#10H
MOV35H,#10H
MOV36H,#10H
MOVDCNT,#0
SJMPLOOP
LOOP3:
CJNEA,#10,LOOP4 ;數字鍵
LOOP4:
JCLOOP5
LJMPLOOP
LOOP5:
MOV33H,34H
MOV34H,35H
MOV35H,36H
MOV36H,KEYVAL
LJMPLOOP
;------------------
KEYSEL:
MOV KEYVAL,#0
MOV KEYSCAN,#0EFH
LCALL GETKEY
MOV A,KEYTM
JZ KEYS1
MOV KEYVAL,A
SJMP KEYRTN
KEYS1:
MOV KEYSCAN,#0DFH
LCALL GETKEY
MOV A,KEYTM
JZ KEYS2
CLR C
ADD A,#4
MOV KEYVAL,A
SJMP KEYRTN
KEYS2:
MOV KEYSCAN,#0BFH
LCALL GETKEY
MOV A,KEYTM
JZ KEYS3
CLR C
ADD A,#8
MOV KEYVAL,A
SJMP KEYRTN
KEYS3:
MOV KEYSCAN,#7FH
LCALL GETKEY
MOV A,KEYTM
JZ KEYRTN
CLR C
ADD A,#12
MOV KEYVAL,A
KEYRTN:
LCALLCHGKEY
RET
;--------------------
GETKEY:
MOVKEYTM,#0
MOV A,KEYSCAN
MOV P3,A
NOP
MOV A,P3
ANL A,#0FH
XRL A,#0FH
JZ NOKEY
DJNZKEYCNT,NOKEY
MOVKEYCNT,#3
MOV A,P3
ANL A,#0FH
CJNE A,#0EH,NK1
MOV KEYTM,#1
SJMP NOKEY
NK1:
CJNE A,#0DH,NK2
MOV KEYTM,#2
SJMP NOKEY
NK2:
CJNE A,#0BH,NK3
MOV KEYTM,#3
SJMP NOKEY
NK3:
CJNE A,#07H,NOKEY
MOV KEYTM,#4
NOKEY: RET
;--------------------
T0ISR:
PUSHACC
CLRTR0
MOVTH0,T0H
MOVTL0,T0L
SETBTR0
LCALLKEYSEL ;掃描鍵盤
MOVDPTR,#LEDTAB
MOVA,DCNT ;段顯示
JZT000
MOVA,CHKCNT
MOVCA,@A+DPTR
MOVP2,#0FH
CPLA
MOVP0,A
INCDLYCNT
MOVA,DLYCNT
CJNEA,SPEED,T021
MOVDLYCNT,#0
INCCHKCNT
MOVA,CHKCNT
CJNEA,#1AH,T020
T020:
JCT021
MOVCHKCNT,#11H
T021:
POPACC
RETI
T000: ;數字顯示
MOVR0,#DAT
MOVA,SCANLED
ADDA,R0
MOVR0,A
MOVA,SCANLED
JNZT001
MOVP2,#01H
SJMPT0DIS
T001:
DECA
JNZT002
MOVP2,#02H
SJMPT0DIS
T002:
DECA
JNZT003
MOVP2,#04H
SJMPT0DIS
T003:
MOVP2,#08H
T0DIS:
MOVA,@R0
MOVCA,@A+DPTR
CPLA
MOVP0,A
INCSCANLED
MOVA,SCANLED
ANLA,#03H
MOVSCANLED,A
POPACC
RETI
;--------------------
CHGKEY:
MOVA,KEYVAL
JZKV16
DECA
JNZKV01
MOVKEYVAL,#7
RET
KV01:
DECA
JNZKV02
MOVKEYVAL,#4
RET
KV02:
DECA
JNZKV03
MOVKEYVAL,#1
RET
KV03:
DECA
JNZKV04
MOVKEYVAL,#10
RET
KV04:
DECA
JNZKV05
MOVKEYVAL,#8
RET
KV05:
DECA
JNZKV06
MOVKEYVAL,#5
RET
KV06:
DECA
JNZKV07
MOVKEYVAL,#2
RET
KV07:
DECA
JNZKV08
MOVKEYVAL,#0
RET
KV08:
DECA
JNZKV09
MOVKEYVAL,#9
RET
KV09:
DECA
JNZKV10
MOVKEYVAL,#6
RET
KV10:
DECA
JNZKV11
MOVKEYVAL,#3
RET
KV11:
DECA
JNZKV12
MOVKEYVAL,#11
RET
KV12:
DECA
JNZKV13
MOVKEYVAL,#12
RET
KV13:
DECA
JNZKV14
MOVKEYVAL,#13
RET
KV14:
DECA
JNZKV15
MOVKEYVAL,#14
RET
KV15:
DECA
JNZKV16
MOVKEYVAL,#15
RET
KV16:
MOVKEYVAL,#0FFH
RET
;--------------------
LEDTAB: DB0FCH ;"0" 00H
DB60H ;"1" 01H
DB0DAH ;"2" 02H
DB0F2H ;"3" 03H
DB66H ;"4" 04H
DB0B6H ;"5" 05H
DB0BEH ;"6" 06H
DB0E0H ;"7" 07H
DB0FEH ;"8" 08H
DB0F6H ;"9" 09H
DB0EEH ;"A" 0AH
DB3EH ;"B" 0BH
DB9CH ;"C" 0CH
DB7AH ;"D" 0DH
DB9EH ;"E" 0EH
DB8EH ;"F" 0FH
DB00H ;"" 10H
DB80H
DB40H
DB20H
DB10H
DB08H
DB04H
DB02H
DB01H
DB0FFH
;--------------------
㈧ 單片機控制LED燈。
嘿嘿
這兩種方法
都是可以的
都可以驅動LED指示燈。
1
關於你的LED怎麼都不亮:
原因可能是連接的方法不太對,你可以參考下述連接方式,檢查一下你的電路。
方法1:
用8050的三極體做開關電路,三極體的基極接P2.0,然後用集電極通過LED接5v電源,發射極通過220歐姆電阻接地。執行SETB
P2.0
指令可以點亮led。
方法2:
是用P1.0直接驅動led,應該讓led另一端通過220歐姆電阻接5v電源,執行CLR
P1.0
指令
會點亮led。
呵呵
趕快再試試吧
滿意後要選滿意回答啊
㈨ 單片機控制LED小燈
從你的圖看:
1。單片機輸出低電平時燈亮。燈暗只能說那些限流電阻過大,470Ω-2K之間選擇
2.你的按鍵按下後單片機掃描到高電平,如果你程序里沒有對其判斷然後讓連接燈的幾個管腳輸出高電平的話,是沒有辦法滅的。