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

下載本文檔

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

文檔簡(jiǎn)介

1、摘要本設(shè)計(jì)主要研究基于AT89C52單片機(jī)的簡(jiǎn)易電子琴設(shè)計(jì)。它是以單片機(jī)作為主控核心,設(shè)置鍵盤、蜂鳴器等外圍器件;另外還用到一些簡(jiǎn)單器件如:NPN型三極管及電阻等。利用按鍵實(shí)現(xiàn)音符和音調(diào)的輸入;用NPN型三極管8550實(shí)現(xiàn)低音頻功率放大;最后用蜂鳴器進(jìn)行播放“送別”。本設(shè)計(jì)硬件部分主要由最小系統(tǒng),按鍵系統(tǒng)模塊和蜂鳴器模塊組成。其軟件部分主要有主程序模塊、定時(shí)中斷程序、定時(shí)計(jì)數(shù)程序。(1)最小系統(tǒng):它是單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)基礎(chǔ)。它包括單片機(jī)的選擇、時(shí)鐘系統(tǒng)設(shè)計(jì)、復(fù)位電路設(shè)計(jì)、簡(jiǎn)單的I/O口擴(kuò)展、掉電保護(hù)等。(2)按鍵系統(tǒng)模塊:本設(shè)計(jì)采用10個(gè)按鍵,其中7個(gè)按鍵用來(lái)顯示7個(gè)音調(diào),其它3個(gè)按鍵可以進(jìn)

2、行高低中音的切換,并自動(dòng)播放已存歌曲。(3)蜂鳴器模塊:此電子琴發(fā)音電路是通過(guò)三極管驅(qū)動(dòng)蜂鳴器發(fā)音,經(jīng)過(guò)上拉電阻提高驅(qū)動(dòng)能力。本次設(shè)計(jì)首先對(duì)單片機(jī)設(shè)計(jì)簡(jiǎn)易電子琴仔細(xì)分析,接著制作硬件電路和編寫軟件的程序,最后進(jìn)行軟硬件的調(diào)試運(yùn)行。并且從原理圖,主要芯片,各模塊的原理和各個(gè)模塊的程序調(diào)試來(lái)闡述。利用單片機(jī)產(chǎn)生不同頻率來(lái)獲得我們要求的音階,實(shí)現(xiàn)高、中、低共21個(gè)音符的發(fā)音和音樂(lè)播放時(shí)的控制,并且能自動(dòng)播放程序中編排的音樂(lè)。系統(tǒng)運(yùn)行穩(wěn)定,其優(yōu)點(diǎn)是硬件電路簡(jiǎn)單,軟件功能完善,控制系統(tǒng)可靠,性價(jià)比高等,具有一定的使用和參考價(jià)值。目錄1.概述11.1設(shè)計(jì)背景11.2設(shè)計(jì)意義11.3 設(shè)計(jì)任務(wù)12.系統(tǒng)總體

3、方案及硬件設(shè)計(jì)22.1總體設(shè)計(jì)2方案一:采用單個(gè)的邏輯器件組合2方案二:用VHDL語(yǔ)言編程來(lái)實(shí)現(xiàn)22.2單片機(jī)選型32.3單片機(jī)的最小工作系統(tǒng)32.3.1 時(shí)鐘電路32.3.2復(fù)位電路42.4 原理框圖42.5 按鍵部分設(shè)計(jì)52.5.1操作鍵設(shè)計(jì)52.5.2鍵盤設(shè)計(jì)52.5.3去抖動(dòng)62.6發(fā)音部分設(shè)計(jì)73.系統(tǒng)軟件設(shè)計(jì)73.1系統(tǒng)分析73.1.1系統(tǒng)軟件的組成73.1.2 系統(tǒng)總體功能流程圖83.2 參數(shù)計(jì)算93.2.1發(fā)音原理93.2.2 計(jì)算舉例93.2.3 計(jì)算結(jié)果93.3程序設(shè)計(jì)113.3.1 判斷音階(高中低音)子程序113.3.2 播放子程序(包括自動(dòng)播放存儲(chǔ)音樂(lè)和按鍵發(fā)音)12

4、4. Proteus軟件仿真144.1硬件調(diào)試144.2 軟件調(diào)試144.3 仿真結(jié)果(任舉一例)154.4 結(jié)果分析155. 課程設(shè)計(jì)體會(huì)16參考文獻(xiàn)17附1 源程序代碼18附2 系統(tǒng)原理圖261.概述1.1設(shè)計(jì)背景隨著電子科學(xué)技術(shù)的飛速發(fā)展,電子技術(shù)正在逐漸改善著人們的學(xué)習(xí)、生活、工作,因此開發(fā)本系統(tǒng)希望能夠給人們帶來(lái)更多的生活樂(lè)趣。基于當(dāng)前市場(chǎng)上的玩具需求量增大,其中電子琴就是一個(gè)很好的應(yīng)用方面。單片機(jī)技術(shù)使我們可以利用軟硬件來(lái)實(shí)現(xiàn)電子琴的功能,從而可以實(shí)現(xiàn)電子琴的微型化,可以用作玩具琴、音樂(lè)轉(zhuǎn)盤以及音樂(lè)童車等等。并且可以進(jìn)行一定的功能擴(kuò)展。鑒于傳統(tǒng)電子琴可以用鍵盤上的“1”到“A”鍵演

5、奏從低So到高DO等11個(gè)音,從而也可以通過(guò)單片機(jī)實(shí)現(xiàn)對(duì)十個(gè)按鍵的擴(kuò)展,實(shí)現(xiàn)七個(gè)音符鍵的高、中、低21個(gè)音調(diào)的顯示播放和任意音樂(lè)的自動(dòng)播放。該設(shè)計(jì)將十個(gè)音鍵制作成獨(dú)立鍵盤,其中七個(gè)為音符鍵,三個(gè)為控制鍵,使電子琴的功能更加完美。不但可以實(shí)現(xiàn)對(duì)按鍵的控制,而且可以實(shí)現(xiàn)對(duì)音樂(lè)的自動(dòng)存儲(chǔ)和播放,使該設(shè)計(jì)功能更加完善。1.2設(shè)計(jì)意義該設(shè)計(jì)具有以下優(yōu)點(diǎn):可以方便更換音符和音調(diào);比傳統(tǒng)電子琴功能更完善;制作簡(jiǎn)單,成本低;1.3 設(shè)計(jì)任務(wù) 實(shí)現(xiàn)電子琴發(fā)聲控制系統(tǒng);要求電路實(shí)現(xiàn)如下功能:利用蜂鳴器作為發(fā)聲部件,設(shè)置10個(gè)按鍵,實(shí)現(xiàn)高音、中音、低音的1、2、3、4、5、6、7的發(fā)音。并在存儲(chǔ)一首歌曲的內(nèi)容,可以

6、實(shí)現(xiàn)自動(dòng)播放。用PROTEUS實(shí)現(xiàn)的電子琴仿真設(shè)計(jì)說(shuō)明:?jiǎn)纹瑱C(jī)的工作時(shí)鐘頻率為11.0592MHz。2.系統(tǒng)總體方案及硬件設(shè)計(jì)2.1總體設(shè)計(jì)實(shí)現(xiàn)本次設(shè)計(jì)的方案有多種,下面比較說(shuō)明一下最佳方案的選擇。方案一:采用單個(gè)的邏輯器件組合音樂(lè)是有由不同的音階組成的,而不同的音階又是由不同的頻率發(fā)出的,那么利用不同的頻率,就可以發(fā)出不同的音樂(lè)了。我們知道計(jì)數(shù)器8253可以產(chǎn)生任意頻率的方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率與計(jì)數(shù)器的頻率對(duì)應(yīng)起來(lái)就可通過(guò)計(jì)數(shù)器產(chǎn)生音樂(lè)了。根據(jù)本實(shí)驗(yàn)要求,采用8279將鍵掃得到的鍵值通過(guò)查表得到相應(yīng)的8253的頻率值,將從8253得到相對(duì)應(yīng)的按鍵彈奏信號(hào)經(jīng)過(guò)LM

7、386進(jìn)行放大,再用喇叭輸出,就實(shí)現(xiàn)了簡(jiǎn)易電子琴的基本功能,也就完成了實(shí)驗(yàn)的要求。方案二:用VHDL語(yǔ)言編程來(lái)實(shí)現(xiàn)系統(tǒng)整體基本原理圖如下:圖1、系統(tǒng)整體基本原理圖利用我們實(shí)驗(yàn)室先進(jìn)的數(shù)字電路實(shí)驗(yàn)設(shè)備,我們可以采用VHDL語(yǔ)言編程來(lái)實(shí)現(xiàn)。我們可以通過(guò)VDHL語(yǔ)言,對(duì)實(shí)驗(yàn)原理圖的各個(gè)部分進(jìn)行設(shè)計(jì),通過(guò)編譯,可以在計(jì)算機(jī)上下載此實(shí)驗(yàn)原理圖,利用電路學(xué)習(xí)機(jī)上的芯片。我們很快就可以設(shè)計(jì)出一個(gè)簡(jiǎn)單的電子琴。并實(shí)現(xiàn)其功能。方案三:采用AT89S52單片機(jī)作為主控芯片,設(shè)置鍵盤、蜂鳴器等外圍器件,另外還用到一些簡(jiǎn)單器件如:NPN型三極管及電阻等。利用按鍵實(shí)現(xiàn)音符和音調(diào)的輸入;用NPN型三極管8550實(shí)現(xiàn)低音頻

8、功率放大;最后用蜂鳴器發(fā)音。三種方案的比較:方案一采用單個(gè)的邏輯器件組合實(shí)現(xiàn)。這樣雖然比較直觀,邏輯器件分工鮮明,思路也比清晰,一目了然,但是由于元器件種類、個(gè)數(shù)繁多,而過(guò)于復(fù)雜的硬件電路也容易引起系統(tǒng)的精度不高、體積過(guò)大等不利因素。例如七個(gè)不同的音符是由七個(gè)不同的頻率來(lái)控制發(fā)出的,所用儀器之多顯而易見(jiàn)。方案二采用VHDL語(yǔ)言編程來(lái)實(shí)現(xiàn)電子琴的各項(xiàng)功能。系統(tǒng)主要由電子琴發(fā)聲模塊、選擇控制模塊和儲(chǔ)存器模塊組成。和方案一相比較,方案二就顯得比較籠統(tǒng),雖然我們可以看到用超高速硬件描述語(yǔ)言VHDL的優(yōu)勢(shì),但本質(zhì)上它只是把整個(gè)系統(tǒng)分為了若干個(gè)模塊,而不牽涉到具體的硬件電路。方案三與前兩種方案相比,主控芯

9、片采用AT89S52單片機(jī),它是大規(guī)模集成電路技術(shù)發(fā)展的產(chǎn)物,具有高性能、高速度、體積小、價(jià)格低廉、穩(wěn)定可靠、應(yīng)用廣泛的特點(diǎn)。同時(shí)具有強(qiáng)大的控制功能和靈活的編程實(shí)現(xiàn)特性,由于本設(shè)計(jì)主要用于人們娛樂(lè)方面,因此在設(shè)計(jì)上盡量使其安全以及簡(jiǎn)單易操作。而第三種方案具有經(jīng)濟(jì)可行性、技術(shù)可行性、實(shí)物應(yīng)用性。綜上所述,本次課程設(shè)計(jì)采用第三種方案。2.2單片機(jī)選型硬件電路要以單片機(jī)作為主控芯片,實(shí)現(xiàn)按鍵輸入音符和音調(diào),兩位數(shù)碼管的顯示以及低音頻功率放大和蜂鳴器發(fā)音。針對(duì)本設(shè)計(jì)的功能和用途,采用AT89S51單片機(jī)更好,實(shí)現(xiàn)功能完全,性價(jià)比較高,更適合本設(shè)計(jì)。2.3單片機(jī)的最小工作系統(tǒng)單片機(jī)加上適當(dāng)?shù)耐鈬骷蛻?yīng)

10、用程序,構(gòu)成的應(yīng)用系統(tǒng)稱為最小系統(tǒng)。2.3.1 時(shí)鐘電路 單片機(jī)內(nèi)部具有一個(gè)高增益反相放大器,用于構(gòu)成振蕩器。通常在引腳XTALl和XTAL2跨接石英晶體和兩個(gè)補(bǔ)償電容構(gòu)成自激振蕩器,結(jié)構(gòu)圖2 中X1、C1、C2??梢愿鶕?jù)情況選擇6MHz、12MHz或24MHz等頻率的石英晶體,補(bǔ)償電容通常選擇30pF左右的瓷片電容。圖2、時(shí)鐘電路2.3.2復(fù)位電路 單片機(jī)小系統(tǒng)常采用上電自動(dòng)復(fù)位和手動(dòng)按鍵復(fù)位兩種方式實(shí)現(xiàn)系統(tǒng)的復(fù)位操作。上電復(fù)位要求接通電源后,自動(dòng)實(shí)現(xiàn)復(fù)位操作。手動(dòng)復(fù)位要求在電源接通的條件下,在單片機(jī)運(yùn)行期間,用按鈕開關(guān)操作使單片機(jī)復(fù)位。其結(jié)構(gòu)如下圖。上電自動(dòng)復(fù)位通過(guò)電容C3充電來(lái)實(shí)現(xiàn)。手動(dòng)

11、按鍵復(fù)位是通過(guò)按鍵將電阻R1與VCC接通來(lái)實(shí)現(xiàn)。圖3、復(fù)位電路2.4 原理框圖本系統(tǒng)有主控芯片89S52、發(fā)音單元、顯示模塊、按鍵模塊組成。圖4、原理框圖2.5 按鍵部分設(shè)計(jì)2.5.1操作鍵設(shè)計(jì)常用的按鍵有三種:機(jī)械觸點(diǎn)式按鍵、導(dǎo)電橡膠式和柔性按鍵(又稱觸摸式鍵盤)。    機(jī)械觸點(diǎn)式按鍵是利用機(jī)械彈性使鍵復(fù)位,手感明顯,連線清晰,工藝簡(jiǎn)單,適合單件制造。但是觸點(diǎn)處易侵入灰塵而導(dǎo)致接觸不良,體積相對(duì)較大。    導(dǎo)電橡膠按鍵是利用橡膠的彈性來(lái)復(fù)位,通過(guò)壓制的方法把面板上所有的按鍵制成一塊,體積小,裝配方便,適合批量

12、生產(chǎn)。但是時(shí)間長(zhǎng)了,橡膠老化而使彈力下降,同時(shí)易侵入灰塵。    柔性按鍵是近年來(lái)迅速發(fā)展的一種新型按鍵,可以分為凸球型和平面型兩種。柔性按鍵最大特點(diǎn)是防塵、防潮、耐蝕,外形美觀,裝嵌方便。而且外形和面板的布局、色彩、鍵距可按照整機(jī)的要求來(lái)設(shè)計(jì)。但是由于客觀條件與經(jīng)濟(jì)能力有限,本系統(tǒng)采用機(jī)械觸點(diǎn)式按鍵。2.5.2鍵盤設(shè)計(jì)鍵盤在單片機(jī)應(yīng)用系統(tǒng)中是一個(gè)關(guān)鍵的部件,它能實(shí)現(xiàn)向計(jì)算機(jī)輸入數(shù)據(jù),傳送命令等功能,是人工干預(yù)計(jì)算機(jī)的主要手段。鍵盤可以分為2類:獨(dú)立連接式鍵盤和矩陣式鍵盤。(1)矩陣式鍵盤單片機(jī)系統(tǒng)中,若按鍵較多時(shí),通常采用矩陣式(也稱行列式)鍵盤。矩陣

13、式鍵盤由行線和列線組成,按鍵位于行、列線的交叉點(diǎn)上。顯然,在按鍵數(shù)量較多時(shí),矩陣式鍵盤較之獨(dú)立式按鍵鍵盤要節(jié)省很多I/O口。矩陣式鍵盤中,行、列線分別連接到按鍵開關(guān)的兩端,行線通過(guò)上拉電阻接到+5V上當(dāng)無(wú)鍵按下時(shí),行線處于高電平狀態(tài);當(dāng)有鍵按下時(shí),行、列線將導(dǎo)通,此時(shí),行線電平將由與此行線相連的列線電平?jīng)Q定。這是識(shí)別按鍵是否按下的關(guān)鍵。(2)獨(dú)立連接式鍵盤獨(dú)立式按鍵是直接用I/O口線構(gòu)成的單個(gè)按鍵電路,其特點(diǎn)是每個(gè)按鍵單獨(dú)占用一根I/O口線,每個(gè)按鍵的工作不會(huì)影響其它I/O口線的狀態(tài)。獨(dú)立式按鍵電路配置靈活,軟件結(jié)構(gòu)簡(jiǎn)單,但每個(gè)按鍵必須占用一根I/O口線,然而,在按鍵較多時(shí),I/O口線浪費(fèi)較大

14、,不宜采用。獨(dú)立式按鍵軟件常采用查詢式結(jié)構(gòu)。先逐位查詢每根I/O口線的輸入狀態(tài),如某一根I/O口線輸入為低電平,則可確認(rèn)該I/O口線所對(duì)應(yīng)的按鍵已按下,然后,再轉(zhuǎn)向該鍵的功能處理程序。由于本程序較為簡(jiǎn)單,為了使用方便及節(jié)省資源,選擇獨(dú)立式鍵盤。下圖為獨(dú)立式鍵盤電路圖: 圖6、獨(dú)立式鍵盤電路圖2.5.3去抖動(dòng)鍵盤編程中主要考慮去抖動(dòng)的問(wèn)題。當(dāng)測(cè)試表明有鍵被按下之后,緊接著就進(jìn)行去抖動(dòng)處理。因?yàn)殒I是機(jī)械開關(guān)結(jié)構(gòu),由于機(jī)械觸點(diǎn)的彈性及電壓突跳等原因,在觸點(diǎn)閉合或斷開的瞬間會(huì)出現(xiàn)電壓抖動(dòng)。為保證鍵識(shí)別的準(zhǔn)確,在電壓信號(hào)抖動(dòng)的情況下不能進(jìn)行行狀態(tài)輸入。為此需進(jìn)行去抖動(dòng)處理。去抖動(dòng)有硬件和軟件兩種方法。硬

15、件方法就是加去抖動(dòng)電路,從根本上避免抖動(dòng)的產(chǎn)生。軟件消抖,在第一次檢測(cè)到有鍵按下時(shí),執(zhí)行一段延時(shí)程序之后,再檢測(cè)此按鍵,如果第二次檢測(cè)結(jié)果仍為按下狀態(tài),CPU便確認(rèn)此按鍵己按下,消除了抖動(dòng)。2.6發(fā)音部分設(shè)計(jì)如下圖所示,發(fā)音電路是由蜂鳴器、三極管、上拉電阻構(gòu)成。由三極管來(lái)驅(qū)動(dòng)揚(yáng)聲器發(fā)音的,同時(shí)加上拉電阻增強(qiáng)驅(qū)動(dòng)電流,提高驅(qū)動(dòng)能力。圖7、發(fā)音部分電路圖3.系統(tǒng)軟件設(shè)計(jì)3.1系統(tǒng)分析3.1.1系統(tǒng)軟件的組成 (1)鍵盤掃描程序:檢測(cè)是否有按鍵按下,有按鍵按下則記錄按下鍵的鍵值,并跳轉(zhuǎn)至功能轉(zhuǎn)移程序;無(wú)按鍵按下,則返回鍵盤掃描程序繼續(xù)檢測(cè)。 (2)功能轉(zhuǎn)移程序:對(duì)檢測(cè)到的按鍵值進(jìn)行判斷,是琴鍵則跳轉(zhuǎn)

16、至琴鍵處理程序,是功能鍵則跳轉(zhuǎn)至相應(yīng)的功能程序,我們?cè)O(shè)計(jì)的功能程序有兩種,即音色調(diào)節(jié)功能和自動(dòng)播放樂(lè)曲的功能。 (3)琴鍵處理程序:根據(jù)檢測(cè)到的按鍵值,查詢音調(diào)表,給計(jì)時(shí)器賦值,使發(fā)出相應(yīng)頻率的聲音。 (4)自動(dòng)播放歌曲程序:檢測(cè)到按鍵按下的是自動(dòng)播放歌曲功能鍵后執(zhí)行該程序,電子琴會(huì)自動(dòng)播放事先已經(jīng)存放的歌曲,歌曲播放完畢之后自動(dòng)返回至鍵盤掃描程序,繼續(xù)等待是否有按鍵按下。3.1.2 系統(tǒng)總體功能流程圖判斷p0口輸入,設(shè)定鍵值得到高中低三種方式鍵值不為0關(guān)閉聲音根據(jù)7個(gè)鍵值和工作方式確定T0音樂(lè)播放啟動(dòng)T0音階鍵按下播放內(nèi)部存儲(chǔ)音樂(lè)B0/2=0b0+自動(dòng)播放鍵按下初始化T0開始鍵盤掃描程序N

17、N NYYY3.2 參數(shù)計(jì)算3.2.1發(fā)音原理若要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),再將此周期除以2,即為半周期的時(shí)間。利用定時(shí)器計(jì)時(shí)半周期時(shí)間,每當(dāng)計(jì)時(shí)終止后就將P1.0反相,然后重復(fù)計(jì)時(shí)再反相。就可在P1.0引腳上得到此頻率的脈沖。利用AT89C51的內(nèi)部定時(shí)器使其工作計(jì)數(shù)器模式(MODE1)下,改變計(jì)數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法產(chǎn)生不同音階。3.2.2 計(jì)算舉例例如,頻率為523Hz,其周期T1/5231912s,因此只要令計(jì)數(shù)器計(jì)時(shí)956s/1s956,每計(jì)數(shù)956次時(shí)將I/O反相,就可得到中音DO(523Hz)。計(jì)數(shù)脈沖值與頻率的關(guān)系式是:Nfi÷

18、2÷fr,式中,N是計(jì)數(shù)值;fi是機(jī)器頻率(晶體振蕩器為12MHz時(shí),其頻率為1MHz);fr是想要產(chǎn)生的頻率。其計(jì)數(shù)初值T的求法如下:T65536N65536fi÷2÷fr例如:設(shè)K65536,fi1MHz,求中音DO(261Hz)。T65536N65536fi÷2÷fr655361000000÷2÷fr65536500000/fr,中音DO的T65536500000/52364580。3.2.3 計(jì)算結(jié)果(1)單片機(jī)12MHZ晶振,中音符與計(jì)數(shù)T0相關(guān)的計(jì)數(shù)值如表所示:音符頻率(HZ)計(jì)數(shù)值(T值)音符頻率(HZ)計(jì)數(shù)值

19、(T值)低1DO26263628#4FA#74064860#1DO#27763737中5SO78464898低2RE29463835#5SO#83194934#2RE#31163928中6LA88064968低3MI33064021#6LA#93264994低4FA34964103中7SI96865030#4FA#37064185低1DO104665058低SO39264260#1DO#110965085#5SO#41564331高2RE117565110低6LA44064400#2RE#124565134#6LA#46664463高3MI131865157低7SI49464524高4FA13

20、9765178中1DO52364580#4FA#149065198#1DO#55464633高5SO156865217中2RE58764633#5SO#166165235#2RE#62264884高6LA176065252中3MI65964732#6LA#186565268中4FA69864820高7SI196765283采用查表程序進(jìn)行查表時(shí),可以為這個(gè)音符建立一個(gè)表格,有助于單片機(jī)通過(guò)查表的方式來(lái)獲得相應(yīng)的數(shù)據(jù):低音019之間,中音在2039之間,高音在4059之間。用單片機(jī)播放音樂(lè),或者彈奏電子琴,實(shí)際上是按照特定的頻率,輸出一連串的方波。為了輸出合適的方波,首先應(yīng)該知道音符與頻率的關(guān)系

21、。(2)音調(diào)數(shù)據(jù)表曲調(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上表中的頻率數(shù)值,有些過(guò)多,去掉不常用的黑鍵頻率,只是把白鍵對(duì)應(yīng)的數(shù)據(jù)存放在單片機(jī)中,即可滿足絕大部分的應(yīng)用需求。定義音調(diào)數(shù)據(jù)表的程序如下:DW 63628,63835,64021,64103,64260,64400,64524 ;64580,低音區(qū):1 2 3 4 5 6 7 DW 64580,64671,64777,64820,64898,64968,65030 65058中音區(qū):1 2 3 4 5 6 7 DW 65058,65110,

22、65157,65178,65217,65252,65283 65312高音區(qū):1 2 3 4 5 6 7把這個(gè)數(shù)據(jù)表,放在程序中,需要播音的時(shí)候,就從表中取出一個(gè)數(shù)據(jù)送到定時(shí)器,當(dāng)定時(shí)器溢出中斷的時(shí)候,再對(duì)輸出引腳取反,那么,在揚(yáng)聲器中,即可聽到上表中頻率的聲音。3.3程序設(shè)計(jì)3.3.1 判斷音階(高中低音)子程序 在軟件設(shè)計(jì)中采用yinjie代表音階,如下圖所示音階Yinjie值高2中1低0初始化狀態(tài)為中音(yinjie=1),電路中設(shè)計(jì)高、低兩個(gè)音階鍵。上電后,若無(wú)按鍵按下,則為中音模式。若音階鍵被按下,則如下流程圖所示,初始化后進(jìn)行按鍵掃描,在高音鍵按下,若初始yinjie不為2,則另y

23、injie=2,進(jìn)入高音工作模式,若初始yinjie為2,則對(duì)yinjie進(jìn)行初始化,即另yinjie=1,重新進(jìn)入進(jìn)入中音工作模式,這樣即實(shí)現(xiàn)了高音鍵切換高、中音方式的轉(zhuǎn)換。同理,用低音鍵實(shí)現(xiàn)中、低音的切換。圖9、判斷音階(高中低音)子程序3.3.2 播放子程序(包括自動(dòng)播放存儲(chǔ)音樂(lè)和按鍵發(fā)音)本設(shè)計(jì)共兩種播放模式,包括自動(dòng)播放存儲(chǔ)音樂(lè)和按鍵發(fā)音。上電后,首先開中斷并設(shè)定定時(shí)器0為工作方式1,當(dāng)自動(dòng)播放鍵按下時(shí),進(jìn)入中斷,根據(jù)樂(lè)譜在定義的音頻數(shù)組中查找相應(yīng)音律,然后給定時(shí)器賦初值,即開始播放音樂(lè)。當(dāng)DO、RE、MI、FA、SO、LA、SI七種音符鍵按下時(shí),根據(jù)音階值(如3.3.1中高中低對(duì)應(yīng)

24、)和音符值在定義的音頻數(shù)組中查找相應(yīng)音律,然后給定時(shí)器賦初值,即按鍵發(fā)音。圖10、播放子程序4. Proteus軟件仿真4.1硬件調(diào)試硬件調(diào)試主要是針對(duì)單片機(jī)部分進(jìn)行的調(diào)試。在上電之前,先確保電路中不存在斷路或短路情況,這一工作是整個(gè)調(diào)試工作的第一步,也是非常重要的一個(gè)步驟。在這部分調(diào)試中主要使用的工具是萬(wàn)用表,用來(lái)完成檢測(cè)電路中是否存在斷路或者短路情況的任務(wù)。注意焊點(diǎn)之間,確保焊點(diǎn)沒(méi)有短接在一起,同時(shí)注意焊點(diǎn)的美觀,確保沒(méi)有開路以及短路的現(xiàn)象出現(xiàn)。在確保硬件電路正常且無(wú)異常情況(斷路或短路)的情況下方可上電調(diào)試,上電調(diào)試的目的是檢驗(yàn)電路是否接錯(cuò),同時(shí)還要檢驗(yàn)原理是否正確,在本次設(shè)計(jì)中,上電調(diào)

25、試主要是檢測(cè)單片機(jī)控制部分、音頻轉(zhuǎn)換電路硬件調(diào)試。鍵盤單片機(jī)控制部分調(diào)試:上電后,隨機(jī)按動(dòng)鍵盤可以發(fā)現(xiàn)各個(gè)按鍵對(duì)應(yīng)的音正確。4.2 軟件調(diào)試調(diào)試主要方法和技巧:通常一個(gè)調(diào)試程序應(yīng)該具備至少四種性能:跟蹤、斷點(diǎn)、查看變量、更改數(shù)值。整個(gè)程序是一個(gè)主程序調(diào)用各個(gè)子程序?qū)崿F(xiàn)功能的過(guò)程,要使主程序和整個(gè)程序都能平穩(wěn)運(yùn)行,各個(gè)模塊的子程序的正確與平穩(wěn)運(yùn)行必不可少,所以在軟件調(diào)試的最初階段就是把各個(gè)子程序模塊進(jìn)行分別調(diào)試。4.3 仿真結(jié)果(任舉一例)圖10、低音音符DO仿真圖4.4 結(jié)果分析根據(jù)仿真結(jié)果可知,本次課程設(shè)計(jì)能夠準(zhǔn)確并徹底的完成設(shè)計(jì)要求。分別按下左側(cè)的七個(gè)按鍵,蜂鳴管會(huì)依次發(fā)出DO、RE、MI

26、、FA、SO、LA、SI七種音符。右側(cè)前兩個(gè)按鍵可以改變音調(diào),能夠進(jìn)行高、中、低音的自由切換。最下面的按鍵是預(yù)存音樂(lè)“送別”的控制開關(guān),可以進(jìn)行音樂(lè)的播放與暫停。5. 課程設(shè)計(jì)體會(huì)總體來(lái)說(shuō),此次單片機(jī)課程設(shè)計(jì)使我們收獲良多,雖然課程設(shè)計(jì)的過(guò)程中遇到了很多困難與問(wèn)題,但我們最終還是完成了設(shè)計(jì)的任務(wù)及要求。具體來(lái)說(shuō)可以分為以下幾點(diǎn):第一,不夠細(xì)心,不夠嚴(yán)謹(jǐn)(如因?yàn)榇中拇笠舛稿e(cuò)線);第二,因?qū)φn本理論的掌握度不夠?qū)е戮幊坛霈F(xiàn)錯(cuò)誤;第三,硬件方面,剛開始有的程序模塊不能實(shí)現(xiàn)預(yù)期的效果,對(duì)于有的硬件,在實(shí)物制作過(guò)程中焊了比較多的排線,同時(shí)對(duì)于整體各元器件的布局都有很高的要求。不過(guò)在向同學(xué)請(qǐng)教,各方面都

27、有了不同程度的改善;第四,在做人方面,我認(rèn)識(shí)到,無(wú)論做什么事情,只要你足夠堅(jiān)強(qiáng),有足夠的毅力和決心,有足夠的挑戰(zhàn)困難的勇氣,就沒(méi)有什么辦不到的。這次課程設(shè)計(jì)中,經(jīng)過(guò)我們的努力,在仿真軟件和實(shí)物上都實(shí)現(xiàn)了高、中、低21個(gè)音符的發(fā)聲和音樂(lè)的自動(dòng)播放,使我們有了一定的成就感,也使我們進(jìn)一步熟悉和掌握了單片機(jī)的內(nèi)部結(jié)構(gòu)和工作原理,了解了單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)的基本方法和步驟, 掌握了單片機(jī)仿真軟件Proteus的使用方法和鍵盤、顯示器在的單片機(jī)控制系統(tǒng)中的應(yīng)用,同時(shí)也掌握了撰寫課程設(shè)計(jì)報(bào)告的方法。總之,通過(guò)這次課程設(shè)計(jì),我們都清楚明白了自己的能力有多深,想提高還得歸于多鍛煉,多動(dòng)手,多向別人學(xué)習(xí)。參考文獻(xiàn)

28、【1】徐泳龍·單片機(jī)及原理及應(yīng)用·北京:機(jī)械工業(yè)出版社,2013【2】胡學(xué)海·單片機(jī)原理及應(yīng)用系統(tǒng)設(shè)計(jì)·北京:北京電子工業(yè)出版社,2005【3】高偉·.AT89單片機(jī)原理及應(yīng)用·北京:國(guó)防工業(yè)出版社,2008附1 源程序代碼#include<reg52.h> #define keyport P1#define uchar unsigned char#define uint unsigned intuchar high,low; /定時(shí)器預(yù)裝值的高8位和低8位sbit speak=P30;sbit gao=P35;sbit

29、di=P36;sbit zdbf=P37;uchar yinjie=1;uchar time;uchar n=0;uchar bo=0;uchar code fre2= 0x8c,0xf8,0x5b,0xf9,0x15,0xfa,0x67,0xfa,0x90,0xfb,0xae,0xfb,0x0c,0xfc, /低音 0x44,0xfc,0xac,0xfc,0x09,0xfd,0x34,0xfd,0x82,0xfd,0xc2,0xfd,0x06,0xfe, /中音0x22,0xfe,0x56,0xfe,0x85,0xfe,0x9a,0xfe,0xc1,0xfe,0xe4,0xfe,0x03,0

30、xff, /高音 ;void delay(uint );void ITimer0(void);/定時(shí)器初始化void key(void);void dtxs(int,int);void song()TH0=high;TL0=low;TR0=1;delay(time*240); void yinyue()uchar code hls= 5,2,2, 3,2,1, 5,2,1, 1,3,4, 6,2,2, 1,3,2, 5,2,4, 5,2,2, 1,2,1, 2,2,1 ,3,2,2 ,2,2,1, 1,2,1 ,2,2,6, 5,2,2, 3,2,1, 5,2,1, 1,3,3, 7,2,1,

31、 6,2,2, 1,3,2, 5,2,4, 5,2,2, 2,2,1, 3,2,1, 4,2,3, 7,1,1, 1,2,6, 6,2,2, 1,3,2, 1,3,4, 7,2,2, 6,2,1, 7,2,1, 1,3,4 ,6,2,1,7,2,1, 1,3,1 ,6,2,1, 6,2,1 ,5,2,1 ,3,2,1, 1,2,1, 2,2,6, 5,2,2, 3,2,1, 1,2,1, 1,3,3, 7,2,1, 6,2,2, 1,3,2, 5,2,4, 5,2,2, 2,2,1, 3,2,1, 4,2,3, 7,1,1, 1,2,6 ;uchar m;n=0; while(n<174) m=hlsn+7*(hlsn+1-1)-1;high=frem1;low=frem0;time=hlsn+2;n=n+3;song(); void main (void)uchar num;ITimer0();speak=0;while(1)key();switch(keyport)case 0xfe:num=1;break;case 0xfd:num=2;break;case 0x

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論