點擊打開連接 轉載請註明出處:http://blog.csdn.net/ruoyunliufeng/article/details/37929733html
這個LED音樂頻譜是我在學51單片機的時候作的一個小項目。今天再看此代碼仍有很是多不規範之處,但由於硬件已經送人,無法繼續調試,但願小夥伴們引覺得戒。寫此文主要是想讓你們知道當中的原理,知道怎麼作當然重要,更重要的是知道爲何要這樣作。spa
一.效果展現.net
有可能有的人第一次據說過這個東西,但實際上這個東西很是早就有人作出來了。調試
爲了讓小夥伴們能有一個感性的認識先發下個人成品鏈接和圖片。視頻
效果:http://v.youku.com/v_show/id_XNjU3NDEwOTAw.htmlhtm
二.實現功能blog
功能 實現 原理
圖片
a.開機LOGO : 就是再視頻中開機顯示的「若雲MCU」 LED點陣get
b.頻譜顯示 : 隨着音樂輸出跳動的LED FFT(高速傅氏變換)源碼
A/D轉換
c.四種顯示效果: 我按下按鍵切換頻譜的顯示模式 位運算
d.亮度切換 : 我按下按鍵音樂頻譜的亮度會發生變化 PWM調光
e.聲音輸出 : 視頻中的音樂輸出 TDA2822功放
LED音樂頻譜說通俗一點,就是將聲音信號經過FFT從時域轉換爲頻域(說的可能仍是有點麻煩)。當中的轉換是經過A/D來實現的。咱們經過16*16的點陣觀察到的圖像就是他的頻域信號。由左到右逐漸頻率添加。LED點陣就是咱們在大街上看到的滾動的廣告牌。顯示的效果是經過位運算的轉換,轉化爲不一樣的顯示模式。
亮度則直接使用STC12單片機自帶的D/A。聲音的輸出用的是一個TDA2822功放芯片。我曾經用他作太小音箱。5V的輸入,效果還可以。
看到這裏,你仍有可能對當中的細節實現不是很是清楚,別操心,我會負責究竟。接下來的博客我會繼續帶小夥伴們分析這個東東的。
三.軟件框圖