專業(yè)方向課程設(shè)計(jì)報(bào)告-基于單片機(jī)的電子琴設(shè)計(jì)_第1頁
專業(yè)方向課程設(shè)計(jì)報(bào)告-基于單片機(jī)的電子琴設(shè)計(jì)_第2頁
專業(yè)方向課程設(shè)計(jì)報(bào)告-基于單片機(jī)的電子琴設(shè)計(jì)_第3頁
專業(yè)方向課程設(shè)計(jì)報(bào)告-基于單片機(jī)的電子琴設(shè)計(jì)_第4頁
專業(yè)方向課程設(shè)計(jì)報(bào)告-基于單片機(jī)的電子琴設(shè)計(jì)_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、專業(yè)方向課程設(shè)計(jì)報(bào)告基于單片機(jī)的電子琴設(shè)計(jì)班級(jí):組員:組號(hào):基于單片機(jī)的電子琴設(shè)計(jì)1、設(shè)計(jì)要求4*4按鍵組成16個(gè)按鍵矩陣,設(shè)計(jì)成16個(gè)音。然后再用一個(gè)音頻放大模塊 來使音樂播出的聲音變大。用戶口j通過這16個(gè)鍵的隨意組合來隨意彈奏想要表 達(dá)的音樂。且按鍵松開延吋一段時(shí)間停止,中間再按別的鍵則發(fā)另一音調(diào)的 聲音。2、方案比較與確定方案一:使用單片機(jī)內(nèi)部定時(shí)器,通過編程實(shí)現(xiàn)發(fā)出不同頻率方波,產(chǎn)生音階。方案二:使用8253作為外部定時(shí)器,通過編程實(shí)現(xiàn)產(chǎn)生所需頻率的方波。通過對(duì)方案一和方案二的比較可以知道,方案一是通過使用單片機(jī)內(nèi)部定時(shí) 器,以編程實(shí)現(xiàn)方波輸出,優(yōu)點(diǎn)在于外部電路簡單,程序結(jié)構(gòu)簡單,缺

2、點(diǎn)在于消 耗單片機(jī)資源過多,不利于優(yōu)化升級(jí);方案二是利用8253來產(chǎn)生方波,相對(duì)來 說這種方案外部電路較為復(fù)雜,程序結(jié)構(gòu)也更為復(fù)雜,優(yōu)點(diǎn)在于山用單片機(jī)資源 少,輸出穩(wěn)定,利于擴(kuò)展;為簡化結(jié)構(gòu)我們選擇方案。2.1方案一設(shè)計(jì)2.1.1方案:利用單片機(jī)產(chǎn)生不同頻率來獲得我們要求的音階,最終可隨意彈奏 想耍表達(dá)的音樂。并冃分別從原理圖,主要芯片,各模塊原理及各模塊的程序的 調(diào)試來詳細(xì)闡述。按下鍵盤矩陣屮的按鍵會(huì)使揚(yáng)聲器播放器對(duì)應(yīng)的音符。具原理 框圖如下:12mhz»”鐘訶一數(shù)轡囂器1揚(yáng)聲器鍵盤輸入>音頻編碼電路圖1電路方框圖2.1.2. 1 硬件設(shè)計(jì)規(guī)劃:根據(jù)系統(tǒng)設(shè)計(jì)耍求,系統(tǒng)設(shè)計(jì)采用

3、自頂向下的設(shè)計(jì) 方法,它由復(fù)位模塊、音調(diào)發(fā)生模塊和矩陣鍵盤模塊三部分組成。電子琴系統(tǒng)原 理框圖如下:圖2電子琴系統(tǒng)原理框圖2. 1. 2. 2 at89c52 芯片介紹其中at89c52為8位低功耗單片機(jī),采用工業(yè)標(biāo)準(zhǔn)的c51內(nèi)核,在內(nèi)部功能及 管腳排布上與通用的8xc52相同,其主要用于會(huì)聚調(diào)整時(shí)的功能控制。功能包 描對(duì)會(huì)聚主ic內(nèi)部寄存器、數(shù)拯ram及外部接口等功能部件的初始化,會(huì)聚調(diào) 整控制,會(huì)聚測試圖控制,紅外遙控信號(hào)ir的接收解碼及與主板cpu通信等。 主要管腳有:xtal1 (19腳)和xtal2 (18腳)為振蕩器輸入輸出端口,外接 12mhz晶振。rst (9腳)為復(fù)位輸入端口

4、,外接電阻電容組成的復(fù)位電路。vcc(40腳)和gnd (20腳)為供電端口,分別接+5v電源的正負(fù)端。p0p3為可 編程通用i/o腳,其功能用途由軟件定義,在本設(shè)計(jì)中,p0端口(3239腳) 定義為雙向8位三態(tài)i/o接口,它既可以作為通用i/o接口,又可作為外部擴(kuò)展 時(shí)的數(shù)據(jù)總線及低8位地址總線的分時(shí)復(fù)用口; p1端口(1飛腳)定義為準(zhǔn)雙向 i/o接口,內(nèi)部具有上拉電阻;p2端口(2128腳)定義為8位準(zhǔn)雙向i/o接口, 內(nèi)部具冇上拉電阻,可直接連接外部i/o設(shè)備,同時(shí)與地址高8位復(fù)用;p3端 口(1017)定義為8位準(zhǔn)雙向i/o接口,內(nèi)部具有上拉電阻,它是雙功能復(fù)用 口,每個(gè)引腳可驅(qū)動(dòng)4個(gè)

5、ttl負(fù)載。2. 1.2.2晶振電路at89c52單片機(jī)的定時(shí)控制功能是用時(shí)鐘電路和振蕩器完成的,而根據(jù)硬件電 路的不同,連接方式分為內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式。本設(shè)計(jì)屮釆用內(nèi)部時(shí)鐘 方式。單片機(jī)內(nèi)部有一個(gè)反相放大器xtal1,xtal2分別為反相放大器的輸入端和輸 出端,外接定時(shí)反饋元件組成振蕩器,產(chǎn)生時(shí)鐘送至單片機(jī)內(nèi)部各元件。時(shí)鐘頻 率越高,單片機(jī)控制器的控制節(jié)拍就越快,運(yùn)算速度也就越快。一般來說單片機(jī)內(nèi)部冇一個(gè)帶反饋的線性反相放大器,外接品振和電筒就可 以組成振蕩器,如圖所示。加電以后延時(shí)一段時(shí)間振蕩器產(chǎn)生時(shí)鐘,不受軟件控 制。亠(22沖f <巳cpu1 19:xtal115xta

6、l2牛c3圖3晶振電路2.1. 2. 3 音調(diào)發(fā)生模塊音調(diào)發(fā)生模塊的作用是產(chǎn)生音階的分頻預(yù)置值。當(dāng)7位發(fā)聲控制輸入信號(hào) 屮的某一位為高電平吋,則對(duì)應(yīng)某一音節(jié)的數(shù)值將輸出(通過對(duì)照圖4各音名對(duì) 應(yīng)的分頻系數(shù)值及初始值)該數(shù)值即為該音階的分頻初始值,分頻預(yù)置值控制數(shù) 控分頻模塊進(jìn)行分頻,由此可得到每個(gè)音階對(duì)應(yīng)的頻率。(1) 基準(zhǔn)頻率的選取各音名所對(duì)應(yīng)的頻率可由一頻率較高的基準(zhǔn)頻率進(jìn)行整數(shù)分頻得到,所以 實(shí)際產(chǎn)生各音名頻率為近似的整數(shù)值。這是由于音階頻率多為非整數(shù),而分頻系 數(shù)又不能為小數(shù),故必須將得到的分頻系數(shù)四舍五入取整,若基準(zhǔn)頻率過低,則 由丁分頻系數(shù)過小,四舍五入取整后的誤差較大,若基準(zhǔn)頻率

7、過高,雖然誤碼差 較小,但分頻結(jié)構(gòu)將變大,實(shí)際的設(shè)計(jì)應(yīng)綜合考慮兩方面的因素,在盡量減小頻 率差的前提下取舍合適的基準(zhǔn)頻率。本次設(shè)計(jì)選擇12mhz作為基準(zhǔn)頻率。(2) 分頻系數(shù)a、公用二進(jìn)制的計(jì)數(shù)容量n及初始值的選取d1、分頻系數(shù)的選取首先將12mhz的基準(zhǔn)頻率進(jìn)行12分頻,得到1mhz的基準(zhǔn)頻率,分頻系數(shù) a=lmhz/音名頻率,此分頻系數(shù)可由計(jì)數(shù)器實(shí)現(xiàn)。但若不加處理語句,其分頻 后的信號(hào)將不是對(duì)稱方波。而占空比很小的方波很難使揚(yáng)聲器有效地發(fā)出聲響。為得到對(duì)稱方波,可將分頻系數(shù)a分解為:分頻系數(shù)a二分頻系數(shù)nx2o即 先進(jìn)行分頻系數(shù)n的分頻,得到不對(duì)稱方波,然后再2分頻得到對(duì)稱方波。2、公用二

8、進(jìn)制的計(jì)數(shù)容量n的選取n分頻可由n進(jìn)制計(jì)數(shù)器實(shí)現(xiàn)。n進(jìn)制計(jì)數(shù)器可用復(fù)位法或置位法實(shí)現(xiàn),由 丁加載初始值d的置位法可有效地減少設(shè)計(jì)所山用的可編程邏輯器件資源,因 此,此次設(shè)計(jì)采用置位法。低音1的分頻數(shù)n為最大,其值為1275,應(yīng)取公用二進(jìn)制計(jì)數(shù)器的計(jì)數(shù)容 量n大與“最大分頻系數(shù)n”,故木次設(shè)計(jì)的公用二進(jìn)制計(jì)數(shù)器應(yīng)該設(shè)計(jì)為十一 位二進(jìn)制加法計(jì)數(shù)器,其計(jì)數(shù)最大容量為2048,計(jì)數(shù)的最大值n為2047,可滿 足木次設(shè)計(jì)屮所有音名對(duì)音頻系數(shù)的要求。3、初始值的選取d初始值d =計(jì)數(shù)最大值n -分頻系數(shù)n此次設(shè)計(jì)屮應(yīng)用的各音名對(duì)應(yīng)的分頻系數(shù)值及初始值如表所示:音符初始值對(duì)應(yīng)音譜02047017731291

9、22310363411164511975612906713727814101914802101542312162251517281圖4各音名對(duì)應(yīng)的分頻系數(shù)值及初始值2. 1.2.3按鍵的實(shí)現(xiàn)過程1. 4x4行列式鍵盤識(shí)別及顯示組成鍵盤的按鍵有機(jī)械式、電容式、導(dǎo)電橡膠式、薄膜式多種,但不管什么 形式,其作用都是一個(gè)使電路接通與斷開的開關(guān)。目前微機(jī)系統(tǒng)屮使用的鍵盤按 其功能不同,通??煞譃榫幋a鍵盤和非編碼鍵盤兩種基本類型。編碼鍵盤:鍵盤本身帶有實(shí)現(xiàn)接口主要功能所需的碩件電路。不僅能自動(dòng)檢測被 按下的鍵,并完成去抖動(dòng)、防串鍵等功能,而冃能提供與被按鍵功能對(duì)應(yīng)的鍵碼 (如ascii碼)送往cpu。所以

10、,編碼鍵盤接口簡單、使用方便。但由于硬件電 路較復(fù)雜,因而價(jià)格較貴。非編碼鍵盤:鍵盤只簡單地提供按鍵開關(guān)的行列矩陣。有關(guān)按鍵的識(shí)別、鍵碼的 確定與輸入、去抖動(dòng)等功能均由軟件完成。目前微機(jī)系統(tǒng)中,一般為了降低成本 人多數(shù)采用非編碼鍵盤。鍵盤接口必須具有去抖動(dòng)、防串鍵、按鍵識(shí)別和鍵碼產(chǎn)生4個(gè)基木功能。(1)去抖動(dòng)每個(gè)按鍵在按下或松開時(shí),都會(huì)產(chǎn)生短時(shí)間的抖動(dòng)。抖動(dòng)的持續(xù)時(shí)間與鍵的 質(zhì)量相關(guān),一般為520mm。所謂抖動(dòng)是指在識(shí)別被按鍵是必須避開抖動(dòng)狀態(tài), 只有處在穩(wěn)定接通或穩(wěn)定斷開狀態(tài)才能保證識(shí)別止確無謀。去抖問題可通過軟件 延時(shí)或硬件屯路解決。(2)防串鍵防串鍵是為了解決多個(gè)鍵同時(shí)按下或者前一按鍵沒

11、有釋放乂有新的按鍵按 下時(shí)產(chǎn)生的問題。常用的方法有雙鍵鎖定和n鍵輪回兩種方法。雙鍵鎖定,是當(dāng) 有兩個(gè)或兩個(gè)以上的按鍵按卜時(shí),只把最后釋放的鍵當(dāng)作有效鍵并產(chǎn)生相應(yīng)的鍵 碼。n鍵輪回,是當(dāng)檢測到有多個(gè)鍵被按下時(shí),能根據(jù)發(fā)現(xiàn)它們的順序依次產(chǎn)生 相應(yīng)鍵的鍵碼。(3) 被按鍵識(shí)別如何識(shí)別被按鍵是接口解決的主要問題,一般可通過軟硬結(jié)合的方法完成。 常用的方法有行掃描法和線反轉(zhuǎn)法兩種。行掃描法的基本思想是,由程序?qū)︽I盤 逐行掃描,通過檢測到的列輸出狀態(tài)來確定閉合鍵,為此,需要設(shè)置入口、輸出 口一個(gè),該方法在微機(jī)系統(tǒng)屮被廣泛使用。線反轉(zhuǎn)法的基木思想是通過行列顛倒 兩次掃描來識(shí)別閉合鍵,為此需要提供兩個(gè)可編程的

12、雙向輸入/輸出端口。(4) 鍵碼產(chǎn)生為了從鍵的行列坐標(biāo)編碼得到反映鍵功能的鍵碼,-般在內(nèi)存區(qū)中建立一個(gè) 鍵盤編碼表,通過查表獲得被按鍵的鍵碼。用at89c52的并行口 p1接4x4矩陣鍵盤,以pl. 0-p1. 3作輸入線,以 p2. 0-p2. 3作輸入線,以p2. 4-p2. 7作輸出線。如下圖所示丄© ctr .dryo <-o 0圖5鍵盤識(shí)別模塊每個(gè)按鍵有它的行值和列值,行值和列值的組合就是識(shí)別這個(gè)按鍵的編碼。矩陣的行線和列線分別通過兩并行接口和cpu通信。每個(gè)按鍵的狀態(tài)同樣需變成數(shù)字量“(f和“1”,開關(guān)的一端(列線)通過電阻接vcc,而接地是通過程序輸出數(shù)字“(尸實(shí)

13、現(xiàn)的。(1) 鍵盤處理程序的任務(wù)確定冇無鍵按下,判斷哪一個(gè)鍵按下,鍵的功能是什么;還要消除按鍵在閉 合或斷開吋的抖動(dòng)。兩個(gè)并行口屮,一個(gè)輸出掃描碼,使按鍵逐行動(dòng)態(tài)接地,另 一個(gè)并行口輸入按鍵狀態(tài),由行掃描值和冋饋信號(hào)共同形成鍵編碼而識(shí)別按鍵, 通過軟件查表,查出該鍵的功能。利用所給鍵盤的116個(gè)鍵,能夠發(fā)出16個(gè)不同的咅調(diào),并且要求按下按 鍵發(fā)聲,松開延時(shí)一段時(shí)間停止,中間再按別的鍵則發(fā)另一音調(diào)的聲音具體過程:當(dāng)系統(tǒng)掃描到鍵盤上有鍵子被按下,則快速檢測出是那一個(gè)鍵 子,然后單片機(jī)的定時(shí)器被啟動(dòng),發(fā)出一定頻率的脈沖,該頻率的脈沖經(jīng)喇叭張 動(dòng)電路放大濾波后,就會(huì)發(fā)出相應(yīng)的音調(diào)。如果在前一個(gè)按下的鍵

14、發(fā)聲的同時(shí)冇 另一個(gè)鍵被按卜;則啟用中斷系統(tǒng),前面鍵的發(fā)咅停止,轉(zhuǎn)到后按的鍵的發(fā)咅程 序,發(fā)出后按的鍵的音。2. 1. 2. 4、矩陣掃描揚(yáng)聲器發(fā)出對(duì)應(yīng)音符模塊如下: 1-4 _r . .x-* .0 *亠圖5發(fā)音模塊2.1.3.系統(tǒng)軟件設(shè)計(jì)本系統(tǒng)的軟件系統(tǒng)主要由:主程序、屮斷服務(wù)程序、按鍵子程序、延時(shí)子程序幾大塊組成。開始鍵盤按卜否?i u初始化并開中斷 允許ibm析:no識(shí)別鍵盤功能啟動(dòng)no按鍵釋放否丁停 ili3 1 11圖6主程序框圖圖7中斷服務(wù)程序框圖圖8音樂發(fā)生程序圖2.2、方案二設(shè)計(jì)2.2. 1方案:基于stc89s52單片機(jī),以8253作為外部中斷,通過鍵盤控制, 設(shè)計(jì)一個(gè)電子

15、琴。2.2.2原理:單片機(jī)作為主控核心,通過對(duì)鍵盤按鍵鍵值進(jìn)行定義,讓定時(shí) 器8253產(chǎn)生16個(gè)特定頻率的方波,通過由lm386組成外部功放電路輸出至揚(yáng)聲 器發(fā)岀16個(gè)不音階。碩件部分主要功能模塊包含:鍵盤控制模塊、方波發(fā)生模 塊、聲音輸出模塊。軟件部分主要功能模塊包含:主程序、8253方波發(fā)生子程 序、7279初始化了程。其中咅名與頻率的對(duì)應(yīng)關(guān)系如下:音名頻率(hz)音名頻率(hz)音名頻率(hz)低咅1261.63中咅1523. 25高咅11046. 50低音2293. 67中音2587. 33高音21174. 66低音3329. 63中音3659. 25高音31381.51低咅4319.

16、 23中咅4698. 46高咅41396. 92低音5391. 99中音5783. 99高音51567.98低音6440中音6880高音61760低咅7439. 88中咅7987. 76高咅71975. 52圖9 簡譜中的音名與頻率的關(guān)系當(dāng)按卜特定的按鍵后,程序通過讀鍵值了程序得到所按下鍵的鍵值,再將所 得的鍵值與鍵盤 1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16十六個(gè)鍵的鍵值相比較,從而確定所按下的鍵。當(dāng)確認(rèn)按鍵后再調(diào)用8253方波發(fā)生子程序,使8253產(chǎn)生相應(yīng)頻率的方波持續(xù)輸出。其原理框圖如下:圖io系統(tǒng)原理框圖2.2.3程序設(shè)計(jì)圖11主程序流程框圖圖11方

17、波發(fā)生程序框圖讀鍵值了程庁入口_ 戈'no足杏冇鍵按卡?;一圖12讀鍵值子程序3、原理圖及其電路仿真圖cr二匚 lx汎兀kgwkk圖13電路原理圖七5clidc3<np1fw心pocma&op01ump02u02pokwapowtf*astpo7u&7怦網(wǎng)p22u10psenp23xa11總卻3p2 7xa15pio町orgpl 1m2殆城叵pl 3p3 3xt5pi 4pi 5p16m y小用5tu1atwc51兀*二 v7裁耳并h *3vvccsomr圖14 電路仿真圖4 測試方案與測試結(jié)果4.1硬件調(diào)試硬件調(diào)試主要是針對(duì)單片機(jī)部分進(jìn)行的調(diào)試。在上電z前,先確

18、保電路中不存在斷路或短路情況,這一工作是整個(gè)調(diào)試工作的 第一步,也是非常重要的一個(gè)步驟。在這部分調(diào)試屮主要使用的工具是萬用表, 用來完成檢測電路中是否存在斷路或者短路情況的任務(wù)。注意焊點(diǎn)之間,確保焊 點(diǎn)沒有短接在一起,同時(shí)注意焊點(diǎn)的美觀,確保沒有開路以及短路的現(xiàn)象出現(xiàn)。 在確保硬件電路正常11無異常情況(斷路或短路)的情況下方口j上電調(diào)試,上電調(diào) 試的冃的是檢驗(yàn)電路是否接錯(cuò),同時(shí)還要檢驗(yàn)原理是否止確,在本次設(shè)計(jì)中,上 電調(diào)試主要是檢測單片機(jī)控制部分和音頻轉(zhuǎn)換電路硬件調(diào)試。鍵盤單片機(jī)控制部 分調(diào)試:上電后,隨機(jī)按動(dòng)鍵盤可以發(fā)現(xiàn)各個(gè)按鍵對(duì)應(yīng)的音正確。42軟件調(diào)試調(diào)試主要方法和技巧:通常一個(gè)調(diào)試程序應(yīng)該具備至少四種性能:跟蹤、斷點(diǎn)、 杳看變量、更改數(shù)值。整個(gè)程序是一個(gè)主程序調(diào)用各個(gè)了程序?qū)崿F(xiàn)功能的過程, 要使主程序和整個(gè)程序都能平穩(wěn)運(yùn)行,各個(gè)模塊的子程序的正確與平穩(wěn)運(yùn)行必不 可少,所以在軟件調(diào)試的最初階段就是把各個(gè)子程序模塊進(jìn)行分別調(diào)試。5 作品功能和使用說明5. 1 功能通過對(duì)16鍵的控制發(fā)出咅樂,能夠彈出口己想要的咅樂5.2 使用直接按下16個(gè)按鍵來發(fā)出音樂6心得體會(huì)通過這次課程設(shè)計(jì),我學(xué)到了不少課本上沒有的知識(shí),也鍛煉了自己的動(dòng)手 能力,將以而學(xué)過的零散的知識(shí)串到一起。經(jīng)過我長時(shí)間的設(shè)計(jì)及調(diào)試,本系統(tǒng) 基本能實(shí)現(xiàn)按下鍵盤矩陣中的按鍵會(huì)使數(shù)碼管顯示當(dāng)前按鍵,揚(yáng)聲器播放對(duì)應(yīng)的 音符。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論