導航:首頁 > 編程語言 > led音樂編程

led音樂編程

發布時間:2022-09-03 22:17:39

單片機中,如何運用C語言來編個:音樂節奏控制LED點陣的變化有沒有音律代碼的

我以前做出來了生日快樂歌加流水燈。但是如果單純的用音樂節奏控制led是實現不了的?因為單片機的執行順序是逐條的。要麼先唱歌,要麼流水燈。只有引用單片機中時間飛輪這個函數,才能將兩個功能穿插執行。沒准你的可以實現,音律代碼是數組,執行一個音後中斷去執行一次點陣,的確很復雜,需要單片機速率高,才能聽著舒服。

Ⅱ LED怎麼編程

LED本身只是一種電致發光器件,本質上它是一個二極體,唯一的功能是通過電流時發光(把電能轉變成光能)。它是不需要任何「編程」的。

LED需要專用的驅動器晶元來供給電源。部分驅動器晶元是可編程的,通過寫入程序,它可以控制LED元件點亮、熄滅或發出不同亮度的光;另外絕大多數驅動晶元帶有使能端,這個埠可以與多種單片機、介面電路相連,從而接受來自單片機或其他介面電路的指令來控制LED的發光狀態。這時的編程,是對單片機或其他上位機而言的。

Ⅲ 如何使LED燈隨著單片機播放的音樂閃爍是隨著音樂閃爍

這個應該需要一個演算法,把音樂的節奏和LED的亮滅頻率結合起來,音樂緩LED就慢閃,音樂快LED就快閃。

Ⅳ 用匯編語言寫了一段LED閃亮的功能,想把它放到音樂盒程序中去,我該怎麼放才能讓它一直有閃亮作用

網路個流水燈程序就行了,把輸出引腳改到你接燈的引腳上。放在主循環里,只要有電就會一直有閃亮作用。

Ⅳ 你好,我想知道怎麼把編好的音樂代碼放到編好的LED顯示代碼中,讓他們同時運行

你編好的音樂代碼,那是只播放音樂的程序。但要與LED顯示程序同時運行,那音樂代碼就直接和LED顯示程序簡單的合在一起的。需要對音樂代碼做些改動,並採用中斷方式。原代碼是用定時器產生音頻信號的,定時器中斷程序改成中斷方式才行。

Ⅵ 用匯編語言編寫一個跑馬燈音樂程序,用89C51單片機的P1.0到P1.7接八個LED

注意字元表未經驗證, 請自行調試

#include <AT89X51.H>
#define uchar unsigned char
#define uint unsigned int
const unsigned char design[16]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x40,

0x20,0x10,0x08,0x04,0x02,0x10,0x00};

void delay_1ms(uint x)
{
uint i,j;
for (j=0;j<x;j++)
for (i=0;i<110;i++);

}
void set_led(uint jiange)
{
uchar i;

for (i=0;i<16;i++);
{

P1=design[i];
delay_1ms(jiange);
}

}
void main(void)
{
uint jg_ms;

jg_ms=500;

set_led(jg_ms);
jg_ms=200;
set_led(jg_ms);
jg_ms=500;
set_led(jg_ms);
}

Ⅶ 如何製作隨音樂節奏閃爍的LED燈組

這種LED隨音樂閃爍,效果上類似於音響設備的電平指示器。電路很多,可用分立元件,也可用現成的IC,如圖所示:此圖可接21隻LED,排成往兩邊閃的效果,中間一隻LED長亮,作為電源指示。輸入端接音頻信號,信號弱,LED閃的少,信號強,LED閃的多,直至閃到頭。

使LED燈隨音樂節奏閃動;
LED燈可以通過開關電路如三極體開關電路、可關斷可控硅電路對其電源進行控制,問題在於取得隨音樂變化的控制電壓,以控制連接LED燈的開關電路,使燈亮滅。控制電壓可以用電壓比較電路,例如兩個以LED燈為負載的三極體開關電路,其中基極預置的偏壓不同,音頻輸出電壓當通過電容同時偶合到這兩電路基極時,偏置電壓較高的一路得到稍低的音頻電壓時便導通,對應LED燈點亮,而偏置電壓低的一路則需要較大的音頻電壓才得到導通;這樣,兩路燈便可以跟隨輸出大小閃爍;或者,兩路一樣偏置的開關電路,分別由高、低音分頻器驅動,則開關電路由不同頻率電壓控制,燈光跟隨頻率閃爍。
實際上,有現成的由輸出音量控制的LED燈閃爍電路,見來自網路的附圖;
如果控制彩燈功率較大,使用它來控制固態繼電器就可以擴大輸出功率了。

Ⅷ 單片機對於音樂的編程中 ,音符的十六位數據表是怎樣

只有音樂發聲匯編程序,沒有加入LED燈,供參考。數據代碼已改為小星星發聲
;**********************************************
ORG 0000H
SJMP MAIN
ORG 0BH
AJMP TIME0

;*************主程序************************

MAIN: MOV SP,#60
MOV TMOD,#01H ;T0定時工作方式
MOV IE,#82H ;CPU 中斷允許,T0中斷允許

START0: MOV 30H,#00H ;TABLE 相對地址指針
NEXT: MOV A,30H
MOV DPTR,#TABLE ;到TABLE處取 簡譜碼 節拍 碼
MOVC A,@A+DPTR
MOV R2,A ;取到的簡譜碼 節拍碼 暫存於R2中

JZ ENDF ;取到 00 結束

ANL A,#0FH ;否,取低四位 節拍 碼
MOV R5,A ;將節拍碼存於R5中
MOV A,R2 ;簡譜碼 節拍 碼 給A
SWAP A ;高4位 與 低4位 交換
ANL A,#0FH ;取簡譜 碼
JNZ SING ;取到的簡譜 碼不是0,則去發聲
CLR TR0 ;取到0 則不發聲
SJMP DLY1 ;節拍延時子程序( 隨節拍碼變化,延時時間不同)

;---------------發聲-----------------------
SING: DEC A ;取到的簡譜碼減1
;(簡譜碼計數值16位數據存儲首地址從TABLE1 《相對地址》0處開始放起,所以要減1)
MOV 22H,A ;存入(22H)中
RL A ;乘2 因為取的數據占兩位元組(16位)
;所以指針增加量要乘2

MOV DPTR,#TABLE1
;...........簡譜碼轉換為相應定時器16位計數值.............
MOVC A,@A+DPTR ;到TABLE1取相應的高位元組計數值
MOV TH0,A ;高位元組計數值存入TH0和(21H)中
MOV 21H,A
MOV A,22H ;減1的簡譜碼給A
RL A ;乘2 因為取的數據占兩位元組(16位)
;所以指針增加量要乘2
INC A ;A 增加 取下一個位元組計數值

;...........簡譜碼轉換為相應定時器16位計數值.............
MOVC A,@A+DPTR ;到TABLE1取相應的低位元組計數值
MOV TL0,A ;低位元組計數值存入TL0和(20H)中
MOV 20H,A
SETB TR0 ;啟動T0定時器讓喇叭發出不同頻率聲音

;---------------節拍延時-------------------
DLY1: ACALL DELAY ;基本單位時間為1/4拍 187ms
INC 30H ;取下一個簡譜碼 節拍 碼
SJMP NEXT

;---------------歌放完結束---------------
ENDF: CLR TR0 ;關閉T0定時器
AJMP START0 ;反復循環

;****T0中斷子程序(用來驅動喇叭發出不同頻率聲音)**************
TIME0: PUSH ACC
PUSH PSW
MOV TL0,20H ;重裝計數值
MOV TH0,21H
CPL P3.7 ;驅動發聲
POP PSW
POP ACC
RETI

;******************節拍延時187ms****************************
DELAY: MOV R7,#187 ;187ms延時子程序
DLY2: MOV R4,#02
DLY3: MOV R3,#248
DJNZ R3,$
DJNZ R4,DLY3
DJNZ R7,DLY2
DJNZ R5,DELAY
RET

;*******音符T值表(用來讓定時器發出不同的頻率)**DW 表示一個 計數值 占兩個位元組存儲單元***************

TABLE1: DW 64260,64400,64524,64580,64684 ;低音SO 低音LA 低音SI /中音DO 中音RE
DW 64777,64820,64898,64968,65030 ;中音MI 中音FA 中音SO 中音LA 中音SI
DW 65058,65110,65157,65178,65217 ;高音DO 高音RE 高音MI 高音FA 高音SO

;*********簡譜碼 節拍碼(高4位簡譜碼 ,低4位節拍碼)*************

TABLE: DB 44H,44H,84H,84H ; 1 1 5 5
DB 094H,094H,88h ; 6 6 5 -

DB 74H,74H,63H,63H ; 4 4 3 3
DB 52H,52H,48h ; 2 2 1-

DB 84H,84H,74H,74H ; 5 5 4 4
DB 64H,64H,58h ; 3 3 2-

DB 84H,84H,74H,74H ; 5 5 4 4
DB 64H,64H,58h ; 3 3 2-

DB 44H,44H,84H,84H ; 1 1 5 5
DB 094H,094H,88h ; 6 6 5 -

DB 74H,74H,63H,63H ; 4 4 3 3
DB 52H,52H,48h ; 2 2 1-

END

加入了LED燈,水平有限,效果有點不太好
;**********************************************
ORG 0000H
SJMP MAIN
ORG 0BH
AJMP TIME0

;*************主程序************************

MAIN: MOV SP,#60
MOV TMOD,#01H ;TO定時工作方式
MOV IE,#82H ;CPU 中斷允許,TO中斷允許

START0: MOV 30H,#00H ;TABLE 相對地址指針
NEXT: MOV A,30H
MOV DPTR,#TABLE ;到TABLE處取 簡譜碼 節拍 碼
MOVC A,@A+DPTR
MOV R2,A ;取到的簡譜碼 節拍碼 暫存於R2中

JZ ENDF ;取到 00 結束

ANL A,#0FH ;否,取低四位 節拍 碼
MOV R5,A ;將節拍碼存於R5中
MOV A,R2 ;簡譜碼 節拍 碼 給A
SWAP A ;高4位 與 低4位 交換
ANL A,#0FH ;取簡譜 碼
JNZ SING ;取到的簡譜 碼不是0,則去發聲
CLR TR0 ;取到0 則不發聲
SJMP DLY1 ;節拍延時子程序( 隨節拍碼變化,延時時間不同)

;---------------發聲-----------------------
SING: DEC A ;取到的簡譜碼減1
;(簡譜碼計數值16位數據存儲首地址從TABLE1 《相對地址》0處開始放起,所以要減1)
MOV 22H,A ;存入(22H)中
RL A ;乘2 因為取的數據占兩位元組(16位)
;所以指針增加量要乘2

MOV DPTR,#TABLE1
;...........簡譜碼轉換為相應定時器16位計數值.............
MOVC A,@A+DPTR ;到TABLE1取相應的高位元組計數值
MOV TH0,A ;高位元組計數值存入TH0和(21H)中
MOV 21H,A
MOV A,22H ;減1的簡譜碼給A
RL A ;乘2 因為取的數據占兩位元組(16位)
;所以指針增加量要乘2
INC A ;A 增加 取下一個位元組計數值

;...........簡譜碼轉換為相應定時器16位計數值.............
MOVC A,@A+DPTR ;到TABLE1取相應的低位元組計數值
MOV TL0,A ;低位元組計數值存入TL0和(20H)中
MOV 20H,A
SETB TR0 ;啟動T0定時器讓喇叭發出不同頻率聲音

;---------------節拍延時-------------------
DLY1: ACALL DELAY ;基本單位時間為1/4拍 187ms
INC 30H ;取下一個簡譜碼 節拍 碼

CPL P1.0 LED燈 閃爍
CPL P1.1
CPL P1.2
CPL P1.3
CPL P1.4
CPL P1.5
CPL P1.6
CPL P1.7

SJMP NEXT

;---------------歌放完結束---------------
ENDF: CLR TR0 ;關閉T0定時器
AJMP START0 ;反復循環

;****T0中斷子程序(用來驅動喇叭發出不同頻率聲音)**************
TIME0: PUSH ACC
PUSH PSW
MOV TL0,20H ;重裝計數值
MOV TH0,21H
CPL P3.7 ;驅動發聲
POP PSW
POP ACC
RETI

;******************節拍延時187ms****************************
DELAY: MOV R7,#187 ;187ms延時子程序
DLY2: MOV R4,#02
DLY3: MOV R3,#248
DJNZ R3,$
DJNZ R4,DLY3
DJNZ R7,DLY2
DJNZ R5,DELAY
RET

;*******音符T值表(用來讓定時器發出不同的頻率)**DW 表示一個 計數值 占兩個位元組存儲單元***************

TABLE1: DW 64260,64400,64524,64580,64684 ;低音SO 低音LA 低音SI /中音DO 中音RE
DW 64777,64820,64898,64968,65030 ;中音MI 中音FA 中音SO 中音LA 中音SI
DW 65058,65110,65157,65178,65217 ;高音DO 高音RE 高音MI 高音FA 高音SO

;*********簡譜碼 節拍碼(高位簡譜碼 ,低位節拍碼)*************

TABLE: DB 44H,44H,84H,84H ; 1 1 5 5
DB 094H,094H,88h ; 6 6 5 - -表示有節拍

DB 74H,74H,63H,63H ; 4 4 3 3
DB 52H,52H,48h ; 2 2 1-

DB 84H,84H,74H,74H ; 5 5 4 4
DB 64H,64H,58h ; 3 3 2-

DB 84H,84H,74H,74H ; 5 5 4 4
DB 64H,64H,58h ; 3 3 2-

DB 44H,44H,84H,84H ; 1 1 5 5
DB 094H,094H,88h ; 6 6 5 -

DB 74H,74H,63H,63H ; 4 4 3 3
DB 52H,52H,48h ; 2 2 1-

END

Ⅸ 如何用單片機做出用音樂節奏來控制LED燈

LED隨著音樂節奏閃爍嗎?
用不著單片機來做,用簡單的RC電路就可以了。
1、驅動信號來源於音樂聲源,無論是前級還是後級都可以;
2、加入RC電路,形成音樂信號的包絡線。換句話說,就是減低音樂頻率,形成一個隨幅度變化的信號。因為音頻信號變化太快,LED無法快速反應。
3、用功率集成電路或者大功率三極體作為LED
驅動。將電路無音頻信號時調節為LED臨界導通狀態,這樣隨著音頻信號的強弱,LED就會隨著節奏閃爍。

閱讀全文

與led音樂編程相關的資料

熱點內容
海南壓縮機在哪裡 瀏覽:487
電腦文件夾清晰的文件結構 瀏覽:837
如何把蘋果手機的app轉到安卓 瀏覽:303
java同步並發 瀏覽:249
fw壓縮圖片 瀏覽:256
淘寶申請源碼靠譜嗎 瀏覽:872
androidupdater 瀏覽:635
c2d游戲源碼大全可復製版 瀏覽:771
電腦怎樣重置網關命令 瀏覽:411
winftplinux 瀏覽:335
推特app界面如何設置成中文 瀏覽:452
太空工程師轉子編程屬性 瀏覽:32
windowscmd關機命令 瀏覽:342
雲桌面只要伺服器裝一套軟體 瀏覽:247
電腦右鍵按到什麼導致文件夾全屏 瀏覽:454
我的世界如何製造伺服器主城 瀏覽:365
linuxssh連不上 瀏覽:297
永宏plc用什麼編程電纜 瀏覽:371
win激活命令行 瀏覽:886
新手學電腦編程語言 瀏覽:893