




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
.PAGE....題目:單片機LED音樂頻譜的設計院〔系:專業(yè):學生__學號:指導2011年07月07日..摘要該系統(tǒng)采用增強型8051單片機STC12C5A60S2為主控制器,通過單片機內(nèi)置的ADC對音頻信號進行采樣、量化,然后通過快速傅里葉變換運算,在頻域計算出音頻信號各個頻率分量的功率,最后通過雙基色LED單元板進行顯示。該方案具有電路結構簡潔,開發(fā)、生產(chǎn)成本低的優(yōu)點。關鍵詞:單片機;傅里葉;LED;目錄1.引言…………………………12.方案設計……………………22.1設計要求……………22.2總體方案設計………………………32.3總體方案組成………………………63.系統(tǒng)電路設計………………63.1單片機主控電路設計主控制器………63.2LED顯示模塊電路設計………………74.軟件設計………………………84.1軟件設計流程圖………………………85.系統(tǒng)的測試…………………86.結論…………………………97.參考文獻……………………118.附錄…………………………141.引言本文介紹的音樂頻譜顯示器可對mp3、手機、計算機輸出的音樂信號進行實時的頻譜顯示。系統(tǒng)采用增強型8051單片機STC12C5A60S2為主控制芯片,通過單片機內(nèi)置的ADC對音頻信號進行采樣,把連續(xù)信號離散化,然后通過快速傅里葉變換〔FFT運算,在頻域計算出音頻信號各個頻率分量的功率,最后通過雙基色LED單元板進行顯示。在顯示的頻率點不多的情況下,本系統(tǒng)比采用DSP或ARM作為主控制芯片的設計方案具有電路結構簡潔,開發(fā)、生產(chǎn)成本低的優(yōu)點。2.方案設計2.1設計要求單片機自帶AD轉換,這樣省去外圍AD電路。控制LED隨著音樂跳動,需要理解傅里葉原理。2.2總體方案設計經(jīng)分析,將系統(tǒng)分為兩個部分,一個是由單片機組成的主控。另一部分是LED顯示部分,單片機對接收到的音頻進行處理經(jīng)過傅里葉換算后在LED顯示,5V穩(wěn)壓電源給各個部分供電。該系統(tǒng)實現(xiàn)的方法有很多種,下面將列出大家最經(jīng)常用到的實現(xiàn)方案。系統(tǒng)框圖如圖1所示顯示電路單片機顯示電路單片機電源電源音頻信號音頻信號圖1音樂頻譜總體系統(tǒng)框圖該系統(tǒng)由音頻信號預處理電路、單片機STC12C5A60S2控制電路、LED頻譜顯示電路等部分組成。圖l為系統(tǒng)整體設計原理框圖。圖1系統(tǒng)整體設計原理框圖系統(tǒng)各組部分的功能:〔1音頻信號預處理電路主要對輸入的音頻進行電壓放大和電平提升?!?單片機STC12C5A60S2控制電路采用內(nèi)置的ADC對音頻信號進行采樣量化,然后對量化后的音頻數(shù)據(jù)采用FFT算法計算其頻譜值,再將各頻譜值進行32級量化?!?LED頻譜顯示電路在單片機的控制下,負責將FFT計算得到的音頻信號的各個頻點的大小進行直觀顯示。1.音頻信號預處理電路圖2音頻信號預處理電路音頻信號預處理電路見圖2所示,對輸入的音頻進行電壓放大和電平提升。手機、計算機輸出的音頻信號Vin經(jīng)過RP1進行電壓調(diào)節(jié)后,經(jīng)集成運放LMV358反相放大10倍〔Av=-R3/R2=-10,提高系統(tǒng)的靈敏度。選用單電源供電的運放LMV358,一方面可以簡化系統(tǒng)電源電路的設計,直接采用系統(tǒng)的+5V供電即可;另一方面其輸出端靜態(tài)電壓為VCC/2,即2.5V。放大后的音頻信號和這2.5V疊加后變?yōu)橹绷麟妷盒盘?滿足后面單片機內(nèi)置的ADC對輸入電壓量程的要求。另外,LMV358為軌到軌輸出運放,它可在+5V單電源供電條件下仍具有較大的動態(tài)輸出范圍。2.單片機STC12C5A60S2控制電路STC12C5A60S2單片機是宏晶科技生產(chǎn)的新一代單時鐘/機器周期〔1T8051單片機,具有高速、低功耗及超強抗干擾等特點,指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍;內(nèi)部集成MAX810專用復位電路,2路PWM,8路高速10位A/D轉換〔250K/S等資源[1]。特別是它帶硬件乘法/除法指令,使乘法指令執(zhí)行時間從傳統(tǒng)8051的48個晶振周期減少到4個晶振周期,使需要大量乘法運算的FFT運算速度得到大幅度提高。在本系統(tǒng)中,STC12C5A60S2單片機負責完成對音頻信號進行A/D變換,然后采用FFT算法計算音頻信號頻譜,并將計算結果輸出到LED頻譜顯示電路?!?音頻信號的A/D變換根據(jù)香農(nóng)采樣定理,一般采樣頻率至少應為所采樣音頻信號最高頻率的2倍。由于人耳能夠感受的頻率為20Hz-20kHz,所以理論上采樣頻率最高取40kHz。本設計采用單片機STC12C5A60S2內(nèi)置的ADC對音頻信號進行采樣、量化。STC12C5A60S2單片機的A/D轉換口在P1口〔P1.0-P1.7,有8路10位的高速ADC,其輸入電壓量程為0-Vcc,轉換速度可通過ADC_CONTR特殊功能寄存器的SPEED1,SPEED0位進行控制,速度最快可設置為每90個時鐘周期轉換一次。在外接晶振為24MHz時,ADC的轉換速度可達到330KHZ,完全可滿足對音頻信號的采樣需要?!?音頻信號頻譜值的計算我們采用快速傅里葉算法〔FFT來計算音頻信號的頻譜值。根據(jù)FFT運算規(guī)律,如ADC以fs的采樣頻率取N個采樣點,經(jīng)過FFT運算之后,就可以得到N個點的復數(shù)序列。通常為了方便進行FFT運算,通常N取2的整數(shù)次方:N=2L〔L為正整數(shù)。這N個點的FFT結果,每一個點就對應著原始信號的一個頻率點,即第n點所表示的頻率為f=n×fs/N,n=0,1,…,〔N-1;該點的模值除以N/2就是對應該頻率下原始信號的幅度〔對于第1個點則是除以N;該點的相位即是對應該頻率下原始信號的相位。由于FFT結果的對稱性,通常只使用FFT運算后的前N/2個點的數(shù)值。本系統(tǒng)每隔10ms采樣一次128個點,經(jīng)過FFT運算后將得到128個頻率點。由于FFT結果的對稱性,我們選取前64個點進行顯示?,F(xiàn)在FFT算法已發(fā)展出多種形式,本系統(tǒng)采用按時間抽選〔DIT的基-2FFT算法,這種算法程序相對較簡單,節(jié)省存儲單元,運行效率較高,比較適合用單片機編程實現(xiàn)。DIT基-2FFT算法主要由倒位序運算和多級蝶形運算實現(xiàn)。a.倒位序運算的實現(xiàn)DIT基-2FFT算法通常將原始數(shù)據(jù)序列倒位序存儲,運算后的結果則按正常順序輸出。一般的數(shù)字信號處理的教材都介紹雷德〔Rader算法,通過"反向進位加法"將原始數(shù)據(jù)序列進行倒位序存儲[2]。雷德算法的靈活性較大,但在本系統(tǒng)中,參與運算的數(shù)據(jù)點數(shù)只有128個,通過預先編制倒位序查詢表,采用查表方式實現(xiàn)倒位序操作速度會更快。b.蝶形運算的實現(xiàn)根據(jù)DIT基-2FFT算法原理,N點FFT運算由log2N級,每級N/2個蝶形運算,共〔N/2log2N個蝶形運算構成。每個蝶形運算結構見圖3所示[2]。圖3按時間抽選蝶形運算結構蝶形運算結構圖中,m表示第m級的蝶形運算,k為蝶形運算第一節(jié)點所在行數(shù),b為蝶形運算兩節(jié)點距離,b=2m-1,WNr為旋轉因子,WNr=cos〔2πr/N-jsin〔2πr/N。每個蝶形結構完成下述基本迭代運算[2]:設Xm=Rm+jIm,將式〔1轉變?yōu)閷嵅亢吞摬康谋硎拘问?得到:由上面式〔1、式〔2可見,一個蝶形運算需要一次復數(shù)乘法Xm-1〔k+bWNr及兩次復數(shù)加〔減法。在單片機系統(tǒng)中編程實現(xiàn)時,需把復數(shù)運算轉變?yōu)閷崝?shù)運算。同理,將式〔2轉變?yōu)椋簩in、cos函數(shù)做成表格sin_tab[128]、cos_tab[128],直接查表可提高運算速度。3.頻譜值的顯示系統(tǒng)中采用5*11個不同顏色的草帽LED進行顯示,每列顯示音頻信號的一個頻率點,每列LED點亮的高度表示該頻率點幅度的大小。整個顯示板一共有5列,工作的時候,可以看到每列根據(jù)頻率幅度的大小在跳動。2.3整體系統(tǒng)組成本系統(tǒng)硬件部分由單片機主控電路、LED顯示部分、音頻采集等部分組成,其中單片機主控電路有外接晶振,電源供電電路阻等部分組成。軟件部分詳細見下文。單片機全系統(tǒng)如下圖2所示。3.系統(tǒng)電路設計3.1單片機主控電路設計單片機主控模塊包括了振落電路、音頻采集電路,同時接入了各個模塊的接口,保證了整個系統(tǒng)的靈活性。單片機是整個系統(tǒng)的控制中樞,它指揮外圍器件協(xié)調(diào)工作,從而完成特定的功能。硬件實現(xiàn)上采用模塊化設計,每一模塊只實現(xiàn)一個特定功能,最后再將各個模塊搭接在一起。這種設計方法可以降低系統(tǒng)設計的復雜性??刂齐娐返暮诵钠骷怯擅绹鳤tmel公司生產(chǎn)的AT89S52單片機,屬于MCS-51系列。AT89S52是一種低功耗、高性能的CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器,采用的工藝是Atmel公司的高密度非易失存儲器技術;片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器;在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案;價格低廉、性能可靠、抗干擾能力強。因此廣泛應用于工業(yè)控制和嵌入式系統(tǒng)中。單片機主控電路原理圖如下所示:圖4.1單片機主控電路原理圖3.2LED顯示模塊電路設計4.軟件設計4.1軟件設計流程圖FFT倒序流程圖FFT計算流程圖5.系統(tǒng)測試制作的過程中首先遇到的問題是LED如何組裝,經(jīng)過查閱資料發(fā)現(xiàn),可以利用LED的管腳互相按照電路圖連接起來,這個時候主要是利用萬用表來測試,LED燈到底有無壞掉的。通電后,在無音頻輸入時,LED應該無閃爍跳動現(xiàn)象。在制作完成的時候,發(fā)現(xiàn)LED燈閃爍,這個時候,在音頻輸入端接入了47p的電容,這樣就解決了這個問題。6.結論本系統(tǒng)采用增強型8051單片機STC12C5A60S2實現(xiàn)音樂頻譜顯示,該方案硬件電路設計簡單、成本低,并具有較高的實用價值。本方案是通過ADC采樣輸入的音頻信號,ADC采樣完成以后,將數(shù)據(jù)進行倒序排列并進行FFT運算,結果通過TFT液晶顯示出來。由于采用的處理器的處理能力的原因,不能做到很高的采樣頻率和很精細的頻率分辨率,要提高系統(tǒng)的頻率分辨率,就需要增加采樣點數(shù)??梢越柚鶳C的強大處理能力,將采樣的數(shù)據(jù)通過預留的串口傳送給PC,在PC上完成FFT運算以及顯示,這就是虛擬儀器的方式,實際工作中應用前景也非常大。謝辭感謝老師對我們的指導。完成了這個實訓任務,雖然結果差強人意,但是還是有進步的,有收獲的。希望以后在學習生活中能繼續(xù)好好學習。7.參考文獻[1]宏晶科技.STC12C5A60S2系列單片機器件手冊[M].2010.[2]程佩青.數(shù)字信號處理教程〔第二版[M].北京:清華大學出版社,2001.[3]靳桅,等.基于51系列單片機的LED顯示屏開關技術〔第2版[M].北京:北京航空航天大學出版社,2011.作者簡介:吳永德〔1980―,男,講師,從事電子技術專業(yè)教學及研究。羅萍〔1979―,女,講師,從事計算機技術專業(yè)教學及研究。附錄:電路圖:程序:#include<stc12c5a60s2.h>//"stc12c5620ad.h"#include<intrins.h>#defineLongToBin<n><<<n>>21>&0x80>|<<n>>18>&0x40>|<<n>>15>&0x20>|<<n>>12>&0x10>|<<n>>9>&0x08>|<<n>>6>&0x04>|<<n>>3>&0x02>|<<n>&0x01>>#defineBIN<n>LongToBin<0x##n##>#defineucharunsignedchar#defineuintunsignedint#defineSAMPLE_NUM64#defineNUM_2_LOG6#defineFFT_OUT_MIN3ucharcodeBRTable[SAMPLE_NUM]={0,32,16,48,8,40,24,56,4,36,20,52,12,44,28,60,2,34,18,50,10,42,26,58,6,38,22,54,14,46,30,62,1,33,17,49,9,41,25,57,5,37,21,53,13,45,29,61,3,35,19,51,11,43,27,59,7,39,23,55,15,47,31,63};charcodesin_tabb[SAMPLE_NUM]={0,12,25,37,49,60,71,81,90,98,106,112,117,122,125,126,127,126,125,122,117,112,106,98,90,81,71,60,49,37,25,12,0,-12,-25,-37,-49,-60,-71,-81,-90,-98,-106,-112,-117,-122,-125,-126,-127,-126,-125,-122,-117,-112,-106,-98,-90,-81,-71,-60,-49,-37,-25,-12};charcodecos_tabb[SAMPLE_NUM]={127,126,125,122,117,112,106,98,90,81,71,60,49,37,25,12,0,-12,-25,-37,-49,-60,-71,-81,-90,-98,-106,-112,-117,-122,-125,-126,-127,-126,-125,-122,-117,-112,-106,-98,-90,-81,-71,-60,-49,-37,-25,-12,0,12,25,37,49,60,71,81,90,98,106,112,117,122,125,126};uchara[21];ucharkeep,keepnum,anum,timernum,timernum2,lednum3,Ltime;//用于分離/*加入數(shù)組用于顯示相應led燈數(shù)目*/ucharlednum[]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//0-7的顯示數(shù)組P2組控制intxdataFftReal[SAMPLE_NUM];intxdataFftImage[SAMPLE_NUM];sbitp30=P3^0;sbitp31=P3^1;sbitp32=P3^2;sbitp33=P3^3;sbitp34=P3^4;sbitp35=P3^5;//9-11的led控制sbitp36=P3^6;sbitp37=P3^7;voidtimerinit<>//定時器初始化函數(shù){ TMOD=0x01; TH0=<65536-6000>/256; TL0=<65536-6000>%256; EA=1; ET0=1; TR0=1;}voiddisp<>{ timernum++; if<timernum==6>timernum=1; P2=0;//顯示前先關閉 P3=P3&0x1f; switch<timernum> { case1:anum=a[0];p34=0;p33=1;p32=1;p31=1;p30=1;break; case2:anum=a[1];p34=1;p33=0;p32=1;p31=1;p30=1;break; case3:anum=a[2];p34=1;p33=1;p32=0;p31=1;p30=1;break; case4:anum=a[3];p34=1;p33=1;p32=1;p31=0;p30=1;break; case5:anum=a[4];p34=1;p33=1;p32=1;p31=1;p30=0;break; } //anum=a[10];/*修改可以改變光柱高度〔anum值分開幾個部分用定時器區(qū)分顯示<a[]內(nèi)逐加>*/ if<anum<=8>{P2=lednum[anum];P3=P3&0xff;}//屏蔽高三位1f //else{P2=0xff;P3=lednum2[anum-9];} if<anum==9>{P2=0xff;p35=1;p36=0;p37=0;} if<anum==10>{P2=0xff;p35=1;p36=1;p37=0;} if<anum==11>{P2=0xff;p35=1;p36=1;p37=1;}}ucharSTC_ADC<> //?。「鶕?jù)數(shù)據(jù)手冊寫一個ad讀取函數(shù){uchari;ADC_RES=0;ADC_RESL=0;ADC_CONTR=BIN<10001000>;i=3;while<i-->;while<1>{if<ADC_CONTR&BIN<10000>>{ break; }}ADC_CONTR=BIN<10000000>;return<ADC_RESL<<2>;}shortsqrt_16<unsignedlongM>{unsignedintN,i;unsignedlongtmp,ttp;if<M==0>return0;N=0;tmp=<M>>30>;M<<=2;if<tmp>1>{N++;tmp-=N;}for<i=15;i>0;i-->{N<<=1;tmp<<=2;tmp+=<M>>30>;ttp=N;ttp=<ttp<<1>+1;M<<=2;if<tmp>=ttp>{tmp-=ttp;N++;}}returnN;}voidFFT<>{registeruchari,bb,j,k,p,max;registershortTR,TI,temp;unsignedlongulReal;unsignedlongulImage;for<i=0;i<SAMPLE_NUM;i++> //此處可以加入自動增益{ FftReal[BRTable[i]]=STC_ADC<><<keep;//使顯示保持在一定范圍內(nèi)FftImage[i]=0;} keepnum=FftReal[2]/32;//提取等級數(shù) if<<7<keepnum>&&<keepnum<=8>>{keep=1;} elseif<<4<keepnum>&&<keepnum<=6>>{keep=2;} elseif<<2<keepnum>&&<keepnum<=4>>{keep=3;} else{keep=5;} for<i=1;i<=NUM_2_LOG;i++>{bb=1;bb<<=<i-1>;for<j=0;j<=bb-1;j++>{p=1;p<<=<NUM_2_LOG-i>;p=p*j;for<k=j;k<SAMPLE_NUM;k=k+2*bb>{TR=FftReal[k];TI=FftImage[k];temp=FftReal[k+bb];FftReal[k]=FftReal[k]+<<FftReal[k+bb]*cos_tabb[p]>>>7>+<<FftImage[k+bb]*sin_tabb[p]>>>7>;FftImage[k]=FftImage[k]-<<FftReal[k+bb]*sin_tabb[p]>>>7>+<<FftImage[k+bb]*cos_tabb[p]>>>7>;FftReal[k+bb]=TR-<<FftReal[k+bb]*cos_tabb[p]>>>7>-<<FftImage[k+bb]*sin_tabb[p]>>>7>;FftImage[k+bb]=TI+<<temp*sin_tabb[p]>>>7>-<<FftImage[k+bb]*cos_tabb[p]>>>7>;FftReal[k]>>=1;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合伙經(jīng)營股票合同范例
- 游泳池承包經(jīng)營合同范本
- 勞務合同范本美團外賣
- 出口公司合同范本
- 北京市預付卡合同范本
- 業(yè)主變更合同范本
- 寫公司合同范本
- 吊車裝租賃合同范例
- 衛(wèi)生護理合同范本
- 單層彩鋼瓦采購合同范本
- 2025-2030年中國高爾夫產(chǎn)業(yè)規(guī)模分析及投資前景規(guī)劃研究報告
- 民法典合同編講座
- 2022國家供暖規(guī)定法規(guī)
- DBJ51-T 198-2022 四川省既有民用建筑結構安全隱患排查技術標準
- 《干細胞及其應用》課件
- 課題申報書:生成式人工智能提升中小學教師數(shù)字素養(yǎng)的路徑探究
- 臨床婦產(chǎn)題庫+參考答案
- 數(shù)據(jù)安全重要數(shù)據(jù)風險評估報告
- 華東師范大學《外國人文經(jīng)典(下)》2021-2022學年第一學期期末試卷
- 第17講 新高考新結構命題下的導數(shù)解答題綜合訓練(教師版)-2025版高中數(shù)學一輪復習考點幫
- 人美版初中美術八年級下冊教案-全冊
評論
0/150
提交評論