課程設(shè)計(jì)(論文)基于AT89C52單片機(jī)的簡(jiǎn)易電子琴設(shè)計(jì)_第1頁(yè)
課程設(shè)計(jì)(論文)基于AT89C52單片機(jī)的簡(jiǎn)易電子琴設(shè)計(jì)_第2頁(yè)
課程設(shè)計(jì)(論文)基于AT89C52單片機(jī)的簡(jiǎn)易電子琴設(shè)計(jì)_第3頁(yè)
課程設(shè)計(jì)(論文)基于AT89C52單片機(jī)的簡(jiǎn)易電子琴設(shè)計(jì)_第4頁(yè)
課程設(shè)計(jì)(論文)基于AT89C52單片機(jī)的簡(jiǎn)易電子琴設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩28頁(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、河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 - 1 - 摘要摘要 本設(shè)計(jì)主要研究基于 at89c52 單片機(jī)的簡(jiǎn)易電子琴設(shè)計(jì)。 它是以單片機(jī)作為主控核心,設(shè)置鍵盤(pán)、蜂鳴器等外圍器件;另外還用到 一些簡(jiǎn)單器件如:兩位數(shù)碼管,和 npn 型三極管及電阻等。利用按鍵實(shí)現(xiàn)音符 和音調(diào)的輸入;兩位的數(shù)碼管進(jìn)行被操作的按鍵顯示;用 npn 型三極管 8550 實(shí) 現(xiàn)低音頻功率放大;最后用蜂鳴器進(jìn)行播放“送別” 。 本設(shè)計(jì)硬件部分主要由最小系統(tǒng),按鍵系統(tǒng)模塊、數(shù)碼管顯示模塊和蜂鳴 器模塊組成。其軟件部分主要有主程序模塊、定時(shí)中斷程序、定時(shí)計(jì)數(shù)程序、 顯示程序。 (1)最小系統(tǒng):它是單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)基礎(chǔ)。它包括單片機(jī)的

2、選擇、時(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)行高低中音的切換,并自動(dòng)播放已存歌曲。 (3)數(shù)碼管顯示模塊:sm420562 段選端接在單片機(jī)的 p0 口,兩個(gè)位選端分別 接在 p20 和 p21。 (4)蜂鳴器模塊:此電子琴發(fā)音電路是通過(guò)三極管驅(qū)動(dòng)蜂鳴器發(fā)音,經(jīng)過(guò)上拉 電阻提高驅(qū)動(dòng)能力。 本次設(shè)計(jì)首先對(duì)單片機(jī)設(shè)計(jì)簡(jiǎn)易電子琴仔細(xì)分析,接著制作硬件電路和編 寫(xiě)軟件的程序,最后進(jìn)行軟硬件的調(diào)試運(yùn)行。并且從原理圖,主要芯片,各模 塊的原理和各個(gè)模塊的程序調(diào)試來(lái)闡述。

3、利用單片機(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à)值。 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 - 2 - 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 - 3 - 目錄目錄 1.1.概述概述.4 1.1 設(shè)計(jì)背景 .4 1.2 設(shè)計(jì)意義 .4 1.3 設(shè)計(jì)任務(wù) .4 2.2.系統(tǒng)總體方案及硬件設(shè)計(jì)系統(tǒng)總體方案及硬件設(shè)計(jì).5 2.1 總體設(shè)計(jì).5 2.2 單片機(jī)選型 .6 2.3 單片機(jī)的最小工作系統(tǒng) .6 2.3.1 時(shí)鐘電

4、路.6 2.3.2 復(fù)位電路.7 2.4 原理框圖.7 2.5 顯示部分設(shè)計(jì).8 2.5.1 數(shù)碼顯示方式.8 2.5.2 八位數(shù)碼管的結(jié)構(gòu).8 2.6 按鍵部分設(shè)計(jì).9 2.6.1 操作鍵設(shè)計(jì).9 2.6.2 鍵盤(pán)設(shè)計(jì).9 2.6.3 去抖動(dòng).10 2.7 發(fā)音部分設(shè)計(jì).11 3.3.系統(tǒng)軟件設(shè)計(jì)系統(tǒng)軟件設(shè)計(jì).12 3.1 系統(tǒng)分析.12 3.1.1 系統(tǒng)軟件的組成.12 3.1.2 系統(tǒng)總體功能流程圖 .13 3.2 參數(shù)計(jì)算.14 3.2.1 發(fā)音原理.14 3.2.2 計(jì)算舉例 .14 3.2.3 計(jì)算結(jié)果 .14 3.3 程序設(shè)計(jì).16 3.3.1 判斷音階(高中低音)子程序 .16

5、 3.3.2 播放子程序(包括自動(dòng)播放存儲(chǔ)音樂(lè)和按鍵發(fā)音) .17 4.4. proteusproteus 軟件仿真軟件仿真.19 4.1 硬件調(diào)試.19 4.2 軟件調(diào)試 .19 4.3 仿真結(jié)果(任舉一例) .20 4.4 結(jié)果分析 .20 5.5. 課程設(shè)計(jì)體會(huì)課程設(shè)計(jì)體會(huì).21 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 - 4 - 參考文獻(xiàn).22 附 1 源程序代碼 .23 附 2 系統(tǒng)原理圖 .32 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 - 5 - 1.概述概述 1.1 設(shè)計(jì)背景 隨著電子科學(xué)技術(shù)的飛速發(fā)展,電子技術(shù)正在逐漸改善著人們的學(xué)習(xí)、生 活、工作,因此開(kāi)發(fā)本系統(tǒng)希望能夠給人們帶來(lái)更多的生活樂(lè)趣。

6、 基于當(dāng)前市場(chǎng)上的玩具需求量增大,其中電子琴就是一個(gè)很好的應(yīng)用方面。 單片機(jī)技術(shù)使我們可以利用軟硬件來(lái)實(shí)現(xiàn)電子琴的功能,從而可以實(shí)現(xiàn)電子琴 的微型化,可以用作玩具琴、音樂(lè)轉(zhuǎn)盤(pán)以及音樂(lè)童車等等。并且可以進(jìn)行一定 的功能擴(kuò)展。鑒于傳統(tǒng)電子琴可以用鍵盤(pán)上的“1”到“a”鍵演奏從低 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ú)立鍵盤(pán),其中七個(gè)為音符鍵,三個(gè)為控制鍵,并用數(shù)碼管進(jìn)行顯示, 使電子琴的功能更加完美。不但可以實(shí)現(xiàn)對(duì)按鍵的顯示,而且可以實(shí)現(xiàn)對(duì)音樂(lè) 的自動(dòng)存儲(chǔ)和播放

7、,使該設(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ā)聲部件,兩個(gè)數(shù)碼管作為顯示部件,設(shè)置 10 個(gè)按鍵,實(shí)現(xiàn)高 音、中音、低音的 1、2、3、4、5、6、7 的發(fā)音。并在存儲(chǔ)一首歌曲的內(nèi)容, 可以實(shí)現(xiàn)自動(dòng)播放。 用 proteus 實(shí)現(xiàn)的電子琴仿真設(shè)計(jì) 說(shuō)明:?jiǎn)纹瑱C(jī)的工作時(shí)鐘頻率為 11.0592mhz。 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 - 6 - 2.系統(tǒng)總體方案及硬件設(shè)計(jì)系統(tǒng)總體方案及硬件設(shè)計(jì) 2.1 總體設(shè)計(jì) 實(shí)現(xiàn)本次

8、設(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ò) lm386 進(jìn)行放大,再用喇 叭輸出,就實(shí)現(xiàn)了簡(jiǎn)易電子琴的基本功能,也就完成了實(shí)驗(yàn)的要求。 方案二:用 vhdl 語(yǔ)言編程

9、來(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è)置鍵盤(pán)、蜂鳴器等外圍器 件,另外還用到一些簡(jiǎn)單器件如:兩位數(shù)碼管,和 npn 型三極管及電阻等。利 用按鍵實(shí)現(xiàn)音符和音調(diào)的輸入;兩位的數(shù)碼管進(jìn)行被操作的按鍵顯示;用 npn 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 - 7 - 型三

10、極管 8550 實(shí)現(xiàn)低音頻功率放大;最后用蜂鳴器發(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è)模塊,而不

11、牽涉到具體的硬件電路。方案三與前兩種方案相比, 主控芯片采用 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)功能完全,

12、性價(jià)比較高,更適合本設(shè)計(jì)。 2.3 單片機(jī)的最小工作系統(tǒng) 單片機(jī)加上適當(dāng)?shù)耐鈬骷蛻?yīng)用程序,構(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 左右的瓷片電容。 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 - 8 - 圖 2、時(shí)鐘電路 2.3.2 復(fù)位電路 單片機(jī)小系統(tǒng)常采用上電自動(dòng)復(fù)位和手動(dòng)按鍵復(fù)位兩種方式實(shí)現(xiàn)系統(tǒng)的復(fù) 位操作。上電復(fù)位

13、要求接通電源后,自動(dòng)實(shí)現(xiàn)復(fù)位操作。手動(dòng)復(fù)位要求在電源 接通的條件下,在單片機(jī)運(yùn)行期間,用按鈕開(kāi)關(guān)操作使單片機(jī)復(fù)位。其結(jié)構(gòu)如 下圖。上電自動(dòng)復(fù)位通過(guò)電容 c3 充電來(lái)實(shí)現(xiàn)。手動(dòng)按鍵復(fù)位是通過(guò)按鍵將電阻 r1 與 vcc 接通來(lái)實(shí)現(xiàn)。 圖 3、復(fù)位電路 2.4 原理框圖 本系統(tǒng)有主控芯片 89s52、發(fā)音單元、顯示模塊、按鍵模塊組成。 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 - 9 - 89s52 單片機(jī) 按鍵 模塊 發(fā)音單元 顯示模塊 圖 4、原理框圖 2.5 顯示部分設(shè)計(jì) 2.5.1 數(shù)碼顯示方式 數(shù)碼顯示有靜態(tài)顯示方式與動(dòng)態(tài)顯示方式兩種。工作在靜態(tài)顯示方式時(shí), 數(shù)碼管的位線與電源一直相連,數(shù)碼管中的二

14、極管均處于通電狀態(tài),即在靜態(tài) 工作方式下,顯示電路中數(shù)碼管的位選線是同時(shí)選通,而數(shù)碼管的段選線是獨(dú) 立輸入。 工作在動(dòng)態(tài)顯示方式時(shí),數(shù)碼管的位線在掃描控制電路的控制下按設(shè)定順 序?qū)?,即電路中的?shù)碼管是逐個(gè)接通電源,數(shù)碼管的段選線以并聯(lián)方式與譯 碼電路聯(lián)接,即在動(dòng)態(tài)工作方式下,數(shù)碼管不是同時(shí)導(dǎo)通顯示而是按照設(shè)定順 序分時(shí)導(dǎo)通顯示。 2.5.2 八位數(shù)碼管的結(jié)構(gòu) 本次課程設(shè)計(jì)的顯示電路采用兩位數(shù)碼管進(jìn)行顯示,由于此設(shè)計(jì)采用的是 共陰極的,使用時(shí)不加限流電阻。 為了顯示字符,要為 led 顯示器段碼,除了組成 8 字形的字符的 7 段, 另加上 1 個(gè)小數(shù)點(diǎn)位,共計(jì) 8 段, 因此提供給 led

15、顯示器的顯示段碼為 1 個(gè) 字節(jié)。 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 - 10 - 圖 5、數(shù)碼管電路 2.6 按鍵部分設(shè)計(jì) 2.6.1 操作鍵設(shè)計(jì) 常用的按鍵有三種:機(jī)械觸點(diǎn)式按鍵、導(dǎo)電橡膠式和柔性按鍵(又稱觸摸 式鍵盤(pán)) 。 機(jī)械觸點(diǎn)式按鍵是利用機(jī)械彈性使鍵復(fù)位,手感明顯,連線清晰,工藝簡(jiǎn) 單,適合單件制造。但是觸點(diǎn)處易侵入灰塵而導(dǎo)致接觸不良,體積相對(duì)較大。 導(dǎo)電橡膠按鍵是利用橡膠的彈性來(lái)復(fù)位,通過(guò)壓制的方法把面板上所有的 按鍵制成一塊,體積小,裝配方便,適合批量生產(chǎn)。但是時(shí)間長(zhǎng)了,橡膠老化 而使彈力下降,同時(shí)易侵入灰塵。 柔性按鍵是近年來(lái)迅速發(fā)展的一種新型按鍵,可以分為凸球型和平面型兩 種。

16、柔性按鍵最大特點(diǎn)是防塵、防潮、耐蝕,外形美觀,裝嵌方便。而且外形 和面板的布局、色彩、鍵距可按照整機(jī)的要求來(lái)設(shè)計(jì)。 但是由于客觀條件與經(jīng)濟(jì)能力有限,本系統(tǒng)采用機(jī)械觸點(diǎn)式按鍵。 2.6.2 鍵盤(pán)設(shè)計(jì) 鍵盤(pán)在單片機(jī)應(yīng)用系統(tǒng)中是一個(gè)關(guān)鍵的部件,它能實(shí)現(xiàn)向計(jì)算機(jī)輸入數(shù)據(jù), 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 - 11 - 傳送命令等功能,是人工干預(yù)計(jì)算機(jī)的主要手段。 鍵盤(pán)可以分為 2 類:獨(dú)立連接式鍵盤(pán)和矩陣式鍵盤(pán)。 (1)矩陣式鍵盤(pán) 單片機(jī)系統(tǒng)中,若按鍵較多時(shí),通常采用矩陣式(也稱行列式)鍵盤(pán)。矩 陣式鍵盤(pán)由行線和列線組成,按鍵位于行、列線的交叉點(diǎn)上。顯然,在按鍵數(shù) 量較多時(shí),矩陣式鍵盤(pán)較之獨(dú)立式按鍵鍵盤(pán)

17、要節(jié)省很多 i/o 口。 矩陣式鍵盤(pán)中,行、列線分別連接到按鍵開(kāi)關(guān)的兩端,行線通過(guò)上拉電阻 接到+5v 上當(dāng)無(wú)鍵按下時(shí),行線處于高電平狀態(tài);當(dāng)有鍵按下時(shí),行、列線 將導(dǎo)通,此時(shí),行線電平將由與此行線相連的列線電平?jīng)Q定。這是識(shí)別按鍵是 否按下的關(guān)鍵。 (2)獨(dú)立連接式鍵盤(pán) 獨(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)較大,不宜采用。 獨(dú)立式按鍵軟件常采用查詢式結(jié)構(gòu)。先逐位查詢每根

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

19、和軟件兩種方法。硬件方法就 是加去抖動(dòng)電路,從根本上避免抖動(dòng)的產(chǎn)生。軟件消抖,在第一次檢測(cè)到有鍵 按下時(shí),執(zhí)行一段延時(shí)程序之后,再檢測(cè)此按鍵,如果第二次檢測(cè)結(jié)果仍為按 下?tīng)顟B(tài),cpu 便確認(rèn)此按鍵己按下,消除了抖動(dòng)。 2.7 發(fā)音部分設(shè)計(jì) 如下圖所示,發(fā)音電路是由蜂鳴器、三極管、上拉電阻構(gòu)成。由三極管來(lái) 驅(qū)動(dòng)揚(yáng)聲器發(fā)音的,同時(shí)加上拉電阻增強(qiáng)驅(qū)動(dòng)電流,提高驅(qū)動(dòng)能力。 圖 7、獨(dú)立式鍵盤(pán)電路圖 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 - 13 - 3.系統(tǒng)軟件設(shè)計(jì)系統(tǒng)軟件設(shè)計(jì) 3.1 系統(tǒng)分析 3.1.1 系統(tǒng)軟件的組成 (1)鍵盤(pán)掃描程序:檢測(cè)是否有按鍵按下,有按鍵按下則記錄按下鍵的 鍵值,并跳轉(zhuǎn)至功能轉(zhuǎn)

20、移程序;無(wú)按鍵按下,則返回鍵盤(pán)掃描程序繼續(xù)檢測(cè)。 (2)功能轉(zhuǎn)移程序:對(duì)檢測(cè)到的按鍵值進(jìn)行判斷,是琴鍵則跳轉(zhuǎn)至琴鍵 處理程序,是功能鍵則跳轉(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)返 回至鍵盤(pán)掃描程序,繼續(xù)等待是否有按鍵按下。 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 - 14 - 3.1.2 系統(tǒng)總體功能流程圖 開(kāi)始 初始化t0 自動(dòng)播放鍵

21、按 下 鍵盤(pán)掃描 程序 bo+ 音階鍵按下 得到高中低三 種方式 判斷p0口輸 入,設(shè)定鍵值 鍵值不為0 根據(jù)7個(gè)鍵值和 工作方式確定 t0值 啟動(dòng)t0 選擇數(shù)碼管1顯 示工作方式 選擇數(shù)碼管2顯 示7個(gè)音調(diào),發(fā) 出對(duì)應(yīng)聲音 關(guān)閉聲音 播放內(nèi)部存 儲(chǔ)音樂(lè) bo/2=0 n y y n y n 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 - 15 - 圖 8、系統(tǒng)總體功能流程圖 3.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

22、引腳上得到此頻率的脈沖。利 用 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)系式是:nfi2fr,式中,n 是計(jì)數(shù)值;fi 是機(jī)器 頻率(晶體振蕩器為 12mhz 時(shí),其頻率為 1mhz) ;fr 是想要產(chǎn)生的頻率。其計(jì) 數(shù)初值 t 的求法如下:t65536n65536fi2fr 例如:設(shè)

23、k65536,fi1mhz,求中音 do(261hz) 。 t65536n65536fi2fr6553610000002fr65536500000/f r,中音 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ù)值(t 值) 低 1do26263628#4fa#74064860 #1do#27763737中 5so78464898 低 2re29463835#5so#83194934 #2re#31163928中 6la88064968

24、低 3mi33064021#6la#93264994 低 4fa34964103中 7si96865030 #4fa#37064185低 1do104665058 低 so39264260#1do#110965085 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 - 16 - #5so#41564331高 2re117565110 低 6la44064400#2re#124565134 #6la#46664463高 3mi131865157 低 7si49464524高 4fa139765178 中 1do52364580#4fa#149065198 #1do#55464633高 5so156865217 中

25、 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)系。 (2)音調(diào)數(shù)據(jù)表 曲調(diào)值delay曲調(diào)值delay 調(diào) 4/4125ms調(diào) 4/4

26、62ms 調(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,65157,65178,65217,65252,652

27、83 65312 高音區(qū):1 2 3 4 5 6 7 把這個(gè)數(shù)據(jù)表,放在程序中,需要播音的時(shí)候,就從表中取出一個(gè)數(shù)據(jù)送 到定時(shí)器,當(dāng)定時(shí)器溢出中斷的時(shí)候,再對(duì)輸出引腳取反,那么,在揚(yáng)聲器中, 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 - 17 - 即可聽(tī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)行按鍵掃描,在高音鍵按下,

28、若初始 yinjie 不為 2,則另 yinjie=2,進(jìn)入 高音工作模式,若初始 yinjie 為 2,則對(duì) yinjie 進(jìn)行初始化,即另 yinjie=1, 重新進(jìn)入進(jìn)入中音工作模式,這樣即實(shí)現(xiàn)了高音鍵切換高、中音方式的轉(zhuǎn)換。 同理,用低音鍵實(shí)現(xiàn)中、低音的切換。 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 - 18 - 初始化設(shè)定 yinjie=1,即方式為 中音 高音選擇按下 yinjie=2 開(kāi)始 設(shè)定yinjie=2 判斷工作方式 yinjie=0 判斷yinjie值判斷yinjie值 設(shè)定yinjie=0 低音選擇按下 n y n y n 圖 9、判斷音階(高中低音)子程序 3.3.2 播放子

29、程序(包括自動(dòng)播放存儲(chǔ)音樂(lè)和按鍵發(fā)音) 本設(shè)計(jì)共兩種播放模式,包括自動(dòng)播放存儲(chǔ)音樂(lè)和按鍵發(fā)音。上電后,首先 開(kāi)中斷并設(shè)定定時(shí)器 0 為工作方式 1,當(dāng)自動(dòng)播放鍵按下時(shí),進(jìn)入中斷,根據(jù) 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 - 19 - 樂(lè)譜在定義的音頻數(shù)組中查找相應(yīng)音律,然后給定時(shí)器賦初值,即開(kāi)始播放音 樂(lè)。當(dāng) do、re、mi、fa、so、la、si 七種音符鍵按下時(shí),根據(jù)音階值(如 3.3.1 中高中低對(duì)應(yīng))和音符值在定義的音頻數(shù)組中查找相應(yīng)音律,然后給定時(shí)器賦 初值,即按鍵發(fā)音。 開(kāi)始 開(kāi)中斷并設(shè)定 工作方式寄存 器 進(jìn)入中斷 根據(jù)樂(lè)譜在數(shù) 組中查找相應(yīng) 音律 給定時(shí)器 t0賦值 自動(dòng)播放鍵按

30、下 根據(jù)yinjie和工作 方式取值,并在數(shù) 組中查找相應(yīng)音律 有鍵按下 播放音樂(lè) 給定時(shí)器t0賦 值 播放鍵值對(duì)應(yīng)的 音符 n y 進(jìn)入中斷 圖 10、播放子程序 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 - 20 - 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)有開(kāi)路以及短路的現(xiàn) 象出現(xiàn)。

31、在確保硬件電路正常且無(wú)異常情況(斷路或短路)的情況下方可上電調(diào)試,上 電調(diào)試的目的是檢驗(yàn)電路是否接錯(cuò),同時(shí)還要檢驗(yàn)原理是否正確,在本次設(shè)計(jì) 中,上電調(diào)試主要是檢測(cè)單片機(jī)控制部分、數(shù)碼管點(diǎn)亮部分、和音頻轉(zhuǎn)換電路 硬件調(diào)試。 1、數(shù)碼管 led 電路調(diào)試:接通電源,隨機(jī)按下按鈕可以看到數(shù)碼管顯示數(shù) 字。 2、鍵盤(pán)單片機(jī)控制部分調(diào)試:上電后,隨機(jī)按動(dòng)鍵盤(pán)可以發(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è)模塊的子程序的正

32、確與平穩(wěn) 運(yùn)行必不可少,所以在軟件調(diào)試的最初階段就是把各個(gè)子程序模塊進(jìn)行分別調(diào) 試。 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 - 21 - 4.3 仿真結(jié)果(任舉一例) 圖 10、低音音符 do 仿真圖 4.4 結(jié)果分析 根據(jù)仿真結(jié)果可知,本次課程設(shè)計(jì)能夠準(zhǔn)確并徹底的完成設(shè)計(jì)要求。左側(cè)數(shù) 碼管可以顯示 a、b、c 三種結(jié)果,分別代表低音、中音和高音。右側(cè)數(shù)碼管可 以顯示 1、2、3、4、5、6、7 七個(gè)數(shù)字,分別代表 do、re、mi、fa、so、la、si 七種音符。下面以 4.3 為例具體進(jìn)行分析:當(dāng)系 統(tǒng)上電后,若按下低音鍵(如圖 p3.6),,則選定工作方式為低音模式,圖中 a 即代表低音。p0

33、 口連接數(shù)碼管段選端,右側(cè)數(shù)碼管顯示的 1 即代表 do。兩位 數(shù)碼管即代表低音 do。 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 - 22 - 5. 課程設(shè)計(jì)體會(huì)課程設(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ò)誤;第三,硬件方面,剛開(kāi)始 有的程序模塊不能實(shí)現(xiàn)預(yù)期的效果,對(duì)于有的硬件,在實(shí)物制作過(guò)程中焊了比 較多的排線,同時(shí)對(duì)于整體各元器件的布局都有很高的要求。不過(guò)在向同學(xué)請(qǐng) 教,各方面都

34、有了不同程度的改善;第四,在做人方面,我認(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 的使用方法和鍵盤(pán)、顯示 器在的單片機(jī)控制系統(tǒng)中的應(yīng)用,同時(shí)也掌握了撰寫(xiě)課程設(shè)計(jì)報(bào)告的方法???之,通過(guò)這次課程設(shè)計(jì),我們都清楚明白了自己的能力有多深,想提高還得歸 于多鍛煉,多動(dòng)

35、手,多向別人學(xué)習(xí)。 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 - 23 - 參考文獻(xiàn)參考文獻(xiàn) 【1】余發(fā)山、王福忠. 單片機(jī)原理及應(yīng)用技術(shù). 中國(guó)礦業(yè)大學(xué)出版社.2008 年 6 月第 1 版 【2】楊凌霄. 微型計(jì)算機(jī)原理與應(yīng)用,中國(guó)礦業(yè)大學(xué)出版社.2008 年 8 月第一版 【3】康華光. 電子技術(shù)基礎(chǔ)(數(shù)字部分) ,高等教育出版社.第五版 【4】徐志軍,伊廷輝等. eda 技術(shù)與 pld 設(shè)計(jì) 人民郵電出版社, 2006 年 2 月第 1 版 【5】李朝青. 單片機(jī)原理及接口技術(shù)m. 北京:北京航天航空大學(xué)出版色,2001. 【6】胡漢才. 單片機(jī)原理及其接口技術(shù)m. 北京:清華大學(xué)出版社,2004

36、. 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 - 24 - 附 1 源程序代碼 #include #define keyport p1 #define uchar unsigned char #define uint unsigned int uchar high,low; /定時(shí)器預(yù)裝值的高定時(shí)器預(yù)裝值的高 8 8 位和低位和低 8 8 位位 sbit speak=p30; sbit gao=p35; sbit di=p36; sbit zdbf=p37; uchar yinjie=1; uchar time; uchar n=0; uchar bo=0; uchar code fre2= 0 x8c,

37、0 xf8, 0 x5b,0 xf9, 0 x15,0 xfa, 0 x67,0 xfa, 0 x90,0 xfb, 0 xae,0 xfb, 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 - 25 - 0 x0c,0 xfc, /低音低音 0 x44,0 xfc, 0 xac,0 xfc, 0 x09,0 xfd, 0 x34,0 xfd, 0 x82,0 xfd, 0 xc2,0 xfd, 0 x06,0 xfe, /中音中音 0 x22,0 xfe, 0 x56,0 xfe, 0 x85,0 xfe, 0 x9a,0 xfe, 0 xc1,0 xfe, 0 xe4,0 xfe, 0 x03,0 xff,

38、 /高音高音 ; void delay(uint ); void itimer0(void);/定時(shí)器初始化定時(shí)器初始化 void key(void); void dtxs(int,int); void song() 河南理工大學(xué)本科課程設(shè)計(jì)報(bào)告 - 26 - 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, 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. 本站所有資源如無(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)論