下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、設(shè)計(jì)摘要本設(shè)計(jì)主要研究基于 AT89C52 單片機(jī)的簡(jiǎn)易電子琴設(shè)計(jì)。它是以單片機(jī)作為主控核心,設(shè)置鍵盤、蜂鳴器等外圍器件;另外還用到一些簡(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ī)的選擇、時(shí)鐘系統(tǒng)設(shè) 計(jì)、復(fù)位電路設(shè)計(jì)、簡(jiǎn)單的 I/
2、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è)位選端分別接在 P2A0 和卩 2 八 1。(4)蜂鳴器模塊:此電子琴發(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)獲得我們要求的音階,
3、實(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.概述1.1 設(shè)計(jì)背景.1.2 設(shè)計(jì)意義.1.3 設(shè)計(jì)任務(wù).2. 系統(tǒng)總體方案及硬件設(shè)計(jì).2.1 總體設(shè)計(jì).2.2 單片機(jī)選型.2.3 單片機(jī)的最小工作系統(tǒng).62.3.1時(shí)鐘電路.2.3.2 復(fù)位電路.2.4 原理框圖.2.5 顯示部分設(shè)計(jì).2.5.1 數(shù)碼顯示方式.2.5.2 八位數(shù)碼管的結(jié)構(gòu).2.6 按鍵部分設(shè)計(jì).2.6.1 操作鍵設(shè)計(jì).2.6.2 鍵盤設(shè)計(jì).2.6.3 去抖
4、動(dòng).102.7 發(fā)音部分設(shè)計(jì).3. 系統(tǒng)軟件設(shè)計(jì).3.1 系統(tǒng)分析.3.1.1 系統(tǒng)軟件的組成.3.1.2 系統(tǒng)總體功能流程圖.3.2 參數(shù)計(jì)算.3.2.1 發(fā)音原理.3.2.2 計(jì)算舉例.3.2.3 計(jì)算結(jié)果.3.3 程序設(shè)計(jì).3.3.1 判斷音階(高中低音)子程序.3.3.2 播放子程序(包括自動(dòng)播放存儲(chǔ)音樂(lè)和按鍵發(fā)音).4. PROTEUS件仿真.4.1 硬件調(diào)試.4.2 軟件調(diào)試.4.3 仿真結(jié)果(任舉一例).錯(cuò)誤!未定義書簽。4.4 結(jié)果分析.5. 課程設(shè)計(jì)體會(huì).參考文獻(xiàn).附 1 源程序代碼.附 2 系統(tǒng)原理圖.1.概述1.1 設(shè)計(jì)背景隨著電子科學(xué)技術(shù)的飛速發(fā)展,電子技術(shù)正在逐漸改善
5、著人們的學(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”鍵演奏從低 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ù)碼管進(jìn)行顯示,使電子
6、琴的功能更加完美。不但可以實(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ā)聲部件,兩個(gè)數(shù)碼管作為顯示部件,設(shè)置10 個(gè)按鍵,實(shí)現(xiàn)高音、中音、低音的 1、2、3、4、5、6、7 的發(fā)音。并在存儲(chǔ)一首歌曲的內(nèi)容,可以實(shí)現(xiàn)自動(dòng) 播放。用 PROTEU 實(shí)現(xiàn)的電子琴仿真設(shè)計(jì)說(shuō)明:?jiǎn)纹瑱C(jī)的工作時(shí)鐘頻率為 11.0592MHz2. 系統(tǒng)總體方案及硬件設(shè)計(jì)2.1 總體設(shè)計(jì)實(shí)現(xiàn)本次設(shè)計(jì)的方案有多種
7、,下面比較說(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ǔ)言編程來(lái)實(shí)現(xiàn)系統(tǒng)整體基本原理
8、圖如下:圖 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)單器件如:兩位數(shù)碼管,和 NPN 型三極管及電阻等。利用按鍵實(shí)現(xiàn)音 符和音調(diào)的輸入;兩位的數(shù)碼管進(jìn)行被操作的按鍵顯示;用NPN 型三極管 8550 實(shí)現(xiàn)低音頻功率放大;最后用蜂鳴器發(fā)音。三種方案的比較:方案一采
9、用單個(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è)模塊,而不牽涉到具體的硬件電路。 方案三與前兩種方案相比,主控芯片采用 AT89S52 單片機(jī),它是
10、大規(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)用程序,構(gòu)成的應(yīng)用
11、系統(tǒng)稱為最小系統(tǒng)。2.3.1時(shí)鐘電路單片機(jī)內(nèi)部具有一個(gè)高增益反相放大器,用于構(gòu)成振蕩器。通常在引腳 XTALl 和 XTAL2 跨接石英晶體和兩個(gè)補(bǔ)償電容構(gòu)成自激振蕩器, 結(jié)構(gòu)圖 2中XI、 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
12、充電來(lái)實(shí)現(xiàn)。手動(dòng)按鍵復(fù)位是通過(guò)按鍵將電阻 R1 與 VCC 接通來(lái)實(shí)現(xiàn)。圖 3、復(fù)位電路2.4 原理框圖本系統(tǒng)有主控芯片 89S52、發(fā)音單元、顯示模塊、按鍵模塊組成。圖 4 、原理框圖2.5 顯示部分設(shè)計(jì)數(shù)碼顯示有靜態(tài)顯示方式與動(dòng)態(tài)顯示方式兩種。工作在靜態(tài)顯示方式時(shí),數(shù)碼管 的位線與電源一直相連,數(shù)碼管中的二極管均處于通電狀態(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ù)碼管不是同
13、時(shí)導(dǎo)通顯示而是按照設(shè)定順序分時(shí)導(dǎo)通顯示。本次課程設(shè)計(jì)的顯示電路采用兩位數(shù)碼管進(jìn)行顯示,由于此設(shè)計(jì)采用的是共陰極 的,使用時(shí)不加限流電阻。為了顯示字符,要為 LED 顯示器段碼,除了組成 8 字形的字符的 7 段,另加上 1 個(gè)小數(shù)點(diǎn)位,共計(jì) 8 段, 因此提供給 LED 顯示器的顯示段碼為 1 個(gè)字節(jié)。圖 5、數(shù)碼管電路2.6 按鍵部分設(shè)計(jì)2.6.1操作鍵設(shè)計(jì)常用的按鍵有三種: 機(jī)械觸點(diǎn)式按鍵、 導(dǎo)電橡膠式和柔性按鍵 (又稱觸摸式鍵盤) 。機(jī)械觸點(diǎn)式按鍵是利用機(jī)械彈性使鍵復(fù)位,手感明顯,連線清晰,工藝 簡(jiǎn)單,適合單件制造。但是觸點(diǎn)處易侵入灰塵而導(dǎo)致接觸不良,體積相對(duì)較大。導(dǎo)電橡膠按鍵是利用橡膠
14、的彈性來(lái)復(fù)位,通過(guò)壓制的方法把面板上所有的按鍵制成一塊,體積小,裝配方便,適合批量生產(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.6.2鍵盤設(shè)計(jì)鍵盤在單片機(jī)應(yīng)用系統(tǒng)中是一個(gè)關(guān)鍵的部件,它能實(shí)現(xiàn)向計(jì)算機(jī)輸入數(shù)據(jù),傳送 命令等功能,是人工干預(yù)計(jì)算機(jī)的主要手段。鍵盤可以分為 2 類:獨(dú)立連接式鍵盤和矩陣式鍵盤。矩陣式鍵盤單片機(jī)系統(tǒng)中,若按鍵較多時(shí)
15、,通常采用矩陣式(也稱行列式)鍵盤。矩陣式鍵 盤由行線和列線組成,按鍵位于行、列線的交叉點(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)鍵。獨(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è)按
16、鍵必須占用一根 I/O 口線,然而,在按鍵較多時(shí), I/O 口線浪費(fèi)較大,不宜采用。獨(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.6.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)確,在
17、電壓信號(hào)抖動(dòng)的情況下不能進(jìn)行行狀態(tài)輸入。為此需進(jìn)行去 抖動(dòng)處理。去抖動(dòng)有硬件和軟件兩種方法。硬件方法就是加去抖動(dòng)電路,從根本上避 免抖動(dòng)的產(chǎn)生。軟件消抖,在第一次檢測(cè)到有鍵按下時(shí),執(zhí)行一段延時(shí)程序之后,再 檢測(cè)此按鍵,如果第二次檢測(cè)結(jié)果仍為按下狀態(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ú)立式鍵盤電路圖3. 系統(tǒng)軟件設(shè)計(jì)3.1 系統(tǒng)分析(1) 鍵盤掃描程序:檢測(cè)是否有按鍵按下,有按鍵按下則記錄按下鍵的鍵值,并跳轉(zhuǎn)至功能轉(zhuǎn)移程序;無(wú)按鍵按下
18、,則返回鍵盤掃描程序繼續(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)返回至鍵盤掃描 程序,繼續(xù)等待是否有按鍵按下。3.1.2 系統(tǒng)總體功能流程圖圖 8、系統(tǒng)總體功能流程圖3.2 參數(shù)計(jì)算3.2.1 發(fā)音原理若要產(chǎn)生音頻脈沖,只要算出某
19、一音頻的周期(1/頻率),再將此周期除以 2,即 為半周期的時(shí)間。利用定時(shí)器計(jì)時(shí)半周期時(shí)間,每當(dāng)計(jì)時(shí)終止后就將P1.0 反相,然后重復(fù)計(jì)時(shí)再反相。就可在 P1.0 引腳上得到此頻率的脈沖。利用 AT89C51 的內(nèi)部定時(shí)器 使其工作計(jì)數(shù)器模式(M0DE1 下,改變計(jì)數(shù)值 TH0 及 TL0 以產(chǎn)生不同頻率的方法產(chǎn)生 不同音階。3.2.2 計(jì)算舉例例如,頻率為 523Hz,其周期 T = 1/523 = 1912 卩 s,因此只要令計(jì)數(shù)器計(jì)時(shí) 956 卩 s/1 卩s = 956,每計(jì)數(shù) 956 次時(shí)將 I/O 反相,就可得到中音 D0(523Hz)。計(jì)數(shù)脈 沖值與頻率的關(guān)系式是:N= fi -
20、 2-fr,式中,N 是計(jì)數(shù)值;fi 是機(jī)器頻率(晶體振 蕩器為 12MHZ 寸,其頻率為 1MHZ;fr 是想要產(chǎn)生的頻率。其計(jì)數(shù)初值 T 的求法如下: T=65536- N=65536-fi-2-fr例如:設(shè) K= 65536,fi = 1MHz 求中音 DQ261Hz)T= 65536- N= 65536-fi -2-fr =65536-1000000 十 2-fr = 65536- 500000/fr,中音 DO 的 T= 65536- 500000/523 = 64580。3.2.3 計(jì)算結(jié)果(1)單片機(jī) 12MHZ 晶振,中音符與計(jì)數(shù) T0 相關(guān)的計(jì)數(shù)值如表所示:音符頻率(HZ)計(jì)
21、數(shù)值(T音符頻率(HZ計(jì)數(shù)值(T值)值)低 1DO26263628#4FA#74064860#1DO#27763737中 5SO78464898低 2RE29463835#5S0#83194934#2RE#31163928中 6LA88064968低 3MI33064021#6LA#93264994低 4FA34964103中 7SI96865030#4FA#37064185低 1D0104665058低 SO39264260#1D0#110965085#5SO#41564331高 2RE117565110低 6LA44064400#2RE#124565134#6LA#46664463高 3M
22、I131865157低 7SI49464524高 4FA139765178中 1DO52364580#4FA#149065198#1D0#55464633高 5S0156865217中 2RE58764633#5S0#166165235#2RE#62264884高 6LA176065252中 3MI65964732#6LA#186565268中 4FA69864820高 7SI196765283采用查表程序進(jìn)行查表時(shí),可以為這個(gè)音符建立一個(gè)表格,有助于單片機(jī)通過(guò)查表的方式來(lái)獲得相應(yīng)的數(shù)據(jù):低音 0 19 之間,中音在 20-39 之間,高音在 40 59 之間 用單片機(jī)播放音樂(lè), 或者彈奏電子
23、琴, 實(shí)際上是按照特定的頻率, 輸出一連串的方波。為了輸出合適的方波,首先應(yīng)該知道音符與頻率的關(guān)系。(2)音調(diào)數(shù)據(jù)表調(diào) 4/4125ms調(diào) 4/462ms曲調(diào)值DELAY曲調(diào)值DELAY調(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 7DW 64580,64671,64777,64820,
24、64898,64968,65030 65058 中音區(qū):1 2 3 4 5 6 7DW 65058,65110,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ú)
25、按 鍵按下,則為中音模式。若音階鍵被按下,則如下流程圖所示,初始化后進(jìn)行按鍵掃 描,在高音鍵按下,若初始 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)中、低音的切換。圖 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ù)
26、樂(lè)譜在定義的音 頻數(shù)組中查找相應(yīng)音律,然后給定時(shí)器賦初值,即開始播放音樂(lè)。當(dāng) DO、RE、MI、FA、 SO、LA、 SI 七種音符鍵按下時(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ú)異常情況 (斷路或短路 )的情況下
27、方可上電調(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、鍵盤單片機(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è)子程
28、序模塊進(jìn)行分別調(diào)試。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 口連接數(shù)碼管段選端,右側(cè)數(shù)碼管顯示的 1 即代表 DO 兩位數(shù)碼管即代表低音 DO
29、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)教,各方面都有了不同程度的改善;第四, 在做人方面,我認(rèn)識(shí)到,無(wú)論做什么事情,只要你足夠堅(jiān)強(qiáng),有足夠的毅力和決心, 有足夠的挑戰(zhàn)困難的勇氣,就沒(méi)有什么辦不到的。這次課
30、程設(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)【1】余發(fā)山、王福忠 . 單片機(jī)原理及應(yīng)用技術(shù) . 中國(guó)礦業(yè)大學(xué)出版社 .2008 年 6 月第 1 版【2】楊凌霄 . 微型計(jì)算機(jī)
31、原理與應(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.附 1 源程序代碼#include#define keyport P1#define uchar unsigned char#define uint unsigned intuchar high,
32、low;/ 定時(shí)器預(yù)裝值的高 8 位和低 8 位sbit speak=P3A0;sbit gao=P3A5;sbit di=P3A6;sbit zdbf=P3A7;uchar yinjie=1;uchar time;uchar n=0;uchar bo=0;uchar code fre2= 0 x8c,0 xf8,0 x5b,0 xf9,0 x15,0 xfa,0 x67,0 xfa,0 x90,0 xfb, 0 xae,0 xfb,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 x
33、fd,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,;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, 6,2,2, 1,3,2, 5,2,4, 5,2,2,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,-Numbere
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《計(jì)算機(jī)繪圖原理》課件
- 《供應(yīng)鏈管理緒論》課件
- 《側(cè)抽芯模具設(shè)計(jì)》課件
- 《認(rèn)識(shí)辦公室的綠色》課件
- 《支票的填寫與使用》課件
- 《銷售人員回款培訓(xùn)》課件
- 《保安職業(yè)發(fā)展介紹》課件
- 《機(jī)械設(shè)計(jì)基礎(chǔ) 》課件-項(xiàng)目三 常用連接
- 《供應(yīng)鏈管理SCM》課件
- 2024-2025學(xué)年年八年級(jí)數(shù)學(xué)人教版下冊(cè)專題整合復(fù)習(xí)卷14.3.3 一次函數(shù)與二元一次方程(含答案)
- 《西游記知識(shí)競(jìng)賽》題庫(kù)及答案(單選題100道、多選題100道)
- 2024年行政執(zhí)法人員執(zhí)法資格考試必考題庫(kù)及答案(共190題)
- QC-提高地鐵車站直螺紋鋼筋機(jī)械連接一次性合格率
- 《2025酒店預(yù)算的進(jìn)與退》
- 《中國(guó)政治思想史》課程教學(xué)大綱
- 施工項(xiàng)目經(jīng)理述職報(bào)告
- 2025年中國(guó)野生動(dòng)物園行業(yè)市場(chǎng)現(xiàn)狀、發(fā)展概況、未來(lái)前景分析報(bào)告
- DZT0203-2020礦產(chǎn)地質(zhì)勘查規(guī)范稀有金屬類
- 廣東省廣州市2023-2024學(xué)年七年級(jí)上學(xué)期語(yǔ)文期末試卷(含答案)
- 立式儲(chǔ)罐課課程設(shè)計(jì)
- 吉林省長(zhǎng)春市南關(guān)區(qū)2024-2025學(xué)年八年級(jí)上學(xué)期10月期中考試語(yǔ)文試題(含答案)
評(píng)論
0/150
提交評(píng)論