基于單片機(jī)的電子琴設(shè)計(jì)課程設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  課程設(shè)計(jì)(論文)說(shuō)明書(shū)</p><p>  題 目:基于單片機(jī)的電子琴設(shè)計(jì)</p><p>  院 (系):信息與通信學(xué)院 </p><p>  專(zhuān) 業(yè):微電子學(xué) </p><p>  學(xué)生姓名: </p><p&g

2、t;  學(xué) 號(hào): </p><p>  指導(dǎo)教師: </p><p>  職 稱(chēng):副教授 </p><p>  2012年 12月 10日</p><p><b>  摘 要</b></p><p

3、>  隨著社會(huì)的發(fā)展進(jìn)步,音樂(lè)逐漸成為我們生活中很重要的一部分,有人曾說(shuō)喜歡音樂(lè)的人不會(huì)向惡。我們都會(huì)抽空欣賞世界名曲,作為對(duì)精神的洗禮。本論文設(shè)計(jì)一個(gè)基于單片機(jī)的簡(jiǎn)易電子琴。我們對(duì)于電子琴如何實(shí)現(xiàn)其功能,如聲音強(qiáng)弱控制、節(jié)拍器、自動(dòng)放音功能等等也很好奇。</p><p>  電子琴是現(xiàn)代電子科技與音樂(lè)結(jié)合的產(chǎn)物,是一種新型的鍵盤(pán)樂(lè)器。它在現(xiàn)代音樂(lè)扮演著重要的角色,單片機(jī)具有強(qiáng)大的控制功能和靈活的編程實(shí)現(xiàn)特

4、性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一部分。本文的主要內(nèi)容是用AT89S52單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)電子琴。以單片機(jī)作為主控核心,與鍵盤(pán)、揚(yáng)聲器等模塊組成核心主控制模塊,在主控模塊上設(shè)有16個(gè)按鍵和揚(yáng)聲器。本系統(tǒng)運(yùn)行穩(wěn)定,其優(yōu)點(diǎn)是硬件電路簡(jiǎn)單,軟件功能完善,控制系統(tǒng)可靠,性?xún)r(jià)比較高等,具有一定的實(shí)用和參考價(jià)值。</p><p>  關(guān)鍵詞:AT89S52單片機(jī);鍵盤(pán);揚(yáng)聲器;自動(dòng)放音</p&

5、gt;<p><b>  Abstract</b></p><p>  With the development and progress of the society, the music has become a very important part of our lives, someone once said that people do not like the m

6、usic to the evil. We will be taking the time to enjoy the world famous, as the baptism of the spirit. This paper designed a simple microcontroller-based keyboard. How to achieve its function for the keyboard, such as the

7、 sound intensity control, metronome, automatic playback function is also very curious.</p><p>  The keyboard is a product of modern electronic technology combined with music, is a new type of keyboard instru

8、ments. In modern music, it plays an important role, the microcontroller has a powerful control functions and flexible programming features, it has become an irreplaceable part of the integration into the life of modern p

9、eople. The main content of this paper is to design a keyboard with AT89S52 microcontroller as the core control elements. MCU as the master core, composed of a the core m</p><p>  Key words:AT89S52 microcontr

10、oller; Keyboard; speakers; automatically playback</p><p><b>  目 錄</b></p><p><b>  引言1</b></p><p><b>  1 方案論證1</b></p><p>  1.1

11、 系統(tǒng)框圖1</p><p>  1.2 主要芯片介紹1</p><p>  1.2.1 AT89S52簡(jiǎn)介1</p><p>  1.2.2主要功能特性2</p><p>  1.2.3 LM386內(nèi)部電路2</p><p><b>  2 實(shí)現(xiàn)過(guò)程4</b></p>

12、<p>  2.1 4X4行列式鍵盤(pán)識(shí)別及顯示4</p><p>  3 程序設(shè)計(jì)內(nèi)容5</p><p><b>  3.1 原理5</b></p><p>  3.2 程序流程圖7</p><p>  4 總結(jié)與展望8</p><p><b>  4.1全文總

13、結(jié)8</b></p><p><b>  4.2研究展望8</b></p><p><b>  5 結(jié)論8</b></p><p><b>  謝辭9</b></p><p><b>  參考文獻(xiàn)10</b></p>

14、<p><b>  附錄11</b></p><p><b>  引言</b></p><p>  單片微型計(jì)算機(jī)是大規(guī)模集成電路技術(shù)發(fā)展的產(chǎn)物,屬第四代電子計(jì)算機(jī),它具有高性能、高速度、體積小、價(jià)格低廉、穩(wěn)定可靠、應(yīng)用廣泛的特點(diǎn)。它的應(yīng)用必定導(dǎo)致傳統(tǒng)的控制技術(shù)從根本上發(fā)生變革。因此,單片機(jī)的開(kāi)發(fā)應(yīng)用已成為高科技和工程領(lǐng)域的一項(xiàng)重大課

15、題。</p><p>  電子琴是現(xiàn)代電子科技與音樂(lè)結(jié)合的產(chǎn)物,是一種新型的鍵盤(pán)樂(lè)器。它在現(xiàn)代音樂(lè)扮演著重要的角色,單片機(jī)具有強(qiáng)大的控制功能和靈活的編程實(shí)現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一部分。本文的主要內(nèi)容是用AT89S52單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)電子琴。以單片機(jī)作為主控核心,與鍵盤(pán)、揚(yáng)聲器等模塊組成核心主控制模塊,在主控模塊上設(shè)有16個(gè)按鍵和揚(yáng)聲器。</p><p&

16、gt;  本文主要對(duì)使用單片機(jī)設(shè)計(jì)簡(jiǎn)易電子琴進(jìn)行了分析,并介紹了基于單片機(jī)電子琴統(tǒng)硬件組成。利用單片機(jī)產(chǎn)生不同頻率來(lái)獲得我們要求的音階,最終可隨意彈奏想要表達(dá)的音樂(lè)。</p><p><b>  1 方案論證</b></p><p><b>  1.1 系統(tǒng)框圖</b></p><p><b>  圖1 系統(tǒng)

17、框圖</b></p><p>  1.2 主要芯片簡(jiǎn)介</p><p>  1.2.1AT89S52簡(jiǎn)介</p><p>  功能特性:AT89S52是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。使用Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器

18、在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 AT89S52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門(mén)狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件

19、可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。8 位微控制器 8K 字節(jié)在系統(tǒng)可編程 Flash AT89S52。</p><p>  圖2 AT89S52管腳圖</p><p>  1.2.2 主要功能特性</p><p&

20、gt;  與MCS-51單片機(jī)產(chǎn)品兼容;</p><p>  8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器;</p><p>  1000次擦寫(xiě)周期;</p><p>  全靜態(tài)操作:0Hz~33Hz ;</p><p>  三級(jí)加密程序存儲(chǔ)器;</p><p>  32個(gè)可編程I/O口線;</p>&

21、lt;p>  三個(gè)16位定時(shí)器/計(jì)數(shù)器八個(gè)中斷源;</p><p>  全雙工UART串行通道、低功耗空閑和掉電模式;</p><p><b>  掉電后中斷可喚醒;</b></p><p><b>  看門(mén)狗定時(shí)器;</b></p><p><b>  雙數(shù)據(jù)指針;</b&g

22、t;</p><p><b>  掉電標(biāo)識(shí)符。</b></p><p>  1.2.3 LM386內(nèi)部電路</p><p>  LM386是美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的音頻功率放大器,主要應(yīng)用于低電壓消費(fèi)類(lèi)產(chǎn)品。</p><p>  LM386特性:靜態(tài)功耗低,約為4mA,可用于電池供電;工作電壓范圍寬,4V-12V或5V-

23、18V;外圍元件少;電壓增益可調(diào),20-200;低失真度。</p><p>  LM386是一種音頻集成功放,具有自身功耗低、電壓增益可調(diào)整、電源電壓范圍大、外接元件少和總諧波失真小等優(yōu)點(diǎn),廣泛應(yīng)用于錄音機(jī)和收音機(jī)之中。</p><p>  圖3 LM386內(nèi)部電路原理圖</p><p>  與通用型集成運(yùn)放相類(lèi)似,它是一個(gè)三級(jí)放大電路。</p>&

24、lt;p>  第一級(jí)為差分放大電路,T1和T3、T2和T4分別構(gòu)成復(fù)合管,作為差分放大電路的放大管;T5和T6組成鏡像電流源作為T(mén)1和T2的有源負(fù)載;T3和T4信號(hào)從管的基極輸入,從T2管的集電極輸出,為雙端輸入單端輸出差分電路。使用鏡像電流源作為差分放大電路有源負(fù)載,可使單端輸出電路的增益近似等于雙端輸出電容的增益。</p><p>  第二級(jí)為共射放大電路,T7為放大管,恒流源作有源負(fù)載,以增大放大倍數(shù)

25、。</p><p>  第三級(jí)中的T8和T9管復(fù)合成PNP型管,與NPN型管T10構(gòu)成準(zhǔn)互補(bǔ)輸出級(jí)。二極管D1和D2為輸出級(jí)提供合適的偏置電壓,可以消除交越失真。</p><p>  引腳2為反相輸入端,引腳3為同相輸入端。電路由單電源供電,故為OTL電路。輸出端(引腳5)應(yīng)外接輸出電容后再接負(fù)載。</p><p>  電阻R7從輸出端連接到T2的發(fā)射極,形成反饋通

26、路,并與R5和R6構(gòu)成反饋網(wǎng)絡(luò),從而引入了深度電壓串聯(lián)負(fù)反饋,使整個(gè)電路具有穩(wěn)定的電壓增益。</p><p>  圖4 功放電路原理圖</p><p><b>  2 實(shí)現(xiàn)過(guò)程</b></p><p>  2.1 4X4行列式鍵盤(pán)識(shí)別及顯示</p><p>  組成鍵盤(pán)的按鍵有機(jī)械式、電容式、導(dǎo)電橡膠式、薄膜式多種,

27、但不管什么形式,其作用都是一個(gè)使電路接通與斷開(kāi)的開(kāi)關(guān)。目前微機(jī)系統(tǒng)中使用的鍵盤(pán)按其功能不同,通??煞譃榫幋a鍵盤(pán)和非編碼鍵盤(pán)兩種基本類(lèi)型。</p><p>  編碼鍵盤(pán):鍵盤(pán)本身帶有實(shí)現(xiàn)接口主要功能所需的硬件電路。不僅能自動(dòng)檢測(cè)被按下的鍵,并完成去抖動(dòng)、防串鍵等功能,而且能提供與被按鍵功能對(duì)應(yīng)的鍵碼(如ASCII碼)送往CPU。所以,編碼鍵盤(pán)接口簡(jiǎn)單、使用方便。但由于硬件電路較復(fù)雜,因而價(jià)格較貴。</p>

28、;<p>  非編碼鍵盤(pán):鍵盤(pán)只簡(jiǎn)單地提供按鍵開(kāi)關(guān)的行列矩陣。有關(guān)按鍵的識(shí)別、鍵碼的確定與輸入、去抖動(dòng)等功能均由軟件完成。目前微機(jī)系統(tǒng)中,一般為了降低成本大多數(shù)采用非編碼鍵盤(pán)。</p><p>  鍵盤(pán)接口必須具有去抖動(dòng)、防串鍵、按鍵識(shí)別和鍵碼產(chǎn)生4個(gè)基本功能:</p><p>  去抖動(dòng):每個(gè)按鍵在按下或松開(kāi)時(shí),都會(huì)產(chǎn)生短時(shí)間的抖動(dòng)。抖動(dòng)的持續(xù)時(shí)間與鍵的質(zhì)量相關(guān),一般為5—

29、20mm。所謂抖動(dòng)是指在識(shí)別被按鍵是必須避開(kāi)抖動(dòng)狀態(tài),只有處在穩(wěn)定接通或穩(wěn)定斷開(kāi)狀態(tài)才能保證識(shí)別正確無(wú)誤。去抖問(wèn)題可通過(guò)軟件延時(shí)或硬件電路解決。</p><p>  防串鍵:防串鍵是為了解決多個(gè)鍵同時(shí)按下或者前一按鍵沒(méi)有釋放又有新的按鍵按下時(shí)產(chǎn)生的問(wèn)題。常用的方法有雙鍵鎖定和N鍵輪回兩種方法。雙鍵鎖定,是當(dāng)有兩個(gè)或兩個(gè)以上的按鍵按下時(shí),只把最后釋放的鍵當(dāng)作有效鍵并產(chǎn)生相應(yīng)的鍵碼。N鍵輪回,是當(dāng)檢測(cè)到有多個(gè)鍵被按下

30、時(shí),能根據(jù)發(fā)現(xiàn)它們的順序依次產(chǎn)生相應(yīng)鍵的鍵碼。</p><p>  被按鍵識(shí)別:如何識(shí)別被按鍵是接口解決的主要問(wèn)題,一般可通過(guò)軟硬結(jié)合的方法完成。常用的方法有行掃描法和線反轉(zhuǎn)法兩種。行掃描法的基本思想是,由程序?qū)︽I盤(pán)逐行掃描,通過(guò)檢測(cè)到的列輸出狀態(tài)來(lái)確定閉合鍵,為此,需要設(shè)置入口、輸出口一個(gè),該方法在微機(jī)系統(tǒng)中被廣泛使用。線反轉(zhuǎn)法的基本思想是通過(guò)行列顛倒兩次掃描來(lái)識(shí)別閉合鍵,為此需要提供兩個(gè)可編程的雙向輸入/輸出

31、端口。</p><p>  鍵碼產(chǎn)生:為了從鍵的行列坐標(biāo)編碼得到反映鍵功能的鍵碼,一般在內(nèi)存區(qū)中建立一個(gè)鍵盤(pán)編碼表,通過(guò)查表獲得被按鍵的鍵碼。</p><p>  用AT89S52的并行口P0接4×4矩陣鍵盤(pán),以P0.0-P0.3作輸入線,以P0.4-P0.7作輸出線。</p><p>  4×4矩陣鍵盤(pán)識(shí)別處理,每個(gè)按鍵有它的行值和列值,行值和

32、列值的組合就是識(shí)別這個(gè)按鍵的編碼。矩陣的行線和列線分別通過(guò)兩并行接口和CPU通信。每個(gè)按鍵的狀態(tài)同樣需變成數(shù)字量“0”和“1”,開(kāi)關(guān)的一端(列線)通過(guò)電阻接VCC,而接地是通過(guò)程序輸出數(shù)字“0”實(shí)現(xiàn)的。</p><p>  鍵盤(pán)處理程序的任務(wù)是:確定有無(wú)鍵按下,判斷哪一個(gè)鍵按下,鍵的功能是什么;還要消除按鍵在閉合或斷開(kāi)時(shí)的抖動(dòng)。兩個(gè)并行口中,一個(gè)輸出掃描碼,使按鍵逐行動(dòng)態(tài)接地,另一個(gè)并行口輸入按鍵狀態(tài),由行掃描值

33、和回饋信號(hào)共同形成鍵編碼而識(shí)別按鍵,通過(guò)軟件查表,查出該鍵的功能。電路圖如下:</p><p>  圖5 鍵盤(pán)電路原理圖</p><p><b>  3 程序設(shè)計(jì)內(nèi)容</b></p><p><b>  3.1 原理</b></p><p>  一首音樂(lè)是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不

34、同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂(lè)了,當(dāng)然對(duì)于單片機(jī)來(lái)產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來(lái)產(chǎn)生這樣方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系正確即可。</p><p>  若要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),再將此周期除以2,即為半周期的時(shí)間。利用定時(shí)器計(jì)時(shí)半周期時(shí)間,每當(dāng)計(jì)時(shí)終止后就將P1.0反相,然后重復(fù)計(jì)時(shí)再反相。

35、就可在P1.0引腳上得到此頻率的脈沖。</p><p>  利用AT89S52的內(nèi)部定時(shí)器使其工作計(jì)數(shù)器模式(MODE1)下,改變計(jì)數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法產(chǎn)生不同音階,例如,頻率為523Hz,其周期T=1/523=1912μs,因此只要令計(jì)數(shù)器計(jì)時(shí)956μs/1μs=956,每計(jì)數(shù)956次時(shí)將I/O反相,就可得到中音DO(523Hz)。</p><p>  計(jì)數(shù)脈沖值與頻率

36、的關(guān)系式是:</p><p><b>  N=fi÷2÷fr</b></p><p>  式中,N是計(jì)數(shù)值;fi是機(jī)器頻率(晶體振蕩器為12MHz時(shí),其頻率為1MHz);fr是想要產(chǎn)生的頻率。</p><p>  其計(jì)數(shù)初值T的求法如下:</p><p>  T=65536-N=65536-fi

37、47;2÷fr</p><p>  例如:設(shè)K=65536,fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的計(jì)數(shù)值。</p><p>  T=65536-N=65536-fi÷2÷fr=65536-1000000÷2÷fr=65536-500000/fr</p><p> 

38、 低音DO的T=65536-500000/262=63627</p><p>  中音DO的T=65536-500000/523=64580</p><p>  高音DO的T=65536-500000/1046=65059</p><p>  單片機(jī)12MHZ晶振,高中低音符與計(jì)數(shù)T0相關(guān)的計(jì)數(shù)值如表1所示:</p><p><b>

39、;  表1 音符頻率表</b></p><p>  我們要為這個(gè)音符建立一個(gè)表格,單片機(jī)通過(guò)查表的方式來(lái)獲得相應(yīng)的數(shù)據(jù),低音0-19之間,中音在20-39之間,高音在40-59之間。TABLE1: DW 64021,64103,64260,64400 </p><p>  DW 64524,64580,64684,64777 </p><p>  D

40、W 64820,64898,64968,65030 </p><p>  DW 65058,65110,65157,65178</p><p>  音樂(lè)的音拍,一個(gè)節(jié)拍為單位(C調(diào)),如表2所示:</p><p><b>  表2 曲調(diào)值表</b></p><p>  琴鍵處理程序,根據(jù)檢測(cè)到得按鍵值,查詢(xún)音律表,給計(jì)

41、時(shí)器賦值,發(fā)出相應(yīng)頻率的聲音。對(duì)音調(diào)的控制:根據(jù)不同的按鍵,對(duì)定時(shí)器T1送入不同的初值,調(diào)節(jié)T1的溢出時(shí)間,這樣就可以輸出不同音調(diào)頻率的方波。不同音調(diào)下各個(gè)音階的定時(shí)器。</p><p><b>  3.2 程序流程圖</b></p><p><b>  圖6 程序流程圖</b></p><p><b>  4

42、 總結(jié)與展望</b></p><p><b>  4.1 全文總結(jié)</b></p><p>  通過(guò)這次課程設(shè)計(jì),我弄懂了不少課本上的知識(shí),還擴(kuò)展了一些課本沒(méi)有的知識(shí)。</p><p>  首先在課程設(shè)計(jì)剛開(kāi)始的調(diào)研階段,我學(xué)會(huì)了怎么通過(guò)各種方式查詢(xún)相關(guān)的資料。通過(guò)對(duì)這些資料的學(xué)習(xí),我大致了解了單片機(jī)的發(fā)展現(xiàn)狀以及未來(lái)的發(fā)展趨勢(shì),

43、認(rèn)識(shí)到目前單片機(jī)方面的各種各樣的發(fā)展,和它們之間的競(jìng)爭(zhēng)。了解了單片機(jī)方面的先進(jìn)技術(shù),這些都為我的未來(lái)的學(xué)習(xí)指明了方向。</p><p>  我的課程設(shè)計(jì)主要涉及硬件和軟件兩方面的內(nèi)容,通過(guò)這些我的硬件和軟件開(kāi)發(fā)能力都獲得了提高。首先硬件方面,基本了解了電子產(chǎn)品的開(kāi)發(fā)流程和所要做的工作。在軟件方面,因?yàn)槌绦虻木帉?xiě)是我的弱項(xiàng),所以我是先從網(wǎng)上找來(lái)類(lèi)似的程序模板,然后借助各方面的資料對(duì)程序的每一步進(jìn)行分析,按我的需求進(jìn)

44、行修改,最終才得到我現(xiàn)在的程序方案。</p><p><b>  4.2 研究展望</b></p><p>  微型計(jì)算機(jī)的出現(xiàn)和大量使用將人類(lèi)社會(huì)帶入一個(gè)新的時(shí)代,單片微型計(jì)算機(jī)(簡(jiǎn)稱(chēng)單片機(jī))在其中扮演著十分重要的角色。雖然它沒(méi)有常見(jiàn)的PC那樣大的體積和重量,不會(huì)在辦公桌或控制臺(tái)上占據(jù)一個(gè)顯要的位置,但它就像小小的螺絲釘一樣,鑲嵌在人們工作、生活中需要計(jì)算、控制、測(cè)

45、量等智能活動(dòng)的各個(gè)角落。自20世紀(jì)70年代問(wèn)世以來(lái),單片機(jī)以其體積小、可靠性高、控制功能強(qiáng)、使用方便、性能價(jià)格比高、容易產(chǎn)品化等特點(diǎn),在智能儀表、機(jī)電一體化、實(shí)時(shí)控制、分布式多機(jī)系統(tǒng)、家用電器等各個(gè)領(lǐng)域得到了廣泛應(yīng)用,對(duì)各個(gè)行業(yè)的技術(shù)改造和產(chǎn)品的更新?lián)Q代起著重要的推動(dòng)作用,對(duì)人們生活質(zhì)量的提高產(chǎn)生了深刻的影響。作為21世紀(jì)的工科大學(xué)生,學(xué)好單片機(jī),一方面可以加深對(duì)計(jì)算機(jī)原理和結(jié)構(gòu)的認(rèn)識(shí),另一方面也為自身在專(zhuān)業(yè)上的深入發(fā)展構(gòu)筑了一個(gè)很好的

46、平臺(tái)其重要性怎么強(qiáng)調(diào)都不為過(guò)。</p><p><b>  5 結(jié)論</b></p><p>  本研究通過(guò)制作電子琴,將幾個(gè)模塊很好的融合起來(lái),對(duì)使用單片機(jī)設(shè)計(jì)簡(jiǎn)易電子琴進(jìn)行了分析,并介紹了基于單片機(jī)電子琴統(tǒng)硬件組成。利用單片機(jī)產(chǎn)生不同頻率來(lái)獲得我們要求的音階,最終可隨意彈奏想要表達(dá)的音樂(lè)。說(shuō)明一首音樂(lè)是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就

47、可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂(lè)了,于是我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來(lái)產(chǎn)生這樣方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系弄正確即可,然后我利用功放電路來(lái)將音樂(lè)聲音放大,最后得到想要的音樂(lè)。</p><p><b>  謝 辭</b></p><p>  這次課程設(shè)計(jì)論文能夠得以順利完成,是所有曾經(jīng)指導(dǎo)過(guò)我的老師,幫助過(guò)我的同學(xué)

48、,一直支持著我的家人對(duì)我的教誨、幫助和鼓勵(lì)的結(jié)果。我要在這里對(duì)他們表示深深的謝意!</p><p>  首先,要特別感謝我的指導(dǎo)老師——施娟老師。老師的嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,精益求精的工作作風(fēng),誨人不倦的高尚師德,樸實(shí)無(wú)華、平易近人的人格魅力對(duì)我影響深遠(yuǎn)。不僅使我樹(shù)立了遠(yuǎn)大的學(xué)術(shù)目標(biāo)、掌握了基本的研究方法,還使我明白了許多待人接物與為人處世的道理。</p><p>  其次,要感謝所有曾經(jīng)教過(guò)我

49、的任課老師,老師們教會(huì)我的不僅僅是專(zhuān)業(yè)知識(shí),更多的是對(duì)待學(xué)習(xí)、對(duì)待生活的態(tài)度。</p><p>  第三,感謝我的親人們,你們是我力量的源泉,只要有你們,不管面對(duì)什么樣的困難,我都不會(huì)害怕,謝謝你們對(duì)我的支持與鼓勵(lì)!</p><p>  再次,感謝我的室友及其他好友,因?yàn)橛心銈兊膸椭?,我的論文得以順利完成。感謝你們,大學(xué)四年給我了那么多的幫助與鼓勵(lì),在我不開(kāi)心的時(shí)候,總能讓我開(kāi)心起來(lái)。不會(huì)

50、忘記,大學(xué)這四年里我們一起度過(guò)的歡樂(lè)時(shí)光,那些開(kāi)心的日子,總是那么令人難以忘懷。</p><p>  最后對(duì)老師,同學(xué)和家人再次致以我最衷心的感謝!教導(dǎo)過(guò)我的老師,你們的人格魅力永記我心間。身邊的同學(xué)和朋友,有你們,我的大學(xué)才算完整。寢室的好友,你們的天賦猶如上天恩賜,有了你們我的生活更加精彩。</p><p><b>  參考文獻(xiàn)</b></p>&l

51、t;p>  [1] 陳明熒.8051單片機(jī)課程設(shè)計(jì)實(shí)訓(xùn)教材[M].北京:清華大學(xué)出版社,2003年9月.[2] 徐新艷.單片機(jī)原理、應(yīng)用與實(shí)踐[M].北京:高等教育出版社,2005年3月.</p><p>  [3] 吳金戌,沈慶陽(yáng),郭庭吉.8051單片機(jī)實(shí)踐與應(yīng)用[M].清華大學(xué)出版社,2001.</p><p>  [4] 馮博琴,微型計(jì)算機(jī)原理與接口技術(shù)[M].清華大

52、學(xué)出版社,2004.</p><p>  [5] 張毅剛,MCS-51單片機(jī)應(yīng)用設(shè)計(jì)[M].哈爾濱工業(yè)大學(xué)出版社,2004.</p><p>  [6] 張淑清,姜萬(wàn)錄等,單片微型計(jì)算機(jī)接口技術(shù)及應(yīng)用[M].國(guó)防工業(yè)出版社,2003.</p><p>  [7] 龍威林,楊冠聲,胡山.單片機(jī)應(yīng)用入門(mén):AT89S51和AVR[M].北京:化學(xué)工業(yè)出版社,2008

53、.</p><p>  [8] 黃鑫,馬善農(nóng),趙永科.基于CPLD的電子琴研究與設(shè)計(jì)[J].科技廣場(chǎng),2007(5).</p><p>  [9] 趙亮,侯國(guó)銳.單片機(jī)C語(yǔ)言編程與實(shí)例[M].北京:人民郵電出版社,2003.</p><p>  [10] 楊恢先,黃輝先.單片機(jī)原理及應(yīng)用[M].北京:人民郵電出版社,2006.</p><p&

54、gt;  [11] 張虹.單片機(jī)原理及應(yīng)用[M].北京:中國(guó)電力出版社,2009.</p><p>  [12] 李云鋼,鄒逢興,龍志強(qiáng).單片機(jī)原理與應(yīng)用系統(tǒng)計(jì)[J].北京:中國(guó)水利水電出版社,2008.</p><p><b>  附 錄</b></p><p><b>  C語(yǔ)言程序:</b></p>

55、<p>  #include<reg52.h> </p><p>  sbit P04=P0^4; </p><p>  sbit P05=P0^5; </p><p>  sbit P06=P0^6; </p><p>  sbit P07=P0^7; </p>

56、<p>  unsigned char keyval,gequ=0;</p><p>  sbit keygequ=P1^3;</p><p>  sbit sound=P1^0; </p><p>  unsigned char timer0h,timer0l,time;</p><p>  code unsigned

57、char sszymmh[]={</p><p>  6,2,3, 5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1,</p><p>  6,2,4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1,</p><p>  6,1,1, 5,2,1, 3,2,1, 2,2,4, 2,2,3, 3,2,

58、1, 5,2,2,</p><p>  5,2,1, 6,2,1, 3,2,2, 2,2,2, 1,2,4, 5,2,3, 3,2,1,</p><p>  2,2,1, 1,2,1, 6,1,1, 1,2,1, 5,1,6, 0,0,0 </p><p><b>  };</b></p><p>  code unsi

59、gned char FREQH[]={</p><p>  0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8, </p><p>  0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, </p><p>  0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,</p><p>  0x

60、FE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,</p><p><b>  } ;</b></p><p>  code unsigned char FREQL[]={</p><p>  0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,</p><p>  0x21,0xE1,

61、0x8C,0xD8,0x68,0xE9,0x5B,0x8F, </p><p>  0xEE,0x44, 0x6B,0xB4,0xF4,0x2D, </p><p>  0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,</p><p><b>  };</b></p><p>  void saom

62、iao();</p><p>  void delay20ms();</p><p>  /* 節(jié)拍延時(shí)函數(shù) */</p><p>  /*****************************************************************

63、*/</p><p>  void delay_jp(unsigned char t)</p><p><b>  {</b></p><p>  unsigned char t1;</p><p>  unsigned long t2;</p><p>  for(t1=0;t1<t;t1

64、++)</p><p><b>  {</b></p><p>  for(t2=0;t2<8000;t2++)</p><p><b>  {</b></p><p><b>  ;</b></p><p><b>  }</b&

65、gt;</p><p><b>  }</b></p><p><b>  TR0=0;</b></p><p><b>  }</b></p><p>  /***********************************************************

66、*******/</p><p>  /* 音調(diào)處理函數(shù) */</p><p>  /******************************************************************/</p><p>  void song(uns

67、igned char t1,unsigned char t2,unsigned char t3) </p><p><b>  {</b></p><p>  unsigned char k;</p><p>  k=t1+7*t2-1;</p><p>  timer0h=FREQH[k];</p>&

68、lt;p>  timer0l=FREQL[k];</p><p>  TH0=timer0h;</p><p>  TL0=timer0l;</p><p><b>  TR0=1;</b></p><p>  if(t3!=0) delay_jp(t3); </p><p><b&

69、gt;  }</b></p><p>  /******************************************************************/</p><p>  void gequ_sszymmh() </p><p><b>  {</b></p><p>  u

70、nsigned char i;</p><p><b>  i=0; </b></p><p>  while(sszymmh[i+3]!=0)</p><p>  { </p><p><b>  i=i+3;</b></p><p>  son

71、g(sszymmh[i],sszymmh[i+1],sszymmh[i+2]);</p><p>  if(keygequ==0)</p><p><b>  {</b></p><p>  delay20ms();</p><p>  if(keygequ==0) </p><p>  {wh

72、ile(keygequ==0);TR0=0;gequ=0; break;}</p><p>  } </p><p><b>  }</b></p><p>  TR0=0;gequ=0;</p><p><b>  }</b></p><p>  /****

73、**********************************************************</p><p>  函數(shù)功能:軟件延時(shí)子程序</p><p>  **************************************************************/</p><p>  void delay20ms()

74、 </p><p><b>  {</b></p><p>  unsigned char i,j;</p><p>  for(i=0;i<100;i++)</p><p>  for(j=0;j<60;j++)</p><p><b>  ;</b></

75、p><p><b>  }</b></p><p>  /*******************************************</p><p>  函數(shù)功能:節(jié)拍的延時(shí)的基本單位,延時(shí)200ms</p><p>  ******************************************/<

76、;/p><p>  void delay() </p><p><b>  {</b></p><p>  unsigned char i,j;</p><p>  for(i=0;i<250;i++)</p><p>  for(j=0;j<250;j++)&

77、lt;/p><p><b>  ;</b></p><p><b>  }</b></p><p>  void saomiao()</p><p><b>  {</b></p><p>  if(keygequ==0)</p><p&

78、gt;<b>  {</b></p><p>  delay20ms();</p><p>  if(keygequ==0) </p><p>  {while(keygequ==0);gequ++;}</p><p><b>  }</b></p><p>  P0=0x

79、f0; </p><p>  if((P0&0xf0)!=0xf0) </p><p><b>  {</b></p><p>  delay20ms(); </p><p>  if((P0&0xf0)!=0xf0) </p&g

80、t;<p><b>  {</b></p><p>  P0=0xfe; </p><p>  if(P04==0) </p><p>  keyval=1; </p><p>  if(P05==0) </p&g

81、t;<p>  keyval=2; </p><p>  if(P06==0) </p><p>  keyval=3; </p><p>  if(P07==0) </p><p>  keyval=4; </p><

82、;p>  P0=0xfd; </p><p>  if(P04==0) </p><p>  keyval=5; </p><p>  if(P05==0) </p><p>  keyval=6; </p><p>  if(P

83、06==0) </p><p>  keyval=7; </p><p>  if(P07==0) </p><p>  keyval=8; </p><p>  P0=0xfb; </p><p>  if(P04==0) &l

84、t;/p><p>  keyval=9; </p><p>  if(P05==0) </p><p>  keyval=10; </p><p>  if(P06==0) </p><p>  keyval=11; </p><p> 

85、 if(P07==0) </p><p>  keyval=12; </p><p>  P0=0xf7; </p><p>  if(P04==0) </p><p>  keyval=13; </p><p>  if(P05==0) <

86、;/p><p>  keyval=14; </p><p>  if(P06==0) </p><p>  keyval=15; </p><p>  if(P07==0) </p><p>  keyval=16; </p><p><b>

87、  }</b></p><p><b>  }</b></p><p><b>  else </b></p><p><b>  {</b></p><p><b>  TR0=0;</b></p><p>  so

88、und=1;</p><p>  keyval=0xff;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void tanqin()</p><p><b>  {</b></p>

89、<p>  if(TR0==0&&gequ%2==0)</p><p>  switch(keyval)</p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  song(1,1,0); </p>

90、<p><b>  break;</b></p><p>  case 2:song(2,1,0); </p><p><b>  break;</b></p><p>  case 3:song(3,1,0); </p><p><b>  break;</b&g

91、t;</p><p>  case 4:song(4,1,0); </p><p><b>  break;</b></p><p>  case 5:song(5,1,0); </p><p><b>  break;</b></p><p>  case 6:son

92、g(6,1,0); </p><p><b>  break;</b></p><p>  case 7:song(7,1,0); </p><p><b>  break; </b></p><p>  case 8:song(1,2,0); </p><p>&l

93、t;b>  break;</b></p><p>  case 9:song(2,2,0); </p><p><b>  break;</b></p><p>  case 10:song(3,2,0); </p><p><b>  break;</b></p&g

94、t;<p>  case 11:song(4,2,0); </p><p><b>  break;</b></p><p>  case 12:song(5,2,0); </p><p><b>  break; </b></p><p>  case 13:song(6,2

95、,0); </p><p><b>  break;</b></p><p>  case 14:song(7,2,0); </p><p><b>  break;</b></p><p>  case 15:song(1,3,0); </p><p><b&

96、gt;  break;</b></p><p>  case 16:song(2,3,0); </p><p><b>  break; </b></p><p><b>  } </b></p><p>  else if(gequ%2==1)</p><p&g

97、t;<b>  {</b></p><p>  gequ_sszymmh();</p><p><b>  }</b></p><p><b>  }</b></p><p>  /*******************************************</

98、p><p><b>  函數(shù)功能:主函數(shù)</b></p><p>  ******************************************/</p><p>  void main(void)</p><p><b>  { </b></p><p>  EA

99、=1; </p><p>  ET0=1; </p><p><b>  TMOD=1; </b></p><p>  while(1) </p><p><b>  {</b></p><p>  saomiao();</p&g

100、t;<p><b>  tanqin();</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  /* 定時(shí)器中斷函數(shù) */</p

101、><p>  /******************************************************************/</p><p>  void t0int() interrupt 1</p><p><b>  {</b></p><p><b>  TR0=0;</b&

102、gt;</p><p>  sound=!sound;</p><p>  TH0=timer0h;</p><p>  TL0=timer0l;</p><p><b>  TR0=1;</b></p><p><b>  }</b></p><p>

103、;  /******************************************************************/</p><p><b>  電路原理圖:</b></p><p><b>  圖7 電路原理圖</b></p><p><b>  電路PCB圖:</b>&

溫馨提示

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

評(píng)論

0/150

提交評(píng)論