手把手教你学习FPGA系列视频教程_救护车鸣笛声
本套教程主要面對FPGA初學者,本次DIY活動不僅讓初學者掌握FPGA硬件電路設計以及焊接方面的知識,更重要的是讓初學者學習硬件描述語言 (VerilogHDL)描述數字電路,以及Quartus II、Modelsim等工具的使用,學會怎么用CPLD/FPGA做設計,掌握FPGA的學習方法,少走彎路,輕松邁進CPLD/FPGA設計開發的大門。
下面,我們來看一下蜂鳴器篇的第一個實驗:讓蜂鳴器發出救護車鳴笛的聲音
首先我們看一下開發環境
我們硬件開發環境采用的是CycloeIV系列EP4CE6開發板
軟件實驗環境采用的是Quartus II 12.0開發軟件及Modelsim SE 10.0c開發軟件
我們來看一下本實驗的實驗任務:讓開發板上的蜂鳴器發出救護車鳴笛聲
我們先了解一下蜂鳴器的基礎知識:蜂鳴器是一種一體化結構的電子訊響器,采用直流電壓供電,廣泛應用于計算機、打印機、復印機、報警器、電子玩具、汽車電子設備、電話機、定時器等電子產品中做發聲器件。
我們了解了蜂鳴器的基礎知識后,來了解一下硬件發聲的原理
硬 件電路的發聲原理:聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制FPGA芯片某個引腳輸出一定頻率的矩形波,接上無源蜂鳴器就能發出相應頻率的 聲音。樂曲中的每一音符對應著一個確定的頻率,要想FPGA發出不出音符的音調,實際上只要控制它輸出相應音符的頻率即可。樂曲都是由一連串的音符組成, 因此按照樂譜依次輸出這些音符所對應的頻率,就可以在無源蜂鳴器上連續地發出各個音符的音調。而要準確地演奏出一首樂曲,僅僅讓無源蜂鳴器發聲是不夠的, 還必須準確地控制樂曲的節奏,即樂曲中每個音符的發生頻率及其持續時間是樂曲能夠連續演奏的兩個關鍵因素。
我們來看一下開發板上蜂鳴器的原理圖
如下圖所示,蜂鳴器用PNP三極管進行驅動控制,并使用無源蜂鳴器,當在BEEP輸入一定頻率的脈沖時,蜂鳴器將會蜂鳴,改變輸入頻率可以改變蜂鳴器的響聲。因此,可以利用一個PWM來控制BEEP,通過改變PWM的頻率來得到不同的聲響,當然也可以用來播放音樂。
下面我們看一下我們本實驗的原理
本次實驗的目的是讓開發板上的蜂鳴器發出救護車鳴笛聲。通過查閱資料,我們了解到,救護車的是由兩個音調按照一定頻率交替實現的鳴笛聲。我們的開發板板載 50MHz的晶振,通過Verilog HDL語言編程將此頻率分頻后驅動一個I/O口,這個I/O口連接到DIY開發板上的無源蜂鳴器,通過改變這個I/O口的輸出頻率,就叫使蜂鳴器發出各種 聲音和音樂。本次實驗實現蜂鳴器發出救護車鳴笛聲,我們可以通過讓蜂鳴器交替發出兩個音調來實現。首先,我們使用一個25位的計數器"div_cnt"來 產生一個低頻的方波,其最高有效位(div_cnt[24])以大約1.5Hz的頻率翻轉。我們使用這一位(div_cnt[24])來控制主計數器產生 在兩個頻率之間切換的輸出波形,這樣一來,就可以交替發出兩個音調,發出類似救護車的鳴笛聲。
下面,我們來看一下代碼,了解一下這個實驗具體是如何實現的。
轉載于:https://www.cnblogs.com/dianzichanpin/p/3548158.html
總結
以上是生活随笔為你收集整理的手把手教你学习FPGA系列视频教程_救护车鸣笛声的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python webscoket(Aut
- 下一篇: 微信控制家庭智能小管家机器人资料免费下载