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