導航:首頁 > 操作系統 > 怎麼自己做音頻顯示單片機

怎麼自己做音頻顯示單片機

發布時間:2023-09-19 11:55:36

A. 怎麼用單片機播放有人唱的音樂

我知道有幾種方法。一是用單片機通過數模轉換的方法播放音樂文件。如WAV格式文件。但可能要涉及WAV格式和讀取外部數據(如SD卡)等問題。二是利用MP3播放專用單片機,如AT89C51SND1C來播放mp3格式的文件。三是可以利用音樂錄放晶元來實現,如ISD4004系列單片語音錄放電路或ZY1420B晶元來做。用單片機來控制ISD4004來錄取或播放各種音樂。第三種方法比較容易實現,只要掌握了ISD4004的錄放指令即可,語音數據的存儲都存在該晶元內。不過我沒實際做過,不能提供太具體的方法。你可以去查一下。

B. 請教做單片機作音頻電平指示燈的原理及程序

設計思路:將聲音輸出的信號處理後輸入到單片機,使用AD/DA轉換或者TWI(12C )都可以(具體多看看相關單片機的手冊),經單片機輸出控制你的LED等就行。還有就是建議一下:學單片機不是用花多少錢的問題(理論上200元也夠啦),關鍵是學習實踐的問題,一定要多做實踐,多試驗,是反復辛苦實踐的過程,錢不是關鍵啊!

C. 如何通過單片機讀取音頻並通過LED顯示出來

用AD,然後自己做演算法,驅動LED就可以了

D. 單片機怎麼做一個錄音,然後傳數據到電腦或者手機上面的

單片機本身不能進行高速AD採集和大容量儲存,需用專用的音頻採集模塊,數據要存到SD卡上 。並且單片機的傳輸要求比較高,最好用STM32單片機,上面有數字音頻介面。可以參考野火或正點原子STM3F4開發板的相關教程。

E. 51單片機如何一邊用蜂鳴器播放音樂,一邊用LCD顯示字元啊

看你的這個設計意圖,好像是要設計一個能顯示歌詞的音頻播放器。這樣的東西,你可以這樣考慮,每播放一個小節的譜子,然後給LCD送這一個段的歌詞。順便讓整個屏幕的歌詞移動一定的距離。這樣要看具體的歌曲,你要仔細規劃下歌詞的顯示次序。
對於51系列的單片機屬於單cpu的器件。要實現這樣的多任務,就是變播放變顯示,只有一個辦法,那就是分時復用。簡單來說就是主要時間播放音樂,每一個小節的間隙給LCD送顯示內容,然後立即又返回去播放音樂。。。如此循環。
如果是2個人合作的,那要不就弄2個51單片機。一個用來播放音樂,一個用來顯示。2個之間可以通過串口共享數據資源。這樣就相當於現在的雙核的桌面PC/

F. 誰能給我介紹下 單片機音樂播放器 是怎麼實現 播放音樂 功能的 其原理 重謝


電路連接很簡單,我用的是P3.0埠接個蜂鳴器就可以了(你可以根據你的具體硬體連接去改下
音樂程序的設計原理和程序如下:
設計原理
⑴ 總體原理:
樂曲中不同的音符,實質就是不同頻率的聲音。通過單片機產生不同的頻率的脈沖信號,經過放大電路,由蜂鳴器放出,就產生了美妙和諧的樂曲。
⑵ 單片機產生不同頻率脈沖信號的原理:
1)要產生音頻脈沖,只要算出某一音頻的脈沖(1/頻率),然後將此周期除以2,即為半周期的時間,利用定時器計時這個半周期的時間,每當計時到後就將輸出脈沖的I/O反相,然後重復計時此半周期的時間再對I/O反相,就可以在I/O腳上得到此頻率的脈沖。
2)利用8051的內部定時器使其工作在計數器模式MODE1下,改變計數值TH0及TL0以產生不同頻率的方法如下:
例如,頻率為523Hz,其周期天/523 S=1912uS,因此只要令計數器計時956uS/1us=956,在每計數956次時就將I/O反接,就可得到中音DO(532Hz)。
計數脈沖值與頻率的關系公式如下:
N=Fi/2/Fr
(N:計數值,Fi:內部計時一次為1uS,故其頻率為1MHz,Fr:要產生的頻率 )
⑶ 其計數值的求法如下:
T=65536-N=65536-Fi/2/Fr
計算舉例:
設K=65536,F=1000000=Fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的計數值。
T=65536-N=65536-Fi/2/Fr=65536-1000000/2/Fr=65536-500000/Fr
低音DO的T=65536-500000/262=63627
中音DO的T=65536-500000/523=64580
高音DO的T=65536-500000/1047=65059
⑷ C調個音符頻率與計數值T的對照表如下表所示:

表9.1 C調各音符頻率與計數值T的對照表
音符 頻率(Hz) 簡譜碼T值 音符 頻率(Hz) 簡譜碼T值
低1DO 262 63628 #4FA# 740 64860
#1DO# 277 63731 中5SO 784 64898
低2RE 294 63835 #5SO# 831 64923
#2RE# 311 63928 中6LA 880 64968
低3M 330 64103 #6 932 64994
低4FA 349 64103 中7SI 988 65030
#4FA# 370 64260 高1DO 1046 65058
低5SO 392 64260 #1DO# 1109 65085
#5SO# 415 64331 高2RE 1175 65110
低6LA 440 64400 #2RE# 1245 65124
#6 466 64463 高3M 1318 65157
低7SI 494 64524 高4FA 1397 65178
中1DO 523 64580 #4FA# 1480 65198

⑸ 每個音符使用1個位元組,位元組的高4位代表音符的高低,低4位代表音符的節拍,下表為節拍碼的對照。但如果1拍為0.4秒,1/4拍是0.1秒,只要設定延遲時間就可求得節拍的時間。假設1/4節拍為1DELAY,則1拍應為4DELAY,以此類推。所以只要求得1/4拍的DELAY時間,其餘的節拍就是它的倍數,如下表為1/4和1/8節拍的時間設定。
表9.2 節拍碼對照表
1/4節拍 1/8節拍
節拍碼 節拍數 節拍碼 節拍數
1 1/4拍 1 1/8拍
2 2/4拍 2 1/4拍
3 3/4拍 3 3/8拍
4 1拍 4 1/2拍
5 1又1/4拍 5 5/8拍
6 1又1/2拍 6 3/4拍
7 1又3/4拍 7 7/8拍
8 2拍 8 1拍
9 2又1/4拍 9 1又1/8拍
A 2又1/2拍 A 1又1/4拍
B 2又3/4拍 B 1又3/8拍
C 3拍 C 1又1/2拍
D 3又1/4拍 D 1又5/8拍
E 3又1/2拍 E 1又3/4拍
F 3又3/4拍 F 1又7/8拍
表9.3 各調節拍的時間設定表
1/4節拍 1/8節拍
曲調值 DELAY 曲調值 DELAY
調4/4 125毫秒 調4/4 62毫秒
調3/4 187毫秒 調3/4 94毫秒
調2/4 250毫秒 調2/4 125毫秒
⑹ 建立音樂的步驟:
1)先把吧樂譜的音符找出,然後由上表建立T值表的順序。
2)把T值表建立在TABLE1,構成發音符的計數值放在「TABLE」。
3)簡譜碼(音符)為高位,節拍為(節拍數)為低4位,音符節拍碼放在程序的「TABLE」處。

表9.4 簡譜對應的簡譜碼、T值、節拍數
簡譜 發音 簡譜碼 T值 節拍碼 節拍數
5 低5SO 1 64260 1 1/4拍
6 低6LA 2 64400 2 2/4拍
7 低7SI 3 64524 3 3/4拍
1 中1DO 4 64580 4 1拍
2 中2RE 5 64684 5 1又1/4拍
3 中3M 6 64777 6 1又2/4拍
4 中4FA 7 64820 7 1又3/4拍
5 中5SO 8 64898 8 2拍
6 中6LA 9 64968 9 2又1/4拍
7 中7SI A 65030 A 2又2/4拍
1 高1DO B 65058 B 2又3/4拍
2 高2RE C 65110 C 3拍
3 高3M D 65157 D 3又1/4拍
4 高4FA E 65178 E 3又2/4拍
5 高5SO F 65217 F 3又3/4拍
不發音 0

1/4拍的延遲時間=187毫秒
DELAY: MOV R7,#2
D2: MOV R4,#187
D3: MOV R3,#248
DJNZ R3,$
DJNZ R4,D3
DJNZ R7,D2
RET
4.程序範例
ORG 0000H ;主程序起始地址
SJMP START ;跳至主程序
ORG 000BH ;TIMER0中斷起 始地址
LJMP TIM0 ;跳至TIMER0中斷子程序
START: MOV TMOD,#01H ;設T0在M1
MOV IE,#82H ;中斷使能
START0:MOV 30H,#00 ;取簡譜碼指針
NEXT: MOV A,30H ;簡譜碼指針載入A
MOV DPTR,#TAB ;至TAB取簡譜碼
MOVC A,@A+DPTR ;
MOV R2,A ;渠道的簡譜碼暫存於R2
JZ END0 ;是否渠道00(結束碼)
ANL A,#0FH ;不是,則取低4位(節拍碼)
MOV R5,A ;將節拍碼存入R5
MOV A,R2 ;將取到的簡譜碼再載入A
SWAP A ;高低4位交換
ANL A,#0FH ;取低4位(音符碼)
JNZ SING ;取到的音符碼是否為0?
CLR TR0 ;開始,則不發音
SJMP D1 ;跳至D1
SING: DEC A ;取到的音符碼減1(不含0)
MOV 22H,A ;存入(22H)
RL A ;乘2
MOV DPTR,#TAB1 ;至TABLE1取相對的高位位元組計數值
MOVC A,@A+DPTR ;
MOV TH0,A ;取到的高位位元組存入TH0
MOV 21H,A ;取到的高位位元組存入(21H)
MOV A,22H ;在載入取到的音符碼
RL A ;乘2
INC A ;加1
MOVC A,@A+DPTR ;至TABLE1取相對的低位位元組計數值
MOV TL0,A ;取到的低位位元組存入TL0
MOV 20H,A ;取到的低位位元組存入(20H)
SETB TR0 ;啟動TIMER0
D1: LCALL DELAY ;其本單位時間1/4拍187毫秒
INC 30H ;取簡譜碼指針加1
JMP NEXT ;取下一個簡譜碼
END0: CLR TR0 ;停止TIMER0
JMP START0 ;重復循環
TIM0: PUSH ACC ;將A的值暫存於堆棧
PUSH PSW ;將PSW的值暫存於堆棧
MOV TL0,20H ;重設計數值
MOV TH0,21H ;
CPL P3.0 ;將P3.0位反相,控制蜂鳴器發聲
POP PSW ;至堆棧取回PSW的值
POP ACC ;至堆棧取回A的值
RETI
DELAY:MOV R7,#02
D2: MOV R4,#187
D3: MOV R3,#248
DJNZ R3,$
DJNZ R4,D3
DJNZ R7,D2
RET
TAB1: ;決定節拍
DW 64260,64400,64521,64580
DW 64684,64777,64820,64898
DW 64968,65030,65058,65110
DW 65157,65178,65217
TAB: ;樂曲名稱《梁祝》
DB 02H,82H,62H,52H,48H,02H,52H,32H,22H,18H
DB 83H,91H,72H,62H,51H,61H,71H,61H,83H,61H
DB 81H,51H,61H,71H,61H,51H,46H,82H,32H,52H
DB 22H,42H,16H,21H,41H,18H,0E4H,13H,21H,43H
DB 51H,21H,41H,12H,83H,81H,61H,81H,58H,53H
DB 61H,31H,22H,13H,21H,42H,52H,0E2H,42H,21H
DB 11H,91H,41H,18H,63H,81H,32H,52H,21H,41H,
DB 16H,0E4H,11H,21H,31H,51H,26H,11H,21H,43H
DB 51H,82H,62H,52H,61H,51H,42H,21H,11H,0E4H
DB 44H,21H,41H,21H,11H,0E1H,11H,21H,41H,18H
DB 61H,81H,51H,61H,51H,41H,32H,21H,41H,18H
DB 08H,0H,04H ;曲子最後靜音5拍長的時間
DB 00H ;樂曲結束
END

G. 如何用51單片機實現音頻信號的頻譜顯示(在LCD上顯示)

12864可以作為顯示器件

頻譜分析涉及到FFT,如果你這個不會,那還是再學習學習吧。
簡單原理: 通過快速FFT將音頻分析成多個正弦波的組合,正弦波的頻率就是高音低音,振幅就是音量的大小。
FFT運算量比較大,普通51難以接受,要選用1T的高速51,
聲音信號要通過ad進行采樣,然後將其進行分析,所以要選用一個精度高速度快的ad,一般高檔51中ad可以勝任這個工作
聲音信號在ad采樣之前需要調整成合適振幅的信號

H. 怎麼用單片機編寫音樂程序

單片機比如51系列都有定時器,因此可以利用它來控制揚聲器按一定頻率發聲,以下就是一個常式,用按鍵的按下和抬起來模擬電子琴的控製程序。

T0H EQU 30H

T0L EQU 31H

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP T0ISR

ORG 0030H

MAIN:

MOV SP,#5FH

MOV TMOD,#01H

SETB ET0

SETB EA

LOOP:

MOV DPTR,#FREQ

MOV A,P2 ;控制高中低音區

MOV R1,#0

ANL A,#03H

JB ACC.0,LOOP01

MOV R1,#14

SJMP LOOP0

LOOP01:

JB ACC.1,LOOP0

MOV R1,#28

LOOP0:

JB P0.0,LOOP1 ;控制音頻1234567

MOV A,R1

MOVC A,@A+DPTR

MOV T0H,A

INC DPTR

MOV A,R1

MOVC A,@A+DPTR

MOV T0L,A

LJMP LOOP

LOOP1:

JB P0.1,LOOP2

MOV A,R1

ADD A,#2

MOVC A,@A+DPTR

MOV T0H,A

INC DPTR

MOV A,R1

ADD A,#2

MOVC A,@A+DPTR

MOV T0L,A

LJMP LOOP

LOOP2:

JB P0.2,LOOP3

MOV A,R1

ADD A,#4

MOVC A,@A+DPTR

MOV T0H,A

INC DPTR

MOV A,R1

ADD A,#4

MOVC A,@A+DPTR

MOV T0L,A

LJMP LOOP

LOOP3:

JB P0.3,LOOP4

MOV A,R1

ADD A,#6

MOVC A,@A+DPTR

MOV T0H,A

INC DPTR

MOV A,R1

ADD A,#6

MOVC A,@A+DPTR

MOV T0L,A

LJMP LOOP

LOOP4:

JB P0.4,LOOP5

MOV A,R1

ADD A,#8

MOVC A,@A+DPTR

MOV T0H,A

INC DPTR

MOV A,R1

ADD A,#8

MOVC A,@A+DPTR

MOV T0L,A

LJMP LOOP

LOOP5:

JB P0.5,LOOP6

MOV A,R1

ADD A,#10

MOVC A,@A+DPTR

MOV T0H,A

INC DPTR

MOV A,R1

ADD A,#10

MOVC A,@A+DPTR

MOV T0L,A

LJMP LOOP

LOOP6:

JB P0.6,LOOP7

MOV A,R1

ADD A,#12

MOVC A,@A+DPTR

MOV T0H,A

INC DPTR

MOV A,R1

ADD A,#12

MOVC A,@A+DPTR

MOV T0L,A

LJMP LOOP

LOOP7:

CLR TR0

LJMP LOOP

;-----------------------------

T0ISR:

CLR TR0

MOV TH0,T0H

MOV TL0,T0L

SETB TR0

CPL P3.0

RETI

;-----------------------------

FREQ:

DB 0F2H,03DH ;低音1

DB 0F3H,0BDH ;低音2

DB 0F5H,014H ;低音3

DB 0F5H,0B1H ;低音4

DB 0F6H,0D0H ;低音5

DB 0F7H,0D1H ;低音6

DB 0F8H,0B5H ;低音7


DB 0F9H,01EH ;中音1

DB 0F9H,0DEH ;中音2

DB 0FAH,08AH ;中音3

DB 0FAH,0D8H ;中音4

DB 0FBH,068H ;中音5

DB 0FBH,0E8H ;中音6

DB 0FCH,05AH ;中音7

DB 0FCH,08FH ;高音1

DB 0FCH,0EFH ;高音2

DB 0FDH,045H ;高音3

DB 0FDH,06CH ;高音4

DB 0FDH,0B4H ;高音5

DB 0FDH,0F4H ;高音6

DB 0FEH,029H ;高音7

;-----------------------------

END


閱讀全文

與怎麼自己做音頻顯示單片機相關的資料

熱點內容
wula是什麼app 瀏覽:812
豌豆莢里怎麼降低安卓手機版本 瀏覽:367
桌面的文件夾怎樣解散 瀏覽:788
貴州貴陽山洞伺服器雲空間 瀏覽:217
年薪48萬程序員老公 瀏覽:913
使用預構建的python 瀏覽:528
加密對沖基金交易有限公司 瀏覽:342
煙台製冷壓縮機價格 瀏覽:247
平板能用騰訊雲伺服器嗎 瀏覽:865
有js基礎學python 瀏覽:592
程序員可以回老家蓋房子嗎 瀏覽:553
pythonserial波特率 瀏覽:576
pc我的世界國際服怎麼下伺服器 瀏覽:142
udp凈荷加密 瀏覽:925
qq哪個文件夾占的內存大 瀏覽:632
哪個app賣葯是真的 瀏覽:829
半圓形計演算法 瀏覽:394
手機建立文件夾用什麼軟體 瀏覽:730
oss壓縮上傳 瀏覽:980
藍色學校網站源碼 瀏覽:827