




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、課程設(shè)計工作內(nèi)容與基本要求(設(shè)計要求、設(shè)計任務(wù)、工作計劃1設(shè)計要求 查閱資料,了解單片機控制單音喇叭發(fā)聲原理;設(shè)計基于單片機的電子音樂盒;通過按鈕可選擇不同的音樂。 創(chuàng)新設(shè)計: 1、安裝復(fù)位鍵,暫停、播放鍵; 2、有6首不同的音樂用程序編出可供選擇。2. 設(shè)計任務(wù)與要求 2.1系統(tǒng)硬件電路設(shè)計根據(jù)該系統(tǒng)設(shè)計的功能要求選擇所用元器件,設(shè)計硬件電路。要求用Proteus繪制整個系統(tǒng)電路原理圖。 2.2軟件設(shè)計根據(jù)該系統(tǒng)要求的功能進(jìn)行軟件設(shè)計,繪制整個系統(tǒng)的軟件流程圖;根據(jù)流程圖編寫程序并匯編調(diào)試通過;列出軟件清單,軟件清單要求逐條加以注釋。 2.3 Proteus仿真用Proteus對系統(tǒng)進(jìn)行仿真
2、并進(jìn)行軟硬件調(diào)試。 2.4 編寫設(shè)計說明書內(nèi)容包括任務(wù)書、設(shè)計方案分析、硬件部分設(shè)計、軟件部分設(shè)計、調(diào)試結(jié)果整理分析、設(shè)計調(diào)試的心得體會等,字?jǐn)?shù)不少于4000字;硬件部分設(shè)計要繪制整個系統(tǒng)電路原理圖,對各部分電路設(shè)計原理做出說明;軟件設(shè)計部分要繪制整個系統(tǒng)及各部分的軟件流程圖,列出程序清單,逐條加以注釋,并在各功能塊前加程序功能注釋。電子音樂盒1 設(shè)計任務(wù)和要求 . 12 總體方案設(shè)計 . 13 硬件設(shè)計 . 2 3.1 硬件電路 . 2 3.2 系統(tǒng)總框圖 . 2 3.3 器件選擇 . 2 3.4 原理圖設(shè)計 . 3 3.5 原理說明 . 64 軟件設(shè)計 . 75 仿真、安裝和調(diào)試 . 8收
3、獲與體會 . 10參考文獻(xiàn) .11附件1:元件清單 .12附件2: 總電路圖 .13附件3:音樂程序 .141 設(shè)計任務(wù)和要求1.利用I/O口產(chǎn)生一定頻率的方波,驅(qū)動蜂鳴器,發(fā)出不同的音調(diào),從而演樂曲(內(nèi)存六首樂曲)。2.采用七段數(shù)碼管顯示當(dāng)前播放的歌曲序號。3.可通過功能鍵選擇樂曲,包括暫停和播放,上一曲,下一曲,復(fù)位。 2 總體方案設(shè)計1. 要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/音頻),然后將此周期除以2,即為半周期的時間,利用定時器計時這個半周期時間,每當(dāng)計時到后就將輸出脈沖的I/O反相,然后重復(fù)計時此半周期時間再對I/O口反相,就可在I/O腳上得到此頻率的脈沖2. 利用8051的
4、內(nèi)部定時器使其工作在計數(shù)器模式MODE1下,改變記數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法。例如頻率為523HZ,其周期T=1/523=1912微秒,因此只要令計數(shù)器定時956/1=956在每記數(shù)9次時將I/O口反相,就可得到中音D0(523HZ)。記數(shù)脈沖值與頻率的關(guān)系公式如下:N=Fi/2/Fr N:記數(shù)值Fi:內(nèi)部計時一次為1微秒故其頻率為1MHZ Fr;要產(chǎn)生的頻率3. 起記數(shù)值的求法如下:T65536N65536Fi2Fr例如:設(shè)K65536,F(xiàn)Fi1MHZ,求低音D0(523HZ),高音的D0(1046HZ)的記數(shù)值。T65536N65536Fi2Fr655362Fr65536Fr低
5、音D0的T6553626263627中音D0的T6553652364580低音D0的T655361047650593 系統(tǒng)硬件設(shè)計3.1 硬件電路本設(shè)計中用到89C51單片機,喇叭,七段顯示數(shù)碼管LED。(硬件電路原理圖如圖1所示)3.2 系統(tǒng)總框圖晶振電鍍AT89C51蜂鳴器復(fù)位電路七段顯示數(shù)碼管LED鍵盤電路圖1 總體方案圖3.3 器件選擇1、單片機的選擇采用ATMEL公司生產(chǎn)的AT89C51單片機作為電子音樂盒的核心部件,AT89C51是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機,片內(nèi)含4k bytes的可反復(fù)擦寫的只讀程序存儲器(PEROM)和128 bytes的隨機存取
6、數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器(CPU)和Flash存儲單元,功能強大AT89C51單片機可提供許多高性價比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域。2、7SEG-DIGITAL簡介七段顯示器顯示原理七段顯示器可用來顯示單一的十進(jìn)制或十六進(jìn)制的數(shù)字,它是由八個發(fā)光二極管所構(gòu)成的( 每一個二極管依位置不同而賦予不同的名稱,請參見圖4.1 ) 。我們可以簡單的說,要產(chǎn)生數(shù)字,便是點亮特定數(shù)據(jù)的發(fā)光二極管。例如要產(chǎn)生數(shù)字0,須只點亮A、B、C、D、E、F等節(jié)段的發(fā)光二極管;要產(chǎn)生數(shù)字5,則須點亮A、C、D
7、、F、G等節(jié)段發(fā)光二極管,以此類推,參見圖4.6。因此,以共陽極七段顯示器而言,要產(chǎn)生數(shù)字0,必須控制Cyclone II FPGA芯片接連至A、B、C、D、E、F 等接腳呈現(xiàn)“低電位”,使電路形成通路狀態(tài)。表4.1則為共陽極七段顯示器顯示之?dāng)?shù)字編碼。 3.4 原理圖設(shè)計1、晶振電路單片機需要一個時間基準(zhǔn)來為各種操作提供秩序,此電路叫時鐘電路,采用不同的接線方式可以獲得不同時鐘電路,有內(nèi)部時鐘電路和外部時鐘電路,外部時鐘電路會使電路復(fù)雜,故采用的是內(nèi)部時鐘電路。時鐘電路在單片機的外部通過XTAL1,XTAL2這兩個引腳跨接晶體振蕩器和微調(diào)電容,構(gòu)成穩(wěn)定的自激振蕩器.本系統(tǒng)采用的為12MHz的晶
8、振,一個機器周期為1us,C1,C2為30uF。2、復(fù)位電路復(fù)位電路的基本功能是:系統(tǒng)上電時提供復(fù)位信號,直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號。為可靠起見,電源穩(wěn)定后還要經(jīng)一定的延時才撤銷復(fù)位信號,以防電源開關(guān)或電源插頭分-合過程中引起的抖動而影響復(fù)位。復(fù)位電路分為上電自動復(fù)位和按鍵手動復(fù)位,如圖2所示。RST引腳是復(fù)位信號的輸入端,復(fù)位信號是高電平有效.這次采用的是手動復(fù)位,復(fù)位通過電容C3,C4和電阻R1,R2來實現(xiàn),按鍵手動復(fù)位是圖中復(fù)位鍵來實現(xiàn)的。圖 2 晶振與復(fù)位電路3、鍵盤部分鍵盤是由一組按壓式或觸摸式開關(guān)構(gòu)成的陣列,是一種常用的輸入設(shè)備。鍵盤可分為編碼式鍵盤和非編碼式鍵盤兩種。(1)
9、.編碼鍵盤通過硬件電路產(chǎn)生被按按鍵的鍵碼,這種鍵盤所需程序簡單,但硬件電路復(fù)雜、價格昂貴通常不被單片機系統(tǒng)采用。(2.)非編碼鍵盤常用一些按鍵排列成行列矩陣,其硬件邏輯與按鍵編碼不存在嚴(yán)格的對應(yīng)關(guān)系,而要由所用的程序來決定。非編碼鍵盤的硬件接口簡單,但是要占用較多的CPU時間,通常采用可編程鍵盤管理芯片來克服這個缺點。本設(shè)計使用兩種按鍵,一種是按鍵式非編碼鍵盤和輕觸式非編碼開關(guān)。圖 3 鍵盤電路4、7SEG-DIGITAL LCD七段顯示器LCD顯示原理用P1.0-P1.6控制七段碼a,b,c,d,e,f,g圖4 LCD顯示電路5、蜂鳴器部分一般所指的蜂鳴器是以壓電陶瓷為主要元件的。壓電陶瓷是
10、一類有將壓力與電流相互轉(zhuǎn)換能力的特殊陶瓷。這種能力緣于其特殊的晶體結(jié)構(gòu)。當(dāng)壓電陶瓷在一定方向上受到一個壓力使其晶體結(jié)構(gòu)發(fā)生形變時,它就會在內(nèi)部產(chǎn)生一個電流,并且電流的變化與壓力的變化密切相關(guān)。反之亦然。所以利用這一特性,在壓電陶瓷上通過一定頻率的電流,就會引起壓電陶瓷微小形變,這一形變帶動空氣發(fā)生振動,如果頻率適當(dāng),就可以被人耳所聽見,也就是產(chǎn)生了蜂鳴聲。由于蜂鳴器的工作電流一般比較大,以致于單片機的I/O 口是無法直接驅(qū)動的,所以要利用放大電路來驅(qū)動,一般使用三極管來放大電流就可以了。圖5 蜂鳴器電路3.5 原理說明當(dāng)鍵盤有鍵按下時,判斷鍵值,啟動計數(shù)器T0,產(chǎn)生一定頻率的脈沖,驅(qū)動蜂鳴器,
11、放出樂曲。同時啟動定時器T1,顯示歌曲號。(1)硬件電路中用、分別接S1、S2作為上、下一曲的功能鍵(2)用P1.0-P1.6控制七段碼a,b,c,d,e,f。(3)用P2.0口控制喇叭。(4)電路為12MHZ晶振頻率工作,起振電路中C1,C2均為30pf。 圖1 音樂盒原理圖4 軟件設(shè)計本程序可以實現(xiàn)課程設(shè)計的基本要求,并可以通過按鍵播放歌曲,程序流程圖如下:開始初始化設(shè)置音節(jié)起始位置設(shè)置節(jié)拍間距讀取音階,音符顯示當(dāng)前播放歌曲序號節(jié)拍結(jié)束音樂結(jié)束5 仿真、安裝和調(diào)試按照上面設(shè)計的電路在proteus軟件內(nèi)畫圖, 打開單片機軟件開發(fā)系統(tǒng)Keil,選擇89c51單片機,在其中編寫程序,運行生成一
12、個后綴名為hex的文件,然后將該文件下載到proteus中的AT89c51單片機中進(jìn)行仿真,觀察實驗現(xiàn)象。仿真能實現(xiàn)播放音樂,按鍵選擇曲目,暫停、播放,復(fù)位功能。仿真成功后,安裝好實驗板,然后將音樂程序下載到電路板內(nèi) ,觀察結(jié)果。能實現(xiàn)播放音樂,按鍵換曲等功能。程序調(diào)試中出現(xiàn)的問題及解決的辦法:(1) 有時會出現(xiàn)程序一點錯誤也沒有,但就是不能正常運行的現(xiàn)象,最后我們發(fā)現(xiàn)是因為程序中有的指令書寫得不規(guī)范導(dǎo)致的,例如有的RET返回指令一定要按正確格式書寫或在兩行指令間最好不要留空行。(2) 程序中的跳轉(zhuǎn)指令的運用很重要,為保險起見,都用LJMP,我們就遇到過跳轉(zhuǎn)指令用錯程序無法正常運行的現(xiàn)象。當(dāng)用
13、JNZ指令時,跳轉(zhuǎn)范圍比較少,這時要用一個標(biāo)號中轉(zhuǎn)。(3) 編程時要注意,在程序開始時,要寫入各定時器中斷的入口地址。(4) 編程過程中要注意加注釋或分割線,否則,在程序過長時容易變得很亂,不便于查找或更改。(5) 編程前要加流程圖,這樣會使思路清晰,例如數(shù)字音樂盒的設(shè)計思路完全可以按著MP3的工作方式列寫流程圖。(6) LCD計時正常顯示的解決辦法:a. 兩個定時器同時工作,存在中斷時序問題,剛開始時我們把定時器1設(shè)定在方式3,計250us,由于定時中斷過于頻繁,使CPU負(fù)載過大,導(dǎo)致音樂不能正常播放,時間不能正常顯示。解決辦法:將定時器1設(shè)定在工作方式1,16位計數(shù),計50ms,效果有很大
14、改觀。但還有問題。b. 當(dāng)音樂為全4拍起始時,此時音樂節(jié)奏與定時器T1中斷頻率錯開,LCD顯示和音樂播放都會好一些。c. 另外,在歌曲中,當(dāng)遇到一個音符發(fā)音為4拍,在編曲中為*CH,因時間較長,當(dāng)定時器T1此時來中斷時,就會對歌曲播放產(chǎn)生影響,若改為發(fā)音一拍,中斷對歌曲播放影響減弱,但音樂效果變差。改進(jìn)方案:若采用可以定時時間更長的單片機,可以避免所有問題。收獲與體會 (1) 上學(xué)期學(xué)習(xí)單片機的課時不多,對單片機的硬件設(shè)計,軟件設(shè)計掌握的深度不夠,但通過此次課程設(shè)計,明顯的改善了,首先對于硬件電路的工作原理有了進(jìn)一步的學(xué)習(xí),同時有了一個提升;軟件方面,在程序的設(shè)計,程序的調(diào)試方面都有了很大的進(jìn)
15、步。(2) 在一個好的氛圍里才能踏下心來做東西,在這一段時間里,寢室成員都認(rèn)真對待這次課程設(shè)計,除了自己做好自己的課題外,在遇到不懂的地方互相討論,查閱資料,互助解決問題。另外在編程中出現(xiàn)問題時,一定要戒驕戒躁,腳踏實地,認(rèn)真看書,仔細(xì)分析,仔細(xì)調(diào)試,就一定會發(fā)現(xiàn)錯誤。我們也是這么做的,這一點在這次的課程設(shè)計中十分重要。(3) 通過這次課程設(shè)計,我體會到了成功的喜悅,聽著自己設(shè)計的程序下載到單片機中播放出音樂,心理非常自豪。這次的課程設(shè)計在一定程度上改變了我學(xué)習(xí)單片機這門課程的態(tài)度,從最初的認(rèn)為學(xué)它沒有什么實際意義,到如今愛上單片機學(xué)習(xí),并希望能將理論運用到實踐,設(shè)計出更好更完整的系統(tǒng)。我明白
16、了一個人要想做好一件事,就必須具備自信心,耐心,還要有毅力,要膽大心細(xì),要勇于嘗試,要手腦并用,最后才能交出一份令人滿意的答卷。附件1:元件清單名稱數(shù)量(個)型號備注電阻5排阻RX8(1個)1k(2個),5.5k(1個),10k(1個),15(1個)數(shù)碼管17SEG-DIGITAL開關(guān)4BUTTON單片機1AT89C51三極管12N3906揚聲器1SPEAKER電源35V電容330pf(2個),10uf(1個)晶振1CRYSTAL附件2:總電路圖附件3:音樂程序OUT BIT P2.0 ;定義音頻輸出端口,p2.0N EQU 6 ;歌曲總數(shù)OUT_NUM EQU P1 ;數(shù)碼管顯視當(dāng)前所放歌曲
17、曲數(shù) ORG 0000H AJMP MAIN ORG 0003H AJMP LAST_SONG ;外部中斷0用于接上一曲歌按鍵 ORG 000BH AJMP F_T0 ;定時器0用于定時,作音符發(fā)生器用 ORG 0013Hq4: AJMP NEXT_SONG ;外部中斷1接下一曲歌按鍵 ORG 001BH AJMP START_PAUSE ;定時器1用計數(shù),這里用作中斷,接開始/暫停鍵,初值為0ffH,方式2 ORG 0030HMAIN: MOV SP,#60H MOV DPTR,#TABLE ;DPRT指向每首歌曲的入口地址的地址。 MOV R0,#30H ;R0中存入數(shù)據(jù)30H,這里在以3
18、0H開始的單元存放每首歌曲的入口地址,其中30H,31H存放歌曲的節(jié)拍入口地址,32H,33H存放歌曲音符入口地址,每首歌占用四個存儲存單元。 MOV R5,#00H;R5中存放表TABLE中正在執(zhí)行操作的序號 MOV R6,#1;R6存放正在設(shè)置入口信息的歌曲數(shù)SET_TAB: MOV A,R5 ;設(shè)置每首歌曲的入口信息,存放在以30H開始的存儲單元中。 MOVC A,A+DPTR MOV R0,A INC R5 INC R0 MOV A,R5 MOVC A,A+DPTR MOV R0,A INC R5 INC R0 MOV A,R5 MOVC A,A+DPTR MOV R0,A INC R
19、0 INC R5 MOV A,R5 MOVC A,A+DPTR MOV R0,A INC R0 INC R5 INC R6 ;設(shè)置完一首歌曲后,歌曲數(shù)加一 CJNE R6,#N+1,SET_TAB ;是否設(shè)置完,沒有便繼續(xù),否則進(jìn)行下面的操作 ;* 對中斷,計數(shù)器的相關(guān)參數(shù)進(jìn)行設(shè)置 MOV TMOD, #61H;計數(shù)器0工作方式1,計數(shù)器1工作方式2 MOV TH1,#0FFH ;給計數(shù)器1置初值0FFH,是工作方式2 MOV TL1,#0FFH;計數(shù)器計數(shù)為1,相當(dāng)于一外部中斷。 SETB ET1 ;允許計數(shù)器1中斷 SETB ET0 ;允許計數(shù)器具0中斷 CLR PT0 ;計數(shù)器0為低優(yōu)先
20、級 SETB PT1;計數(shù)器1為高優(yōu)先級 SETB IT0 ;外部中斷0為跳沿觸發(fā) SETB PX0 ;高優(yōu)先級 SETB IT1 ;外部中斷1為跳沿觸發(fā) SETB PX1 ;高優(yōu)先級 SETB EX1 ;允許外部中斷1中斷 SETB EX0 ;允許外部中斷定0中斷 SETB EA ;開中斷總開關(guān) SETB TR1 ;定時器1開始工作,作中斷用 SETB OUT;音頻輸出端口初始化 ;* ;設(shè)置結(jié)束 CLR F0 ;設(shè)置F0=0,用來作暫停/播放的標(biāo)置位用 MOV 22H,#01H ;22H單元中存放正在播放的歌曲編號 MOV DPTR,#OUT_TAB ;將正在播放的歌曲編號送數(shù)碼管顯視 M
21、OV A,22H MOVC A,A+DPTR MOV OUT_NUM,A MOV R7,#00H ;R7中存放歌曲總信息的入口地址START0:MOV R4,#00H ;R4存放當(dāng)前正在播放歌曲的第幾個節(jié)拍數(shù) MOV R0,#30H ;30H開始的單元中存放歌曲的入口信息 MOV A,R7 ;將歌曲的節(jié)拍表的入口地址送到DPTR ADD A,R0 MOV R0,A MOV DPH,R0 INC R0 MOV DPL,R0 INC R0 MOV A,R4 INC R4 MOVC A,A+DPTR ;取出第一節(jié)拍數(shù),其實第一個節(jié)拍不是歌曲的第一個節(jié)拍,而是表示幾分音符;* MOV 26H,A ;將
22、取出的音符數(shù)+節(jié)拍數(shù)保存在職26H單元中NEXT: MOV R0,#30H ;開始取出歌曲的第一個數(shù)據(jù) MOV A,R7 ADD A,R0 MOV R0,A MOV DPH,R0 INC R0 MOV DPL,R0 INC R0 MOV A,R4 INC R4 MOVC A,A+DPTR ;放在A中;* JZ END0 ;若為0,則表示為休止符,不唱,本次音符不唱, MOV R1,A ;不為0,取出節(jié)拍數(shù) ANL A,#0FH MOV R2,A MOV A,R1 SWAP A ANL A,#0FH JNZ SING ;音符不為0,唱 CLR TR0 ;為0,不唱,關(guān)頻率發(fā)生器 SJMP SIN
23、G1SING: DEC A ;開始唱,進(jìn)行相應(yīng)的數(shù)據(jù)處理 MOV R3,A RL A MOV DPH,R0 INC R0 MOV DPL,R0 INC R0 MOVC A,A+DPTR MOV 21H,A MOV TH0,A MOV A,R3 RL A INC A MOVC A,A+DPTR MOV 20H,A MOV TL0,A SETB TR0 ;開唱SING1:LCALL DELAY ;每個音符唱多久 JB F0,FOR ;是否暫停, AJMP NEXT ;沒有暫停,繼續(xù)FOR: CLR TR0 ;暫停,不唱 JB F0,$ ;等待播放 AJMP NEXT ;開始播放END0: CLR
24、TR0 ;不唱 MOV A,22H ;唱完處理 CJNE A,#N,WW ;是不是全部歌曲都唱完 MOV 22H,#01H ;全部唱完,則從第一首開始再唱 MOV R7,#00H MOV OUT_NUM,#B ;數(shù)碼管顯視第一首歌曲編號 AJMP WWWWW: MOV A,R7 ;沒有全部唱完,唱下一首,歌曲的入口信息調(diào)整 ADD A,#4 MOV R7,A INC 22H CLR EA PUSH DPH PUSH DPL MOV A,22H MOV DPTR,#OUT_TAB MOVC A,A+DPTR MOV OUT_NUM,A ;數(shù)碼管顯視相應(yīng)的歌曲編號 POP DPL POP DPHW
25、WW: SETB EA AJMP START0 ;開始下一首的演唱F_T0: MOV TH0,21H ;定時器0置初值 MOV TL0,20H CPL OUT ;頻率產(chǎn)生 RETINEXT_SONG: PUSH ACC ;下一曲中斷程序處理,保護(hù)現(xiàn)場 PUSH DPH PUSH DPL CLR EA ;關(guān)中斷 MOV A,22H CJNE A,#N,Q ;是最后一首嗎? MOV R7,#00H ;是最后一首,則R7指向第一首,演唱第一首 MOV 22H,#01H AJMP BACKQ: INC 22H ;不是最后一首,唱下一首,R7內(nèi)容加4,歌曲數(shù)加1 MOV A,R7 ADD A,#4 MO
26、V R7,ABACK: MOV R4,#00H ;數(shù)碼管顯視相應(yīng)的歌曲編號 MOV A,22H MOV DPTR,#OUT_TAB MOVC A,A+DPTR MOV OUT_NUM,A;* MOV B,R0 ;對下首要演唱的歌曲的幾分拍進(jìn)行調(diào)整,同時對R0中的內(nèi)容進(jìn)行保護(hù) MOV R4,#00H MOV R0,#30H MOV A,R7 ADD A,R0 MOV R0,A MOV DPH,R0 INC R0 MOV DPL,R0 INC R0 MOV A,R4 INC R4 MOVC A,A+DPTR MOV 26H,A ;結(jié)果存入26H單元中 DEC R4 MOV R0,B ;恢復(fù)R0中的
27、內(nèi)容;* POP DPL ;恢復(fù)現(xiàn)場 POP DPH POP ACC SETB EA RETI ;中斷返回LAST_SONG: PUSH ACC ;上一曲中斷程序處理開始,保護(hù)現(xiàn)場 PUSH DPH PUSH DPL CLR EA ;關(guān)中斷 MOV A,22H ;曲目數(shù)送A CJNE A,#1,QQ ;是否是第一首 MOV 22H,#N ;是第一首歌曲 MOV B,#4 ;將R7指向最后一首歌曲 MOV A,#N-1 MUL AB MOV R7,A AJMP BACK2 ;處理結(jié)束QQ: DEC 22H MOV A,R7 ;R7減4 SUBB A,#4 MOV R7,ABACK2: MOV R
28、4,#00H MOV A,22H MOV DPTR,#OUT_TAB MOVC A,A+DPTR MOV OUT_NUM,A ;數(shù)碼管顯視相應(yīng)歌曲的編號;* MOV B,R0;對下首要演唱的歌曲的幾分拍進(jìn)行調(diào)整,同時對R0中的內(nèi)容進(jìn)行保護(hù) MOV R4,#00H MOV R0,#30H MOV A,R7 ADD A,R0 MOV R0,A MOV DPH,R0 INC R0 MOV DPL,R0 INC R0 MOV A,R4 INC R4 MOVC A,A+DPTR MOV 26H,A ;結(jié)果存入26H單元中 DEC R4 MOV R0,B;R0中的內(nèi)容恢復(fù);* POP DPL ;恢復(fù)現(xiàn)場
29、POP DPH POP ACC SETB EA RETI ;中斷返回START_PAUSE:CPL F0 ;開始/暫停中斷處理程序,將標(biāo)置位取反 JB F0,RETURN ;為1返回 SETB TR0 ;為0則播放RETURN: RETI ;中斷返回DELAY: MOV 27H,26H ;音符演奏時間控制D2: MOV 28H,#125D3: MOV 29H,#248 DJNZ 29H,$ DJNZ 28H,D3 DJNZ 27H,D2 DJNZ R2,DELAY RET;OUT_TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,3
30、9H,5EH,79H,71H,73H ;共陰數(shù)碼管顯視用OUT_TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH ;共陽TABLE: DW SONG1,TABLE1,SONG2,TABLE2,SONG3,TABLE3,SONG4,TABLE4 ,SONG5,TABLE5TABLE1:DW 64580,64684,64777,64820,64898,64968,65030 DW 63628,63835,64021,64103,64260,64400,64524SONG1: DB
31、04H ;1=C 2/4 軍港之夜DB 32H,54H,52H,32H,54H,52H,32H,12H,12H,32H,32H,54H,52H,32H,52H,52H,32H,32H,21H,31H,24H,0E2H,0D1H,0E1H,0D2H,0C2H,14H,14HDB 0C2H,32H,32H,12H,21H,31H,24H,32H,34H,0D2H,0C2H,14H,14H,32H,52H,52H,32H,52H,54H,32H,34H,31H,21H,12H,24H,24HDB 34H,0E2H,0C2H,0D1H,0E1H,0D4H,12H,0E2H,32H,32H,0E2H,0
32、D1H,0E1H,0D4H,0D2H,0E2H,32H,32H,0E2H,0E2H,0D1H,0E1H,0D4HDB 22H,0D1H,11H,0E2H,0D2H,0C4H,0C4H,32H,52H,52H,32H,62H,5H,61H,54H,31H,52H,31H,12H,31H,31H,32H,54H,52H,32H,52H,52H,32HDB 32H,21H,31H,24H,0E2H,0D1H,0E1H,0D2H,0C2H,34H,34H,32H,52H,52,32H,62H,51H,61H,54H,31H,52H,31H,12H,32H,12H,32H,32H,54H,52HDB 3
33、2H,52H,52H,31H,31H,32H,21H,31H,24H,0E2H,0D1H,0E1H,0D2H,0C2H,14H,14HDB 32H,52H,52H,32H,32H,21H,31H,24H,0E2H,0D1H,0E1H,0D2H,0C2H,14H,14HDB 0C2H,32H,32H,12H,21H,31H,24H,32H,34H,0D2H,0C2H,14H,14H,32H,52H,52H,32H,52H,54H,32H,34H,31H,21H,12H,24H,24HDB 34H,0E2H,0C2H,0D1H,0E1H,0D4H,12H,0E2H,32H,32H,0E2H,0D1
34、H,0E1H,0D4H,0D2H,0E2H,32H,32H,0E2H,0E2H,0D1H,0E1H,0D4HDB 22H,0D1H,11H,0E2H,0D2H,0C4H,0C4H,32H,52H,52H,32H,62H,5H,61H,54H,31H,52H,31H,12H,31H,31H,32H,54H,52H,32H,52H,52H,32HDB 32H,21H,31H,24H,0E2H,0D1H,0E1H,0D2H,0C2H,34H,34H,32H,52H,52,32H,62H,51H,61H,54H,31H,52H,31H,12H,32H,12H,32H,32H,54H,52HDB 32H
35、,52H,52H,31H,31H,32H,21H,31H,24H,0E2H,0D1H,0E1H,0D2H,0C2H,14H,14HDB 32H,52H,52H,32H,32H,21H,31H,24H,74H,0D2H,0C2H,14H,14H,14H,14HDB 00HTABLE2:DW 63835,64021,64103,64260,64400,64524,64580,64684,64777 DW 64820,64898,64968,65030,65058,65110,65157,65178SONG2: DB 02H;1=C 4/4 死了都要愛DB 04H,94HDB 0E8H,0E4H,0
36、E4H,0E8H,0E4H,0F4H,0D4H,0C4H,0B4H,84H,84H,92H,92H,94H,92H,02HDB 0A4H,0A2H,0B2H,0B4H,0C4H,84H,82H,92H,94H,0A4HDB 04H,0C2H,0C2H,0D4H,0C2H,0D2H,0D8H,0D4H,0D2H,92HDB 0E8H,0E4H,0E4H,0E8H,0E4H,0F4H,0D4H,0C4H,0B4H,84H,84H,92H,92H,94H,92H,02HDB 0A4H,0A2H,0B2H,0B4H,0C4H,0E8H,0D8HDB 0C8H,0C8H,08H,08H,78H,28H,
37、38H,34H,24HDB 24H,64H,64H,24H,64H,72H,72H,78H,58H,54H,44H,38H,34H,14H,34H,84H,74H,74H,62H,62H,0D8H,78H,28H,38H,34H,24HDB 24H,64H,64H,24H,64H,72H,72H,72H,94H,92H,94H,0A4H,58H,58H,54H,44H ;#音不準(zhǔn)DB 58H,58H,58H,58H,0A8H,0A8H,0A4H,0B4H,0A4H,84H,0A4H,94H,98H,98H,08HDB 84H,82H,82H,82H,82H,94H,0A2H,94H,92H,8
38、2H,74H,72H,74H,72H,72H,72H,72H,92H,91H,91H,94H,54H,74H,94H;*DB 0A8H,0A4H,0A2H,0B2H,0C4H,0B4H,0A4H,0A4H,0A4H,92H,92H,98H,82H,72H,78H,04H,0A4H,0A2H,0B2H,0B4H,0C4H,84H,82H,92H,94H,0A4HDB 04H,0C4H,0D4H,0C4H,0C8H,04H,94HDB 0E8H,0E4H,0E4H,0E8H,0E4H,0F4H,0D4H,0C4H,0B4H,84H,84H,92H,92H,94H,92H,02DB 0A4H,0A2
39、H,0B2H,0B4H,0C4H,84H,82H,92H,94H,0A4H,04H,0C2H,0C2H,0D4H,0D8H,0D4H,0D2H,92HDB 0E8H,0E4H,0E4H,0E8H,0E4H,0F4H,0D4H,0C4H,0B4H,84H,84H,92H,92H,94H,92H,02DB 0A4H,0A2H,0B2H,0B4H,0C4H,84H,82H,92H,94H,0A4H,04H,0C2H,0C2H,0D4H,0D8H,0D4H,0D2H,92H;*DB 0A4H,0A2H,0B2H,0B3H,0C4H,0E8H,0D8HDB 0C8H,0C8H,0C8H,08HDB 00
40、HTABLE3: DW 64898,64968,65030,65086,65135,65158,65199,64260,64400,64524,64580,64684,64777,64862SONG3: DB 03H ;G=2/4 中華人民共和國國歌DB 04H,04H,0C2H,14H,12H,12H,12H,11H,11H,0C2H,0D1H,0E1H,14H,14H,02H,32H,12H,21H,31H,52H,51H,51H,54HDB 32H,31H,31H,12H,11H,31H,52H,51H,31H,24H,24H,24H,64H,54H,24H,34H,52H,34H,52
41、H,32H,21H,31H,12H,11H,21H,34H,04HDB 52H,51H,0D1H,12H,12H,32H,31H,31H,52H,51H,51H,22H,22H,22H,0D2H,0D1H,0D1H,24H,22H,0C2H,14H,12H,12H,34H,32H,32H,54H,54H,54H,54HDB 12H,11H,31H,52H,51H,51H,64H,54H,32H,31H,11H,52H,52H,52H,32H,02H,12H,02H,0C4H,14HDB 0A2H,0A1H,11H,52H,52H,52H,32H,02H,12H,02H,0C4H,14H,0C4
42、H,14H,0C4H,14H,14H,04HDB 04H,04H,04H,04HDB 00HTABLE4:DW 64260,64400,64524,64580 ,64684,64777,64280,64898,64968,65030,65058,65110,65157,65178,65217SONG4:DB 04H ;生日快樂 ;1 DB 82H,01H,81H,94H,84H DB 0B4H,0A4H,04H DB 82H,01H,81H,94H,84H DB 0C4H,0B4H,04H ;2 DB 82H,01H,81H,94H,84H DB 0B4H,0A4H,04H DB 82H,01H,81H,94H,84H DB 0C4H,0B4H,04H ;3 DB 82H,01H,81H,94H,84H DB 0B4H,0A4H,04H DB 82H,01H,81H,94H,84H DB 0C4H,0B4H,04H ;4 DB 82H,
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 法學(xué)會課題申報書
- 微生物檢驗技師證書考試的試題及答案洞察
- 證券投資策略解析的證券從業(yè)資格證試題及答案
- 2025年證券從業(yè)資格證考試應(yīng)試導(dǎo)向及學(xué)習(xí)效能提升試題及答案
- 項目管理市場評估試題及答案
- 注冊會計師復(fù)習(xí)方法中的知識轉(zhuǎn)化與情境應(yīng)用重視策略探討試題及答案
- 審計質(zhì)量控制的體系建設(shè)試題及答案
- 2025年證券從業(yè)資格證創(chuàng)新試題及答案
- 銀行從業(yè)資格證考試網(wǎng)絡(luò)學(xué)習(xí)資源有效利用及試題答案
- 微生物檢測中的技術(shù)規(guī)范試題及答案
- 2025屆山東省濟(jì)南市一模生物試題(原卷版+解析版)
- 2025年共青團(tuán)應(yīng)知應(yīng)會知識考試題庫及答案
- 血液透析貧血的護(hù)理查房
- 土地承包合同易懂一點(2025年版)
- 雨季三防知識培訓(xùn)
- 2025年上半年第二次商務(wù)部國際貿(mào)易經(jīng)濟(jì)合作研究院招聘7人重點基礎(chǔ)提升(共500題)附帶答案詳解
- 第7課《不甘屈辱 奮勇抗?fàn)帯返?課時 虎門銷煙 課件 五年級道德與法治下冊 統(tǒng)編版
- DB13-T5742-2023醇基燃料使用安全規(guī)范
- 《慢性阻塞性肺疾病的健康宣教》課件
- 江蘇省蘇北四市(徐州、宿遷、淮安、連云港) 2025屆高三第一次調(diào)研考試物理試題(含答案)
- 2025年廣投資本管理有限公司招聘筆試參考題庫含答案解析
評論
0/150
提交評論