基于at89c52單片機(jī)的簡易電子琴設(shè)計(jì) 畢業(yè)設(shè)計(jì)論文_第1頁
基于at89c52單片機(jī)的簡易電子琴設(shè)計(jì) 畢業(yè)設(shè)計(jì)論文_第2頁
基于at89c52單片機(jī)的簡易電子琴設(shè)計(jì) 畢業(yè)設(shè)計(jì)論文_第3頁
基于at89c52單片機(jī)的簡易電子琴設(shè)計(jì) 畢業(yè)設(shè)計(jì)論文_第4頁
基于at89c52單片機(jī)的簡易電子琴設(shè)計(jì) 畢業(yè)設(shè)計(jì)論文_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、濱江學(xué)院濱江學(xué)院 畢業(yè)論文畢業(yè)論文 題題 目目 簡易電子琴設(shè)計(jì)簡易電子琴設(shè)計(jì) 聲 明 本人鄭重聲明: 1、 持以“求實(shí)、創(chuàng)新”的科學(xué)精神從事研究工作。 2、 本論文是我個(gè)人在導(dǎo)師指導(dǎo)下進(jìn)行的研究工作和取得的研究成 果。 3、 本論文中除了引文外,所有實(shí)驗(yàn)、數(shù)據(jù)和相關(guān)材料均是真實(shí)的。 4、 本論文中除引文和致謝的內(nèi)容外,沒有抄襲其他人或其他機(jī)構(gòu) 已經(jīng)發(fā)表或撰寫過的研究成果。 5、 其他同志對本研究所做的貢獻(xiàn)均已在論文中作了聲明并表示了 謝意。 作者簽名: 日 期: 目 錄 1.引言.1 2 工作原理.2 2.1 電子發(fā)音原理.2 2.1.1 音調(diào).2 2.1.2 節(jié)拍.5 2.2 設(shè)計(jì)可行性.5

2、 2.3 設(shè)計(jì)指標(biāo).6 3 硬件電路.6 3.1 簡易電子琴的組成框圖.6 3.2 芯片選用.7 3.4 鍵盤設(shè)計(jì).9 4.軟件設(shè)計(jì).10 4.1 主程序流程圖.10 4.2 程序設(shè)計(jì)內(nèi)容.11 5調(diào)試.15 5.1 proteus 簡介.15 5.2 keil 簡介.15 5.3 仿真步驟.17 6總結(jié).19 致謝.20 附錄.22 簡易電子琴設(shè)計(jì)簡易電子琴設(shè)計(jì) 張盛杰 南京信息工程大學(xué)濱江學(xué)院 09 電子信息工程專業(yè),南京 210044 摘要:摘要:本論文主要基于 at89c52 單片機(jī)進(jìn)行的簡易電子琴設(shè)計(jì)。通過 lcd 顯示屏、喇叭、鍵盤等外部器件,使用按鍵實(shí)現(xiàn) 各種音調(diào)和音符的輸入,l

3、cd 顯示屏進(jìn)行被操作的按鍵顯示,用放大電路實(shí)現(xiàn)低音頻信號的功率放大,最后經(jīng)過調(diào)試用喇 叭播放相關(guān)音樂。本設(shè)計(jì)的優(yōu)點(diǎn)是安全,硬件電路比較簡單,操作起來便捷容易上手。 關(guān)鍵詞:關(guān)鍵詞:單片機(jī);電子琴;lcd 顯示屏 1.1.引言引言 電子技術(shù)伴隨著現(xiàn)代社會科學(xué)技術(shù)的快速發(fā)展,它已經(jīng)改變了人們生活的各個(gè)方面,電子琴作為一 種新型的的鍵盤樂器是音樂與現(xiàn)代電子科學(xué)技術(shù)發(fā)展相結(jié)合的產(chǎn)物,雖然沒有其它樂器那么多鮮明的特 點(diǎn),但是它的簡單易學(xué)已經(jīng)讓它在現(xiàn)代音樂中占到了一個(gè)很重要的位置。而單片機(jī)具有強(qiáng)大的編程實(shí)現(xiàn) 特性和靈活的控制功能,它成為了電子琴中不可替代的重要一部分,本設(shè)計(jì)的主要任務(wù)是用 at89c52

4、 單 片機(jī)作為核心控制元件,設(shè)計(jì)一個(gè)簡易電子琴,主要介紹了電子琴硬件系統(tǒng)的組成并對相關(guān)軟件程序方 面做了相關(guān)的分析研究和調(diào)試。 雖然單片機(jī)產(chǎn)生的時(shí)間并不是太長,但它的發(fā)展速度令人驚訝,它的高水平發(fā)展在集成度、可靠性、 速度、應(yīng)用等領(lǐng)域表現(xiàn)的淋漓精致。隨著單片機(jī)性能的不斷提高,它的應(yīng)用變得更加廣泛,目前它已用 于工業(yè)控制、機(jī)電一體化設(shè)備、儀器儀表、信號處理、現(xiàn)代兵器、交通能源、商用設(shè)備、醫(yī)療設(shè)備及家 用電器等多個(gè)領(lǐng)域。單片機(jī)技術(shù)的發(fā)展速度非常之快,目前的產(chǎn)品都致力于在各個(gè)功能方面進(jìn)行更加全 面的設(shè)計(jì)研究;在社會消費(fèi)的需求競爭之下,盡可能地利用單片機(jī)的最新技術(shù)來研制其應(yīng)用系統(tǒng),再利 用單片機(jī)靈便、

5、性價(jià)比高等特點(diǎn),來確保所設(shè)計(jì)出來的產(chǎn)品能夠具有強(qiáng)大的競爭力和存活力。在社會活 動的各個(gè)方面中,始終都有單片機(jī)的身影;從簡易的到復(fù)雜的,各個(gè)地點(diǎn),凡是能看到的地方幾乎都有 使用單片機(jī)的需求。雖然現(xiàn)在單片機(jī)供應(yīng)的應(yīng)用已經(jīng)普及開來了,但還是有許多單片機(jī)尚未涉足到的地 方,因此,單片機(jī)的應(yīng)用和需求在現(xiàn)在現(xiàn)代社會的運(yùn)用中還是有發(fā)展的。 電子琴在當(dāng)前的音樂玩具市場上是一個(gè)非常好的應(yīng)用方面。單片機(jī)技術(shù)使我們可以利用軟硬件開發(fā) 出電子琴功能,從而實(shí)現(xiàn)電子琴的微型化,可以用作教學(xué)琴、玩具琴等。還可以對相關(guān)功能作出一些拓 展。參照傳統(tǒng)電子琴可以用鍵盤上的“k0”到“k8”鍵演奏從低 so 到高 do 等 8 個(gè)音

6、,從而可以用來彈 奏喜歡的樂曲。 2工作原理工作原理 聲音是周圍空氣的震動,音調(diào)取決于震動的頻率,頻率越高音調(diào)越高。電子琴按下不同的琴鍵就會 發(fā)出不同音調(diào)的聲音,其實(shí)就是產(chǎn)生不同頻率的震動。單片機(jī)電子琴就是利用單片機(jī)產(chǎn)生不同頻率的電 壓波形,推動揚(yáng)聲器或蜂鳴器來發(fā)出不同音調(diào)的聲音。假設(shè)電子琴有八個(gè)音階,就對應(yīng) 8 個(gè)不同的頻率, 頻率越高音調(diào)就越高。單片機(jī)很容易輸出方波信號,那么只要讓它產(chǎn)生不同頻率的方波就可以了,然后 用這個(gè)方波信號驅(qū)動揚(yáng)聲器就可以了。單片機(jī)的按鍵可以模擬琴鍵,按下不同的按鍵就對應(yīng)不同的頻率 的方波,就能發(fā)出不同頻率的聲音。 2.1 電子發(fā)音原理電子發(fā)音原理 由于單片機(jī)的強(qiáng)大

7、功能,除了在測試控制領(lǐng)域中有著廣泛的運(yùn)用外,還有一些簡單而有趣的應(yīng)用。 比如,驅(qū)動單片機(jī)可以使蜂鳴器和揚(yáng)聲器發(fā)出聲音,還可以控制其發(fā)出不同的聲調(diào),從而連接起來構(gòu)成 一個(gè)曲子。 目前,市場上有很多種音樂模塊和音樂芯片,可以直接產(chǎn)生各種曲子,但是,這種模塊價(jià)格比較昂 貴,電路結(jié)構(gòu)比較復(fù)雜,如果系統(tǒng)中僅需要產(chǎn)生簡單的音符或者簡單的曲子,可以使用單片機(jī)配合揚(yáng)聲 器產(chǎn)生需要的音樂效果。 一般來說,單片機(jī)不像其他專業(yè)樂器那樣能奏出多種音色的聲音,即不包含相應(yīng)幅度的諧波頻率。 單片機(jī)演奏的音樂基本上都是單音頻率。因此單片機(jī)演奏音樂比較簡單,只需要清楚“音調(diào)”和“節(jié)拍” 。在這兩個(gè)當(dāng)中,音調(diào)表示某個(gè)音符所表現(xiàn)

8、的頻率的高低程度;節(jié)拍表示某個(gè)音符所表現(xiàn)的時(shí)間長久。 音樂播放在本系統(tǒng)中,一般只需按順序播放音符即可。用單片機(jī)播放音樂的方法如下: (1)復(fù)位單片機(jī)定時(shí)器 (2)將樂譜中的各個(gè)音符的音調(diào)及節(jié)拍轉(zhuǎn)換成各個(gè)對應(yīng)的音調(diào)和節(jié)拍參數(shù) (3)將樂譜中音符的參數(shù)做成數(shù)據(jù)表格存放在存儲器中 (4)通過程序取出一個(gè)音符的相關(guān)參數(shù).,如此直到播放完畢最后一個(gè)音符,根據(jù)需要也可循 環(huán)不停地播放整個(gè)樂曲。 2.1.1 音調(diào)音調(diào) 音調(diào)是音樂學(xué)中的名詞,與平時(shí)所說的音高十分相似。在音樂中標(biāo)準(zhǔn)音高為中音 c 上方的 a 音,它 的頻率是 f = 440hz,把其它的音和它進(jìn)行比較。 和為兩個(gè)不同的音符,如果其中一個(gè)音符的頻

9、f 1 f 2 率是另外一個(gè)音符的兩倍時(shí),即時(shí),則稱比要高出一個(gè)倍頻程。2 12 f ff 2 f 1 在音樂中音符 1(do)與音符之間其中一個(gè)的頻率正好是另外一個(gè)音符頻率的兩倍,它在音樂學(xué)中 被稱為相差一個(gè)八度音。在一個(gè)八度音里,有 12 個(gè)半音。以 1-八音區(qū)為例。12 個(gè)半音是:1- #1,#1-2,2-#2,#23,34,4-#4,#45,5-#5,#56,6-#6,#67,7-。由于人耳的聽覺效果, 這 12 個(gè)音節(jié)的分度基本上都是以對數(shù)關(guān)系來劃分它們的。因此,只需要知道這 12 個(gè)音符的音高,也就 是它們基本的音樂的頻率,就可以根據(jù)音符之間的倍頻程關(guān)系得到其他音符基本的音調(diào)頻率。

10、 在知道了一個(gè)音符的頻率后,就可以讓單片機(jī)發(fā)出相應(yīng)的頻率所對應(yīng)的的振蕩信號,從而產(chǎn)生相應(yīng) 的音符聲音。常采用的方法是通過單片機(jī)的定時(shí)器進(jìn)行定時(shí)中斷,在中斷服務(wù)子程序中將單片機(jī)上外界 揚(yáng)聲器的 i/o 口來回置高電平或置低電平,從而讓揚(yáng)聲器發(fā)出聲音。為了讓單片機(jī)發(fā)出不同頻率音符的 聲音,只需將定時(shí)器預(yù)置不同的定時(shí)值來實(shí)現(xiàn)。 以標(biāo)準(zhǔn)音高 a 為例: 標(biāo)準(zhǔn)音高 a 的頻率 f=440hz,其對應(yīng)的周期為: (2-12-1)usft2272/1 因此需要在單片機(jī) i/o 口輸出周期為 t=2272us 的方波脈沖,如圖 2-1 所示 圖 2-1 單片機(jī)控制音調(diào)示意圖 由上圖可知: 單片機(jī)輸出高電平和低

11、電平信號均為: (2-2)ustt11362/ 也就是說,單片機(jī)上定時(shí)器的中斷觸發(fā)時(shí)間為 1136us。如果單片機(jī)采用定時(shí)器工作方式 1,它的計(jì)數(shù)脈 沖為振蕩器的十二分頻信號。如果外接晶振的振蕩器頻率為 f0,那么定時(shí)器的預(yù)置初值由下式來顯示: (2-3) f ttcountt 0 )(12 式中,count = =65536, 是定時(shí)器將要確定的計(jì)數(shù)初值。所以定時(shí)器的高低計(jì)數(shù)器的初值為: 2 16 thl (2-4) 256)12/(256/ 0 f tcountttth (2-5)256)%12/(256% 0 f tcounttttl 如果單片機(jī)外接 12mhz 的晶振,則,把 t=11

12、36us 和代入上面的兩式,mhz f 12 0 mhz f 12 0 隨之可以求出標(biāo)準(zhǔn)音高 a 在單片機(jī)定時(shí)器工作方式 1 下的定時(shí)器高低計(jì)數(shù)器的初值為: (2-6)fbhtt tha 256)12/12113665536(256/ (2-7)htt tha 90256)%12/12113665536(256% 參考以上的求法,我們就可以得出其他音調(diào)相應(yīng)的計(jì)數(shù)器的預(yù)置初值。 在單片機(jī)的晶振頻率,定時(shí)器在工作方式 1 下定時(shí)器計(jì)數(shù)初值見表 2-1mhz f 12 0 音符頻率/hz計(jì)數(shù)初值音符頻率/hz計(jì)數(shù)初值 低 1 do26263628# 4 fa #74064860 #1 do#2776

13、3731中 5 so78464898 低 2 re29463835# 5 so#83164934 #1 re#31163928中 6 la88064968 低 3 mi33064021# 6 la#93264994 低 4 fa34964013中 7 si98895030 #4 fa#37064185高 1 do104665058 低 5 so39264260# 1 do110965085 #5 so41564331高117565110 低 6 la44064400#2 re#124565134 #6 la#46664463高 3 mi131865157 低 7 si49464524高 4 f

14、a139765178 中 1 do52364580# 4 fa#148065198 # 1 do#55464633高 5 so 156865217 中 2 re58764684# 5 so#166165235 #2 re#62264732高 6 la176065252 中 3 mi65964777# 6 la#186565268 中 4 fa69864820高 7 si196765283 表 2-1 晶振頻率定時(shí)器在工作方式 1 下定時(shí)器計(jì)數(shù)初值表mhz f 12 0 2.1.2 節(jié)拍節(jié)拍 在一張完整樂譜開頭,都有如 1=c、1=g等等的標(biāo)識。這里 1=c,1=g 標(biāo)識樂譜的曲調(diào), 4 4 4

15、 3 簡單的說就是跟音調(diào)有關(guān)系;這里的、用來表示節(jié)拍。對于音符的節(jié)拍,以為例。它表示 4 4 4 3 4 3 樂譜中以四分音符為節(jié)拍,每一小節(jié)有三拍。1= g的節(jié)拍示意圖,見圖 1-2 。 4 3 在圖中,總共有三拍:1、2 為一拍,3、4、5 為一拍,6 為一拍。從時(shí)長角度看,1、2 的時(shí)長為四 分音的一半,即為八分音符長;3、4 的時(shí)長為八分音符的一半,即為十六分音符長;5 的時(shí)長為四分音 符的一半,即為八分音符長;6 的時(shí)長為四分音符長。 1=g 4 3 圖 2-2 節(jié)拍示意圖 對于一拍的發(fā)音時(shí)間,如果樂曲沒有特殊說明,一般說來,一拍的時(shí)長大約為 400450ms。如果這里 規(guī)定一拍的時(shí)

16、長為 400ms,那么以四分音符為節(jié)拍時(shí),四分音符的時(shí)長為 400ms,八分音符的時(shí)長為 200ms,十六分音符的時(shí)長為 100ms。 從而,在單片機(jī)上可采用循環(huán)延時(shí)的辦法來實(shí)現(xiàn)控制一個(gè)音符唱多長時(shí)間。首先要編寫一個(gè)精確的 基本時(shí)長的延時(shí)程序,比如說以八分音符的時(shí)長為基本延時(shí)時(shí)間,那么對于一個(gè)音符,如果它是四分音 符,只需調(diào)用四次延時(shí)程序,如果它是二分音符,則只需調(diào)用八次延時(shí)程序,以此類推。 單片機(jī)電子琴演奏音樂的方法: 步驟一:將樂譜中的每個(gè)音符的音調(diào)及節(jié)拍變換成相應(yīng)的音調(diào)參數(shù)和節(jié)拍數(shù)。 步驟二:將這些參數(shù)做成數(shù)據(jù)表格,存放在存儲器中。 步驟三:通過按鍵調(diào)用程序取出一個(gè)音符的相關(guān)參數(shù),播放該

17、音符。 步驟四:播放完該音符后,等待下一次按鍵調(diào)用程序去取出下一次的音符的相關(guān)參數(shù),再播放音符。 對于演奏樂曲,一般將休止符的音調(diào)參數(shù)設(shè)置為 ffh,節(jié)拍參數(shù)設(shè)置為 00h。 2.2 設(shè)計(jì)可行性設(shè)計(jì)可行性 由于本次設(shè)計(jì)主要應(yīng)用在生活相關(guān)的教學(xué)娛樂當(dāng)中,所以在設(shè)計(jì)上要盡量的使其變的簡單安全容易 操作。其次,在這次設(shè)計(jì)可行性上進(jìn)行分析如下: 技術(shù)可行性 技術(shù)可行性主要是分析技術(shù)條件上是否能夠順利開展并完成課程設(shè)計(jì)的主要問題,硬件、軟件能否 滿足設(shè)計(jì)者的需要等。通過分析各種軟件環(huán)境,硬件仿真環(huán)境等均已經(jīng)具備。 經(jīng)濟(jì)可行性 所謂經(jīng)濟(jì)可行性,即在這次設(shè)計(jì)上需要投入資金的多少,由于課程設(shè)計(jì)是提高我們的動手

18、能力以及 資金有限。因此在經(jīng)濟(jì)上必須能夠承受,比較理想化的對于我們課程設(shè)計(jì)來說是不可行的。通過分析后, 無論是在器件價(jià)格或是常見度上均是可行的。 該設(shè)計(jì)具有以下優(yōu)點(diǎn): 可以隨意彈奏想要表達(dá)的音樂; 制作簡單,成本低; 比傳統(tǒng)電子琴功能更完善。 2.3 設(shè)計(jì)設(shè)計(jì)指標(biāo)指標(biāo) 實(shí)現(xiàn)電子琴發(fā)聲控制系統(tǒng),要求電路實(shí)現(xiàn)如下功能: 利用 lcd 數(shù)碼管作為顯示部件,喇叭作為發(fā)聲部件,設(shè)置 8 個(gè)按鍵,實(shí)現(xiàn)高音、中音、低音的 1、2、3、4、5、6、7、8 的發(fā)音。并在存儲一首歌曲的內(nèi)容,可以實(shí)現(xiàn)自動播放。 用 proteus 實(shí)現(xiàn)的電子琴仿真設(shè)計(jì)。 按下音符鍵可以發(fā)出相應(yīng)的音符 按下音樂播放鍵可以自動播放預(yù)先

19、存在內(nèi)存中的曲子 at89c52 作為本設(shè)計(jì)的主控芯片,作為大規(guī)模集成電路技術(shù)發(fā)展的產(chǎn)物,它擁有高性能、高速度、 簡單、體積小、價(jià)格低廉、穩(wěn)定可靠、應(yīng)用廣泛的特點(diǎn),也具有編程實(shí)現(xiàn)靈活的特性,由于本設(shè)計(jì)主要 用于教學(xué)娛樂方面,因此在設(shè)計(jì)上盡量使其簡單易懂。 3硬件電路硬件電路 通過 lcd 顯示屏、喇叭、鍵盤這一些外部器件,經(jīng)過按鍵實(shí)現(xiàn)各種音調(diào)和音符的輸入,lcd 顯示屏 進(jìn)行被操作的按鍵顯示,用放大電路實(shí)現(xiàn)低音頻信號的功率放大,然后通過調(diào)試用喇叭播放相關(guān)音樂。 3.1 簡易電子琴的組成框圖簡易電子琴的組成框圖 圖 3-1 電子琴系統(tǒng)原理框圖 (1)lcd 顯示屏 lcd 液晶顯示器是 liqu

20、id crystal display 的簡稱,lcd 的構(gòu)造是在兩片平行的玻璃基板當(dāng)中放 置液晶盒,下基板玻璃上設(shè)置 tft(薄膜晶體管),上基板玻璃上設(shè)置彩色濾光片,通過 tft 上的信號與 電壓改變來控制液晶分子的轉(zhuǎn)動方向,以此來達(dá)到控制住每個(gè)像素點(diǎn)偏振光出射與否從而達(dá)到顯示的目 的。自然界中的物質(zhì)有氣態(tài)、液態(tài)、固態(tài)三種型態(tài)。雖然液體分子質(zhì)心的排列沒有任何規(guī)律性,不過如 果這些分子是扁形的,那么這些分子的分子指向就有可能具有規(guī)律性。因此人們就可以將液態(tài)再次細(xì)分 成好多型態(tài)。液體直接稱為分子方向沒有規(guī)律性的液體,如果分子具有方向性的液體,那么就可以稱它 為為“液態(tài)晶體”,簡稱“液晶”。生活中

21、的電視、手機(jī)絕大多數(shù)產(chǎn)品都屬于液晶產(chǎn)品,因此,液晶對 于人們的生活來說并不陌生。液晶是在 1888 年由奧地利植物學(xué)家萊尼茨爾(reinitzer)發(fā)現(xiàn)的,是一 種介于固體與液體之間且具有規(guī)則性分子排列的有機(jī)化合物。 (2)時(shí)鐘頻率 由于單片機(jī)只有在時(shí)鐘的驅(qū)動下才能完成工作。在單片機(jī)內(nèi)部放置一個(gè)時(shí)鐘振蕩電路,它只要外接 一個(gè)振蕩源就能產(chǎn)生相定的時(shí)鐘信號傳輸?shù)絾纹瑱C(jī)內(nèi)部的各個(gè)單元,以此決定單片機(jī)的工作速度。外部 振蕩源電路一般選用石英晶體振蕩器,此電路在加電大約延遲 10ms 后振蕩器起振,在 xtal2 引腳產(chǎn)生幅 度為 3v 左右的正弦波時(shí)鐘信號,其振蕩頻率主要由石英晶振的頻率確定。電路中兩

22、個(gè)電容 c1,c2,作用 有兩個(gè):一是幫助振蕩器起振;二是對振蕩器的頻率進(jìn)行微調(diào)。c1,c2 的典型值為 30pf。 晶振電路 at89c52 供電及復(fù)位電路 發(fā)音電路 鍵盤 lcd 顯示屏 工作中的單片機(jī),由外直接輸入的送至內(nèi)部控制邏輯單元的時(shí)鐘信號的周期或內(nèi)部振蕩器產(chǎn)生的稱 為時(shí)鐘周期。時(shí)鐘信號頻率的倒數(shù)是零大小,通常用 fosc 表示。如時(shí)鐘頻率為 6mhz,即 fosc=6mhz,則 時(shí)鐘周期為 1/6s。 3.2 芯片選用芯片選用 在此次的畢業(yè)課程設(shè)計(jì)中使用 atmel 公司所開發(fā)的 at89c52 單片機(jī)。at89c52 是美國 atmel 公司生 產(chǎn)的具有低高性能、低電壓等特點(diǎn)的

23、 cmos 8 位單片機(jī),內(nèi)部含有 8kb 的可以不斷修改的程序存儲器和 12b 的隨機(jī)存取數(shù)據(jù)存儲器(ram) ,它使用了 atmel 公司的高質(zhì)密、不容易失性存儲的技術(shù)生產(chǎn),并且和 標(biāo)準(zhǔn) mcs-51 指令系統(tǒng)所兼容,片內(nèi)配置通用 8 位中央處理器(cpu)和 flash 存儲單元,由于 at89c52 的強(qiáng)大功能使它可以廣泛的應(yīng)用到人們生產(chǎn)生活的各個(gè)方面。at89c52 的前身是 at89c51,它在硬件組成、 工作特點(diǎn)、引腳排列等方面兼容 intel 公司的 80c52。at89c52 的引腳圖如圖 3-2。 圖 3-2 at89c52 的引腳示意圖 其主要功能特性: (1)和 mcs

24、51 指令系統(tǒng)相兼容 (2)8k 可反復(fù)擦寫(1000 次)flash rom (3)32 個(gè)雙向 i/o 口 (3)3 個(gè) 16 位可編程定時(shí)/計(jì)數(shù)器中斷 (4)時(shí)鐘頻率 0-24mhz (5)2 個(gè)串行中斷 (6)可編程 uart 串行通道 (7)2 個(gè)外部中斷源 (8)共 6 個(gè)中斷源 (10)2 個(gè)讀寫中斷口線 3.3 單片機(jī)最小電路系統(tǒng)單片機(jī)最小電路系統(tǒng) 單片機(jī)的最小工作系統(tǒng)是單片機(jī)加上應(yīng)用程序和合適的外圍器件。 (1)但單片機(jī)的應(yīng)用系統(tǒng)中,單片機(jī)是核心部件,它能夠自動完成用戶的需求所賦予的任務(wù)。 (2)電源電路單片機(jī)是一種超大規(guī)模集成電路,在該集成電路內(nèi)有成千上萬個(gè)晶體管或場效應(yīng)骨

25、。 因此,要使單片機(jī)正常運(yùn)行,就必須為其提供能量,即為片內(nèi)的晶體管或場效應(yīng)管供給電源,使其能工 作在相應(yīng)的狀態(tài)。 (3)輸入輸出口線插座: 單片機(jī)通過輸入輸出口線與外界來完成轉(zhuǎn)換信息的任務(wù)。如,單片機(jī)與外 設(shè)的通訊就是通過輸入輸出口線來實(shí)現(xiàn)的。單片機(jī)輸入輸出口線的驅(qū)動能力有限。當(dāng)驅(qū)動能力不足的時(shí) 候,就可以在口線上接驅(qū)動器。 時(shí)鐘電路可以簡單定義如下: 就是產(chǎn)生象時(shí)鐘一樣準(zhǔn)確的振蕩電路。 任何工作都按時(shí)間順序。 構(gòu)成振蕩器的是單片機(jī)背部的一個(gè)高增益反相放大器。通常在引腳 xtall 和 xtal2 跨接石英晶體和 兩個(gè)補(bǔ)償電容構(gòu)成自激振蕩器,結(jié)構(gòu)圖 3-3 中 x1、c1、c2。 圖 3-3

26、時(shí)鐘電路 單片機(jī)小系統(tǒng)常采用上電自動復(fù)位和手動按鍵復(fù)位兩種方式實(shí)現(xiàn)系統(tǒng)的復(fù)位操作。上電復(fù)位要求接通 電源后,自動實(shí)現(xiàn)復(fù)位操作。手動按鈕復(fù)位需要人為在復(fù)位輸入端 rst 上加入高電平(圖 1)。一般采用 的辦法是在 rst 端和正電源 vcc 之間接一個(gè)按鈕。當(dāng)人為按下按鈕時(shí),則 vcc 的+5v 電平就會直接加到 rst 端。手動按鈕復(fù)位的電路如所示。即使人的動作再快也會讓按鈕保持接通的狀態(tài)達(dá)數(shù)十毫秒,因此, 它能夠完全滿足復(fù)位的時(shí)間要求。 手動復(fù)位的要求是,在電源接通的條件下,在單片機(jī)運(yùn)行的期間內(nèi), 使用按鈕開關(guān)操作將單片機(jī)復(fù)位。單片機(jī)小系統(tǒng)一般采用手動按鍵復(fù)位和上電復(fù)位兩種方法來實(shí)現(xiàn)系統(tǒng)

27、的復(fù)位操作。上電復(fù)位要求是,接通電源后,系統(tǒng)能夠自動實(shí)現(xiàn)復(fù)位操作。手動復(fù)位要求是,在電源接 通的條件下,在單片機(jī)運(yùn)行期間內(nèi),用按鈕開關(guān)操作使單片機(jī)復(fù)位。它的結(jié)構(gòu)見下圖。 圖 3-4 復(fù)位電路 3.4 鍵盤設(shè)計(jì)鍵盤設(shè)計(jì) 在設(shè)計(jì)的過程中由于鍵盤中按鍵數(shù)量比較多,為了減少 i/o 口的占用,一般將按鍵排列成矩陣形式。 在矩陣式鍵盤里,各個(gè)水平線和垂直線在交叉處是不直接連通的,而是通過一個(gè)按鍵將它們加以連 接的。所以一個(gè)端口就可以構(gòu)成 4*4=16 個(gè)按鍵,與直接將端口線用于鍵盤相比之下多出了一倍,而且在 線數(shù)更多的情況下,區(qū)別就會越明顯,或者再多加一條線就能夠構(gòu)成 20 鍵的鍵盤,而直接用端口線就只

28、 能多出一鍵(9 鍵) 。綜上所述,在需要的鍵數(shù)比較多的情況時(shí),使用矩陣法來做鍵盤是很合理的。 在單 片機(jī)的系統(tǒng)中,假如按鍵比較多,一般就會采用矩陣式(也稱行列式)鍵盤,此次畢業(yè)設(shè)計(jì)就采用了此 種鍵盤。矩陣式鍵盤由行線和列線組成,按鍵位于行、列線的交叉點(diǎn)上。很明顯,在按鍵數(shù)量比較多的 時(shí)候,矩陣式鍵盤要節(jié)省很多 i/o 口。雖然矩陣鍵盤在硬件電路上相比其他鍵盤比較復(fù)雜,而且在程序 算法上還比較麻煩,不過它在節(jié)省端口資源上非常具有優(yōu)勢,因所以它比較適合于多按鍵電路。 采用矩陣式鍵盤電路,可以大大的節(jié)省單片機(jī) i/o 的開銷。 圖 3-5 鍵盤 4.軟件設(shè)計(jì)軟件設(shè)計(jì) 軟件主要由初始化程序、鍵盤掃描

29、程序、音調(diào)發(fā)生程序、延時(shí)程序和曲調(diào)播放程序組成。程序框圖 如圖 4-1 所示。 4.1 主程序流程圖主程序流程圖 本設(shè)計(jì)共兩種播放模式,包括自動播放存儲音樂和按鍵發(fā)音。上電之后,首第一先開中斷,設(shè)置定 時(shí)器 0 為工作方式 1,當(dāng)自動播放鍵按下的時(shí)候,進(jìn)入中斷,根據(jù)樂譜在音頻數(shù)組中查找相應(yīng)的音律,給 定時(shí)器賦上初值,最后開始播放音樂。當(dāng) do、re、mi、fa、so、la、si、do(高音)八種音符鍵按下時(shí), 根據(jù)音階值和音符值在定義的音頻數(shù)組中查找相應(yīng)音律,然后給定時(shí)器賦初值,即按鍵發(fā)音。下為主程 序流程圖?!静シ懦绦蛞姼戒洝?圖 4-1 程序流程圖 4.2 程序設(shè)計(jì)內(nèi)容程序設(shè)計(jì)內(nèi)容 (1)

30、44 矩陣鍵盤識別處理之中每個(gè)按鍵有它們自己的行值和列值,它們的組合就是能夠識別這 個(gè)按鍵的編碼。在矩陣中,它的的行線和列線分別通過兩并行接口和 cpu 通信。每個(gè)按鍵的狀態(tài)都需要 變成數(shù)字量“0”和“1”,開關(guān)的一端(列線)通過電阻接 vcc,而接地就是通過程序輸出數(shù)字“0”所 實(shí)現(xiàn)的。 (2)鍵盤處理程序的目的是:確定有沒有鍵按下,再判斷是哪一個(gè)鍵按下的,這個(gè)鍵所展示的功能 開始 開中斷并設(shè)置工作式寄存 器 有鍵按下 自動播放鍵按下 進(jìn)入中斷 查找相應(yīng)音律 給定時(shí)器賦值 播放音樂 進(jìn)入中斷 查找相應(yīng)音律 給定時(shí)器賦值 播放鍵值對應(yīng)音符 是什么;而且還要消除按鍵在閉合或斷開的狀態(tài)時(shí)的抖動。兩

31、個(gè)并行口中,一個(gè)輸出掃描碼,另一個(gè)并 行口隨之輸入按鍵狀態(tài),將按鍵逐行動態(tài)接地,行掃描值和回饋信號共同形成鍵編碼而識別按鍵,該鍵 功能可以通過軟件查表來看到。下為主函數(shù)鍵盤處理部分 void main (void) uchar num,k,i; lcd_init(); lcd_string(0,10,dis10);/ 開機(jī)畫面 lcd_string(11,5,dis11);/開機(jī)畫面 init_timer0(); /初始化定時(shí)器 0,主要用于數(shù)碼管動態(tài)掃描 spk=0;/在未按鍵時(shí),喇叭低電平,防止長期高電平損壞喇叭 lcd_string(0 x40+0,5,note:); while (1)

32、 switch(keyport) case 0 xfe:num= 1;break; case 0 xfd:num= 2;break; case 0 xfb:num= 3;break; case 0 xf7:num= 4;break; case 0 xef:num= 5;break; case 0 xdf:num= 6;break; case 0 xbf:num= 7;break; case 0 x7f:num= 8;break; default:num= 0;break; lcd_string(0 x40+7,1,yinfunum); if(num=0) tr0=0; spk=0; /在未按鍵

33、時(shí),喇叭低電平,防止長期高電平損壞喇叭 else high=freqnum-11; low =freqnum-10; tr0=1; if(tab=0) delayms(10); if(tab=0) i=0; while(idebug(調(diào)試)中,選中use remote debug monitor(使用遠(yuǎn)程調(diào)試監(jiān)控),再左鍵雙擊 芯片將所生成的 .hex 文件寫入 at89c52 芯片中,將 .hex 文件載入,就完成了序的寫入。導(dǎo)入文件如圖 5-4 所示 圖 5-4 hex 文件導(dǎo)入 5、此時(shí)程序已經(jīng)寫入芯片中,這時(shí)就可以進(jìn)行電路圖功能的仿真了。點(diǎn)擊左下方的運(yùn)行按鈕。如圖 5-5 圖 5-5

34、點(diǎn)擊開始仿真 6、仿真結(jié)果,摁下相關(guān)鍵位發(fā)出相應(yīng)聲音 lcd 顯示屏顯示相關(guān)音符,如圖 5-6 圖 5-6 仿真結(jié)果 6總結(jié)總結(jié) 經(jīng)過兩個(gè)多個(gè)月的努力,簡易電子琴的電路設(shè)計(jì)成功了,簡易電子琴的設(shè)計(jì)有眾多的方法,此次選擇 了以單片機(jī)為基礎(chǔ)的簡易電子琴歷,當(dāng)然這和我們所學(xué)的專業(yè)有很大的關(guān)系,首先我們所學(xué)的課程中有關(guān) 電子硬件的知識占了多數(shù),在大學(xué)期間學(xué)習(xí)了單片機(jī)原理等基礎(chǔ)電子有關(guān)知識。 基于單片機(jī)原理的電子 琴大大簡化了以前傳統(tǒng)的音樂產(chǎn)生電路,使得元件得到減少,生產(chǎn)成本降低而且性能也得到了提高,并 且耗能也降低了。將程序燒入芯片,調(diào)試成功后,可任意彈奏自己想要的旋律。 不足之處有: (1)可彈奏的

35、音符數(shù)較少,只能在一定范圍內(nèi)滿足用戶需要??赏ㄟ^改進(jìn)鍵盤識別模塊和發(fā)生模塊 來增加其復(fù)雜度。 (2)音量不可調(diào)。 以單片機(jī)基礎(chǔ)鋪以外部設(shè)備設(shè)計(jì)的簡易電子琴,它可以被制造成一個(gè)電子產(chǎn)品,應(yīng)用方便,可以廣 泛的應(yīng)用與我們的日常生活中。伴隨著科技水品的提高,電子產(chǎn)品會朝著節(jié)能、使用壽命長,故障發(fā)生頻 率低、體積小、功能強(qiáng)大等方面迅踴發(fā)展,而單片機(jī)的發(fā)展必然會促進(jìn)其發(fā)展,在不久的將來,高性能 的單片機(jī)系統(tǒng)會在電子領(lǐng)域得到廣泛應(yīng)用,所以現(xiàn)在對單片機(jī)進(jìn)行初步的研究對以后個(gè)人的發(fā)展很有幫 助。 我通過收集、查閱與發(fā)聲原理、聲音的產(chǎn)生電路有關(guān)的文獻(xiàn)資料以及仿真調(diào)試軟件的使用使我對單 片機(jī)的應(yīng)用前景有了深刻的了

36、解。 致謝致謝 通過兩個(gè)多月的學(xué)習(xí)查資料終于將這篇論文順利完成,在這個(gè)過程中遇到了不少的問題,都在各位 同學(xué)朋友和導(dǎo)師的幫助下得以解決,同時(shí)也認(rèn)識到了自身綜合知識方面的欠缺。在這里我首先要強(qiáng)烈謝 謝我的論文指導(dǎo)老師吳大中老師,他對我進(jìn)行了無數(shù)次的指導(dǎo),不厭其煩的幫助我進(jìn)行論文的修改 和改進(jìn)。其次感謝這篇論文所涉及到的各位學(xué)者,本文引用了各位學(xué)者的研究文獻(xiàn),如果沒有各位學(xué)者 的研究成果的幫助和啟發(fā),我將很難完成本篇論文。最后感謝我的同學(xué)和朋友,在論文的撰寫和排版的 過程中提供熱情的幫助。 由于我的學(xué)術(shù)水平有限,所寫論文難免還有許多缺點(diǎn)和錯誤,懇請各位老師批評和指正。 參考文獻(xiàn):參考文獻(xiàn): 1張鑫

37、,華臻,陳書謙.單片機(jī)原理與應(yīng)用.(m).電子工業(yè)出版社,2009,6 2肖婧.單片入門與趣味實(shí)驗(yàn)設(shè)計(jì)(m).北京航空航天大學(xué)出版社,2008,4 3陳明熒.8051 單片機(jī)課程設(shè)計(jì)實(shí)訓(xùn)教材(m).清華大學(xué)出版社,2004,3 4趙建領(lǐng).51 系列單片機(jī)開發(fā)寶典(m).電子工業(yè)出版社,2007,4 5求是科技.8051 系列單片機(jī) c 程序設(shè)計(jì)完全手冊(m).人民郵電出版社,2006,4 6樓然苗,李光飛.51 系列單片機(jī)設(shè)計(jì)實(shí)例(m) .北京航空航天大學(xué)出版社,2003,3 7百度百科.音符(online) . http:/ 8 周琛暉.基于 at89s51單片機(jī)的電子琴設(shè)計(jì)j .中國礦業(yè)大

38、學(xué)計(jì)算機(jī)學(xué)院,江蘇徐州 (221008). 9 韓改寧.基于at89c52實(shí)現(xiàn)簡單音樂發(fā)生器j .咸陽師范學(xué)院計(jì)算機(jī)科學(xué)系.陜西成陽 (712000). 10chentianzhou,zbaoyi,huwe.assigning program to cache- aware scratchpad concerning the influence of the whole embedded sys- tem cnetworking,architecture,and storages ieee conf of international workshop on aug2006 research a

39、nd design for the simple electronic organ department of electronics of nanjing university of information science and technology, nanjing shengjiezhang 210044 abstract abstract: this design study based on at89c52 simple flower design. it is based on the microcontroller as a master core set of periph

40、eral devices such as keyboard, buzzer; also use some simple devices such as: two digital tube, and an npn transistor and resistors, et c. keys to input notes and tones; button to display two digital tube operation; achieve low audio power amplifier with an npn transi stor 8550 play farewell; final b

41、uzzer. keywords: at89c52 ; electronic organ;lcd screen 附錄附錄 1、實(shí)物圖 2、電子琴程序 #include #define uchar unsigned char #define uint unsigned int #define keyport p1 #define comm 0 #define dat 1 /*- 變量 -*/ uchar high,low; /定時(shí)器預(yù)裝值的高 8 位和低 8 位 sbit spk=p21; /定義喇叭接口 sbit tab=p34; /功能鍵 sbit rs=p25;/液晶數(shù)據(jù)命令選擇 sbit

42、rw=p26;/液晶讀寫選擇 sbit en=p27;/液晶使能端 uchar code freq2= 0 xd8,0 xf7,/00440hz 1 0 xbd,0 xf8,/00494hz 2 0 x87,0 xf9,/00554hz 3 0 xe4,0 xf9,/00587hz 4 0 x90,0 xfa,/00659hz 5 0 x29,0 xfb,/00740hz 6 0 xb1,0 xfb,/00831hz 7 0 xef,0 xfb,/00880hz 1 ; uchar time; uchar code yinfu91= ,1,2,3,4,5,6,7,8; /世上只有媽媽好數(shù)據(jù)表

43、uchar code music= 6,2,3, 5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1, 6,2,4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1, 6,1,1, 5,2,1, 3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2, 5,2,1, 6,2,1, 3,2,2, 2,2,2, 1,2,4, 5,2,3, 3,2,1, 2,2,1, 1,2,1, 6,1,1, 1,2,1, 5,1,6, 0,0,0 ; / 音階頻率表 高八位 uchar code freqh= 0 xf2,0 xf3,0

44、 xf5,0 xf5,0 xf6,0 xf7,0 xf8, 0 xf9,0 xf9,0 xfa,0 xfa,0 xfb,0 xfb,0 xfc,0 xfc, /1,2,3,4,5,6,7,8,i 0 xfc,0 xfd,0 xfd,0 xfd,0 xfd,0 xfe, 0 xfe,0 xfe,0 xfe,0 xfe,0 xfe,0 xfe,0 xff, ; / 音階頻率表 低八位 uchar code freql= 0 x42,0 xc1,0 x17,0 xb6,0 xd0,0 xd1,0 xb6, 0 x21,0 xe1,0 x8c,0 xd8,0 x68,0 xe9,0 x5b,0 x8f

45、, /1,2,3,4,5,6,7,8,i 0 xee,0 x44, 0 x6b,0 xb4,0 xf4,0 x2d, 0 x47,0 x77,0 xa2,0 xb6,0 xda,0 xfa,0 x16, ; uchar code dis1210=electronic,organ; /*- 函數(shù)聲明 -*/ void init_timer0(void);/定時(shí)器初始化 /*- 延時(shí)函數(shù)大約約 2*z+5us -*/ void delay2xus(uchar z) while(z-); /*- 延時(shí)函數(shù)大約約 1ms -*/ void delayms(uchar x) while(x-) delay2xus(245); delay2xus(245); /*- 1602 液晶寫命令 comm/數(shù)據(jù) dat -*/ void lcd_wr(uchar comm_dat,uchar xdat) rs=comm_dat; rw=0; delay2xus(10); p0=xdat; en=1; delayms(1); en=0; /*- 1602 液晶寫字符串

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論