基于51單片機的電子琴設(shè)計72562_第1頁
基于51單片機的電子琴設(shè)計72562_第2頁
基于51單片機的電子琴設(shè)計72562_第3頁
基于51單片機的電子琴設(shè)計72562_第4頁
基于51單片機的電子琴設(shè)計72562_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

.本科生畢業(yè)論文〔設(shè)計系〔院電子工程系專業(yè)電子信息工程論文題目:基于51單片機的電子琴設(shè)計學(xué)生姓名指導(dǎo)教師班級學(xué)號完成日期:年月基于單片機的微型電子琴設(shè)計XXX電子工程系電子信息工程[摘要]電子琴的設(shè)計以AT89C52單片機為核心控制元件,與鍵盤、揚聲器等模塊組成核心主控制模塊,通過制作硬件電路和軟件的設(shè)計編寫,然后進行軟硬件的調(diào)試運行,最終達到設(shè)計電路的樂器演奏、點歌、存儲及顯示功能。設(shè)計中應(yīng)用中斷系統(tǒng)和定時/計數(shù)原理控制演奏器發(fā)聲,對音樂發(fā)生所必須確定的音符和節(jié)拍分別用程序語言實現(xiàn)。特點是設(shè)計思路簡單、清晰,成本低。[關(guān)鍵字]AT89C52單片機電子琴演奏1引言電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器[1]。電子琴是高科技在音樂領(lǐng)域的一個代表,它是古典文化與現(xiàn)代文明的一個濃縮體。它不但可以幫助我們的音樂教師進行傳統(tǒng)音樂文化的教育教學(xué)工作,而且由于它又具備現(xiàn)代音樂,特別是電子音樂、電腦音樂的基本結(jié)構(gòu)、特征,因而使我們的教師在進行現(xiàn)代音樂、電子音樂、電腦音樂的教學(xué)時,更直接、更簡便。它在現(xiàn)代音樂扮演著重要的角色,單片機具有強大的控制功能和靈活的編程實現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一部分?;诋?dāng)前市場上的玩具市場需求量大,其中電子琴就是一個很好的應(yīng)用方面。單片機技術(shù)使我們可以利用軟硬件實現(xiàn)電子琴的功能,從而實現(xiàn)電子琴的微型化,可以用作玩具琴、音樂轉(zhuǎn)盤以及音樂童車等等。并且可以進行一定的功能擴展。單片微型計算機是大規(guī)模集成電路技術(shù)發(fā)展的產(chǎn)物,屬第四代電子計算機,它具有高性能、高速度、體積小、價格低廉、穩(wěn)定可靠、應(yīng)用廣泛的特點。它的應(yīng)用必定導(dǎo)致傳統(tǒng)的控制技術(shù)從根本上發(fā)生變革。因此,單片機的開發(fā)應(yīng)用已成為高科技和工程領(lǐng)域的一項重大課題。本文主要對使用單片機設(shè)計微型電子琴進行了分析,并介紹了基于單片機電子琴統(tǒng)硬件[2]組成。利用單片機產(chǎn)生不同頻率來獲得我們要求的音階,最終可隨意彈奏想要表達的音樂。并且本文分別從原理圖,主要芯片,各模塊原理及各模塊的程序的調(diào)試來詳細(xì)闡述。2設(shè)計要求本設(shè)計的主要內(nèi)容是用AT89C52單片機[3]為核心控制元件,設(shè)計一個微型電子琴。以單片機作為主控核心,與鍵盤、揚聲器等模塊組成核心主控制模塊,實現(xiàn)以下功能:<1>設(shè)計一個〔4×4的鍵盤[4],并將16個鍵設(shè)計成兩個八度的音階對應(yīng)的16個琴鍵,可以進行彈奏表演;<2>演奏的同時數(shù)碼管會以數(shù)字顯示當(dāng)前按鍵對應(yīng)的音符;<3>有音樂存儲功能,能自動演奏歌曲。演奏時可選擇鍵盤輸入樂曲,自己存入的樂曲或隨機存儲的樂曲。按播放鍵能播放5首歌曲,第一首歌曲播放結(jié)束,再按播放鍵播放下一首歌曲。<4>發(fā)光二極管會指示當(dāng)前按鍵是否按下。3方案論證3.1控制模塊選擇方案 方案一:用可控硅制作電子琴。將220V交流電經(jīng)變壓器降壓,再經(jīng)過整流、濾波,獲得+13.5V直流電壓。將單向可控硅SCR和電阻、電容組成馳張振蕩器電路。但該設(shè)計方案制作成本高且復(fù)雜。方案二:采用AT89C51單片機進行控制,由于AT89C51不具備ISP功能,因此Atmel公司已經(jīng)停產(chǎn)在市面上已經(jīng)不常見,況且其ROM只有4K在系統(tǒng)將來升級方面沒有潛力。方案三:采用AT89C52單片機進行控制,由于其性價比高,完全滿足了本作品智能化的要求,它的內(nèi)部程序存儲空間達到8K,使軟件設(shè)計有足夠的內(nèi)部使用空間并且方便日后系統(tǒng)升級,使用方便,抗干擾性能提高[5]。鑒于上述對比與分析,本設(shè)計采用方案三3.2按鍵選擇方案傳統(tǒng)電子琴可以用鍵盤上的"1"到"A"鍵演奏從低SO到高DO等11音。該設(shè)計有16個按鈕矩陣,設(shè)計成16個音,可以實現(xiàn)音階在中音和高音之間的變換。比傳統(tǒng)音階范圍大,彈奏效果好。在單片機應(yīng)用中鍵盤用得最多的形式是獨立鍵盤及矩陣鍵盤,它們各有自己的特點,其中獨立鍵盤硬件電路簡單,而且在程序設(shè)計上也不復(fù)雜,一般用在對硬件電路要求不高的簡單電路中;矩陣鍵盤與獨立鍵盤有很大區(qū)別,首先在硬件電路上它要比獨立鍵盤復(fù)雜得多,而且在程序算法上比它要煩瑣,但它在節(jié)省端口資源上有優(yōu)勢得多,因此它更適合于多按鍵電路。本設(shè)計選擇4*4矩陣鍵盤。4設(shè)計原理 一首音樂是許多不同的音階組成的,而每個音階對應(yīng)著不同的頻率[6],這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對于單片機來產(chǎn)生不同的頻率非常方便,我們可以利用單片機的定時/計數(shù)器T0來產(chǎn)生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應(yīng)頻率關(guān)系正確即可。若要產(chǎn)生音頻脈沖,只要算出某一音頻的周期〔1/頻率,再將此周期除以2,即為半周期的時間。利用定時器計時半周期時間,每當(dāng)計時終止后就將輸出P3.0反相,然后重復(fù)計時再反相。就可在P3.0腳上得到此頻率的脈沖。

利用AT89C52的內(nèi)部定時器使其工作計數(shù)器模式〔MODE1下,改變計數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法產(chǎn)生不同音階[7],例如,頻率為523Hz,其周期T=1/523=1912μs,因此只要令計數(shù)器計時956μs/1μs=956,每計數(shù)956次時將I/O反相,就可得到中音DO〔523Hz。

計數(shù)脈沖值與頻率的關(guān)系式是:N=fi/2/fr式中,N是計數(shù)值;fi是機器頻率〔晶體振蕩器為12MHz時,其頻率為1MHz;fr是想要產(chǎn)生的頻率。其計數(shù)初值T的求法如下:T=K-N=K-fi/2/fr式中K是單片機的16位定時器最大計數(shù)值,K=216=65536;fi是機器頻率,fi=1MHz,例如低音DO〔262Hz、低音RE〔294Hz、中音DO〔523Hz、中音RE〔587Hz、高音DO〔1046Hz、高音RE〔1175Hz的計數(shù)值如下:T=65536-N=65536-fi/2/fr=65536-1000000/2/fr=65536-500000/fr低音DO的T=65536-500000/262=63628低音RE的T=65536-500000/294=63835中音DO的T=65536-500000/523=64580中音RE的T=65536-500000/587=64684高音DO的T=65536-500000/1046=65058高音RE的T=65536-500000/1175=65110了解音樂的一些基本知識后可知,產(chǎn)生不同頻率的音頻脈沖即能產(chǎn)生音樂,對于單片機而言,產(chǎn)生不同頻率有脈沖非常方便,可以利用它的定時/計數(shù)器來產(chǎn)生這樣的方波頻率信號,因此,需要弄清楚音樂中的音符和對應(yīng)的頻率,以及單片機定時計數(shù)的關(guān)系[4]。在本實驗中,單片機工作于12MHZ時鐘頻率,使用其定時/計數(shù)器T0,工作模式為1,改變計數(shù)值TH0和TL0可以產(chǎn)生不同頻率的脈沖信號,在此情況下,根據(jù)以上公式,C調(diào)的各音符頻率與計數(shù)值T的對照如下[8]表4-1音符頻率對照表音符頻率〔HZ簡譜碼〔T值音符頻率〔HZ簡譜碼〔T值低1DO26263628#4FA#74064860#1DO#27763731中5SO78464898低2RE29463835#5SO#83164934#2RE#31163928中6LA88064968低3M33064021#693264994低4FA34964103中7SI98865030#4FA#37064185高1DO104665058低5SO39264260#1DO#110965085#5SO#41564331高2RE117565110低6LA44064400#2RE#124565134#646664463高3M131865157低7SI49464524高4FA139765178中1DO52364580#4FA#148065198#1DO#55464633高5SO156865217中2RE58764684#5SO#166165235#2RE#62264732高6LA176065252中3M65964777#6186565268中4FA69864820高7SI196765283為音符建立一個數(shù)據(jù)表,單片機通過查表的方式來獲得相應(yīng)的數(shù)據(jù)。

低音0-19之間,中音在20-39之間,高音在40-59之間

TABLE1:DW64021,64103,64260,64400DW64524,64580,64684,64777DW64820,64898,64968,65030DW65058,65110,65157,65178音樂的音拍,一個節(jié)拍為單位〔C調(diào)〔如表4-2所示表4-2曲調(diào)值表曲調(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對于不同的曲調(diào)我們也可以用單片機的另外一個定時/計數(shù)器來完成。琴鍵處理程序,根據(jù)檢測得到按鍵值,查詢音律表,給計時器賦值,發(fā)出相應(yīng)頻率的聲音。對音調(diào)的控制:根據(jù)不同的按鍵,對定時器T1送入不同的初值,調(diào)節(jié)T1的溢出時間,這樣就可以輸出不同音調(diào)頻率的方波。不同音調(diào)下各個音階的定時器。在這個程序中用到了兩個定時/計數(shù)器來完成的。其中T0用來產(chǎn)生音符頻率,T1用來產(chǎn)生音拍[9]。5微型電子琴的系統(tǒng)總體原理框圖如圖5-1所示,設(shè)計出微型電子琴的系統(tǒng)總體原理框圖。數(shù)碼管顯示電路AT89C52數(shù)碼管顯示電路AT89C52發(fā)音電路4×4矩陣供電及復(fù)位電路晶振電路歌曲播放電路圖5-1微型電子琴系統(tǒng)原理框圖系統(tǒng)主要硬件電路設(shè)計6.1微型電子琴的Proteus總體設(shè)計電路圖電子琴的proteus總體仿真圖見圖6-1。按下播放鍵,發(fā)光二極管亮一下,系統(tǒng)自動播放預(yù)存在內(nèi)存中的曲子,再按一次播放下一首歌曲,按下復(fù)位鍵,系統(tǒng)復(fù)位,停止播放。按下矩陣鍵盤中的任意鍵,揚聲器發(fā)出相應(yīng)的音符。圖6-1微型電子琴的Proteus總體設(shè)計電路圖6.2單片機主機系統(tǒng)電路AT89C52單片機簡介AT89C52是美國Atmel公司生產(chǎn)的低電壓、高性能CMOS8位單片機[10],片內(nèi)含8KB的可反復(fù)檫寫的程序存儲器和12B的隨機存取數(shù)據(jù)存儲器〔RAM,器件采用Atmel公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)配置通用8位中央處理器〔CPU和Flash存儲單元,功能強大的AT89C52單片機可靈活應(yīng)用于各種控制領(lǐng)域。AT89C52單片機屬于AT89C51單片機的增強型,與Intel公司的80C52在引腳排列[11]、硬件組成、工作特點和指令系統(tǒng)等方面兼容。AT89C52引腳圖見圖6-2.圖6-2AT89C52引腳圖P3口也可作為AT89C52的一些特殊功能口,如下表所示:P3口引腳特殊功能P3.0RXD〔串行輸入口P3.1TXD〔串行輸出口P3.2〔外部中斷0P3.3〔外部中斷1P3.4T0〔定時器0外部輸入P3.5T1〔定時器1外部輸入P3.6WR<外部數(shù)據(jù)存儲器寫選通>P3.7RD〔外部數(shù)據(jù)存儲器讀先通P3口同時為閃爍編程和編程校驗接收一些控制信號。其主要功能特性:·兼容MCS51指令系統(tǒng)·8k可反復(fù)擦寫<>1000次FlashROM·32個雙向I/O口·256x8bit內(nèi)部RAM·3個16位可編程定時/計數(shù)器中斷·時鐘頻率0-24MHz·2個串行中斷·可編程UART串行通道·2個外部中斷源·共6個中斷源·2個讀寫中斷口線·3級加密位·低功耗空閑和掉電模式·軟件設(shè)置睡眠和喚醒功能時鐘頻率單片機必須在時鐘的驅(qū)動下工作。在單片機內(nèi)部有一個時鐘振蕩電路[12],只需要外接一個振蕩源就能產(chǎn)生一定的時鐘信號送到單片機內(nèi)部的各個單元,決定單片機的工作速度。外部振蕩源電路一般選用石英晶體振蕩器,此電路在加電大約延遲10mS后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率確定。電路中兩個電容C1,C2,作用有兩個:一是幫助振蕩器起振;二是對振蕩器的頻率進行微調(diào)。C1,C2的典型值為30PF。單片機在工作時,由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時鐘信號的周期稱為時鐘周期。起大小是時鐘信號頻率的倒數(shù),常用fosc表示。如時鐘頻率為12MHz,即fosc=12MHz,則時鐘周期為1/12μs。6.2.3晶振電路AT89C52單片機的定時控制功能是用時鐘電路和振蕩器完成的,而根據(jù)硬件電路的不同,連接方式分為內(nèi)部時鐘方式和外部時鐘方式。本設(shè)計中采用內(nèi)部時鐘方式。 單片機內(nèi)部有一個反相放大器XTAL1、XTAL2分別為反相放大器的輸入端和輸出端,外接定時反饋元件組成振蕩器〔內(nèi)部時鐘方式,產(chǎn)生時鐘送至單片機內(nèi)部各元件。時鐘頻率越高,單片機控制器的控制節(jié)拍就越快,運算速度也就越快。 一般來說單片機內(nèi)部有一個帶反饋的線性反相放大器,外界晶振〔或接陶瓷振蕩器和電容就可組成振蕩器,如圖6-2所示。加電以后延時一段時間〔約10ms振蕩器產(chǎn)生時鐘,不受軟件控制,圖中X1為晶振,震蕩產(chǎn)生的時鐘頻率主要由Y1確定。電容C1,C2的作用有兩個:一是幫助振蕩器起振,二是對振蕩器的頻率起微調(diào)作用,典型值為30pF。圖6-3晶振電路6.2.4按鍵播放電路圖6-4按鍵播放電路6.2.5鍵盤掃描在單片機應(yīng)用中鍵盤用得最多的形式是獨立鍵盤及矩陣鍵盤,如圖6-5,圖6-6所示。圖6-5獨立鍵盤圖6-6矩陣鍵盤它們各有自己的特點,其中獨立鍵盤硬件電路簡單,而且在程序設(shè)計上也不復(fù)雜,一般用在對硬件電路要求不高的簡單電路中;矩陣鍵盤與獨立鍵盤有很大區(qū)別,首先在硬件電路上它要比獨立鍵盤復(fù)雜得多,而且在程序算法上比它要煩瑣,但它在節(jié)省端口資源上有優(yōu)勢得多,因此它更適合于多按鍵電路。本次課程設(shè)計,我采用矩陣式鍵盤電路,這樣可以大大的節(jié)省單片機I/O的開銷。鍵盤電路見圖6-7圖6-7鍵盤電路在按鍵過程中常產(chǎn)生"毛刺"現(xiàn)象[13],如圖6-8所示,要消除"毛刺"現(xiàn)象,這里采用最常用的方法,即延時重復(fù)掃描法,延時法的原理為:因為"毛刺"脈沖一般持續(xù)時間短,約為幾ms,而我們按鍵的時間一般遠(yuǎn)遠(yuǎn)大于這個時間,所以當(dāng)單片機檢測到有按鍵動靜后,再延時一段時間<10ms~20ms>后再判斷此電平是否保持原狀態(tài),如果是則為有效按鍵,否則無效。圖6-8"毛刺"現(xiàn)象6.2.6發(fā)音電路電子琴發(fā)音電路見圖6-9。圖6-9電子琴發(fā)音電路6.2.7供電及復(fù)位電路電子琴的供電電路和復(fù)位電路[14]見圖6-10。圖6-10電子琴供電及復(fù)位電路6.2.8LED數(shù)碼管顯示電路本次畢業(yè)設(shè)計的顯示電路采用LED數(shù)碼管顯示,LED〔Light-EmittingDiode是一種外加電壓從而渡過電流并發(fā)出可見光的器件。LED是屬于電流控制器件,使用時必須加限流電阻[15]。LED有單個LED和八段LED之分,也有共陰和共陽兩種。常用的七段顯示器的結(jié)構(gòu)如圖下圖所示。發(fā)光二極管的陽極連在一起的稱為共陽極顯示器<如圖b所示>,陰極連在一起的稱為共陰極顯示器<如圖c所示>。1位顯示器由八個發(fā)光二極管組成,其中七個發(fā)光二極管a~g控制七個筆畫〔段的亮或暗,另一個控制一個小數(shù)點的亮和暗,這種筆畫式的七段顯示器能顯示的字符較少,字符的開頭有些失真,但控制簡單,使用方便。此外,要畫出電路圖,首先還要搞清楚他的引腳圖的分布,在了解了正確的引腳圖后才能進行正確的字型段碼編碼。才能顯示出正確的數(shù)字來。圖6-11數(shù)碼管引腳選用的是P0口作為輸出口時要接上拉電阻7系統(tǒng)軟件設(shè)計7.1系統(tǒng)軟件總體方案〔1鍵盤掃描程序:檢測是否有鍵按下,有鍵按下則記錄按下鍵的鍵值,并跳轉(zhuǎn)至功能轉(zhuǎn)移程序;無鍵按下,則返回鍵盤掃描程序繼續(xù)檢測〔2功能轉(zhuǎn)移程序:對檢測到得按鍵值進行判斷,是琴鍵則跳轉(zhuǎn)至琴鍵處理程序,是功能鍵則跳轉(zhuǎn)至相應(yīng)的功能程序,我們設(shè)計的功能程序有兩種,即音色調(diào)節(jié)功能和自動播放樂曲功能〔3琴鍵處理程序:根據(jù)檢測到得按鍵值,查詢音律表,給計時器賦值,使發(fā)出相應(yīng)頻率的聲音〔4自動播放歌曲程序:檢測到按鍵按下的是自動播放歌曲功能鍵后執(zhí)行該程序,電子琴會自動播放事先已經(jīng)存放好的歌曲,歌曲播放完畢之后自動返回至鍵盤掃描程序,繼續(xù)等待是否有鍵按下7.2系統(tǒng)軟件簡易流程圖開始開始鍵盤掃描程序T0初始化并開中斷允許T0中斷T1初始化并開中斷允許T1中斷鍵盤掃描程序T0初始化并開中斷允許T0中斷T1初始化并開中斷允許T1中斷有鍵按下否有鍵按下否否延時去抖動是延時去抖動識別按鍵功能識別按鍵功能播放鍵播放鍵是否彈奏鍵是否彈奏鍵是否根據(jù)按鍵功能裝入相應(yīng)音符值到T0取相應(yīng)的音符碼裝入T1根據(jù)按鍵功能裝入相應(yīng)音符值到T0取相應(yīng)的音符碼裝入T1啟動T0啟動T1啟動T0啟動T1停止T0工作按鍵釋放成功否停止T1工作按鍵釋放成功否停止T0工作按鍵釋放成功否停止T1工作按鍵釋放成功否按鍵子程序流程圖如下KEY1鍵按下KEY1鍵按下KEY2鍵按下KEY3鍵按下KEY4鍵按下KEY5鍵按下KEY6鍵按下KEY7鍵按下數(shù)碼管顯示1,并播放Do的中音數(shù)碼管顯示2,并播放Re的中音數(shù)碼管顯示3,并播放Mi的中音KEY8鍵按下數(shù)碼管顯示4,并播放Fa的中音數(shù)碼管顯示6,并播放La的中音數(shù)碼管顯示7,并播放Si的中音數(shù)碼管顯示1播放Do的高階中音KEY15鍵按下KEY16鍵按下KEY10鍵按下KEY12鍵按下KEY11鍵按下KEY13鍵按下KEY9鍵按下KEY14鍵按下數(shù)碼管顯示5,并播放So的中音數(shù)碼管顯示1并播放Do的高音數(shù)碼管顯示2并播放Re的高音數(shù)碼管顯示3并播放Mi的高音數(shù)碼管顯示4并播放Fa的高音數(shù)碼管顯示5并播放So的高音數(shù)碼管顯示6并播放La的高音數(shù)碼管顯示7并播放Si的高音數(shù)碼管1并播放Do的高階高音彈奏程序流程圖彈奏子程序彈奏子程序開中斷并允許中斷設(shè)定定時器工作方式開中斷并允許中斷設(shè)定定時器工作方式取鍵值取鍵值根據(jù)鍵值查音律表根據(jù)鍵值查音律表給定時器T0賦值給定時器T0賦值開始計時開始計時進入中斷進入中斷CPLP3.0P3.0CPLP3.0P3.0退出中斷退出中斷延時延時返回鍵盤掃描程序返回鍵盤掃描程序自動播放歌曲程序流程圖自動播放音樂程序自動播放音樂程序A<<0,DPTR<<歌譜地址A<<0,DPTR<<歌譜地址開中斷,設(shè)定定時器T1工作模式開中斷,設(shè)定定時器T1工作模式取簡譜碼取簡譜碼取該音符的節(jié)拍碼取該音符的節(jié)拍碼STOPA=0YSTOPA=0N休止符返回鍵盤掃描A=0FFHY休止符返回鍵盤掃描A=0FFHN查音律表,給定時器賦值查音律表,給定時器賦值INCDPTRINCDPTR開始計時開始計時進入中斷進入中斷CPL3.0CPL3.0退出中斷退出中斷延時延時7.3部分設(shè)計源程序7.3.1歌曲播放子程序;===歌曲播放子程序===START0:mov30H,#SONG0;取簡譜碼指針<第1首>next:mova,30hmovdptr,#tab1movca,a+dptr;至相關(guān)頁碼,高4位為音符的高低movr2,a;低4位為音符的節(jié)拍jzend0;檢查簡譜碼是否已結(jié)束<有無00?>anla,#0fh;取節(jié)拍<低4位>movr5,a;存入r5,節(jié)拍的時間mova,r2swapaanla,#0fh;取音頻值<高4位>jnzsing;是否為0,是0則不發(fā)音clrTR1;開始,則不發(fā)音jmpd1sing:deca;因0不列入mov22h,a;存入<22h>rla;乘2movdptr,#tab1movca,a+dptr;至tab1取碼,取t的值movth1,a;取到的高位字節(jié)存入th1mov21h,a;取到的高位字節(jié)存入<21h>mova,22h;再載入取到的音符碼rla;乘2inca;加1movca,a+dptr;至table取相對的低位字節(jié)計數(shù)值movtl1,a;取到的低位字節(jié)存入tl0mov20h,a;取到的低位字節(jié)存入<20h>setbTR1;啟動TIMER0d1:calldelayinc30h;取簡譜碼指針加1jmpnextend0:clrTR1;停止TIMER0mova,31h;載入計次指針xrla,#00h;是否按第1次?jnzend1;不是則跳至end1jbKEY,$;按第2次?calldelay1;消除抖動jnbKEY,$;放開否?inc31h;計次地址<31h>加1MOV30h,#song1;第2首歌指針jmpnext7.3.2延時程序DELY10MS:MOVR6,#10D10:MOVR7,#248DJNZR7,$DJNZR6,D10RET7.3.3音符參數(shù)表;====音符參數(shù)表===TABLE:DB06H,5BH,4FH,66H,6DH,7DH,07H,06HDB06H,5BH,4FH,66H,6DH,7DH,07H,06H8系統(tǒng)調(diào)試與測試結(jié)果分析8.1系統(tǒng)調(diào)試在系統(tǒng)設(shè)計中采用模塊設(shè)計法,所以方便對各電路模塊功能進行逐級測試:中心控制模塊的調(diào)試,音樂播放模塊的調(diào)試,按鍵控制模塊的調(diào)試等,最后將各模塊組合后進行整體測試。首先對各模塊的功能進行調(diào)試,主要調(diào)試各模塊能否實現(xiàn)指定的功能。然后通過WAVE6000軟件對編好的程序進行調(diào)試,檢查語法錯誤。最后將調(diào)試好的軟件程序?qū)氲接布K中,調(diào)試系統(tǒng)實現(xiàn)的功能。調(diào)試主要方法和技巧:軟件調(diào)試和硬件調(diào)試8.1.1系統(tǒng)軟件調(diào)試通常一個調(diào)試程序應(yīng)該具備至少四種性能[16]:跟蹤、斷點、查看變量、更改數(shù)值。整個程序是一個主程序調(diào)用各個子程序?qū)崿F(xiàn)功能的過程,要使主程序和整個程序都能平穩(wěn)運行,各個模塊的子程序的正確與平穩(wěn)運行必不可少,所以在軟件調(diào)試的最初階段就是把各個子程序模塊進行分別調(diào)試。8.1.2系統(tǒng)硬件調(diào)試硬件調(diào)試主要是針對單片機部分進行調(diào)試。在上電前,先確保電路中不在斷路或短路情況,這一工作是整個調(diào)試工作的第一步,也是非常重要的一個步驟。在這部分調(diào)試中主要使用的工具是萬用表,用來完成檢測電路中是否存在斷路或者短路情況等。注意焊點之間,確保焊點沒有短接在一起,同時注意焊點的美觀,確保沒有開路以及短路的現(xiàn)象出現(xiàn)。在確保硬件電路正常,無異常情況<斷路或短路>方可上電調(diào)試,上電調(diào)試的目的是檢驗電路是否接錯,同時還要檢驗原理是否正確,在本次設(shè)計中,上電調(diào)試主要鍵盤單片機控制部分、數(shù)碼管點亮部分、和音頻轉(zhuǎn)換電路硬件調(diào)試。<1>、數(shù)碼管LED電路調(diào)試:接通電源,隨機按下按鈕可以看到數(shù)碼管顯示數(shù)字。<2>、鍵盤單片機控制部分調(diào)試:上電后,隨機按動鍵盤可以發(fā)現(xiàn)各個按鍵對應(yīng)的音正確。<3>、按鍵播放電路調(diào)試:按下播放按鍵能彈唱歌曲,唱完一首之后再按一下播放按鍵彈奏下一首歌曲。<4>、復(fù)位電路調(diào)試:按一下復(fù)位鍵能完成復(fù)位功能。硬件實物圖8.2測試結(jié)果及心得測試結(jié)果通過各方面努力,本次畢業(yè)設(shè)計任務(wù)完成,系統(tǒng)部分功能已實現(xiàn)??梢噪S意演奏喜歡的曲子,并可以顯示在數(shù)碼管上,可以隨意彈奏16個音符,可以播放5首歌曲?;具_到預(yù)定的效果。畢業(yè)設(shè)計是本科學(xué)習(xí)階段一次非常難得的理論與實踐相結(jié)合的機會,通過這次比較系統(tǒng)的項目設(shè)計提高了我運用所學(xué)的專業(yè)基礎(chǔ)知識來解決面臨實際問題的能力,同時也提高了我查閱各種文獻資料、設(shè)計手冊、設(shè)計規(guī)范以及軟件編程的水平。8.2.2本次設(shè)計的心得體會從上一學(xué)期開始我們就在準(zhǔn)備選題,收集資料,這些都是不能馬虎的,要慎重。這一學(xué)期來我們就交了開題報告。做完這次畢業(yè)設(shè)計后我有種如釋重負(fù)的感覺,收獲很多,沒做之前想得太過簡單,以為只要把資料收集好就萬事俱備了,具體操作時才知道自己錯了,只有想法猶如紙上談兵,根本解決不了實際問題。想象和現(xiàn)實相差太遠(yuǎn),做事不能太盲目,要深思熟慮。畢業(yè)設(shè)計不僅是對所學(xué)知識的一種檢驗,而且也是對自己能力的一種提高。通過這次畢業(yè)設(shè)計使我明白了自己原來知識還比較欠缺,自己要學(xué)習(xí)的東西還太多。這次設(shè)計從軟件方面來講不是很難,程序相對長一點,但都是書本上所學(xué)的知識,主要是中端及其服務(wù)程序的編寫。在protues上仿真,則起到很好的效果,因為元器件都是理想狀態(tài)的,但做出實物來卻不是那么簡單。經(jīng)過多次調(diào)試、修改才得以出結(jié)果。在設(shè)計過程中,通過查閱大量相關(guān)資料,與同學(xué)交流經(jīng)驗,并向老師請教等方式,使自己學(xué)到了不少知識:首先在畢業(yè)設(shè)計剛開始的調(diào)研階段,我學(xué)會了怎么通過各種方式查詢相關(guān)的資料。通過對這些資料的學(xué)習(xí),我大致了解了單片機的發(fā)展現(xiàn)狀以及未來的發(fā)展趨勢,認(rèn)識到目前單片機方面的各種各樣的發(fā)展。9結(jié)束語經(jīng)過兩個月的查資料、整理材料、做實驗,今天終于可以順利的完成畢業(yè)設(shè)計了,自己想想求學(xué)期間的點滴歷歷涌上心頭,時光匆匆飛逝,四年的努力與付出,隨著論文的完成,終于讓我在大學(xué)的生活,得以劃下了完美的句點。論文得以完成,要感謝的人實在太多了,首先要感謝我的指導(dǎo)老師李老師,因為論文是在李老師的悉心指導(dǎo)下完成的。本論文從選題到完成,每一步都是在李老師的指導(dǎo)下完成的,傾注了李老師大量的心血。一開始選題時李老師就給了我們很多建議,并讓我們提早為這次畢業(yè)設(shè)計做準(zhǔn)備。在提交開題報告時李老師認(rèn)真負(fù)責(zé)的給我們審查,在做軟件和硬件時也時時刻刻了解我們的進展情況。在此,謹(jǐn)向李老師表示崇高的敬意和衷心的感謝!謝謝李老師在我整個畢業(yè)設(shè)計過程中給與我的極大地幫助。論文的順利完成,離不開其它各位老師、同學(xué)和朋友的關(guān)心和幫助。另外,要感謝在大學(xué)期間所有傳授我知識的老師,是你們的悉心教導(dǎo)使我有了良好的專業(yè)課知識,這也是論文得以完成的基礎(chǔ)。感謝所有給我?guī)椭睦蠋熀屯瑢W(xué),謝謝你們![參考文獻][1]趙鑫,蔣亮,齊兆群等.數(shù)字電路設(shè)計[M].北京機械工業(yè)出版社,20XX6月第一版.[2]蘇家健、曹柏榮、汪志鋒.單片機原理及應(yīng)用技術(shù)[M].高等教育出版社[3][美]AshishWilfredMe

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論