


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、畢業(yè)設(shè)計(jì)論文課題名稱:指導(dǎo)教師:系別:支業(yè):班級(jí):姓名:摘要音樂一直都是人類情感表達(dá)的一個(gè)重要媒介,隨著社會(huì)的進(jìn)步與開展,音樂在人類的生活與學(xué)習(xí)中的作用越發(fā)不可無視。電子琴也是實(shí)現(xiàn)播放音樂的一個(gè)途徑。電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器,它在音樂演奏中已成為不可缺少的一局部。單片機(jī)是一個(gè)具有功能強(qiáng)大和編程靈活性的控制器,它已廣泛應(yīng)用丁現(xiàn)代人們的生活中,扮演著重要的角色。本設(shè)計(jì)主要是使用AT89C51單片機(jī)與單片機(jī)C語言,用AT89S51單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)電子琴。以單片機(jī)作為主控核心,與鍵盤、揚(yáng)聲器等模塊組成核心主控制模塊,在主控模塊上設(shè)有16個(gè)按鍵和揚(yáng)聲器。在
2、PROTEUS仿真平臺(tái)上實(shí)現(xiàn)功能仿真,同時(shí)還增加了音樂播放功能。本文中給出了該系統(tǒng)設(shè)計(jì)的硬件電路,軟件設(shè)計(jì)等。其次,詳細(xì)闡述了程序的各個(gè)模塊和實(shí)現(xiàn)過程。本設(shè)計(jì)具有硬件電路簡單、功能完善、控制可靠、運(yùn)行穩(wěn)定等特點(diǎn),具有一定的實(shí)用性。關(guān)鍵詞:單片機(jī);電子琴;PROTEUSKEIL;C語言1.引言單片微型計(jì)算機(jī)是大規(guī)模集成電路技術(shù)開展的產(chǎn)物,屆第四代電子計(jì)算機(jī),它具有高性能、高速度、體積小、價(jià)格低廉、穩(wěn)定可靠、應(yīng)用廣泛的特點(diǎn)。它的應(yīng)用必定導(dǎo)致傳統(tǒng)的控制技術(shù)從根本上發(fā)生變革。因此,單片機(jī)的開發(fā)應(yīng)用已成為高科技和工程領(lǐng)域的一項(xiàng)重大課題。電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器。它在現(xiàn)代
3、音樂扮演著重要的角色。簡易電子琴是電聲樂隊(duì)的中堅(jiān)力量,常用丁獨(dú)奏主旋律并伴以豐富的和聲。還常作為獨(dú)奏樂器出現(xiàn),具有鮮明時(shí)代特色。但電子琴的局限性也是十活楚顯:旋律與和聲缺乏音量變化,過丁協(xié)和、單一;在模仿各類館、弦樂器時(shí),音色還不夠逼真,模仿提琴類樂器的音色時(shí),失真度更大,還需要不斷改良。單片機(jī)具有強(qiáng)大的控制功能和靈活的編程實(shí)現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一局部。本文的主要容是用AT89S51單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)電子琴。以單片機(jī)作為主控核心,與鍵盤、揚(yáng)聲器等模塊組成核心主控制模塊,在主控模塊上設(shè)有16個(gè)按鍵和揚(yáng)聲器。對(duì)使用單片機(jī)設(shè)計(jì)簡易電子琴進(jìn)展了分析,并介紹了基
4、丁單片機(jī)電子琴統(tǒng)硬件組成。利用單片機(jī)產(chǎn)生不同頻率來獲得我們要求的音階,最終可隨意彈奏想要表達(dá)的音樂。并且本文分別從原理圖,主要芯片,各模塊原理與各模塊的程序的調(diào)試來詳細(xì)闡述。一首音樂是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對(duì)丁單片機(jī)來產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來產(chǎn)生這樣方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系弄正確即可。這次的電子琴是由4*4組成16個(gè)按鈕矩陣,設(shè)計(jì)成16個(gè)音。然后再用一個(gè)音頻放大模塊來使音樂播出的聲音變大。通過這16個(gè)鍵的隨意組合可隨意彈奏想要表達(dá)
5、的音樂,使用很簡單。該系統(tǒng)通過電子琴按鍵隨意鍵入所要表達(dá)的音符,作為電平送給主體電路,中央處理器通過識(shí)別,解碼輸出音符,在揚(yáng)聲器中發(fā)出有效的聲音。通過這樣可以不斷的彈奏音樂。嵌入式電路,按鍵電路,LED顯示電路和兩個(gè)功能鍵組成,通過功能鍵可以選擇播放音樂。其主要模塊由五個(gè)局部組成,具體關(guān)系如圖2.1所示。本系統(tǒng)的電路根本模塊:51單片機(jī)中心、矩陣鍵盤模塊、顯示模塊、發(fā)音模塊、功能選擇模塊。打開電子琴電源開關(guān)后,電子琴默認(rèn)為彈奏狀態(tài),彈奏顯示燈點(diǎn)亮,數(shù)碼管顯示為0。按下矩陣鍵盤中的任意鍵,揚(yáng)聲器發(fā)相應(yīng)的音調(diào),數(shù)碼管顯示對(duì)應(yīng)的數(shù)字。按下播放按鈕,電子琴處丁自動(dòng)播放狀態(tài),播放顯示燈點(diǎn)亮,此時(shí),按下矩
6、陣鍵盤中的任意鍵,揚(yáng)聲器發(fā)出存儲(chǔ)在單片機(jī)部的對(duì)應(yīng)的樂曲,數(shù)碼管顯示對(duì)應(yīng)的按鍵數(shù)字。再按彈奏/停止鍵,音樂停止。彈奏顯示燈點(diǎn)亮。此時(shí)系統(tǒng)乂處丁彈奏狀態(tài)。3硬件分析將設(shè)計(jì)的電子琴硬件局部進(jìn)展模塊化設(shè)計(jì),主要分以下模塊:1矩陣鍵盤模塊:系統(tǒng)采用4*4矩陣鍵盤。2顯示模塊:系統(tǒng)采用LED顯示管顯示。3功能顯示模塊:采用發(fā)光二極管顯示彈奏、播放兩種狀態(tài)4發(fā)音模塊:采用揚(yáng)聲器發(fā)音。5控制中心模塊:AT89C51單片機(jī)。QXIC2itUW'iGWIZgK3JX1F5FSVSiQ4*UEHw:也EML更M而圖3.1電子琴電路圖3.2 AT89C51單片機(jī)3.2.1 AT89C51簡介AT89S51是一
7、個(gè)低功耗,高性能CMOS8位單片機(jī),片含4kBytesISP(In-systemprogrammable)的可反復(fù)擦寫1000次的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)與80C51引腳結(jié)構(gòu),芯片集成了通用8位中央處理器和ISPFlash存儲(chǔ)單元,功能強(qiáng)大的微型計(jì)算機(jī)的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價(jià)比的解決方案,。外形與引腳排列如如下圖3.2所示。1.nLfll2JJL5JJbHplpJplplpJplpJp1RS:VPUPWNP3.l:TsDP32-1XTDpmvnF3.JTDP3.5TJPJjbUKPM
8、";D.'.IALJXTAL'CjSD圖3.2AT89C51單片機(jī)引腳分配圖.2AT89C51特征1有40個(gè)引腳24K字節(jié)可編程閃爍存儲(chǔ)器3128字節(jié)的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器4兩個(gè)16位定時(shí)器/計(jì)數(shù)器532個(gè)外部雙向輸入/輸出I/O口65個(gè)中斷源7與MCS-51兼容82個(gè)可編程申行通道9片振蕩器和時(shí)鐘電路此外,AT89S51設(shè)計(jì)和配置了振蕩頻率可為0Hz并可通過軟件設(shè)置省電模式??臻e模式下,CPU暫停工作,而RAM定時(shí)計(jì)數(shù)器,申行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時(shí)該芯片還具有PDIP、TQFP和P
9、LCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。3.2.3AT89C51引腳說明VCC:供電電壓。GND:接地。P0口3932:P0口為8位漏極開路雙向I/O口,每引腳可吸收8個(gè)TTL門電流;P1口18:P1口是從部提供上拉電阻器的8位雙向I/O口,P1口緩沖器能接收和輸出4個(gè)TTL門電流;P2口2128:P2口為部上拉電阻器的8位雙向I/O口,P2口緩沖器可接收和輸出4個(gè)TTL門電流;P3口1017:P3口是8個(gè)帶部上拉電阻器的雙向I/O口,可接收和輸出4個(gè)TTL門電流,P3口也可作為AT89C51的特殊功能口;RST9:復(fù)位輸入。當(dāng)振蕩器復(fù)位時(shí),要保持RST引腳2個(gè)機(jī)器周期的局電平時(shí)間;ALE
10、/PROG30:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用丁鎖存地址的低位字節(jié),在FLASH®程期間,此引腳用丁輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6,它可用作對(duì)外部輸出的脈沖或用丁定時(shí)目的,要注意的是,每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過1個(gè)ALE脈沖;PSEN29:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期問,每個(gè)機(jī)器周期2次PSENW效,但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這2次有效的PSENW號(hào)將不出現(xiàn);EA/VPP31:當(dāng)EA保持低電平時(shí),外部程序存儲(chǔ)器地址為0000H-FFFFH不管是否有部程序存儲(chǔ)器。FLASH®程
11、期間,此引腳也用丁施加12V編程電源VPP;XTAL2XTAL119:反向振蕩器放大器的輸入與部時(shí)鐘工作電路的輸入;18:來自反向振蕩器的輸出。3.2 LM386簡介3.3.1 LM386LM386是美國國家半導(dǎo)體公司生產(chǎn)的音頻功率放大器,主要應(yīng)用丁低電壓消費(fèi)類產(chǎn)品。LM386特性:1靜態(tài)功耗低,約為4mA,可用丁電池供電;2工作電壓圍寬,4V-12V或5V-18V;3外圍元件少;4電壓增益可調(diào),20-200;5低失真度;LM386是一種音頻集成功放,具有自身功耗低、電壓增益可調(diào)整、電源電壓圍大、外接元件少和總諧波失真小等優(yōu)點(diǎn),廣泛應(yīng)用丁錄音機(jī)和收音機(jī)之中。圖3.3.1LM386部電路原理圖L
12、M386部電路原理圖如上圖3.3.1所示。與通用型集成運(yùn)放相類似,它是一個(gè)三級(jí)放大電路。第一級(jí)為差分放大電路,T1和T3、T2和T4分別構(gòu)成復(fù)合管,作為差分放大電路的放大管;T5和T6組成鏡像電流源作為T1和T2的有源負(fù)載;T3和T4信號(hào)從管的基極輸入,從T2管的集電極輸出,為雙端輸入單端輸出差分電路。使用鏡像電流源作為差分放大電路有源負(fù)載,可使單端輸出電路的增益近似等丁雙端輸出電容的增益。第二級(jí)為共射放大電路,T7為放大管,包流源作有源負(fù)載,以增大放大倍數(shù)。第三級(jí)中的T8和T9管復(fù)合成PNP型管,與NPN型管T10構(gòu)成準(zhǔn)互補(bǔ)輸出級(jí)。二極管D1和D2為輸出級(jí)提供適宜的偏置電壓,可以消除交越失真
13、。引腳2為反相輸入端,引腳3為同相輸入端。電路由單電源供電,故為OTL電路。輸出端引腳5應(yīng)外接輸出電容后再接負(fù)載。電阻R7從輸出端連接到T2的發(fā)射極,形成反應(yīng)通路,并與R5和R6構(gòu)成反應(yīng)網(wǎng)絡(luò),從而引入了深度電壓申聯(lián)負(fù)反應(yīng),使整個(gè)電路具有穩(wěn)定的電壓增益03.3.2 LM386的引腳圖11 82 73 64 58273645LM386引腳圖引腳2為反相輸入端,引腳3為同相輸入端;引腳5為輸出端;引腳6和4分別為電源和地;引腳1和8為電壓增益設(shè)定端;使用時(shí)在引腳7和地之間接旁路電容,通常取10uF此放大電路由鍵盤輸出的音頻信號(hào)控制,通過輸出的上下電平信號(hào)來控制揚(yáng)聲器的聲音大小。在鍵盤中按鍵數(shù)量較多時(shí)
14、,為了減少I/O口的占用,通常將按鍵排列成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交義處不直接連通,而是通過一個(gè)按鍵加以連接。這樣,一個(gè)端口如P1口就可以構(gòu)成4*4=16個(gè)按鍵,比之直接將端口線用丁鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20鍵的鍵盤,而直接用端口線如此只能多出一鍵9鍵。由此可見,在需要的鍵數(shù)比擬多時(shí),采用矩陣法來做鍵盤是合理的。矩陣式結(jié)構(gòu)的鍵盤顯然比直接法要復(fù)雜一些,識(shí)別也要復(fù)雜一些,本系統(tǒng)中的矩陣鍵盤中,列線通過電阻接正電源,并將行線所接的單片機(jī)的I/O口作為輸出端,而歹0線所接的I/O口如此作為輸入。這樣,當(dāng)按鍵沒有按下時(shí),所有的輸出端都
15、是高電平,代表無鍵按下。行線輸出是低電平,一旦有鍵按下,如此輸入線就會(huì)被拉低,這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下了。鍵盤接口必須具有去抖動(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),一般為5-20mm。所謂抖動(dòng)是指在識(shí)別被按鍵是必須避開抖動(dòng)狀態(tài),只有處在穩(wěn)定接通或穩(wěn)定斷開狀態(tài)才能保證識(shí)別正確無誤。去抖問題可通過軟件延時(shí)或硬件電路解決。2防申鍵:防申鍵是為了解決多個(gè)鍵同時(shí)按下或者前一按鍵沒有釋放乂有新的按鍵按下時(shí)產(chǎn)生的問題。常用的方法有雙鍵鎖定和N鍵輪回兩種方法。雙鍵鎖定,是當(dāng)有兩個(gè)或兩個(gè)以上的按鍵按
16、下時(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è)可編程的雙向輸入/輸出端口。4鍵碼產(chǎn)生:為了從鍵的行列坐標(biāo)編碼得到反映鍵功能的鍵碼,一般在存區(qū)中建立一個(gè)鍵盤編碼表,通過查表獲得被按鍵的鍵碼。
17、mgFt131wn仙禎FC*村區(qū)城Pt城XP(齡膺Ft737下面矩陣式鍵盤上何鍵被按下介紹一種“行掃描法"。行掃描法:行掃描法乂稱為逐行或列掃描查詢法,是一種最常用的按鍵識(shí)別方法,如上圖所示鍵盤,介紹過程如下。1、判斷鍵盤中有無鍵按下。將全部行線置低電平,然后檢測列線的狀態(tài)。只要有一列的電平為低,如此表示鍵盤中有鍵被按下,而且閉合的鍵位丁低電平線與4根行線相交義的4個(gè)按鍵之中。假如所有列線均為高電平,如此鍵盤中無鍵按下。2、判斷閉合鍵所在的位置。在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時(shí),其它線為高電平。在確定某根行線位置
18、為低電平后,再逐行檢測各列線的電平狀態(tài)。假如某列為低,如此該列線與置為低電平的行線交義處的按鍵就是閉合的按鍵。用AT89C51的并行口P0接4X4矩陣鍵盤,以P0.0-P0.3作輸入線,以P0.4-P0.7作輸出線;在數(shù)碼管上顯示每個(gè)按鍵的“0F"序號(hào)。數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個(gè)發(fā)光二極管單元多一個(gè)小數(shù)點(diǎn)顯示;按能顯示多少個(gè)“8”可分為1位、2位、4位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極()的數(shù)碼管。共陽數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極接到+5V,當(dāng)某一字段發(fā)光二
19、極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極()的數(shù)碼管。共陰數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陽極為低電平時(shí),相應(yīng)字段就不亮。顯示模塊如如下圖3.4.3所示。當(dāng)按下彈奏/停止功能鍵時(shí),D1燈點(diǎn)亮,此時(shí),電子琴系統(tǒng)處丁彈奏狀態(tài);當(dāng)按下播放鍵時(shí),D2燈點(diǎn)亮,此時(shí),電子琴系統(tǒng)處丁自動(dòng)播放置音樂狀態(tài)。此系統(tǒng)的功能顯示模塊如如下圖3.4.4所示。音樂發(fā)聲原理:一首音樂是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用
20、不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對(duì)丁單片機(jī)來產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來產(chǎn)生這樣方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系弄正確即可。假如要產(chǎn)生音頻脈沖,只要算出某一音頻的周期1/頻率,再將此周期除以2,即為半周期的時(shí)間。利用定時(shí)器計(jì)時(shí)的半周期時(shí)間,每當(dāng)計(jì)時(shí)終止后就將P3.7反相,然后重復(fù)計(jì)時(shí)再反相。就可在P3.7引腳上得到此頻率的脈沖。利用AT89C51的部定時(shí)器使其工作計(jì)數(shù)器模式MODE1:下,改變計(jì)數(shù)值TH0與TL0以產(chǎn)生不同頻率的方法產(chǎn)生不同音階,例如,頻率為523Hz,其周期T=1/523=1912s,因此只要令計(jì)數(shù)器
21、計(jì)時(shí)956s/1s=956,每計(jì)數(shù)956次時(shí)將I/O反相,就可得到中音DO523Hz。計(jì)數(shù)脈沖值與頻率的關(guān)系式是:N=fi士2士fr式中,N是計(jì)數(shù)值;fi是機(jī)器頻率晶體振蕩器為12MHz時(shí),其頻率為1MHz;fr是想要產(chǎn)生的頻率。其計(jì)數(shù)初值T的求法如下:T=6553665536fi士2士fr例如:設(shè)K=65536,fi=1MHz求低音DO262Hz、中音DO523HzK高音DO1046Hz的計(jì)數(shù)值。T=65536N=65536fi士2士fr=655361000000士2士fr=65536500000/fr低音DO的T=65536500000/262=63628中音DO的T=6553650000
22、0/523=64580高音DO的T=65536500000/104冶65058單片機(jī)12MHZ晶振,高中低音符與計(jì)數(shù)T0相關(guān)的計(jì)數(shù)值如表2所示。表2首符頻率表音符頻率HZJ簡譜碼T值音符頻率HZJ簡譜碼T值休止00中4FA69864820低1DO26263628中5SO78464898低2RE29463835中6LA88064968低3M33064021中7SI98865030低4FA34964103高1DO104665058低39642高11765115SO2602RE50低44644高13165156LA0003M87低49645高13965177SI4244FA78中52645高1566
23、5211DO3805SO87中58646高17665252RE7846LA02中65647高19665283M9777SI73我們要為這個(gè)音符建立一個(gè)表格,單片機(jī)通過查表的方式來獲得相應(yīng)的數(shù)據(jù)。音樂的音拍,以一個(gè)節(jié)拍為單位C調(diào),如表3所示。表3曲調(diào)值表曲調(diào)值DELAY曲調(diào)值DELAY調(diào)4/4125ms調(diào)4/462ms調(diào)3/4187ms調(diào)3/494ms調(diào)2/4250ms調(diào)2/4125ms通過上面關(guān)丁一個(gè)音符音調(diào)和節(jié)拍確實(shí)定方法,我們就可以在單片機(jī)上實(shí)現(xiàn)演奏音樂了。具體的實(shí)現(xiàn)方法為:將樂譜中的每個(gè)音符的音調(diào)與節(jié)拍變換成相應(yīng)的音調(diào)參數(shù)和節(jié)拍參數(shù),將他們做成數(shù)據(jù)表格,存放在存儲(chǔ)器中,通過程序取出個(gè)音符
24、的相關(guān)參數(shù),播放該音符,該音符唱完后,接著取出下一個(gè)音符的相關(guān)參數(shù),如此直到播放完畢最后一個(gè)音符,根據(jù)需要也可循環(huán)不停地播放整個(gè)樂曲。音樂播放裝置的工作原理:當(dāng)打開電子琴電源后,按下彈奏按鈕,再按下矩陣鍵盤任意鍵,揚(yáng)聲器發(fā)出對(duì)應(yīng)的單個(gè)音調(diào);假如按下歌曲選擇按鈕,再按矩陣鍵盤任意鍵,揚(yáng)聲器便發(fā)出存儲(chǔ)在單片機(jī)的對(duì)應(yīng)的一段音樂。0對(duì)丁不同的曲調(diào)我們也可以用單片機(jī)的另外一個(gè)定時(shí)/計(jì)數(shù)器來完成。在這個(gè)程序中用到了兩個(gè)定時(shí)/計(jì)數(shù)器來完成的。其中T0用來產(chǎn)生音符頻率,T1用來產(chǎn)生音拍。4軟件分析T0初始化N.音符值送入T0T0停止計(jì)數(shù)位值加1本設(shè)計(jì)程序如下#include<reg51.h>#in
25、clude<absacc.h>#include<stdio.h>#include<math.h>#defineucharunsignedchar#defineuintunsignedintucharSTH0;定時(shí)器計(jì)數(shù)初值ucharSTL0;bitFY=0;放樂曲時(shí)FY=1,電子琴彈奏時(shí)FY=0ucharSong_Index=0,Tone_Index=0;/放音樂的參數(shù)uchark,key;sbitSPK=P3A7;sbitLED1=P1A0;sbitLED2=P1A1;ucharcodeDSY_CODE=0x3f,0x06,0x5b,0x4f,0x66,0
26、x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;ucharcodeSong100=/任意選幾首音樂的旋律輸入音譜;ucharcodeLen100=這里輸入幾首音樂的旋律每個(gè)音符對(duì)應(yīng)的節(jié)拍輸入相對(duì)應(yīng)的節(jié)拍數(shù);uintcodetab=/*音符與計(jì)數(shù)值對(duì)應(yīng)表*/0,63628,63835,64021,64103,64260,64400,64524,64580,64684,64777,64820,64898,64968,65030,65058,65110,65157,65178,65217,65252,65283;voiddelay1(uin
27、tms)播放歌曲時(shí)實(shí)現(xiàn)節(jié)拍的延時(shí)函數(shù)uchart;while(ms-)for(t=0;t<120;t+);voiddelay(void)/*鍵消抖延時(shí)函數(shù)*/uchari;for(i=300;i>0;i-);uchargetkey(void)/*鍵掃描函數(shù)*/(ucharscancode,tmpcode;if(P0&0xf0)=0xf0)return(0);scancode=0xfe;while(scancode&0x10)!=0)/逐行掃描(P0=scancode;/輸出行掃描碼if(P0&0xf0)!=0xf0)/本行有鍵按下(tmpcode=(P0&a
28、mp;0xf0)|0x0f;/*返回特征字節(jié)碼,為1的位即對(duì)應(yīng)丁行和歹U*/return(scancode)+(tmpcode);elsescancode=(scancode<<1)|0x01;/亍掃描碼左移一位voidEX0_INT()interrupt0/*外部中斷0,這里是彈唱按鍵*/(FY=0;LED1=1;LED2=0;voidEX1_INT()interrupt2/*外部中斷1,這里是播放按鍵*/(FY=1;LED1=0;LED2=1;voidtime0_int(void)interrupt1using0/*定時(shí)器0中斷服務(wù)子程序*/(TH0=STH0;/*設(shè)置計(jì)數(shù)初值
29、*/TL0=STL0;SPK=!SPK;/反相,產(chǎn)生輸出脈沖P2=DSY_CODEk;voidmain(void)(LED1=1;LED2=0;P2=0x3f;IE=0x87;TMOD=0x01;IT0=1;IT1=1;while(1)(P0=0xf0;/發(fā)全0列掃描碼if(P0&0xf0)!=0xf0)/假如有鍵按下delay();/延時(shí)去抖動(dòng)if(P0&0xf0)!=0xf0)/延時(shí)后再判斷一次,去除抖動(dòng)影響key=getkey();/調(diào)用鍵盤掃描函數(shù)switch(key)/根據(jù)獲取的按鍵位置得到k值case0x11:k=0;break;/1行1歹Ucase0x21:k=1
30、;break;/1行2歹Ucase0x41:k=2;break;/1行3歹Ucase0x81:k=3;break;/1行4歹Ucase0x12:k=4;break;/2行1歹Ucase0x22:k=5;break;/2行2歹Ucase0x42:k=6;break;/2行3歹Ucase0x82:k=7;break;/2行4歹Ucase0x14:k=8;break;/3亍1歹Ucase0x24:k=9;break;/3亍2歹Ucase0x44:k=10;break;/3亍3歹Ucase0x84:k=11;break;/3亍4歹Ucase0x18:k=12;break;/3亍4歹Ucase0x28:
31、k=13;break;/3亍4歹Ucase0x48:k=14;break;/3亍4歹Ucase0x88:k=15;break;/3亍4歹Udefault:break;if(FY=0)/*根據(jù)所得的k值設(shè)定計(jì)數(shù)器1的計(jì)數(shù)初值*/STH0=tabk/256;STL0=tabk%256;TR0=1;/開始計(jì)數(shù)while(P0&0xf0)!=0xf0);/假如沒有松開按鍵,如此等待,等待期間彈奏該音符TR0=0;/假如按鍵松開,如此停止計(jì)數(shù),不產(chǎn)生脈沖輸出elsewhile(FY=1)if(SongkTone_Index=-1)Tone_Index=0;STH0=(tabSongkTone_I
32、ndex)/256;STL0=(tabSongkTone_Index)%256;P2=DSY_CODESongkTone_Index;TR0=1;delay1(300*LenkTone_Index);Tone_Index+;TR0=0;5實(shí)現(xiàn)軟件調(diào)試步驟一:安裝Proteus軟件。步驟二:安裝Keil軟件。步驟三:Keil和Proteus的配置因?yàn)槔肒eil和Proteus的結(jié)合可以搭建仿真平臺(tái),實(shí)現(xiàn)軟硬件的仿真。1首先啟動(dòng)Proteus,打開要仿真的工程文件,然后配置Proteus軟件,選擇“Debug''t“UseRemoteDebugMonitor"。2調(diào)出編
33、輯AT89C5倔性的對(duì)話框,將其程序文件設(shè)置為空。3KeiluV3的設(shè)定,首先啟動(dòng)Proteus仿真項(xiàng)目對(duì)應(yīng)的Keil中的工程。4在工程工作區(qū)選中“Target1”,并右擊選中“OptionsforTarget'Target1'。選中“Output"中“CreatHEXFi和“Debug”中“UseRemoteDebugMonitor。Pl>;test-WisionZF|eEditViewProjectDebugPeripheral固SRiE昌瓦123duni3SSourt國ttwProjedt.ImportpiVi&ionlProjectOpenPro
34、jectCloseProjectFiloExtcMicicnrSj&口oks-HFiles金Targets,GroupsHes.SelectDeviceForTargeRemoveItemOptionsforTarget"TarClorGroupondlFiloOfBuildtarecompilinglinking,Pirogi?aiS:"test"-4EGuildtargeti兇RebuildalltargetFilesTranslateDAMyDatak恙Stopbyi'dEfc匚MiEMiowEroioctQcbugiPoHphWsalooh
35、5VCSWindowtlokp傍涇q6傘*不混魏Cfc面Q3|&|面|同亶|q翰泗E3=>腿冬O£|度®做|g|度Me->jrinclude<ATS9KS1H=i1ixd.&<std.xo.ll>voidmqin(vaii.d)'SCON-0m50.XZ®.TW7T-IvPF,1=1tiatl.fl$=eiJ.#1ddCLd己己T1-iA-JAJ.1工Hx¥H壬D口OCCDCHuuvw叮VT.TUUc履U-!I11111illllleuonmHHHHHHu-當(dāng)road”口:7淄,|6總結(jié)將程序?qū)階T
36、89C51芯片,調(diào)試成功后,可任意彈奏自己想要的旋律。本課題通過制作電子琴,將幾個(gè)模塊很好的融合起來,對(duì)使用單片機(jī)設(shè)計(jì)簡易電子琴進(jìn)展了分析,并介紹了基丁單片機(jī)電子琴統(tǒng)硬件組成。利用單片機(jī)產(chǎn)生不同頻率來獲得我們要求的音階,最終可隨意彈奏想要表達(dá)的音樂。說明一首音樂是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,丁是我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來產(chǎn)生這樣方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系弄正確即可,然后我們利用功放電路來將音樂聲音放大,同時(shí)通過顯示模塊來確知自己所彈的音符。通過這次課程設(shè)計(jì),我感覺收獲
37、了很多:首先,通過實(shí)踐,加深對(duì)單片機(jī)系列知識(shí)與其系統(tǒng)的認(rèn)識(shí)。這個(gè)設(shè)計(jì)題目并不是新的,但從中能表現(xiàn)到一個(gè)系統(tǒng)開發(fā)設(shè)計(jì)的過程,足丁讓我們受益。第二,通過設(shè)計(jì)學(xué)習(xí)到了很多軟件的使用。本次設(shè)計(jì),軟件局部用到了protues進(jìn)展硬件設(shè)計(jì),用keil進(jìn)展程系編譯,用protel進(jìn)展制板。第三,提高了自己的動(dòng)手能力。從這次實(shí)物制作中,我的動(dòng)手能力提高了。感我們的教師這幾年的教育。參考文獻(xiàn)1 明熒.8051單片機(jī)課程設(shè)計(jì)實(shí)訓(xùn)教材M.:活華大學(xué),2003年9月.2 毅剛,MCS-5仰片機(jī)應(yīng)用設(shè)計(jì)M.工業(yè)大學(xué),2004吳金戌,慶陽,郭庭吉,8051單片機(jī)實(shí)踐與應(yīng)用M.活華大學(xué),2001毅剛,MCS-5仰片機(jī)應(yīng)用設(shè)
38、計(jì)M.工業(yè)大學(xué),2004亮,侯國銳.單片機(jī)C語言編程與實(shí)例M.:人民郵電,2003.3 虹.單片機(jī)原理與應(yīng)用M.:中國電力,2009.4 云鋼,鄒逢興,龍志強(qiáng).單片機(jī)原理與應(yīng)用系統(tǒng)計(jì)J.:中國水利水電,2008.致向此論文完成之際,謹(jǐn)向給予我指導(dǎo)、關(guān)心和幫助的教師、同學(xué)、朋友、親人表小最衷心的感。首先,要特別感我的指導(dǎo)教師一一程穎教師。教師在我畢業(yè)論文的撰寫過程中,給我提供了極大的幫助和指導(dǎo)。從開始的分析到修正,再到最終定稿,教師給我提供了許多寶貴建議和指導(dǎo)。教師淵博的專業(yè)知識(shí),嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,精益求精的工作作風(fēng),誨人不倦的高尚帥德,樸實(shí)無華、平易近人的人格魅力對(duì)我影響深遠(yuǎn)。其次,要感所有曾經(jīng)
39、給我們12電子班任課的教師,教師們教會(huì)我的不僅僅是專業(yè)知識(shí),更多的是對(duì)待學(xué)習(xí)、對(duì)待生活的態(tài)度。第三,感我的父母親,你們是我力量的源泉,只要有你們,不管面對(duì)什么樣的困難,我都不會(huì)害怕,你們對(duì)我的支持與鼓勵(lì)!再次,感我的室友與其他好友,因?yàn)橛心銈兊膸椭?,我的論文得以順利完成。感你們,這幾年里給我了那么多的幫助與鼓勵(lì),無論歡笑與淚水,總有你們陪伴。最后對(duì)教師,同學(xué)和家人再次致以我最衷心的感!教誨過我的教師,你們的人格魅力永記我心問。身邊的同學(xué)和朋友,有你們,我的大學(xué)才算完整。寢室的好友,你們的存在猶如上天恩賜,有了你們我的生活更加精彩。感那些同做畢業(yè)設(shè)計(jì)的戰(zhàn)友,那段光輝歲月不管成敗,存在即為珍貴。附
40、錄局部音樂簡譜如下:同一首歌unsignedcharcodeMusic_tyshg=(0x0F,0x01,0x15,0x02,0x16,0x02,0x17,0x66,0x18,0x03,0x17,0x02,0x15,0x02,0x16,0x01,0x15,0x02,0x10,0x02,0x15,0x00,0x0F,0x01,0x15,0x02,0x16,0x02,0x17,0x02,0x17,0x03,0x18,0x03,0x19,0x02,0x15,0x02,0x18,0x66,0x17,0x03,0x19,0x02,0x16,0x03,0x17,0x03,0x16,0x00,0x17,0x
41、01,0x19,0x02,0x1B,0x02,0x1B,0x70,0x1A,0x03,0x1A,0x01,0x19,0x02,0x19,0x03,0x1A,0x03,0x1B,0x02,0x1A,0x0D,0x19,0x03,0x17,0x00,0x18,0x66,0x18,0x03,0x19,0x02,0x1A,0x02,0x19,0x0C,0x18,0x0D,0x17,0x03,0x16,0x01,0x11,0x02,0x11,0x03,0x10,0x03,0x0F,0x0C,0x10,0x02,0x15,0x00,0x1F,0x01,0x1A,0x01,0x18,0x66,0x19,0x
42、03,0x1A,0x01,0x1B,0x02,0x1B,0x03,0x1B,0x03,0x1B,0x0C,0x1A,0x0D,0x19,0x03,0x17,0x00,0x1F,0x01,0x1A,0x01,0x18,0x66,0x19,0x03,0x1A,0x01,0x10,0x02,0x10,0x03,0x10,0x03,0x1A,0x0C,0x18,0x0D,0x17,0x03,0x16,0x00,0x0F,0x01,0x15,0x02,0x16,0x02,0x17,0x70,0x18,0x03,0x17,0x02,0x15,0x03,0x15,0x03,0x16,0x66,0x16,0x
43、03,0x16,0x02,0x16,0x03,0x15,0x03,0x10,0x02,0x10,0x01,0x11,0x01,0x11,0x66,0x10,0x03,0x0F,0x0C,0x1A,0x02,0x19,0x02,0x16,0x03,0x16,0x03,0x18,0x66,0x18,0x03,0x18,0x02,0x17,0x03,0x16,0x03,0x19,0x00,0xff,0xff;兩只蝴蝶unsignedcharcodeMusic_lzhhd=0x17,0x03,0x16,0x03,0x17,0x01,0x16,0x03,0x17,0x03,0x16,0x03,0x15,
44、0x01,0x10,0x03,0x15,0x03,0x16,0x02,0x16,0x0D,0x17,0x03,0x16,0x03,0x15,0x03,0x10,0x03,0x10,0x0E,0x15,0x04,0x0F,0x01,0x17,0x03,0x16,0x03,0x17,0x01,0x16,0x03,0x17,0x03,0x16,0x03,0x15,0x01,0x10,0x03,0x15,0x03,0x16,0x02,0x16,0x0D,0x17,0x03,0x16,0x03,0x15,0x03,0x10,0x03,0x15,0x03,0x16,0x01,0x17,0x03,0x16,0x03,0x17,0x01,0x16,0x03,0x17,0x03,0x16,0x03,0x15,0x01,0x10,0x03,0x15,0x03,0x16,0x02,0x16,0x0D,0x17,0x03,0x16,0x03,0x15,0x03,0x10,0x03,0x10,0x0E,0x15,0x04,0x0F,0x01,0x17,0x03,0x19,0x0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度互聯(lián)網(wǎng)數(shù)據(jù)中心委托經(jīng)營管理協(xié)議
- 二零二五年度醫(yī)院員工招聘與管理服務(wù)合同
- 二零二五年度人工智能聯(lián)營投資合同模板
- 二零二五年度果園承包與農(nóng)業(yè)金融服務(wù)合作協(xié)議
- 2025年度沿街房屋租賃合同(含房屋維護(hù)及保養(yǎng)責(zé)任)
- 二零二五年度金融行業(yè)競業(yè)禁止協(xié)議補(bǔ)償金計(jì)算細(xì)則
- 二零二五年度精裝修房屋租賃協(xié)議書
- 二零二五年度主合同與從合同在新能源汽車產(chǎn)業(yè)鏈中的協(xié)同發(fā)展及風(fēng)險(xiǎn)共擔(dān)協(xié)議
- 二零二五年度文化產(chǎn)業(yè)股權(quán)投資合同協(xié)議
- 2025年度苗木種植與生態(tài)農(nóng)業(yè)開發(fā)協(xié)議
- 產(chǎn)品品質(zhì)檢驗(yàn)流程標(biāo)準(zhǔn)規(guī)范模板()
- DB12-595-2015醫(yī)院安全防范系統(tǒng)技術(shù)規(guī)范
- 五年級(jí)下冊英語課件-Unit 2 My favourite season B Let's learn 人教PEP版(共15張PPT)
- GB∕T 7260.40-2020 不間斷電源系統(tǒng) UPS 第4部分:環(huán)境 要求及報(bào)告
- 高邊坡施工危險(xiǎn)源辨識(shí)及分析
- 水廠項(xiàng)目基于BIM技術(shù)全生命周期解決方案-城市智慧水務(wù)講座課件
- 幼兒園繪本:《閃閃的紅星》 紅色故事
- 三年級(jí)學(xué)而思奧數(shù)講義.doc
- 劉姥姥進(jìn)大觀園課本劇劇本3篇
- 產(chǎn)品承認(rèn)書客(精)
- 投標(biāo)人基本情況一覽表格
評(píng)論
0/150
提交評(píng)論