




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 本科生畢業(yè)論文設(shè)計(jì)系院物理與電子信息科學(xué)系 專業(yè) 電子信息工程 論文題目基于單片機(jī)的微型電子琴設(shè)計(jì)學(xué)生姓名 指導(dǎo)教師 班 級(jí) 07級(jí)電信2班 學(xué) 號(hào) 完成日期:2021 年 11 月基于單片機(jī)的微型電子琴設(shè)計(jì) XXX物理與電子信息工程學(xué)院 電子信息工程 摘要電子琴的設(shè)計(jì)以AT89C52單片機(jī)為核心控制元件,與鍵盤、揚(yáng)聲器等模塊組成核心主控制模塊,通過(guò)制作硬件電路和軟件的設(shè)計(jì)編寫,然后進(jìn)行軟硬件的調(diào)試運(yùn)行,最終到達(dá)設(shè)計(jì)電路的樂(lè)器演奏、點(diǎn)歌、存儲(chǔ)及顯示功能。設(shè)計(jì)中應(yīng)用中斷系統(tǒng)和定時(shí)/計(jì)數(shù)原理控制演奏器發(fā)聲,對(duì)音樂(lè)發(fā)生所必須確定的音符和節(jié)拍分別用程序語(yǔ)言實(shí)現(xiàn)。特點(diǎn)是設(shè)計(jì)思路簡(jiǎn)單、清晰,本錢低。 關(guān)
2、鍵字 AT89C52單片機(jī) 電子琴 演奏1 引言電子琴是現(xiàn)代電子科技與音樂(lè)結(jié)合的產(chǎn)物,是一種新型的鍵盤樂(lè)器1。電子琴是高科技在音樂(lè)領(lǐng)域的一個(gè)代表,它是古典文化與現(xiàn)代文明的一個(gè)濃縮體。它不但可以幫助我們的音樂(lè)教師進(jìn)行傳統(tǒng)音樂(lè)文化的教育教學(xué)工作,而且由于它又具備現(xiàn)代音樂(lè),特別是電子音樂(lè)、電腦音樂(lè)的根本結(jié)構(gòu)、特征,因而使我們的教師在進(jìn)行現(xiàn)代音樂(lè)、電子音樂(lè)、電腦音樂(lè)的教學(xué)時(shí),更直接、更簡(jiǎn)便。它在現(xiàn)代音樂(lè)扮演著重要的角色,單片機(jī)具有強(qiáng)大的控制功能和靈活的編程實(shí)現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一局部?;诋?dāng)前市場(chǎng)上的玩具市場(chǎng)需求量大,其中電子琴就是一個(gè)很好的應(yīng)用方面。單片機(jī)技術(shù)使我們可以
3、利用軟硬件實(shí)現(xiàn)電子琴的功能,從而實(shí)現(xiàn)電子琴的微型化,可以用作玩具琴、音樂(lè)轉(zhuǎn)盤以及音樂(lè)童車等等。并且可以進(jìn)行一定的功能擴(kuò)展。單片微型計(jì)算機(jī)是大規(guī)模集成電路技術(shù)開展的產(chǎn)物,屬第四代電子計(jì)算機(jī),它具有高性能、高速度、體積小、價(jià)格低廉、穩(wěn)定可靠、應(yīng)用廣泛的特點(diǎn)。它的應(yīng)用必定導(dǎo)致傳統(tǒng)的控制技術(shù)從根本上發(fā)生變革。因此,單片機(jī)的開發(fā)應(yīng)用已成為高科技和工程領(lǐng)域的一項(xiàng)重大課題。本文主要對(duì)使用單片機(jī)設(shè)計(jì)微型電子琴進(jìn)行了分析,并介紹了基于單片機(jī)電子琴統(tǒng)硬件2組成。利用單片機(jī)產(chǎn)生不同頻率來(lái)獲得我們要求的音階,最終可隨意彈奏想要表達(dá)的音樂(lè)。并且本文分別從原理圖,主要芯片,各模塊原理及各模塊的程序的調(diào)試來(lái)詳細(xì)闡述。2 設(shè)
4、計(jì)要求本設(shè)計(jì)的主要內(nèi)容是用AT89C52單片機(jī)3為核心控制元件,設(shè)計(jì)一個(gè)微型電子琴。以單片機(jī)作為主控核心,與鍵盤、揚(yáng)聲器等模塊組成核心主控制模塊,實(shí)現(xiàn)以下功能:(1) 設(shè)計(jì)一個(gè)44的鍵盤4,并將16個(gè)鍵設(shè)計(jì)成兩個(gè)八度的音階對(duì)應(yīng)的16個(gè)琴鍵,可以進(jìn)行彈奏表演;(2) 演奏的同時(shí)數(shù)碼管會(huì)以數(shù)字顯示當(dāng)前按鍵對(duì)應(yīng)的音符;(3) 有音樂(lè)存儲(chǔ)功能,能自動(dòng)演奏歌曲。演奏時(shí)可選擇鍵盤輸入樂(lè)曲,自己存入的樂(lè)曲或隨機(jī)存儲(chǔ)的樂(lè)曲。按播放鍵能播放5首歌曲,第一首歌曲播放結(jié)束,再按播放鍵播放下一首歌曲。(4) 發(fā)光二極管會(huì)指示當(dāng)前按鍵是否按下。3 方案論證3.1 控制模塊選擇方案方案一:用可控硅制作電子琴。將220V交
5、流電經(jīng)變壓器降壓,再經(jīng)過(guò)整流、濾波,獲得+13.5V直流電壓。將單向可控硅SCR和電阻、電容組成馳張振蕩器電路。但該設(shè)計(jì)方案制作本錢高且復(fù)雜。方案二: 采用AT89C51單片機(jī)進(jìn)行控制,由于AT89C51不具備ISP功能,因此Atmel公司已經(jīng)停產(chǎn)在市面上已經(jīng)不常見,況且其ROM只有4K在系統(tǒng)將來(lái)升級(jí)方面沒(méi)有潛力。方案三:采用AT89C52單片機(jī)進(jìn)行控制,由于其性價(jià)比高,完全滿足了本作品智能化的要求,它的內(nèi)部程序存儲(chǔ)空間到達(dá)8K,使軟件設(shè)計(jì)有足夠的內(nèi)部使用空間并且方便日后系統(tǒng)升級(jí),使用方便,抗干擾性能提高5。 鑒于上述對(duì)比與分析,本設(shè)計(jì)采用方案三 3.2 按鍵選擇方案?jìng)鹘y(tǒng)電子琴可以用鍵盤上的“
6、1到“A鍵演奏從低SO到高DO等11音。該設(shè)計(jì)有16個(gè)按鈕矩陣,設(shè)計(jì)成16個(gè)音,可以實(shí)現(xiàn)音階在中音和高音之間的變換。比傳統(tǒng)音階范圍大,彈奏效果好。在單片機(jī)應(yīng)用中鍵盤用得最多的形式是獨(dú)立鍵盤及矩陣鍵盤,它們各有自己的特點(diǎn),其中獨(dú)立鍵盤硬件電路簡(jiǎn)單,而且在程序設(shè)計(jì)上也不復(fù)雜,一般用在對(duì)硬件電路要求不高的簡(jiǎn)單電路中;矩陣鍵盤與獨(dú)立鍵盤有很大區(qū)別,首先在硬件電路上它要比獨(dú)立鍵盤復(fù)雜得多,而且在程序算法上比它要煩瑣,但它在節(jié)省端口資源上有優(yōu)勢(shì)得多,因此它更適合于多按鍵電路。本設(shè)計(jì)選擇4*4矩陣鍵盤。4 設(shè)計(jì)原理一首音樂(lè)是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率6,這樣我們就可以利用不同的頻率的組
7、合,即可構(gòu)成我們所想要的音樂(lè)了,當(dāng)然對(duì)于單片機(jī)來(lái)產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來(lái)產(chǎn)生這樣方波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系正確即可。假設(shè)要產(chǎn)生音頻脈沖,只要算出某一音頻的周期1/頻率,再將此周期除以2,即為半周期的時(shí)間。利用定時(shí)器計(jì)時(shí)半周期時(shí)間,每當(dāng)計(jì)時(shí)終止后就將輸出反相,然后重復(fù)計(jì)時(shí)再反相。就可在P3.0腳上得到此頻率的脈沖。 利用AT89C52的內(nèi)部定時(shí)器使其工作計(jì)數(shù)器模式MODE1下,改變計(jì)數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法產(chǎn)生不同音階7,例如,頻率為523Hz,其周期T1/5231912s,因此只要令計(jì)數(shù)器計(jì)時(shí)956s/1s956
8、,每計(jì)數(shù)956次時(shí)將I/O反相,就可得到中音DO523Hz。 計(jì)數(shù)脈沖值與頻率的關(guān)系式是:N=fi/2/fr 式中,N是計(jì)數(shù)值;fi是機(jī)器頻率晶體振蕩器為12MHz時(shí),其頻率為1MHz;fr是想要產(chǎn)生的頻率。其計(jì)數(shù)初值T的求法如下:TKNKfi/2/fr式中K是單片機(jī)的16位定時(shí)器最大計(jì)數(shù)值,K216 =65536;fi是機(jī)器頻率,fi1MHz,例如低音DO262Hz、低音RE294Hz、中音DO523Hz、中音RE587Hz、高音DO1046Hz、高音RE1175Hz的計(jì)數(shù)值如下:T65536N65536fi/2/fr655361000000/2/fr65536500000/fr低音DO的T
9、65536500000/26263628低音RE的T65536500000/29463835中音DO的T65536500000/52364580中音RE的T65536500000/58764684高音DO的T65536500000/104665058高音RE的T65536500000/117565110了解音樂(lè)的一些根本知識(shí)后可知,產(chǎn)生不同頻率的音頻脈沖即能產(chǎn)生音樂(lè),對(duì)于單片機(jī)而言,產(chǎn)生不同頻率有脈沖非常方便,可以利用它的定時(shí)/計(jì)數(shù)器來(lái)產(chǎn)生這樣的方波頻率信號(hào),因此,需要弄清楚音樂(lè)中的音符和對(duì)應(yīng)的頻率,以及單片機(jī)定時(shí)計(jì)數(shù)的關(guān)系4。在本實(shí)驗(yàn)中,單片機(jī)工作于12MHZ時(shí)鐘頻率,使用其定時(shí)/計(jì)數(shù)器T0
10、,工作模式為1,改變計(jì)數(shù)值TH0和TL0可以產(chǎn)生不同頻率的脈沖信號(hào),在此情況下,根據(jù)以上公式,C調(diào)的各音符頻率與計(jì)數(shù)值T的對(duì)照如下8表4-1 音符頻率對(duì)照表音符頻率HZ簡(jiǎn)譜碼T值音符頻率HZ簡(jiǎn)譜碼T值低1DO26263628# 4 FA#74064860#1DO#27763731中 5 SO78464898低2RE29463835# 5 SO#83164934#2 RE#31163928中 6 LA88064968低 3 M33064021# 693264994低 4 FA34964103中 7 SI98865030# 4 FA#37064185高 1 DO104665058低 5 SO392
11、64260# 1 DO#110965085# 5 SO#41564331高 2 RE117565110低 6 LA44064400# 2 RE#124565134# 646664463高 3 M131865157低 7 SI49464524高 4 FA139765178中 1 DO52364580# 4 FA#148065198# 1 DO#55464633高 5 SO156865217中 2 RE58764684# 5 SO#166165235# 2 RE#62264732高 6 LA176065252中 3 M65964777# 6186565268中 4 FA69864820高 7 SI
12、196765283為音符建立一個(gè)數(shù)據(jù)表,單片機(jī)通過(guò)查表的方式來(lái)獲得相應(yīng)的數(shù)據(jù)。 低音019之間,中音在2039之間,高音在4059之間TABLE1: DW 64021,64103,64260,64400 DW 64524,64580,64684,64777 DW 64820,64898,64968,65030 DW 65058,65110,65157,65178音樂(lè)的音拍,一個(gè)節(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對(duì)于不同的曲調(diào)我們也可以用單片機(jī)的另外
13、一個(gè)定時(shí)/計(jì)數(shù)器來(lái)完成。琴鍵處理程序,根據(jù)檢測(cè)得到按鍵值,查詢音律表,給計(jì)時(shí)器賦值,發(fā)出相應(yīng)頻率的聲音。對(duì)音調(diào)的控制:根據(jù)不同的按鍵,對(duì)定時(shí)器T1送入不同的初值,調(diào)節(jié)T1的溢出時(shí)間,這樣就可以輸出不同音調(diào)頻率的方波。不同音調(diào)下各個(gè)音階的定時(shí)器。在這個(gè)程序中用到了兩個(gè)定時(shí)/計(jì)數(shù)器來(lái)完成的。其中T0用來(lái)產(chǎn)生音符頻率,T1用來(lái)產(chǎn)生音拍9。5 微型電子琴的系統(tǒng)總體原理框圖 如圖5-1所示,設(shè)計(jì)出微型電子琴的系統(tǒng)總體原理框圖。數(shù)碼管顯示電路AT89C52發(fā)音電路44矩陣供電及復(fù)位電路晶振電路歌曲播放電路 圖5-1微型電子琴系統(tǒng)原理框圖系統(tǒng)主要硬件電路設(shè)計(jì) 微型電子琴的Proteus總體設(shè)計(jì)電路圖 電子琴
14、的proteus總體仿真圖見圖6-1。按下播放鍵,發(fā)光二極管亮一下,系統(tǒng)自動(dòng)播放預(yù)存在內(nèi)存中的曲子,再按一次播放下一首歌曲,按下復(fù)位鍵,系統(tǒng)復(fù)位,停止播放。按下矩陣鍵盤中的任意鍵,揚(yáng)聲器發(fā)出相應(yīng)的音符。圖6-1 微型電子琴的Proteus總體設(shè)計(jì)電路圖6.2單片機(jī)主機(jī)系統(tǒng)電路6. AT89C52單片機(jī)簡(jiǎn)介AT89C52是美國(guó)Atmel公司生產(chǎn)的低電壓、高性能CMOS 8位單片機(jī)10,片內(nèi)含8KB的可反復(fù)檫寫的程序存儲(chǔ)器和12B的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器RAM,器件采用Atmel公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)配置通用8位中央處理器CPU和Flash存儲(chǔ)單元,功能
15、強(qiáng)大的AT89C52單片機(jī)可靈活應(yīng)用于各種控制領(lǐng)域。AT89C52單片機(jī)屬于AT89C51單片機(jī)的增強(qiáng)型,與Intel公司的80C52在引腳排列11、硬件組成、工作特點(diǎn)和指令系統(tǒng)等方面兼容。AT89C52引腳圖見圖6-2.圖6-2AT89C52引腳圖P3口也可作為AT89C52的一些特殊功能口,如下表所示:P3口引腳特殊功能RXD串行輸入口TXD串行輸出口外部中斷0外部中斷1T0定時(shí)器0外部輸入T1定時(shí)器1外部輸入WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)RD外部數(shù)據(jù)存儲(chǔ)器讀先通P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。其主要功能特性: 兼容MCS51指令系統(tǒng) 8k可反復(fù)擦寫(1000次Flash R
16、OM 32個(gè)雙向I/O口 256x8bit內(nèi)部RAM 3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷 時(shí)鐘頻率0-24MHz 2個(gè)串行中斷 可編程UART串行通道 2個(gè)外部中斷源 共6個(gè)中斷源 2個(gè)讀寫中斷口線 3級(jí)加密位 低功耗空閑和掉電模式 軟件設(shè)置睡眠和喚醒功能 6.2.2時(shí)鐘頻率 單片機(jī)必須在時(shí)鐘的驅(qū)動(dòng)下工作。在單片機(jī)內(nèi)部有一個(gè)時(shí)鐘振蕩電路12,只需要外接一個(gè)振蕩源就能產(chǎn)生一定的時(shí)鐘信號(hào)送到單片機(jī)內(nèi)部的各個(gè)單元,決定單片機(jī)的工作速度。外部振蕩源電路一般選用石英晶體振蕩器,此電路在加電大約延遲10mS后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時(shí)鐘信號(hào),其振蕩頻率主要由石英晶振的頻率確定。
17、電路中兩個(gè)電容C1,C2,作用有兩個(gè):一是幫助振蕩器起振;二是對(duì)振蕩器的頻率進(jìn)行微調(diào)。C1,C2的典型值為30PF。 單片機(jī)在工作時(shí),由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時(shí)鐘信號(hào)的周期稱為時(shí)鐘周期。起大小是時(shí)鐘信號(hào)頻率的倒數(shù),常用fosc表示。如時(shí)鐘頻率為12MHz,即fosc=12MHz,那么時(shí)鐘周期為1/12s。6.2.3 晶振電路AT89C52單片機(jī)的定時(shí)控制功能是用時(shí)鐘電路和振蕩器完成的,而根據(jù)硬件電路的不同,連接方式分為內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式。本設(shè)計(jì)中采用內(nèi)部時(shí)鐘方式。單片機(jī)內(nèi)部有一個(gè)反相放大器XTAL1、XTAL2分別為反相放大器的輸入端和輸出端,外接定時(shí)反饋
18、元件組成振蕩器內(nèi)部時(shí)鐘方式,產(chǎn)生時(shí)鐘送至單片機(jī)內(nèi)部各元件。時(shí)鐘頻率越高,單片機(jī)控制器的控制節(jié)拍就越快,運(yùn)算速度也就越快。一般來(lái)說(shuō)單片機(jī)內(nèi)部有一個(gè)帶反應(yīng)的線性反相放大器,外界晶振或接陶瓷振蕩器和電容就可組成振蕩器,如圖6-2所示。加電以后延時(shí)一段時(shí)間約10ms振蕩器產(chǎn)生時(shí)鐘,不受軟件控制,圖中X1為晶振,震蕩產(chǎn)生的時(shí)鐘頻率主要由Y1確定。電容C1,C2的作用有兩個(gè):一是幫助振蕩器起振,二是對(duì)振蕩器的頻率起微調(diào)作用,典型值為30pF。圖6-3 晶振電路6.2.4 按鍵播放電路 圖6-4按鍵播放電路6.2.5鍵盤掃描在單片機(jī)應(yīng)用中鍵盤用得最多的形式是獨(dú)立鍵盤及矩陣鍵盤,如圖6-5,圖6-6所示。圖6
19、-5獨(dú)立鍵盤圖6-6 矩陣鍵盤它們各有自己的特點(diǎn),其中獨(dú)立鍵盤硬件電路簡(jiǎn)單,而且在程序設(shè)計(jì)上也不復(fù)雜,一般用在對(duì)硬件電路要求不高的簡(jiǎn)單電路中;矩陣鍵盤與獨(dú)立鍵盤有很大區(qū)別,首先在硬件電路上它要比獨(dú)立鍵盤復(fù)雜得多,而且在程序算法上比它要煩瑣,但它在節(jié)省端口資源上有優(yōu)勢(shì)得多,因此它更適合于多按鍵電路。本次課程設(shè)計(jì),我采用矩陣式鍵盤電路,這樣可以大大的節(jié)省單片機(jī)I/O的開銷。鍵盤電路見圖6-7圖6-7 鍵盤電路在按鍵過(guò)程中常產(chǎn)生“毛刺 現(xiàn)象13,如圖6-8所示,要消除“毛刺現(xiàn)象,這里采用最常用的方法,即延時(shí)重復(fù)掃描法,延時(shí)法的原理為:因?yàn)椤懊堂}沖一般持續(xù)時(shí)間短,約為幾ms,而我們按鍵的時(shí)間一般遠(yuǎn)遠(yuǎn)
20、大于這個(gè)時(shí)間,所以當(dāng)單片機(jī)檢測(cè)到有按鍵動(dòng)靜后,再延時(shí)一段時(shí)間(10ms20ms)后再判斷此電平是否保持原狀態(tài),如果是那么為有效按鍵,否那么無(wú)效。 圖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.8 LED數(shù)碼管顯示電路本次畢業(yè)設(shè)計(jì)的顯示電路采用LED數(shù)碼管顯示,LEDLight-Emitting Diode是一種外加電壓從而渡過(guò)電流并發(fā)出可見光的器件。LED是屬于電流控制器件,使用時(shí)必須加限流電阻15。LED有單個(gè)LED和八段LED之分,也有
21、共陰和共陽(yáng)兩種。常用的七段顯示器的結(jié)構(gòu)如圖下列圖所示。發(fā)光二極管的陽(yáng)極連在一起的稱為共陽(yáng)極顯示器(如圖b所示),陰極連在一起的稱為共陰極顯示器(如圖c所示)。1位顯示器由八個(gè)發(fā)光二極管組成,其中七個(gè)發(fā)光二極管ag控制七個(gè)筆畫段的亮或暗,另一個(gè)控制一個(gè)小數(shù)點(diǎn)的亮和暗,這種筆畫式的七段顯示器能顯示的字符較少,字符的開頭有些失真,但控制簡(jiǎn)單,使用方便。此外,要畫出電路圖,首先還要搞清楚他的引腳圖的分布,在了解了正確的引腳圖后才能進(jìn)行正確的字型段碼編碼。才能顯示出正確的數(shù)字來(lái)。圖6-11 數(shù)碼管引腳選用的是P0口作為輸出口時(shí)要接上拉電阻7 系統(tǒng)軟件設(shè)計(jì)7.1系統(tǒng)軟件總體方案1鍵盤掃描程序:檢測(cè)是否有鍵
22、按下,有鍵按下那么記錄按下鍵的鍵值,并跳轉(zhuǎn)至功能轉(zhuǎn)移程序;無(wú)鍵按下,那么返回鍵盤掃描程序繼續(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è)到得按鍵值,查詢音律表,給計(jì)時(shí)器賦值,使發(fā)出相應(yīng)頻率的聲音4自動(dòng)播放歌曲程序:檢測(cè)到按鍵按下的是自動(dòng)播放歌曲功能鍵后執(zhí)行該程序,電子琴會(huì)自動(dòng)播放事先已經(jīng)存放好的歌曲,歌曲播放完畢之后自動(dòng)返回至鍵盤掃描程序,繼續(xù)等待是否有鍵按下7.2系統(tǒng)軟件簡(jiǎn)易流程圖開始鍵盤掃描程序T0初始化并開中斷允許T0中斷T1初始化并開中斷允
23、許T1中斷有鍵按下否 否延時(shí)去抖動(dòng) 是識(shí)別按鍵功能播放鍵是否彈奏鍵 是 否根據(jù)按鍵功能裝入相應(yīng)音符值到T0取相應(yīng)的音符碼裝入T1 啟動(dòng)T0啟動(dòng)T1停止T0工作按鍵釋放成功否停止T1工作按鍵釋放成功否按鍵子程序流程圖如下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鍵
24、按下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ù)鍵值查音律表給定時(shí)器T0賦值開始計(jì)時(shí)進(jìn)入中斷退出中斷延時(shí)返回鍵盤掃描程序自動(dòng)播放歌曲程序流程圖自動(dòng)播放音樂(lè)程序A 0,DPTR歌譜地址開中斷,設(shè)定定時(shí)器T1工作模式取簡(jiǎn)譜碼取該音符的節(jié)拍碼STOPA=0 Y N
25、休止符返回鍵盤掃描A=0FFH Y N查音律表,給定時(shí)器賦值 INC DPTR開始計(jì)時(shí)進(jìn)入中斷退出中斷延時(shí)7.3 局部設(shè)計(jì)源程序7.3.1歌曲播放子程序;= 歌曲播放子程序 =START0: mov 30H,# SONG0 ;取簡(jiǎn)譜碼指針(第1首)next: mov a,30h mov dptr,#tab1 movc a,a+dptr ;至相關(guān)頁(yè)碼,高4位為音符的上下 mov r2,a ;低4位為音符的節(jié)拍 jz end0 ;檢查簡(jiǎn)譜碼是否已結(jié)束(有無(wú)00?) anl a,#0fh ;取節(jié)拍(低4位) mov r5,a ;存入r5,節(jié)拍的時(shí)間 mov a,r2 swap a anl a,#0f
26、h ;取音頻值(高4位) jnz sing ;是否為0,是0那么不發(fā)音 clr TR1 ;開始,那么不發(fā)音 jmp d1sing: dec a ;因0不列入 mov 22h,a ;存入(22h) rl a ;乘2 mov dptr,#tab1 movc a,a+dptr ;至tab1取碼,取t的值 mov th1,a ;取到的高位字節(jié)存入th1 mov 21h,a ;取到的高位字節(jié)存入(21h) mov a,22h ;再載入取到的音符碼 rl a ;乘2 inc a ;加1 movc a,a+dptr ;至table取相對(duì)的低位字節(jié)計(jì)數(shù)值 mov tl1,a ;取到的低位字節(jié)存入tl0 mov
27、 20h,a ;取到的低位字節(jié)存入(20h) setb TR1 ;啟動(dòng)TIMER0d1: call delay inc 30h ;取簡(jiǎn)譜碼指針加1 jmp nextend0: clr TR1 ;停止TIMER0 mov a,31h ;載入計(jì)次指針 xrl a,#00h ;是否按第1次? jnz end1 ;不是那么跳至end1 jb KEY,$ ;按第2次? call delay1 ;消除抖動(dòng) jnb KEY,$ ;放開否? inc 31h ;計(jì)次地址(31h)加1 MOV 30h,# song1 ;第2首歌指針 jmp next7.3.2延時(shí)程序 DELY10MS: MOV R6,#10D1
28、0: MOV R7,#248 DJNZ R7,$ DJNZ R6,D10 RET7.3.3音符參數(shù)表;= 音符參數(shù)表=TABLE: DB 06H,5BH,4FH,66H,6DH,7DH,07H,06H DB 06H,5BH,4FH,66H,6DH,7DH,07H,06H8 系統(tǒng)調(diào)試與測(cè)試結(jié)果分析8.1 系統(tǒng)調(diào)試在系統(tǒng)設(shè)計(jì)中采用模塊設(shè)計(jì)法,所以方便對(duì)各電路模塊功能進(jìn)行逐級(jí)測(cè)試:中心控制模塊的調(diào)試,音樂(lè)播放模塊的調(diào)試,按鍵控制模塊的調(diào)試等,最后將各模塊組合后進(jìn)行整體測(cè)試。首先對(duì)各模塊的功能進(jìn)行調(diào)試,主要調(diào)試各模塊能否實(shí)現(xiàn)指定的功能。然后通過(guò)WAVE6000軟件對(duì)編好的程序進(jìn)行調(diào)試,檢查語(yǔ)法錯(cuò)誤。最
29、后將調(diào)試好的軟件程序?qū)氲接布K中,調(diào)試系統(tǒng)實(shí)現(xiàn)的功能。調(diào)試主要方法和技巧:軟件調(diào)試和硬件調(diào)試8.1.1系統(tǒng)軟件調(diào)試 通常一個(gè)調(diào)試程序應(yīng)該具備至少四種性能16:跟蹤、斷點(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è)子程序模塊進(jìn)行分別調(diào)試。8.1.2 系統(tǒng)硬件調(diào)試硬件調(diào)試主要是針對(duì)單片機(jī)局部進(jìn)行調(diào)試。在上電前,先確保電路中不在斷路或短路情況,這一工作是整個(gè)調(diào)試工作的第一步,也是非常重要的一個(gè)步驟。在這局部調(diào)試中主要使用的工具是萬(wàn)用表,用來(lái)完成檢測(cè)電路中是否存
30、在斷路或者短路情況等。注意焊點(diǎn)之間,確保焊點(diǎn)沒(méi)有短接在一起,同時(shí)注意焊點(diǎn)的美觀,確保沒(méi)有開路以及短路的現(xiàn)象出現(xiàn)。在確保硬件電路正常,無(wú)異常情況(斷路或短路)方可上電調(diào)試,上電調(diào)試的目的是檢驗(yàn)電路是否接錯(cuò),同時(shí)還要檢驗(yàn)原理是否正確,在本次設(shè)計(jì)中,上電調(diào)試主要鍵盤單片機(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)的音正確。(3)、按鍵播放電路調(diào)試:按下播放按鍵能彈唱歌曲,唱完一首之后再按一下播放按鍵彈奏下一首歌曲。(4)、復(fù)位電路調(diào)試:按一下復(fù)位
31、鍵能完成復(fù)位功能。硬件實(shí)物圖8.2 測(cè)試結(jié)果及心得8.2.1 測(cè)試結(jié)果通過(guò)各方面努力,本次畢業(yè)設(shè)計(jì)任務(wù)完成,系統(tǒng)局部功能已實(shí)現(xiàn)??梢噪S意演奏喜歡的曲子,并可以顯示在數(shù)碼管上,可以隨意彈奏16個(gè)音符,可以播放5首歌曲。根本到達(dá)預(yù)定的效果。畢業(yè)設(shè)計(jì)是本科學(xué)習(xí)階段一次非常難得的理論與實(shí)踐相結(jié)合的時(shí)機(jī),通過(guò)這次比較系統(tǒng)的項(xiàng)目設(shè)計(jì)提高了我運(yùn)用所學(xué)的專業(yè)基礎(chǔ)知識(shí)來(lái)解決面臨實(shí)際問(wèn)題的能力,同時(shí)也提高了我查閱各種文獻(xiàn)資料、設(shè)計(jì)手冊(cè)、設(shè)計(jì)標(biāo)準(zhǔn)以及軟件編程的水平。 本次設(shè)計(jì)的心得體會(huì)從上一學(xué)期開始我們就在準(zhǔn)備選題,收集資料,這些都是不能馬虎的,要慎重。這一學(xué)期來(lái)我們就交了開題報(bào)告。做完這次畢業(yè)設(shè)計(jì)后我有種如釋重負(fù)
32、的感覺(jué),收獲很多,沒(méi)做之前想得太過(guò)簡(jiǎn)單,以為只要把資料收集好就萬(wàn)事俱備了,具體操作時(shí)才知道自己錯(cuò)了,只有想法猶如紙上談兵,根本解決不了實(shí)際問(wèn)題。想象和現(xiàn)實(shí)相差太遠(yuǎn),做事不能太盲目,要深思熟慮。畢業(yè)設(shè)計(jì)不僅是對(duì)所學(xué)知識(shí)的一種檢驗(yàn),而且也是對(duì)自己能力的一種提高。通過(guò)這次畢業(yè)設(shè)計(jì)使我明白了自己原來(lái)知識(shí)還比擬欠缺,自己要學(xué)習(xí)的東西還太多。這次設(shè)計(jì)從軟件方面來(lái)講不是很難,程序相對(duì)長(zhǎng)一點(diǎn),但都是書本上所學(xué)的知識(shí),主要是中端及其效勞程序的編寫。在protues上仿真,那么起到很好的效果,因?yàn)樵骷际抢硐霠顟B(tài)的,但做出實(shí)物來(lái)卻不是那么簡(jiǎn)單。經(jīng)過(guò)屢次調(diào)試、修改才得以出結(jié)果。在設(shè)計(jì)過(guò)程中,通過(guò)查閱大量相關(guān)資料,
33、與同學(xué)交流經(jīng)驗(yàn),并向老師請(qǐng)教等方式,使自己學(xué)到了不少知識(shí):首先在畢業(yè)設(shè)計(jì)剛開始的調(diào)研階段,我學(xué)會(huì)了怎么通過(guò)各種方式查詢相關(guān)的資料。通過(guò)對(duì)這些資料的學(xué)習(xí),我大致了解了單片機(jī)的開展現(xiàn)狀以及未來(lái)的發(fā)展趨勢(shì),認(rèn)識(shí)到目前單片機(jī)方面的各種各樣的開展。9 結(jié) 束 語(yǔ)經(jīng)過(guò)兩個(gè)月的查資料、整理材料、做實(shí)驗(yàn),今天終于可以順利的完成畢業(yè)設(shè)計(jì)了,自己想想求學(xué)期間的點(diǎn)滴歷歷涌上心頭,時(shí)光匆匆飛逝,四年的努力與付出,隨著論文的完成,終于讓我在大學(xué)的生活,得以劃下了完美的句點(diǎn)。論文得以完成,要感謝的人實(shí)在太多了,首先要感謝我的指導(dǎo)老師李老師,因?yàn)檎撐氖窃诶罾蠋煹南ば闹笇?dǎo)下完成的。本論文從選題到完成,每一步都是在李老師的指導(dǎo)
34、下完成的,傾注了李老師大量的心血。一開始選題時(shí)李老師就給了我們很多建議,并讓我們提早為這次畢業(yè)設(shè)計(jì)做準(zhǔn)備。在提交開題報(bào)告時(shí)李老師認(rèn)真負(fù)責(zé)的給我們審查,在做軟件和硬件時(shí)也時(shí)時(shí)刻刻了解我們的進(jìn)展情況。在此,謹(jǐn)向李老師表示崇高的敬意和衷心的感謝!謝謝李老師在我整個(gè)畢業(yè)設(shè)計(jì)過(guò)程中給與我的極大地幫助。論文的順利完成,離不開其它各位老師、同學(xué)和朋友的關(guān)心和幫助。另外,要感謝在大學(xué)期間所有傳授我知識(shí)的老師,是你們的悉心教導(dǎo)使我有了良好的專業(yè)課知識(shí),這也是論文得以完成的根底。 感謝所有給我?guī)椭睦蠋熀屯瑢W(xué),謝謝你們! 參考文獻(xiàn)1計(jì)M.北京機(jī)械工業(yè)出版社,2005年6月第一版.2及應(yīng)用技術(shù)M.高等教育出版社3美Ashish Wilfred Meeta Gupta Kartik Bhatnagar著,劉永明,賀民譯. php專業(yè)工程實(shí)例開發(fā)J. 水利水電出版社,20034于海生. 微型計(jì)算機(jī)控制技術(shù)選編M.清華大學(xué)出版社,1999.5李朝青. 單片機(jī)原理及接口技術(shù)M. 北京:北京航天航
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專業(yè)土地抵押合同
- 工程建設(shè)合同協(xié)議書
- 保潔服務(wù)合同和內(nèi)容
- 在建工程抵押反擔(dān)保合同
- 擔(dān)保人合同擔(dān)保合同
- 企業(yè)軟件銷售合同
- 場(chǎng)地門面出租合同
- 人工智能在醫(yī)療影像領(lǐng)域的應(yīng)用合同
- 測(cè)繪工程部技術(shù)員聘用合同
- 湖北恩施學(xué)院《學(xué)前兒童發(fā)展科學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- JGJT 152-2019 混凝土中鋼筋檢測(cè)技術(shù)標(biāo)準(zhǔn)
- DB3212-T 1157-2024 病案庫(kù)房建設(shè)規(guī)范
- 欠款還款計(jì)劃范文
- QBT 2088-1995 硅藻土行業(yè)標(biāo)準(zhǔn)
- 數(shù)字電子技術(shù)(武漢科技大學(xué))智慧樹知到期末考試答案章節(jié)答案2024年武漢科技大學(xué)
- 《冷作工》 課件 七、扣縫制作
- 室內(nèi)設(shè)計(jì)采光分析報(bào)告
- 學(xué)習(xí)解讀2024年新制定的學(xué)位法課件
- 四川省高等教育自學(xué)考試自考畢業(yè)生登記表001匯編
- 運(yùn)河古街項(xiàng)目招商規(guī)劃方案
- 圍手術(shù)期血糖管理指南
評(píng)論
0/150
提交評(píng)論