国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于增強(qiáng)型8051單片機(jī)的音樂頻譜顯示器的設(shè)計(jì)

2014-04-29 18:06:41吳永德羅萍
電子世界 2014年13期
關(guān)鍵詞:單片機(jī)

吳永德 羅萍

【摘要】該系統(tǒng)采用增強(qiáng)型8051單片機(jī)STC12C5A60S2為主控制器,通過單片機(jī)內(nèi)置的ADC對(duì)音頻信號(hào)進(jìn)行采樣、量化,然后通過快速傅里葉變換運(yùn)算,在頻域計(jì)算出音頻信號(hào)各個(gè)頻率分量的功率,最后通過雙基色LED單元板進(jìn)行顯示。該方案具有電路結(jié)構(gòu)簡潔,開發(fā)、生產(chǎn)成本低的優(yōu)點(diǎn)。

【關(guān)鍵詞】單片機(jī);FFT;頻譜顯示

一、引言

本文介紹的音樂頻譜顯示器可對(duì)mp3、手機(jī)、計(jì)算機(jī)輸出的音樂信號(hào)進(jìn)行實(shí)時(shí)的頻譜顯示。系統(tǒng)采用增強(qiáng)型8051單片機(jī)STC12C5A60S2為主控制芯片,通過單片機(jī)內(nèi)置的ADC對(duì)音頻信號(hào)進(jìn)行采樣,把連續(xù)信號(hào)離散化,然后通過快速傅里葉變換(FFT)運(yùn)算,在頻域計(jì)算出音頻信號(hào)各個(gè)頻率分量的功率,最后通過雙基色LED單元板進(jìn)行顯示。在顯示的頻率點(diǎn)不多的情況下,本系統(tǒng)比采用DSP或ARM作為主控制芯片的設(shè)計(jì)方案具有電路結(jié)構(gòu)簡潔,開發(fā)、生產(chǎn)成本低的優(yōu)點(diǎn)。

二、系統(tǒng)設(shè)計(jì)

該系統(tǒng)由音頻信號(hào)預(yù)處理電路、單片機(jī)STC12C5A60S2控制電路、LED頻譜顯示電路等部分組成。圖l為系統(tǒng)整體設(shè)計(jì)原理框圖。

圖1 系統(tǒng)整體設(shè)計(jì)原理框圖

系統(tǒng)各組部分的功能:(1)音頻信號(hào)預(yù)處理電路主要對(duì)輸入的音頻進(jìn)行電壓放大和電平提升。(2)單片機(jī)STC12C5A60S2控制電路采用內(nèi)置的ADC對(duì)音頻信號(hào)進(jìn)行采樣量化,然后對(duì)量化后的音頻數(shù)據(jù)采用FFT算法計(jì)算其頻譜值,再將各頻譜值進(jìn)行32級(jí)量化。(3)LED頻譜顯示電路在單片機(jī)的控制下,負(fù)責(zé)將FFT計(jì)算得到的音頻信號(hào)的各個(gè)頻點(diǎn)的大小進(jìn)行直觀顯示。

1.音頻信號(hào)預(yù)處理電路

圖2 音頻信號(hào)預(yù)處理電路

音頻信號(hào)預(yù)處理電路見圖2所示,對(duì)輸入的音頻進(jìn)行電壓放大和電平提升。手機(jī)、計(jì)算機(jī)輸出的音頻信號(hào)Vin經(jīng)過RP1進(jìn)行電壓調(diào)節(jié)后,經(jīng)集成運(yùn)放LMV358反相放大10倍(Av=-R3/R2=-10),提高系統(tǒng)的靈敏度。選用單電源供電的運(yùn)放LMV358,一方面可以簡化系統(tǒng)電源電路的設(shè)計(jì),直接采用系統(tǒng)的+5V供電即可;另一方面其輸出端靜態(tài)電壓為VCC/2,即2.5V。放大后的音頻信號(hào)和這2.5V疊加后變?yōu)橹绷麟妷盒盘?hào),滿足后面單片機(jī)內(nèi)置的ADC對(duì)輸入電壓量程的要求。另外,LMV358為軌到軌輸出運(yùn)放,它可在+5V單電源供電條件下仍具有較大的動(dòng)態(tài)輸出范圍。

2.單片機(jī)STC12C5A60S2控制電路

STC12C5A60S2單片機(jī)是宏晶科技生產(chǎn)的新一代單時(shí)鐘/機(jī)器周期(1T)8051單片機(jī),具有高速、低功耗及超強(qiáng)抗干擾等特點(diǎn),指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍;內(nèi)部集成MAX810專用復(fù)位電路,2路PWM,8路高速10位A/D轉(zhuǎn)換(250K/S)等資源[1]。特別是它帶硬件乘法/除法指令,使乘法指令執(zhí)行時(shí)間從傳統(tǒng)8051的48個(gè)晶振周期減少到4個(gè)晶振周期,使需要大量乘法運(yùn)算的FFT運(yùn)算速度得到大幅度提高。在本系統(tǒng)中,STC12C5A60S2單片機(jī)負(fù)責(zé)完成對(duì)音頻信號(hào)進(jìn)行A/D變換,然后采用FFT算法計(jì)算音頻信號(hào)頻譜,并將計(jì)算結(jié)果輸出到LED頻譜顯示電路。

(1)音頻信號(hào)的A/D變換

根據(jù)香農(nóng)采樣定理,一般采樣頻率至少應(yīng)為所采樣音頻信號(hào)最高頻率的2倍。由于人耳能夠感受的頻率為20Hz-20kHz,所以理論上采樣頻率最高取40kHz。本設(shè)計(jì)采用單片機(jī)STC12C5A60S2內(nèi)置的ADC對(duì)音頻信號(hào)進(jìn)行采樣、量化。STC12C5A60S2單片機(jī)的A/D轉(zhuǎn)換口在P1口(P1.0-P1.7),有8路10位的高速ADC,其輸入電壓量程為0-Vcc,轉(zhuǎn)換速度可通過ADC_CONTR特殊功能寄存器的SPEED1,SPEED0位進(jìn)行控制,速度最快可設(shè)置為每90個(gè)時(shí)鐘周期轉(zhuǎn)換一次。在外接晶振為30MHz時(shí),ADC的轉(zhuǎn)換速度可達(dá)到330KHZ,完全可滿足對(duì)音頻信號(hào)的采樣需要。

(2)音頻信號(hào)頻譜值的計(jì)算

我們采用快速傅里葉算法(FFT)來計(jì)算音頻信號(hào)的頻譜值。根據(jù)FFT運(yùn)算規(guī)律,如ADC以fs的采樣頻率取N個(gè)采樣點(diǎn),經(jīng)過FFT運(yùn)算之后,就可以得到N個(gè)點(diǎn)的復(fù)數(shù)序列。通常為了方便進(jìn)行FFT運(yùn)算,通常N取2的整數(shù)次方:N=2L(L為正整數(shù))。這N個(gè)點(diǎn)的FFT結(jié)果,每一個(gè)點(diǎn)就對(duì)應(yīng)著原始信號(hào)的一個(gè)頻率點(diǎn),即第n點(diǎn)所表示的頻率為f=n×fs/N,n=0,1,…,(N-1);該點(diǎn)的模值除以N/2就是對(duì)應(yīng)該頻率下原始信號(hào)的幅度(對(duì)于第1個(gè)點(diǎn)則是除以N);該點(diǎn)的相位即是對(duì)應(yīng)該頻率下原始信號(hào)的相位。由于FFT結(jié)果的對(duì)稱性,通常只使用FFT運(yùn)算后的前N/2個(gè)點(diǎn)的數(shù)值。本系統(tǒng)每隔10ms采樣一次128個(gè)點(diǎn),經(jīng)過FFT運(yùn)算后將得到128個(gè)頻率點(diǎn)。由于FFT結(jié)果的對(duì)稱性,我們選取前64個(gè)點(diǎn)進(jìn)行顯示。

現(xiàn)在FFT算法已發(fā)展出多種形式,本系統(tǒng)采用按時(shí)間抽選(DIT)的基-2FFT算法,這種算法程序相對(duì)較簡單,節(jié)省存儲(chǔ)單元,運(yùn)行效率較高,比較適合用單片機(jī)編程實(shí)現(xiàn)。DIT基-2FFT算法主要由倒位序運(yùn)算和多級(jí)蝶形運(yùn)算實(shí)現(xiàn)。

a.倒位序運(yùn)算的實(shí)現(xiàn)

DIT基-2FFT算法通常將原始數(shù)據(jù)序列倒位序存儲(chǔ),運(yùn)算后的結(jié)果則按正常順序輸出。一般的數(shù)字信號(hào)處理的教材都介紹雷德(Rader)算法,通過“反向進(jìn)位加法”將原始數(shù)據(jù)序列進(jìn)行倒位序存儲(chǔ)[2]。雷德算法的靈活性較大,但在本系統(tǒng)中,參與運(yùn)算的數(shù)據(jù)點(diǎn)數(shù)只有128個(gè),通過預(yù)先編制倒位序查詢表,采用查表方式實(shí)現(xiàn)倒位序操作速度會(huì)更快。

b.蝶形運(yùn)算的實(shí)現(xiàn)

根據(jù)DIT基-2 FFT算法原理,N點(diǎn)FFT運(yùn)算由log2N級(jí),每級(jí)N/2個(gè)蝶形運(yùn)算,共(N/2)log2N個(gè)蝶形運(yùn)算構(gòu)成。每個(gè)蝶形運(yùn)算結(jié)構(gòu)見圖3所示[2]。

圖3 按時(shí)間抽選蝶形運(yùn)算結(jié)構(gòu)

蝶形運(yùn)算結(jié)構(gòu)圖中,m表示第m級(jí)的蝶形運(yùn)算,k 為蝶形運(yùn)算第一節(jié)點(diǎn)所在行數(shù),b為蝶形運(yùn)算兩節(jié)點(diǎn)距離,b=2m-1,WNr為旋轉(zhuǎn)因子,WNr=cos(2πr/N)-jsin(2πr/N)。

每個(gè)蝶形結(jié)構(gòu)完成下述基本迭代運(yùn)算[2]:

(1)

(2)

設(shè)Xm=Rm+jIm,將式(1)轉(zhuǎn)變?yōu)閷?shí)部和虛部的表示形式,得到:由上面式(1)、式(2)可見,一個(gè)蝶形運(yùn)算需要一次復(fù)數(shù)乘法Xm-1(k+b)WNr及兩次復(fù)數(shù)加(減)法。在單片機(jī)系統(tǒng)中編程實(shí)現(xiàn)時(shí),需把復(fù)數(shù)運(yùn)算轉(zhuǎn)變?yōu)閷?shí)數(shù)運(yùn)算。

(3)

(4)

同理,將式(2)轉(zhuǎn)變?yōu)椋?/p>

(5)

(6)

將sin、cos函數(shù)做成表格sin_tab[128]、cos_tab[128],直接查表可提高運(yùn)算速度。

程序流程圖見圖4所示。整個(gè)L級(jí)遞推過程由三個(gè)for循環(huán)嵌套構(gòu)成,外層的一個(gè)for循環(huán)控制L(L=log2N=log2128=7)級(jí)的順序運(yùn)算;內(nèi)層的兩個(gè)for循環(huán)控制同一級(jí)(m相同)各蝶形結(jié)的運(yùn)算,其中最內(nèi)一層for循環(huán)控制同一種(即WNr中的r相同)蝶形結(jié)的運(yùn)算,而中間一層for循環(huán)則控制不同種(即WNr中的r不同)蝶形結(jié)的運(yùn)算。

圖4 DIT基-2 FFT程序流程圖

3.頻譜值的顯示

系統(tǒng)中采用64×32室內(nèi)雙基色LED單元板進(jìn)行顯示,每列顯示音頻信號(hào)的一個(gè)頻率點(diǎn),每列LED點(diǎn)亮的高度表示該頻率點(diǎn)幅度的大小。該單元板由32塊雙基色8×8 LED模塊組成,高4塊,長8塊;一般采用1/16掃描,行驅(qū)動(dòng)采用8片4953,列驅(qū)動(dòng)采用32片74HC595[3]。單元板兩端分別預(yù)留級(jí)聯(lián)接口,最初這種接口為20針插座,現(xiàn)在都改進(jìn)為16針插座,一般稱為08接口。但使用時(shí)要注意,不同廠家生產(chǎn)的LED單元板,其使能信號(hào)EN可能會(huì)不同,有些是低電平有效的,有些是高電平有效的。

三、結(jié)束語

本系統(tǒng)采用增強(qiáng)型8051單片機(jī)STC12C5A60S2實(shí)現(xiàn)音樂頻譜顯示,該方案硬件電路設(shè)計(jì)簡單、成本低,并具有較高的實(shí)用價(jià)值。

參考文獻(xiàn)

[1]宏晶科技.STC12C5A60S2系列單片機(jī)器件手冊[M].2010.

[2]程佩青.數(shù)字信號(hào)處理教程(第二版)[M].北京:清華大學(xué)出版社,2001.

[3]靳桅,等.基于51系列單片機(jī)的LED顯示屏開關(guān)技術(shù)(第2版)[M].北京:北京航空航天大學(xué)出版社,2011.

作者簡介:

吳永德(1980—),男,講師,從事電子技術(shù)專業(yè)教學(xué)及研究。

羅萍(1979—),女,講師,從事計(jì)算機(jī)技術(shù)專業(yè)教學(xué)及研究。

猜你喜歡
單片機(jī)
基于單片機(jī)的SPWM控制逆變器的設(shè)計(jì)與實(shí)現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機(jī)的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機(jī)的多功能智能插排
電子制作(2019年11期)2019-07-04 00:34:48
基于單片機(jī)的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
小議PLC與單片機(jī)之間的串行通信及應(yīng)用
電子制作(2018年12期)2018-08-01 00:48:04
MSP430單片機(jī)在仿真中要注意的幾點(diǎn)問題
電子制作(2017年9期)2017-04-17 03:00:53
基于單片機(jī)的平衡控制系統(tǒng)設(shè)計(jì)
電子制作(2017年19期)2017-02-02 07:08:27
基于單片機(jī)的三維LED點(diǎn)陣設(shè)計(jì)
電子制作(2016年21期)2016-05-17 03:52:51
Microchip推出兩個(gè)全新PIC單片機(jī)系列
基于Proteus的單片機(jī)控制系統(tǒng)的仿真設(shè)計(jì)
北安市| 故城县| 千阳县| 宜宾市| 新疆| 云安县| 饶河县| 科尔| 佛教| 屏东县| 西青区| 新干县| 花莲市| 宁海县| 井冈山市| 尼木县| 汾阳市| 富阳市| 福建省| 巴南区| 灵丘县| 焉耆| 普格县| 屏山县| 蕉岭县| 太湖县| 肇源县| 军事| 玉溪市| 济源市| 铜山县| 册亨县| 响水县| 剑川县| 祁门县| 云安县| 清原| 忻州市| 莱西市| 达州市| 固原市|