




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、河南理工大學(xué)本科課程設(shè)計報告- 1 -設(shè)計摘要設(shè)計摘要本設(shè)計主要研究基于 AT89C52 單片機的簡易電子琴設(shè)計。它是以單片機作為主控核心,設(shè)置鍵盤、蜂鳴器等外圍器件;另外還用到一些簡單器件如:兩位數(shù)碼管,和 NPN 型三極管及電阻等。利用按鍵實現(xiàn)音符和音調(diào)的輸入;兩位的數(shù)碼管進行被操作的按鍵顯示;用 NPN 型三極管 8550 實現(xiàn)低音頻功率放大;最后用蜂鳴器進行播放“送別” 。本設(shè)計硬件部分主要由最小系統(tǒng),按鍵系統(tǒng)模塊、數(shù)碼管顯示模塊和蜂鳴器模塊組成。其軟件部分主要有主程序模塊、定時中斷程序、定時計數(shù)程序、顯示程序。(1)最小系統(tǒng):它是單片機應(yīng)用系統(tǒng)的設(shè)計基礎(chǔ)。它包括單片機的選擇、時鐘系統(tǒng)
2、設(shè)計、復(fù)位電路設(shè)計、簡單的 I/O 口擴展、掉電保護等。(2)按鍵系統(tǒng)模塊:本設(shè)計采用 10 個按鍵,其中 7 個按鍵用來顯示 7 個音調(diào),其它 3 個按鍵可以進行高低中音的切換,并自動播放已存歌曲。(3)數(shù)碼管顯示模塊:SM420562 段選端接在單片機的 P0 口,兩個位選端分別接在 P20 和 P21。(4)蜂鳴器模塊:此電子琴發(fā)音電路是通過三極管驅(qū)動蜂鳴器發(fā)音,經(jīng)過上拉電阻提高驅(qū)動能力。本次設(shè)計首先對單片機設(shè)計簡易電子琴仔細(xì)分析,接著制作硬件電路和編寫軟件的程序,最后進行軟硬件的調(diào)試運行。并且從原理圖,主要芯片,各模塊的原理和各個模塊的程序調(diào)試來闡述。利用單片機產(chǎn)生不同頻率來獲得我們要
3、求的音階,實現(xiàn)高、中、低共 21 個音符的發(fā)音和顯示和音樂播放時的控制顯示,并且能自動播放程序中編排的音樂。系統(tǒng)運行穩(wěn)定,其優(yōu)點是硬件電路簡單,軟件功能完善,控制系統(tǒng)可靠,性價比高等,具有一定的使用和參考價值。河南理工大學(xué)本科課程設(shè)計報告- 2 -河南理工大學(xué)本科課程設(shè)計報告- 3 -目錄目錄1.1.概述概述.41.1 設(shè)計背景 .41.2 設(shè)計意義 .41.3 設(shè)計任務(wù) .42.2.系統(tǒng)總體方案及硬件設(shè)計系統(tǒng)總體方案及硬件設(shè)計.52.1 總體設(shè)計.52.2 單片機選型 .62.3 單片機的最小工作系統(tǒng) .62.3.1 時鐘電路.62.3.2 復(fù)位電路.72.4 原理框圖.72.5 顯示部分設(shè)
4、計.82.5.1 數(shù)碼顯示方式.82.5.2 八位數(shù)碼管的結(jié)構(gòu).82.6 按鍵部分設(shè)計.92.6.1 操作鍵設(shè)計.92.6.2 鍵盤設(shè)計.92.6.3 去抖動.102.7 發(fā)音部分設(shè)計.113.3.系統(tǒng)軟件設(shè)計系統(tǒng)軟件設(shè)計.123.1 系統(tǒng)分析.123.1.1 系統(tǒng)軟件的組成.123.1.2 系統(tǒng)總體功能流程圖 .133.2 參數(shù)計算.143.2.1 發(fā)音原理.143.2.2 計算舉例 .143.2.3 計算結(jié)果 .143.3 程序設(shè)計.163.3.1 判斷音階(高中低音)子程序 .163.3.2 播放子程序(包括自動播放存儲音樂和按鍵發(fā)音) .174.4. PROTEUSPROTEUS 軟件
5、仿真軟件仿真.194.1 硬件調(diào)試.194.2 軟件調(diào)試 .194.3 仿真結(jié)果(任舉一例) .204.4 結(jié)果分析 .205.5. 課程設(shè)計體會課程設(shè)計體會.21河南理工大學(xué)本科課程設(shè)計報告- 4 -參考文獻.22附 1 源程序代碼 .23附 2 系統(tǒng)原理圖 .32河南理工大學(xué)本科課程設(shè)計報告- 5 -1.概述概述1.1 設(shè)計背景隨著電子科學(xué)技術(shù)的飛速發(fā)展,電子技術(shù)正在逐漸改善著人們的學(xué)習(xí)、生活、工作,因此開發(fā)本系統(tǒng)希望能夠給人們帶來更多的生活樂趣?;诋?dāng)前市場上的玩具需求量增大,其中電子琴就是一個很好的應(yīng)用方面。單片機技術(shù)使我們可以利用軟硬件來實現(xiàn)電子琴的功能,從而可以實現(xiàn)電子琴的微型化,
6、可以用作玩具琴、音樂轉(zhuǎn)盤以及音樂童車等等。并且可以進行一定的功能擴展。鑒于傳統(tǒng)電子琴可以用鍵盤上的“1”到“A”鍵演奏從低 So 到高DO 等 11 個音,從而也可以通過單片機實現(xiàn)對十個按鍵的擴展,實現(xiàn)七個音符鍵的高、中、低 21 個音調(diào)的顯示播放和任意音樂的自動播放。該設(shè)計將十個音鍵制作成獨立鍵盤,其中七個為音符鍵,三個為控制鍵,并用數(shù)碼管進行顯示,使電子琴的功能更加完美。不但可以實現(xiàn)對按鍵的顯示,而且可以實現(xiàn)對音樂的自動存儲和播放,使該設(shè)計功能更加完善。1.2 設(shè)計意義該設(shè)計具有以下優(yōu)點:可以方便得知播放的音符和音調(diào);比傳統(tǒng)電子琴功能更完善;制作簡單,成本低;1.3 設(shè)計任務(wù) 實現(xiàn)電子琴發(fā)
7、聲控制系統(tǒng);要求電路實現(xiàn)如下功能:利用蜂鳴器作為發(fā)聲部件,兩個數(shù)碼管作為顯示部件,設(shè)置 10 個按鍵,實現(xiàn)高音、中音、低音的 1、2、3、4、5、6、7 的發(fā)音。并在存儲一首歌曲的內(nèi)容,可以實現(xiàn)自動播放。 用 PROTEUS 實現(xiàn)的電子琴仿真設(shè)計說明:單片機的工作時鐘頻率為 11.0592MHz。河南理工大學(xué)本科課程設(shè)計報告- 6 -2.系統(tǒng)總體方案及硬件設(shè)計系統(tǒng)總體方案及硬件設(shè)計2.1 總體設(shè)計實現(xiàn)本次設(shè)計的方案有多種,下面比較說明一下最佳方案的選擇。方案一:采用單個的邏輯器件組合音樂是有由不同的音階組成的,而不同的音階又是由不同的頻率發(fā)出的,那么利用不同的頻率,就可以發(fā)出不同的音樂了。我們
8、知道計數(shù)器 8253 可以產(chǎn)生任意頻率的方波頻率信號,因此,我們只要把一首歌曲的音階對應(yīng)頻率與計數(shù)器的頻率對應(yīng)起來就可通過計數(shù)器產(chǎn)生音樂了。根據(jù)本實驗要求,采用 8279 將鍵掃得到的鍵值通過查表得到相應(yīng)的 8253的頻率值,將從 8253 得到相對應(yīng)的按鍵彈奏信號經(jīng)過 LM386 進行放大,再用喇叭輸出,就實現(xiàn)了簡易電子琴的基本功能,也就完成了實驗的要求。方案二:用 VHDL 語言編程來實現(xiàn)系統(tǒng)整體基本原理圖如下:圖 1、系統(tǒng)整體基本原理圖利用我們實驗室先進的數(shù)字電路實驗設(shè)備,我們可以采用 VHDL 語言編程來實現(xiàn)。我們可以通過 VDHL 語言,對實驗原理圖的各個部分進行設(shè)計,通過編譯,可以
9、在計算機上下載此實驗原理圖,利用電路學(xué)習(xí)機上的芯片。我們很快就可以設(shè)計出一個簡單的電子琴。并實現(xiàn)其功能。方案三:采用 AT89S52 單片機作為主控芯片,設(shè)置鍵盤、蜂鳴器等外圍器件,另外還用到一些簡單器件如:兩位數(shù)碼管,和 NPN 型三極管及電阻等。利用按鍵實現(xiàn)音符和音調(diào)的輸入;兩位的數(shù)碼管進行被操作的按鍵顯示;用 NPN河南理工大學(xué)本科課程設(shè)計報告- 7 -型三極管 8550 實現(xiàn)低音頻功率放大;最后用蜂鳴器發(fā)音。三種方案的比較:方案一采用單個的邏輯器件組合實現(xiàn)。這樣雖然比較直觀,邏輯器件分工鮮明,思路也比清晰,一目了然,但是由于元器件種類、個數(shù)繁多,而過于復(fù)雜的硬件電路也容易引起系統(tǒng)的精度
10、不高、體積過大等不利因素。例如七個不同的音符是由七個不同的頻率來控制發(fā)出的,所用儀器之多顯而易見。方案二采用 VHDL 語言編程來實現(xiàn)電子琴的各項功能。系統(tǒng)主要由電子琴發(fā)聲模塊、選擇控制模塊和儲存器模塊組成。和方案一相比較,方案二就顯得比較籠統(tǒng),雖然我們可以看到用超高速硬件描述語言 VHDL 的優(yōu)勢,但本質(zhì)上它只是把整個系統(tǒng)分為了若干個模塊,而不牽涉到具體的硬件電路。方案三與前兩種方案相比,主控芯片采用 AT89S52 單片機,它是大規(guī)模集成電路技術(shù)發(fā)展的產(chǎn)物,具有高性能、高速度、體積小、價格低廉、穩(wěn)定可靠、應(yīng)用廣泛的特點。同時具有強大的控制功能和靈活的編程實現(xiàn)特性,由于本設(shè)計主要用于人們娛樂
11、方面,因此在設(shè)計上盡量使其安全以及簡單易操作。而第三種方案具有經(jīng)濟可行性、技術(shù)可行性、實物應(yīng)用性。綜上所述,本次課程設(shè)計采用第三種方案。2.2 單片機選型硬件電路要以單片機作為主控芯片,實現(xiàn)按鍵輸入音符和音調(diào),兩位數(shù)碼管的顯示以及低音頻功率放大和蜂鳴器發(fā)音。針對本設(shè)計的功能和用途,采用AT89S51 單片機更好,實現(xiàn)功能完全,性價比較高,更適合本設(shè)計。2.3 單片機的最小工作系統(tǒng)單片機加上適當(dāng)?shù)耐鈬骷蛻?yīng)用程序,構(gòu)成的應(yīng)用系統(tǒng)稱為最小系統(tǒng)。2.3.1 時鐘電路 單片機內(nèi)部具有一個高增益反相放大器,用于構(gòu)成振蕩器。通常在引腳XTALl 和 XTAL2 跨接石英晶體和兩個補償電容構(gòu)成自激振蕩器,
12、結(jié)構(gòu)圖 2 中X1、C1、C2。可以根據(jù)情況選擇 6MHz、12MHz 或 24MHz 等頻率的石英晶體,補償電容通常選擇 30pF 左右的瓷片電容。河南理工大學(xué)本科課程設(shè)計報告- 8 -圖 2、時鐘電路2.3.2 復(fù)位電路 單片機小系統(tǒng)常采用上電自動復(fù)位和手動按鍵復(fù)位兩種方式實現(xiàn)系統(tǒng)的復(fù)位操作。上電復(fù)位要求接通電源后,自動實現(xiàn)復(fù)位操作。手動復(fù)位要求在電源接通的條件下,在單片機運行期間,用按鈕開關(guān)操作使單片機復(fù)位。其結(jié)構(gòu)如下圖。上電自動復(fù)位通過電容 C3 充電來實現(xiàn)。手動按鍵復(fù)位是通過按鍵將電阻R1 與 VCC 接通來實現(xiàn)。圖 3、復(fù)位電路2.4 原理框圖本系統(tǒng)有主控芯片 89S52、發(fā)音單元
13、、顯示模塊、按鍵模塊組成。河南理工大學(xué)本科課程設(shè)計報告- 9 -89S52單片機按鍵模塊發(fā)音單元顯示模塊圖 4、原理框圖2.5 顯示部分設(shè)計2.5.1 數(shù)碼顯示方式數(shù)碼顯示有靜態(tài)顯示方式與動態(tài)顯示方式兩種。工作在靜態(tài)顯示方式時,數(shù)碼管的位線與電源一直相連,數(shù)碼管中的二極管均處于通電狀態(tài),即在靜態(tài)工作方式下,顯示電路中數(shù)碼管的位選線是同時選通,而數(shù)碼管的段選線是獨立輸入。工作在動態(tài)顯示方式時,數(shù)碼管的位線在掃描控制電路的控制下按設(shè)定順序?qū)?,即電路中的?shù)碼管是逐個接通電源,數(shù)碼管的段選線以并聯(lián)方式與譯碼電路聯(lián)接,即在動態(tài)工作方式下,數(shù)碼管不是同時導(dǎo)通顯示而是按照設(shè)定順序分時導(dǎo)通顯示。2.5.2
14、八位數(shù)碼管的結(jié)構(gòu)本次課程設(shè)計的顯示電路采用兩位數(shù)碼管進行顯示,由于此設(shè)計采用的是共陰極的,使用時不加限流電阻。為了顯示字符,要為 LED 顯示器段碼,除了組成 8 字形的字符的 7 段,另加上 1 個小數(shù)點位,共計 8 段, 因此提供給 LED 顯示器的顯示段碼為 1 個字節(jié)。河南理工大學(xué)本科課程設(shè)計報告- 10 - 圖 5、數(shù)碼管電路2.6 按鍵部分設(shè)計2.6.1 操作鍵設(shè)計常用的按鍵有三種:機械觸點式按鍵、導(dǎo)電橡膠式和柔性按鍵(又稱觸摸式鍵盤) 。 機械觸點式按鍵是利用機械彈性使鍵復(fù)位,手感明顯,連線清晰,工藝簡單,適合單件制造。但是觸點處易侵入灰塵而導(dǎo)致接觸不良,體積相對較大。 導(dǎo)電橡膠
15、按鍵是利用橡膠的彈性來復(fù)位,通過壓制的方法把面板上所有的按鍵制成一塊,體積小,裝配方便,適合批量生產(chǎn)。但是時間長了,橡膠老化而使彈力下降,同時易侵入灰塵。 柔性按鍵是近年來迅速發(fā)展的一種新型按鍵,可以分為凸球型和平面型兩種。柔性按鍵最大特點是防塵、防潮、耐蝕,外形美觀,裝嵌方便。而且外形和面板的布局、色彩、鍵距可按照整機的要求來設(shè)計。但是由于客觀條件與經(jīng)濟能力有限,本系統(tǒng)采用機械觸點式按鍵。2.6.2 鍵盤設(shè)計鍵盤在單片機應(yīng)用系統(tǒng)中是一個關(guān)鍵的部件,它能實現(xiàn)向計算機輸入數(shù)據(jù),河南理工大學(xué)本科課程設(shè)計報告- 11 -傳送命令等功能,是人工干預(yù)計算機的主要手段。鍵盤可以分為 2 類:獨立連接式鍵盤
16、和矩陣式鍵盤。(1)矩陣式鍵盤單片機系統(tǒng)中,若按鍵較多時,通常采用矩陣式(也稱行列式)鍵盤。矩陣式鍵盤由行線和列線組成,按鍵位于行、列線的交叉點上。顯然,在按鍵數(shù)量較多時,矩陣式鍵盤較之獨立式按鍵鍵盤要節(jié)省很多 I/O 口。矩陣式鍵盤中,行、列線分別連接到按鍵開關(guān)的兩端,行線通過上拉電阻接到+5V 上當(dāng)無鍵按下時,行線處于高電平狀態(tài);當(dāng)有鍵按下時,行、列線將導(dǎo)通,此時,行線電平將由與此行線相連的列線電平?jīng)Q定。這是識別按鍵是否按下的關(guān)鍵。(2)獨立連接式鍵盤獨立式按鍵是直接用 I/O 口線構(gòu)成的單個按鍵電路,其特點是每個按鍵單獨占用一根 I/O 口線,每個按鍵的工作不會影響其它 I/O 口線的狀
17、態(tài)。獨立式按鍵電路配置靈活,軟件結(jié)構(gòu)簡單,但每個按鍵必須占用一根 I/O 口線,然而,在按鍵較多時,I/O 口線浪費較大,不宜采用。獨立式按鍵軟件常采用查詢式結(jié)構(gòu)。先逐位查詢每根 I/O 口線的輸入狀態(tài),如某一根 I/O 口線輸入為低電平,則可確認(rèn)該 I/O 口線所對應(yīng)的按鍵已按下,然后,再轉(zhuǎn)向該鍵的功能處理程序。由于本程序較為簡單,為了使用方便及節(jié)省資源,選擇獨立式鍵盤。下圖為獨立式鍵盤電路圖: 圖 6、獨立式鍵盤電路圖河南理工大學(xué)本科課程設(shè)計報告- 12 -2.6.3 去抖動鍵盤編程中主要考慮去抖動的問題。當(dāng)測試表明有鍵被按下之后,緊接著就進行去抖動處理。因為鍵是機械開關(guān)結(jié)構(gòu),由于機械觸點
18、的彈性及電壓突跳等原因,在觸點閉合或斷開的瞬間會出現(xiàn)電壓抖動。為保證鍵識別的準(zhǔn)確,在電壓信號抖動的情況下不能進行行狀態(tài)輸入。為此需進行去抖動處理。去抖動有硬件和軟件兩種方法。硬件方法就是加去抖動電路,從根本上避免抖動的產(chǎn)生。軟件消抖,在第一次檢測到有鍵按下時,執(zhí)行一段延時程序之后,再檢測此按鍵,如果第二次檢測結(jié)果仍為按下狀態(tài),CPU 便確認(rèn)此按鍵己按下,消除了抖動。2.7 發(fā)音部分設(shè)計如下圖所示,發(fā)音電路是由蜂鳴器、三極管、上拉電阻構(gòu)成。由三極管來驅(qū)動揚聲器發(fā)音的,同時加上拉電阻增強驅(qū)動電流,提高驅(qū)動能力。圖 7、獨立式鍵盤電路圖河南理工大學(xué)本科課程設(shè)計報告- 13 -3.系統(tǒng)軟件設(shè)計系統(tǒng)軟件
19、設(shè)計3.1 系統(tǒng)分析3.1.1 系統(tǒng)軟件的組成 (1)鍵盤掃描程序:檢測是否有按鍵按下,有按鍵按下則記錄按下鍵的鍵值,并跳轉(zhuǎn)至功能轉(zhuǎn)移程序;無按鍵按下,則返回鍵盤掃描程序繼續(xù)檢測。 (2)功能轉(zhuǎn)移程序:對檢測到的按鍵值進行判斷,是琴鍵則跳轉(zhuǎn)至琴鍵處理程序,是功能鍵則跳轉(zhuǎn)至相應(yīng)的功能程序,我們設(shè)計的功能程序有兩種,即音色調(diào)節(jié)功能和自動播放樂曲的功能。 (3)琴鍵處理程序:根據(jù)檢測到的按鍵值,查詢音調(diào)表,給計時器賦值,使發(fā)出相應(yīng)頻率的聲音。 (4)自動播放歌曲程序:檢測到按鍵按下的是自動播放歌曲功能鍵后執(zhí)行該程序,電子琴會自動播放事先已經(jīng)存放的歌曲,歌曲播放完畢之后自動返回至鍵盤掃描程序,繼續(xù)等待
20、是否有按鍵按下。河南理工大學(xué)本科課程設(shè)計報告- 14 -3.1.2 系統(tǒng)總體功能流程圖開始初始化T0自動播放鍵按下鍵盤掃描程序bo+音階鍵按下得到高中低三種方式判斷P0口輸入,設(shè)定鍵值鍵值不為0根據(jù)7個鍵值和工作方式確定T0值啟動T0選擇數(shù)碼管1顯示工作方式選擇數(shù)碼管2顯示7個音調(diào),發(fā)出對應(yīng)聲音關(guān)閉聲音播放內(nèi)部存儲音樂Bo/2=0NYYNYN河南理工大學(xué)本科課程設(shè)計報告- 15 -圖 8、系統(tǒng)總體功能流程圖3.2 參數(shù)計算3.2.1 發(fā)音原理若要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率) ,再將此周期除以2,即為半周期的時間。利用定時器計時半周期時間,每當(dāng)計時終止后就將P1.0 反相,然
21、后重復(fù)計時再反相。就可在 P1.0 引腳上得到此頻率的脈沖。利用 AT89C51 的內(nèi)部定時器使其工作計數(shù)器模式(MODE1)下,改變計數(shù)值 TH0及 TL0 以產(chǎn)生不同頻率的方法產(chǎn)生不同音階。3.2.2 計算舉例例如,頻率為 523Hz,其周期 T1/5231912s,因此只要令計數(shù)器計時956s/1s956,每計數(shù) 956 次時將 I/O 反相,就可得到中音 DO(523Hz) 。計數(shù)脈沖值與頻率的關(guān)系式是:Nfi2fr,式中,N 是計數(shù)值;fi 是機器頻率(晶體振蕩器為 12MHz 時,其頻率為 1MHz) ;fr 是想要產(chǎn)生的頻率。其計數(shù)初值 T 的求法如下:T65536N65536f
22、i2fr例如:設(shè) K65536,fi1MHz,求中音 DO(261Hz) 。T65536N65536fi2fr6553610000002fr65536500000/fr,中音 DO 的 T65536500000/52364580。3.2.3 計算結(jié)果(1)單片機 12MHZ 晶振,中音符與計數(shù) T0 相關(guān)的計數(shù)值如表所示:音符頻率(HZ)計數(shù)值(T 值) 音符頻率(HZ)計數(shù)值(T值)低 1DO26263628#4FA#74064860#1DO#27763737中 5SO78464898低 2RE29463835#5SO#83194934#2RE#31163928中 6LA88064968低
23、3MI33064021#6LA#93264994低 4FA34964103中 7SI96865030#4FA#37064185低 1DO104665058低 SO39264260#1DO#110965085河南理工大學(xué)本科課程設(shè)計報告- 16 -#5SO#41564331高 2RE117565110低 6LA44064400#2RE#124565134#6LA#46664463高 3MI131865157低 7SI49464524高 4FA139765178中 1DO52364580#4FA#149065198#1DO#55464633高 5SO156865217中 2RE58764633#5
24、SO#166165235#2RE#62264884高 6LA176065252中 3MI65964732#6LA#186565268中 4FA69864820高 7SI196765283采用查表程序進行查表時,可以為這個音符建立一個表格,有助于單片機通過查表的方式來獲得相應(yīng)的數(shù)據(jù):低音 019 之間,中音在 2039 之間,高音在4059 之間。用單片機播放音樂,或者彈奏電子琴,實際上是按照特定的頻率,輸出一連串的方波。為了輸出合適的方波,首先應(yīng)該知道音符與頻率的關(guān)系。(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)
25、 2/4250ms調(diào) 2/4125ms上表中的頻率數(shù)值,有些過多,去掉不常用的黑鍵頻率,只是把白鍵對應(yīng)的數(shù)據(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,65283 65312 高音區(qū):1 2 3 4 5 6 7把這個數(shù)
26、據(jù)表,放在程序中,需要播音的時候,就從表中取出一個數(shù)據(jù)送到定時器,當(dāng)定時器溢出中斷的時候,再對輸出引腳取反,那么,在揚聲器中,河南理工大學(xué)本科課程設(shè)計報告- 17 -即可聽到上表中頻率的聲音。3.3 程序設(shè)計3.3.1 判斷音階(高中低音)子程序 在軟件設(shè)計中采用 yinjie 代表音階,如下圖所示音階Yinjie 值高2中1低0初始化狀態(tài)為中音(yinjie=1) ,電路中設(shè)計高、低兩個音階鍵。上電后,若無按鍵按下,則為中音模式。若音階鍵被按下,則如下流程圖所示,初始化后進行按鍵掃描,在高音鍵按下,若初始 yinjie 不為 2,則另 yinjie=2,進入高音工作模式,若初始 yinjie
27、 為 2,則對 yinjie 進行初始化,即另 yinjie=1,重新進入進入中音工作模式,這樣即實現(xiàn)了高音鍵切換高、中音方式的轉(zhuǎn)換。同理,用低音鍵實現(xiàn)中、低音的切換。河南理工大學(xué)本科課程設(shè)計報告- 18 -初始化設(shè)定yinjie=1,即方式為中音高音選擇按下yinjie=2開始設(shè)定yinjie=2判斷工作方式y(tǒng)injie=0判斷yinjie值判斷yinjie值設(shè)定yinjie=0低音選擇按下NYNYN圖 9、判斷音階(高中低音)子程序3.3.2 播放子程序(包括自動播放存儲音樂和按鍵發(fā)音)本設(shè)計共兩種播放模式,包括自動播放存儲音樂和按鍵發(fā)音。上電后,首先開中斷并設(shè)定定時器 0 為工作方式 1
28、,當(dāng)自動播放鍵按下時,進入中斷,根據(jù)河南理工大學(xué)本科課程設(shè)計報告- 19 -樂譜在定義的音頻數(shù)組中查找相應(yīng)音律,然后給定時器賦初值,即開始播放音樂。當(dāng) DO、RE、MI、FA、SO、LA、SI 七種音符鍵按下時,根據(jù)音階值(如 3.3.1中高中低對應(yīng))和音符值在定義的音頻數(shù)組中查找相應(yīng)音律,然后給定時器賦初值,即按鍵發(fā)音。開始開中斷并設(shè)定工作方式寄存器進入中斷根據(jù)樂譜在數(shù)組中查找相應(yīng)音律給定時器T0賦值自動播放鍵按下根據(jù)yinjie和工作方式取值,并在數(shù)組中查找相應(yīng)音律有鍵按下播放音樂給定時器T0賦值播放鍵值對應(yīng)的音符NY進入中斷圖 10、播放子程序河南理工大學(xué)本科課程設(shè)計報告- 20 -4.
29、 Proteus 軟件仿真軟件仿真4.1 硬件調(diào)試硬件調(diào)試主要是針對單片機部分進行的調(diào)試。在上電之前,先確保電路中不存在斷路或短路情況,這一工作是整個調(diào)試工作的第一步,也是非常重要的一個步驟。在這部分調(diào)試中主要使用的工具是萬用表,用來完成檢測電路中是否存在斷路或者短路情況的任務(wù)。注意焊點之間,確保焊點沒有短接在一起,同時注意焊點的美觀,確保沒有開路以及短路的現(xiàn)象出現(xiàn)。在確保硬件電路正常且無異常情況(斷路或短路)的情況下方可上電調(diào)試,上電調(diào)試的目的是檢驗電路是否接錯,同時還要檢驗原理是否正確,在本次設(shè)計中,上電調(diào)試主要是檢測單片機控制部分、數(shù)碼管點亮部分、和音頻轉(zhuǎn)換電路硬件調(diào)試。1、數(shù)碼管 LE
30、D 電路調(diào)試:接通電源,隨機按下按鈕可以看到數(shù)碼管顯示數(shù)字。2、鍵盤單片機控制部分調(diào)試:上電后,隨機按動鍵盤可以發(fā)現(xiàn)各個按鍵對應(yīng)的音正確。4.2 軟件調(diào)試調(diào)試主要方法和技巧:通常一個調(diào)試程序應(yīng)該具備至少四種性能:跟蹤、斷點、查看變量、更改數(shù)值。整個程序是一個主程序調(diào)用各個子程序?qū)崿F(xiàn)功能的過程,要使主程序和整個程序都能平穩(wěn)運行,各個模塊的子程序的正確與平穩(wěn)運行必不可少,所以在軟件調(diào)試的最初階段就是把各個子程序模塊進行分別調(diào)試。河南理工大學(xué)本科課程設(shè)計報告- 21 -4.3 仿真結(jié)果(任舉一例)圖 10、低音音符 DO 仿真圖4.4 結(jié)果分析根據(jù)仿真結(jié)果可知,本次課程設(shè)計能夠準(zhǔn)確并徹底的完成設(shè)計要
31、求。左側(cè)數(shù)碼管可以顯示 a、b、c 三種結(jié)果,分別代表低音、中音和高音。右側(cè)數(shù)碼管可以顯示 1、2、3、4、5、6、7 七個數(shù)字,分別代表DO、RE、MI、FA、SO、LA、SI 七種音符。下面以 4.3 為例具體進行分析:當(dāng)系統(tǒng)上電后,若按下低音鍵(如圖 P3.6),,則選定工作方式為低音模式,圖中a 即代表低音。P0 口連接數(shù)碼管段選端,右側(cè)數(shù)碼管顯示的 1 即代表 DO。兩位數(shù)碼管即代表低音 DO。河南理工大學(xué)本科課程設(shè)計報告- 22 -5. 課程設(shè)計體會課程設(shè)計體會總體來說,此次單片機課程設(shè)計使我們收獲良多,雖然課程設(shè)計的過程中遇到了很多困難與問題,但我們最終還是完成了設(shè)計的任務(wù)及要求
32、。具體來說可以分為以下幾點:第一,不夠細(xì)心,不夠嚴(yán)謹(jǐn)(如因為粗心大意而焊錯線) ;第二,因?qū)φn本理論的掌握度不夠?qū)е戮幊坛霈F(xiàn)錯誤;第三,硬件方面,剛開始有的程序模塊不能實現(xiàn)預(yù)期的效果,對于有的硬件,在實物制作過程中焊了比較多的排線,同時對于整體各元器件的布局都有很高的要求。不過在向同學(xué)請教,各方面都有了不同程度的改善;第四,在做人方面,我認(rèn)識到,無論做什么事情,只要你足夠堅強,有足夠的毅力和決心,有足夠的挑戰(zhàn)困難的勇氣,就沒有什么辦不到的。這次課程設(shè)計中,經(jīng)過我們的努力,在仿真軟件和實物上都實現(xiàn)了高、中、低 21 個音符的發(fā)聲和音樂的自動播放,使我們有了一定的成就感,也使我們進一步熟悉和掌握了
33、單片機的內(nèi)部結(jié)構(gòu)和工作原理,了解了單片機應(yīng)用系統(tǒng)設(shè)計的基本方法和步驟, 掌握了單片機仿真軟件 Proteus 的使用方法和鍵盤、顯示器在的單片機控制系統(tǒng)中的應(yīng)用,同時也掌握了撰寫課程設(shè)計報告的方法。總之,通過這次課程設(shè)計,我們都清楚明白了自己的能力有多深,想提高還得歸于多鍛煉,多動手,多向別人學(xué)習(xí)。河南理工大學(xué)本科課程設(shè)計報告- 23 -參考文獻參考文獻【1】余發(fā)山、王福忠. 單片機原理及應(yīng)用技術(shù). 中國礦業(yè)大學(xué)出版社.2008 年 6 月第 1 版【2】楊凌霄. 微型計算機原理與應(yīng)用,中國礦業(yè)大學(xué)出版社.2008 年 8 月第一版【3】康華光. 電子技術(shù)基礎(chǔ)(數(shù)字部分) ,高等教育出版社.第
34、五版【4】徐志軍,伊廷輝等. EDA 技術(shù)與 PLD 設(shè)計 人民郵電出版社, 2006 年 2 月第 1 版【5】李朝青. 單片機原理及接口技術(shù)M. 北京:北京航天航空大學(xué)出版色,2001.【6】胡漢才. 單片機原理及其接口技術(shù)M. 北京:清華大學(xué)出版社,2004.河南理工大學(xué)本科課程設(shè)計報告- 24 -附 1 源程序代碼#include #define keyport P1#define uchar unsigned char#define uint unsigned intuchar high,low; /定時器預(yù)裝值的高定時器預(yù)裝值的高 8 8 位和低位和低 8 8 位位sbit spe
35、ak=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,0 xf8,0 x5b,0 xf9,0 x15,0 xfa,0 x67,0 xfa,0 x90,0 xfb,0 xae,0 xfb,河南理工大學(xué)本科課程設(shè)計報告- 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
36、 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);/定時器初始化定時器初始化void key(void);void dtxs(int,int);void song()河南理工大學(xué)本科課程設(shè)計報告- 26 -TH0=high;TL0=low;TR0=1;delay(time*240); void yinyue()uchar code hls= 5,2,2, 3,2,1,
37、 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, 1,3,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度離職員工離職協(xié)議書及離職金支付保障協(xié)議
- 08 任務(wù)三 新聞寫作2024-2025學(xué)年八年級語文上冊同步教學(xué)設(shè)計(河北專版)
- 二零二五年度文化產(chǎn)業(yè)股權(quán)質(zhì)押融資合同
- 二零二五年度供應(yīng)鏈融資擔(dān)保免責(zé)協(xié)議
- 二零二五年度實習(xí)生就業(yè)實習(xí)信息保密協(xié)議書
- 二零二五年度教育行業(yè)提前解除勞動合同協(xié)議書
- 二零二五年度醫(yī)院合同制員工薪酬體系與福利保障合同
- 第二單元《 參考活動2 做出正確的決定》教學(xué)設(shè)計 -2024-2025學(xué)年初中綜合實踐活動蘇少版八年級上冊
- 二零二五年度夫妻雙方贍養(yǎng)父母責(zé)任分擔(dān)書
- 《家鄉(xiāng)文化生活現(xiàn)狀調(diào)查》教學(xué)設(shè)計 2024-2025學(xué)年統(tǒng)編版高中語文必修上冊
- 2022年全國新高考Ⅰ卷:馮至《江上》
- 體能訓(xùn)練概論(NSCA)
- 青島版三年級數(shù)學(xué)下冊《美麗的街景》教學(xué)課件7
- 銅陵油庫重油罐區(qū)工藝設(shè)計
- 液壓傳動全套ppt課件(完整版)
- 質(zhì)量手冊CCC認(rèn)證完整
- DB51∕T 2767-2021 安全生產(chǎn)風(fēng)險分級管控體系通則
- 反興奮劑考試試題與解析
- 低壓電氣安全知識培訓(xùn)課件(35張PPT)
- 電子支氣管鏡檢查、清洗消毒保養(yǎng)及注意事項解讀
- 建筑工程材料取樣及收費標(biāo)準(zhǔn)
評論
0/150
提交評論