資源描述:
《數(shù)電實(shí)驗(yàn)簡(jiǎn)易電子琴的設(shè)計(jì)報(bào)告》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、簡(jiǎn)易電子琴的設(shè)計(jì)姓名:班級(jí):學(xué)號(hào):一、項(xiàng)目概況選題目的,為了進(jìn)一步鞏固之前學(xué)到的知識(shí),將課本的知識(shí)結(jié)合趣味性,讓自己得到更好的提高。項(xiàng)目構(gòu)思,模型要做一個(gè)能成功實(shí)現(xiàn)的簡(jiǎn)易電子琴,包括按鍵按下后蜂鳴器會(huì)根據(jù)相應(yīng)的頻率準(zhǔn)確發(fā)出相應(yīng)音階的聲音,7段數(shù)碼管會(huì)顯示出按鍵的簡(jiǎn)譜,輸出端H可以表示音的高低。要用到計(jì)數(shù)器,觸發(fā)器分頻器,7段數(shù)碼顯示器等元件。二、方案設(shè)計(jì)系統(tǒng)框圖為:系統(tǒng)簡(jiǎn)介如下:1.系統(tǒng)框圖2.系統(tǒng)端口(2個(gè)輸入口3個(gè)輸出口)(1)CLK,頻率1MHz。用于提供時(shí)鐘脈沖信號(hào)。(1)DIN[7..0]。琴鍵輸入的8個(gè)音符,8位中只有一
2、位是低電平即每次只能按一個(gè)鍵。(2)SPK。用于驅(qū)動(dòng)蜂鳴器,輸出頻率fB與蜂鳴器發(fā)出的音調(diào)與電子琴各音階基頻有對(duì)應(yīng)關(guān)系。(3)LED。接數(shù)碼管,用于顯示對(duì)應(yīng)的簡(jiǎn)譜碼,H顯示音調(diào)高低。3.工作原理(1)編碼器CODE3。將輸入的8位琴鍵信號(hào)進(jìn)行編碼,輸出一個(gè)4位碼,最多能對(duì)應(yīng)16個(gè)音符(若有16個(gè)鍵)。按下的琴鍵的電平為低。例:8’b11111110:KEY<=4’b0001輸入第一位琴鍵“哆”此時(shí)編譯成4位二進(jìn)制數(shù)2^0=1傳入譯碼器INX2CODE。(2)譯碼器INX2CODE。將鍵盤(pán)輸入的編碼信號(hào)譯碼成數(shù)控分頻器SPK0輸出信號(hào)
3、的頻率控制字。例:1:F_CODE<=11’H305剛才編碼器編碼傳入的琴鍵“哆”的1此時(shí)被譯碼為數(shù)控分頻器SPK0的輸出信號(hào)的頻率控制字305H。(3)SPK0。計(jì)數(shù)器CNT11B是一個(gè)LPM宏模塊,利用同步加載控制sload避免來(lái)自進(jìn)位信號(hào)cout中可能的毛刺影響,反相器和D觸發(fā)器使得進(jìn)位信號(hào)延遲半個(gè)時(shí)鐘周期,過(guò)濾掉可能的毛刺,使得加載更加可靠。例:經(jīng)過(guò)編譯的305H被置入模塊SPK0的11位可預(yù)置計(jì)數(shù)器中計(jì)數(shù)器不斷以此值為計(jì)數(shù)起始值,直至全為1。以305H計(jì)數(shù)起始,計(jì)數(shù)器成為一個(gè)模為1270(7FFH-305H=4F6H=12
4、70)的計(jì)數(shù)器。從CLK端每輸入1270個(gè)脈沖,BEEP輸出一個(gè)進(jìn)位脈沖。CLK的輸入頻率是1MHz,BEEP輸出的信號(hào)頻率是1/(12701us)=787Hz,然而SPK0的輸出信號(hào)經(jīng)過(guò)一個(gè)D觸發(fā)器接成的T’觸發(fā)器后才輸出給蜂鳴器。T’觸發(fā)器一是作二分頻器,二分頻就是通過(guò)有分頻作用的電路結(jié)構(gòu),在時(shí)鐘每觸發(fā)2個(gè)周期時(shí),電路輸出1個(gè)周期信號(hào)。此時(shí)預(yù)置的305H對(duì)應(yīng)的蜂鳴器發(fā)音的基頻FB約等于392.00Hz,二是作為占空比均衡電路,使得SPK0模塊輸出的功率極低脈款較窄無(wú)法驅(qū)動(dòng)蜂鳴器的信號(hào)脈寬變均勻(FB占空比為50%)。附加T’觸發(fā)
5、器的知識(shí)點(diǎn):T’觸發(fā)器又叫計(jì)數(shù)器在上升沿到來(lái)時(shí)實(shí)現(xiàn)對(duì)原狀態(tài)的翻轉(zhuǎn)實(shí)現(xiàn)計(jì)數(shù),頻率是時(shí)鐘周期的一半實(shí)現(xiàn)二分頻。(2)M_CODE。將CODE3的編碼編譯為簡(jiǎn)譜碼傳遞給DCD7SG并且編譯對(duì)應(yīng)的音調(diào)高低值H。當(dāng)音調(diào)為高的時(shí)候H輸出為1,H接LED燈亮。1:{CODE,H}<={4’B0001,1’B0};按下“哆”,此時(shí)編碼的鍵盤(pán)按鍵為1,M_CODE將其編譯為簡(jiǎn)譜碼0001,H為0,低音調(diào)。(3)DCD7SG。數(shù)碼管7段顯示譯碼器,將簡(jiǎn)譜碼編譯成數(shù)碼管的顯示信號(hào)。類(lèi)似于74LS48,其輸出順序?yàn)間-a。例:4’B0001:LED<=7’
6、B0000110;M_CODE編譯出來(lái)的簡(jiǎn)譜碼B0001在數(shù)碼管7段(gfedcba)顯示譯碼器中,bc為高電平,數(shù)碼管顯示出來(lái)“哆”的簡(jiǎn)譜1。三、設(shè)計(jì)與調(diào)試設(shè)計(jì)中存在的問(wèn)題:1.因?yàn)樽陨砘A(chǔ)較差對(duì)計(jì)數(shù)器的功能理解不夠在SPK0的部分存在毛刺影響。解決辦法:使用反相器和D觸發(fā)器接在進(jìn)位信號(hào)cout處,將cout延時(shí)半個(gè)時(shí)鐘周期,使得加載更加可靠2.7段數(shù)碼管顯示出來(lái)的數(shù)字是鏡像。解決辦法:顯示器的abcdefg的高位低位弄錯(cuò),應(yīng)該為gfedcba。3.波形仿真時(shí)要一一音符驗(yàn)證,較為繁瑣。解決辦法:將DIN和LED的countever
7、y設(shè)置為8.89這樣就能在同一個(gè)頁(yè)面中看出仿真的波形和對(duì)比結(jié)果以驗(yàn)證是否正確。4.實(shí)驗(yàn)板子上的晶振是20MHz的,而實(shí)驗(yàn)需要1MHz調(diào)用PLL模塊,使其分頻為1/20,如圖仿真:將endtime設(shè)置為80usCLK因?yàn)轭l率是1MHz所以周期是1.0us驗(yàn)證輸入“哆”手動(dòng)將DIN設(shè)置為11111110仿真結(jié)果LED7段數(shù)碼顯示管(gfedcba=0000110bc)顯示出數(shù)字1。H始終為低電平,顯示為音調(diào)為低值。仿真波形如下:優(yōu)勢(shì)與不足從低音階到高音階的波形如下所示,實(shí)現(xiàn)了按鍵后通過(guò)CODE編碼器將鍵盤(pán)按鍵信號(hào)通過(guò)INX2CODE的譯
8、碼傳遞給SPK0再通過(guò)T’觸發(fā)器將脈寬變均勻的信號(hào)傳遞給蜂鳴器實(shí)現(xiàn)音階的發(fā)音,也實(shí)現(xiàn)了7段數(shù)碼顯示管顯示按鍵鍵盤(pán)音符的簡(jiǎn)譜和用H來(lái)顯示音調(diào)高低,如下圖在音符上升為高音“哆”之前,H一直為低電平,在DIN為01111111時(shí),上升為高音