單片機(jī)課程設(shè)計(jì)《數(shù)字音樂(lè)盒的設(shè)計(jì)》_第1頁(yè)
單片機(jī)課程設(shè)計(jì)《數(shù)字音樂(lè)盒的設(shè)計(jì)》_第2頁(yè)
單片機(jī)課程設(shè)計(jì)《數(shù)字音樂(lè)盒的設(shè)計(jì)》_第3頁(yè)
單片機(jī)課程設(shè)計(jì)《數(shù)字音樂(lè)盒的設(shè)計(jì)》_第4頁(yè)
單片機(jī)課程設(shè)計(jì)《數(shù)字音樂(lè)盒的設(shè)計(jì)》_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上單片機(jī)原理及接口技術(shù)課程設(shè)計(jì)報(bào)告課題名稱: 數(shù)字音樂(lè)盒的設(shè)計(jì)學(xué)院:自動(dòng)控制與機(jī)械工程學(xué)院專業(yè):機(jī)械設(shè)計(jì)制造及其自動(dòng)化班級(jí):姓名:時(shí)間:2012年1月目錄 1.概述.2 1.1設(shè)計(jì)任務(wù).2 1.2設(shè)計(jì)內(nèi)容.2 .2 .3 3.3 硬件電路圖及功能.54.軟件設(shè)計(jì).5 4.1軟件程序設(shè)計(jì).5 4.1.1 程序流程圖.5 4.1.2 程序源代碼(見(jiàn)附錄A).64.2音樂(lè)程序的設(shè)計(jì)原理.7 4.2.1 建立音樂(lè)的步驟.7 4.2.2 單片機(jī)音樂(lè)的產(chǎn)生原理.7 7. 附錄B C調(diào)各音符頻率與計(jì)數(shù)值T的對(duì)照表.28附錄C簡(jiǎn)譜對(duì)應(yīng)的簡(jiǎn)譜碼、T值、節(jié)拍數(shù).291. 概述本設(shè)計(jì)是以AT

2、89C51芯片的電路為基礎(chǔ),外部加上放音設(shè)備,以此來(lái)實(shí)現(xiàn)音樂(lè)演奏控制器的硬件電路,通過(guò)軟件程序來(lái)控制單片機(jī)內(nèi)部的定時(shí)器使其演奏出優(yōu)美動(dòng)聽(tīng)的音樂(lè)。用戶可以按照自己的喜好選擇音樂(lè)并將其轉(zhuǎn)化成機(jī)器碼存入單片機(jī)的存儲(chǔ)器中。對(duì)于不同型號(hào)的單片機(jī)只需要相應(yīng)的改變一下地址即可。該軟、硬件系統(tǒng)具有很好的通用性,很高的實(shí)際使用價(jià)值,為廣大的單片機(jī)和音樂(lè)愛(ài)好者提供了很好的借鑒。1.1 設(shè)計(jì)任務(wù)設(shè)計(jì)一個(gè)基于MCS-51系列單片機(jī)AT89C51系列單片機(jī)的音樂(lè)盒,利用按鍵切換演奏出不同的樂(lè)曲。蜂鳴器發(fā)出某個(gè)音調(diào),使用兩個(gè)按鍵,一個(gè)用來(lái)選擇上一首歌曲,另一個(gè)切換下一首歌曲。1.2 設(shè)計(jì)內(nèi)容音樂(lè)盒可以經(jīng)常發(fā)出宜人的音樂(lè)旋

3、律,能給生活增加不少的樂(lè)趣。用51系列單片機(jī)設(shè)計(jì)一個(gè)音樂(lè)盒。功能如下:1利用I/O口產(chǎn)生一定頻率的方波,驅(qū)動(dòng)蜂鳴器,發(fā)出不同的音調(diào),從而演奏樂(lè)曲(最少三首樂(lè)曲,每首不少于30秒)。2采用LCD顯示信息,顯示樂(lè)曲編號(hào),播放時(shí)間或剩余時(shí)間,開(kāi)機(jī)時(shí)有英文歡迎提示字符。3. 可通過(guò)功能鍵選擇樂(lè)曲,暫停,播放。2. 系統(tǒng)總體方案介紹2.1 系統(tǒng)組成框圖音樂(lè)盒的系統(tǒng)結(jié)構(gòu)以AT89C51單片機(jī)位控制核心,加上幾個(gè)按鍵、時(shí)鐘復(fù)位電路、蜂鳴器、LCD模塊組成。單片機(jī)負(fù)責(zé)接收按鍵的輸入,根據(jù)輸入控制音樂(lè)播放曲目和音樂(lè)播放|暫停的樣式以及蜂鳴器發(fā)音。系統(tǒng)組成框圖如圖2.1所示。圖2.1 系統(tǒng)組成框圖2.2 音樂(lè)盒的

4、功能結(jié)構(gòu)圖音樂(lè)盒的功能結(jié)構(gòu)如圖2.2所示。13號(hào)開(kāi)關(guān)負(fù)責(zé)切換播放歌曲,播放歌曲共3首,分別是同一首歌、世上只有媽媽好和精忠報(bào)國(guó)。4、5號(hào)開(kāi)關(guān)負(fù)責(zé)切換歌曲:上一首和下一首,6號(hào)開(kāi)關(guān)負(fù)責(zé)歌曲的暫停和播放,7號(hào)開(kāi)關(guān)是開(kāi)機(jī)鍵。 開(kāi)始歌曲的暫停|播放歌曲選擇13圖2.2 音樂(lè)盒功能結(jié)構(gòu)圖3. 硬件設(shè)計(jì)AT89C512×4按鍵文字型LCD(16×2)蜂鳴器電源3.1 總體設(shè)計(jì)框圖圖3.1當(dāng)鍵盤有鍵按下時(shí),判斷鍵值,啟動(dòng)計(jì)數(shù)器T0,產(chǎn)生一定頻率的脈沖,驅(qū) 動(dòng)蜂鳴器,放出樂(lè)曲。同時(shí)啟動(dòng)定時(shí)器T1,顯示樂(lè)曲播放的時(shí)間,并驅(qū)動(dòng)LCD,顯示歌曲號(hào)及播放時(shí)間。也可在LED顯示歌曲號(hào)。3.2各部分硬

5、件設(shè)計(jì)及其原理 3.2.1 按鍵電路設(shè)計(jì)按鍵電路如圖3.2所示:P1.0-P1.5控制按鍵,其中P1.0-P1.1掃描行,P1.4-P1.5掃描列。圖3.2 按鍵電路 3.2.2 LCD顯示電路設(shè)計(jì)與原理如圖3.3所示文字型LCD(16×2)的D0-D07端口與AT89C51端口P0.0-P0.7相連接VSS與VEE兩端接地。P2.0-P2.2作為L(zhǎng)CD的RS,R/W,E的控制信號(hào)。用P0.0-P0.7作為L(zhǎng)CD的D0-D7的控制信號(hào)。圖3.3 LCD顯示電路 3.2.3 時(shí)鐘振蕩電路AT89C51中有一個(gè)用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器

6、的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外石英晶體或者陶瓷諧振器一起構(gòu)成自然振蕩器。外接石英晶體及電容C1、C2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對(duì)外接電容C1,C2雖然沒(méi)有什么嚴(yán)格的要求,但電容容量的大小會(huì)輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。如果使用石英晶體,我們推薦電容使用30PF10PF,而如果使用陶瓷振蕩器建議選擇40PF10PF。用戶也可以采用外部時(shí)鐘。采用外部時(shí)鐘的電路如圖示。這種情況下,外部時(shí)鐘脈沖接到XTAL1端,即內(nèi)部時(shí)鐘發(fā)生器的輸入端,XTAL2則懸空。由于外部時(shí)鐘信號(hào)是通過(guò)一個(gè)2分頻觸發(fā)器后作為內(nèi)部時(shí)鐘信號(hào)的,所以對(duì)外部時(shí)鐘

7、信號(hào)的占空比沒(méi)有特殊要求,但最小高電平持續(xù)時(shí)間和最大的低電平持續(xù)時(shí)間應(yīng)符合產(chǎn)品技術(shù)條件的要求。振蕩器電路圖如下:圖3.4 單片機(jī)內(nèi)部、外部振蕩電路3.3 硬件電路圖及功能總體硬件電路實(shí)現(xiàn)功能如下,如圖3.5所示電路中用P1.0P1.5控制按鍵。P0.0P0.7控制LED。P3.0控制蜂鳴器。電路為12MHZ晶振頻率工作,起振電路中C1、C2均為30PF。圖3.5 硬件電路圖4. 軟件設(shè)計(jì)4.1 軟件程序設(shè)計(jì)4.1.1 程序流程圖主程序流程圖4.1.2 程序源代碼(見(jiàn)附錄A)4.2音樂(lè)程序的設(shè)計(jì)原理4.2.1 建立音樂(lè)的步驟1. 先把樂(lè)譜的音符找出,然后建立T值表的順序。2. 把T值表建立在TA

8、BLE1,構(gòu)成發(fā)音符是計(jì)數(shù)值放在“TABLE”。3. 簡(jiǎn)譜碼(音符)為高位,節(jié)拍為(節(jié)拍數(shù))為低4位,音符節(jié)拍碼放在程序的“TABLE”處。4.2.2 單片機(jī)音樂(lè)的產(chǎn)生原理1.要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時(shí)間。利用定時(shí)器計(jì)時(shí)這個(gè)半周期時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出脈沖的I/O反相,然后重復(fù)計(jì)時(shí)此半周期時(shí)間再對(duì)I/O反相,就可在I/O腳上得到此頻率的脈沖。2.利用8051的內(nèi)部定時(shí)器使其工作在計(jì)數(shù)器模式MODE1下,改變計(jì)數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法。3.例如頻率為523Hz,其周期T=1/523=1912us,因此只要令計(jì)數(shù)器計(jì)時(shí)9

9、56us/1us=956,在每計(jì)數(shù)956次時(shí)將I/O反相,就可得到中音DO(523Hz)。計(jì)數(shù)脈沖值與頻率的關(guān)系公式如下: N=Fi÷2÷Fr N:計(jì)數(shù)值; Fi:內(nèi)部計(jì)時(shí)一次為1us,故其頻率為12MHz; Fr:要產(chǎn)生的頻率;4.其計(jì)數(shù)值的求法如下: T=65536-N=65536-Fi÷2÷Fr 例如:設(shè)K=65536,F(xiàn)=Fi=1MHz,求低音DO(261MHz)、中音DO(523MHz)、音DO(1046MHz)的計(jì)數(shù)值。 T=65536-N=65536-Fi÷2÷Fr=65536-÷2÷Fr=65536

10、-/Fr 低音DO的T=65536-/262=63627 中音DO的T=65536-/523=64580 高音DO的T=65536-/1047=650595.C調(diào)各音符頻率與計(jì)數(shù)值T的對(duì)照表如附錄表B所示。專心-專注-專業(yè)表4-1 節(jié)拍與節(jié)拍碼對(duì)照節(jié) 拍 碼節(jié) 拍 數(shù)節(jié) 拍 碼節(jié) 拍 數(shù)11/4拍11/8拍22/4拍21/4拍33/4拍33/8拍41拍41/2拍51又1/4拍55/8拍61又1/2拍63/4拍82拍81A2又1/2拍A1又1/4拍C3拍C1又1/2拍F3又3/4拍表4-2各調(diào)1/4節(jié)拍的時(shí)間設(shè)定 各調(diào)1/4節(jié)拍的時(shí)間設(shè)定曲 調(diào) 值DELAY曲 調(diào) 值DELAY調(diào)1/4125毫秒

11、調(diào)4/462毫秒調(diào)3/4187毫秒調(diào)3/494毫秒調(diào)2/4250毫秒調(diào)2/4125毫秒1/4拍的延遲時(shí)間=187毫秒DELAY: MOV R7,#02D2: MOV R4,#187 別的延遲值,只需修改這兒的值為相應(yīng)值,即可。D3: MOV R3,#248 DJNZ R3,$ DJNZ R4,D3 DJNZ R7,D2 DJNZ R5,DELAY 節(jié)拍值放在R5,決定節(jié)拍 RET相關(guān)知識(shí):每一音符使用1個(gè)字節(jié),字節(jié)的高4位代表音符的高低,低4位代表音符的節(jié)拍,節(jié)拍與節(jié)拍碼的對(duì)照如表4-1所示。 節(jié)拍與節(jié)拍碼的對(duì)照。如果1拍為0.4秒,1/4拍是0.1秒,只要設(shè)定延遲時(shí)間就可求得節(jié)拍的時(shí)間 。假

12、使1/4拍為1DELAY,則1拍應(yīng)為4DELAY,以此類推。所以只要求得1/4拍的DEALY時(shí)間,其余的節(jié)拍就是它的倍數(shù),如附錄表B所示為1/4和1/8節(jié)拍的時(shí)間設(shè)定簡(jiǎn) 譜 發(fā) 音 簡(jiǎn) 譜 碼 T值。5. 調(diào)試5.1 檢查硬件連接在PROTUES檢查各硬件管腳是否連接正確,線路邏輯是否正確,例如:晶振電路的連接,復(fù)位電路是否設(shè)計(jì)正確。5.2 檢查軟件系統(tǒng)1根據(jù)系統(tǒng)的原理結(jié)構(gòu)檢查各流程圖是否正確,再根據(jù)流程圖來(lái)檢查程序是否也正確。2將所有程序組織起來(lái),在軟件環(huán)境下運(yùn)行,檢查程序是否正確。通過(guò)對(duì)硬件和軟件系統(tǒng)的認(rèn)真檢查,反復(fù)測(cè)試,如果沒(méi)有出現(xiàn)問(wèn)題即可把源程序編譯成HEX文件裝載到單片機(jī)中,對(duì)硬件進(jìn)

13、行仿真。5.3 測(cè)試結(jié)果5.3.1總體運(yùn)行圖圖5.1 系統(tǒng)總體運(yùn)行圖6. 課程設(shè)計(jì)體會(huì)這學(xué)期學(xué)習(xí)單片機(jī)的課時(shí)不多,對(duì)單片機(jī)的硬件設(shè)計(jì),軟件設(shè)計(jì)掌握的深度不夠,但通過(guò)此次課程設(shè)計(jì),明顯的改善了,首先對(duì)于硬件電路的工作原理有了進(jìn)一步的學(xué)習(xí),同時(shí)有了一個(gè)提升;軟件方面,在程序的設(shè)計(jì),程序的調(diào)試方面都有了很大的進(jìn)步。 在一個(gè)好的氛圍里才能踏下心來(lái)做東西,在這一段時(shí)間里,同學(xué)們都認(rèn)真對(duì)待這次課程設(shè)計(jì),除了自己做好自己的課題外,在遇到不懂的地方互相討論,查閱資料,互助解決問(wèn)題。另外在編程中出現(xiàn)問(wèn)題時(shí),一定要戒驕戒躁,腳踏實(shí)地,認(rèn)真看書,仔細(xì)分析,仔細(xì)調(diào)試,就一定會(huì)發(fā)現(xiàn)錯(cuò)誤。我們也是這么做的,這一點(diǎn)在這次的

14、課程設(shè)計(jì)中十分重要。通過(guò)這次課程設(shè)計(jì),我體會(huì)到了成功的喜悅,聽(tīng)著自己設(shè)計(jì)的程序下載到單片機(jī)中播放出音樂(lè),心理非常自豪。這次的課程設(shè)計(jì)在一定程度上改變了我學(xué)習(xí)單片機(jī)這門課程的態(tài)度,從最初的認(rèn)為學(xué)它沒(méi)有什么實(shí)際意義,到如今愛(ài)上單片機(jī)學(xué)習(xí),并希望能將理論運(yùn)用到實(shí)踐,設(shè)計(jì)出更好更完整的系統(tǒng)。我明白了一個(gè)人要想做好一件事,就必須具備自信心,耐心,還要有毅力,要膽大心細(xì),要勇于嘗試,要手腦并用,最后才能交出一份令人滿意的答卷。對(duì)我而言,知識(shí)上的收獲重要,精神上的豐收更加。讓我知道了學(xué)無(wú)止境的道理。我們每一個(gè)人永遠(yuǎn)不能滿足于現(xiàn)有的成就,人生就像在爬山,一座山峰的后面還有更高的山峰在等著你。挫折是一份財(cái)富,經(jīng)

15、歷是一份擁有。這次課程設(shè)計(jì)必將成為為我人生旅途上一個(gè)非常美好的回憶在論文即將完成之際,我的心情無(wú)法平靜,從開(kāi)始進(jìn)入課題到論文的順利完成,有多少可敬的師長(zhǎng)、同學(xué)、朋友給了我無(wú)言的幫助,在這里請(qǐng)接受我誠(chéng)摯的謝意!7. 參考文獻(xiàn) 1 吳亦峰,陳德偉,單片機(jī)原理與接口技術(shù),北京:電子工業(yè)出版社,2010年11月 2 黃智偉 全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽系統(tǒng)設(shè)計(jì)M,北京:北京航空航天大學(xué)出版社,2006.6. 3 黃智偉 凌陽(yáng)單片機(jī)課程設(shè)計(jì)指導(dǎo)M,北京:北京航空航天大學(xué)出版社,2006.11. 4 李廣弟,朱月秀,王秀山.單片機(jī)基礎(chǔ)M,北京:北京航空航天大學(xué)出版社,2001.7. 5 趙曙光,郭萬(wàn)有,楊頌華.

16、可編程邏輯器件原理開(kāi)發(fā)與應(yīng)用M,西安:西安電子科技大學(xué), 2000. 6 候伯亨.VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)M, 西安:西安電子科技大學(xué)出版社, 1999. 7 康華光. 模擬電子技術(shù)基礎(chǔ)(第四版)M, 武漢:華中理工大學(xué)出版社,1999.附錄A 程序源代碼及注釋RS BIT P2.0;定義液晶顯示端口標(biāo)號(hào)RW BIT P2.1E BIT P2.2;*L50MS EQU 60H L1MS EQU 61HL250MS EQU 62HSEC EQU 65HMIN EQU 64HHOU EQU 63HORG 0000H ;*LJMP MAINORG 000BHLJMP TT0ORG 00

17、1BHLJMP T1INTORG 1000HMAIN: ;-;液晶初始化MOV SP,#70H ;設(shè)置堆棧指針MOV P0,#01H ;清屏CALL ENABLE ;調(diào)用延時(shí)程序MOV P0,#38H ;8位,2行顯示LCALL ENABLEMOV P0,#0FH ;屏顯ON,光標(biāo)ON,閃爍ONLCALL ENABLEMOV P0,#06H ;計(jì)數(shù)地址加1,顯示幕ONLCALL ENABLE;-內(nèi)存初始化LCALL INITIL ;-KEY1:LCALL KEYLCALL MODD LJMP KEY1;-鍵盤掃描KEY:NOPNOPLCALL KSJNZ K1 ;有按鍵轉(zhuǎn)到K1LCALL KA

18、IJILCALL SOPXN:LJMP KEYK1:LCALL MODDLCALL MODDLCALL KSJNZ K2LJMP KEYK2:MOV R2,#0FEH ;讀鍵盤MOV R4,#00HK3:MOV A,R2MOV P1,AMOV A,P1JB ACC.4,L1 ;為1跳轉(zhuǎn),第一行無(wú)按鍵MOV A,#00HLJMP LKL1:JB ACC.5,NEXT1MOV A,#0CH;-LK:ADD A,R4PUSH ACCK4:LCALL DELAY1 ;若同時(shí)有其他按鍵,則等待LCALL KSJNZ K4;-MOV R3,#07H CLR AMOV R0,#30HMOV R1,#31HM

19、M1:MOV A,R1MOV R0,AINC R0INC R1DJNZ R3,MM1POP ACCMOV R0,A RET;-NEXT1:INC R4 ;-列掃描MOV A,R2JNB ACC.3,N2LJMP N1N2:LJMP KEYN1:RL AMOV R2,ALJMP K3;-KS:MOV A,#0F0H ;判斷P1口MOV P1,ANOPNOPMOV A,P1CPL AANL A,#0F0HRET;-DELAY1:SETB RS0DL:MOV R5,#0AHDL2:MOV R6,#63DL3:NOP NOPDJNZ R6,DL3DJNZ R5,DL2 CLR RS0 RET;- ;3

20、0H-37H初值為零;-INITIL: MOV R3,#08HMOV R0,#30HM1:MOV R0,#00HINC R0DJNZ R3,M1 RET;-;顯示 ;-MODD: MOV P0,#8EHLCALL ENABLE MOV A,37HMOV DPTR,#TABLE3 MOVC A,A+DPTRLCALL WRITE2 RET;-;開(kāi)機(jī)提示字;-KAIJI:MOV A,37HCJNE A,#0FH,DFFMOV P0,#80H ;設(shè)光標(biāo)地址 LCALL ENABLEMOV DPTR,#TABLE1;寫數(shù)據(jù)LCALL WRITE1 DFF:RET;-;按鍵值播放歌曲;-SOP:MOV

21、A,37HCJNE A,#01H,A11LCALL MODDMOV 52H,#HIGH TABLE10MOV 53H,#LOW TABLE10LCALL INITILE2LCALL MAIN0A11:CJNE A,#02H,A22LCALL MODDMOV 52H,#HIGH TABLE20MOV 53H,#LOW TABLE20 LCALL INITILE2 LCALL MAIN0A22:CJNE A,#03H,AAALCALL MODDMOV 52H,#HIGH TABLE30MOV 53H,#LOW TABLE30 LCALL INITILE2 LCALL MAIN0 AAA:RET ;

22、*INITILE2:MOV L50MS,#20MOV L1MS,#00HMOV L250MS,#00HMOV SEC,#00HMOV MIN,#00HMOV HOU,#00HMOV A,HOUMOV B,#10DIV ABADD A,#30H ;將BCD嗎轉(zhuǎn)化為ASIIC碼MOV P0,#0C8H ;顯示小時(shí)十位CALL ENABLECALL WRITE2MOV A,BADD A,#30HMOV P0,#0C9H ;顯示小時(shí)個(gè)位CALL ENABLECALL WRITE2MOV A,#3AHMOV P0,#0DH ;顯示冒號(hào)CALL ENABLECALL WRITE2MOV A,MINMOV

23、B,#10DIV ABADD A,#30HMOV P0,#0CBH ;顯示分十位CALL ENABLECALL WRITE2MOV A,BADD A,#30HMOV P0,#0CCH ;顯示分個(gè)位CALL ENABLECALL WRITE2MOV A,#3AHMOV P0,#0CDH ;顯示冒號(hào)CALL ENABLECALL WRITE2MOV A,SECMOV B,#10DIV ABADD A,#30H MOV P0,#0CEH ;顯示秒十位CALL ENABLECALL WRITE2MOV A,BADD A,#30HMOV P0,#0CFH ;顯示秒個(gè)位CALL ENABLECALL WR

24、ITE2MOV P0,#0C0H ;設(shè)光標(biāo)地址 CALL ENABLEMOV DPTR,#TABLE2;寫數(shù)據(jù)CALL WRITE1 RET;*寫指令ENABLE: CLR RSCLR RWCLR ELCALL DELAY SETB ERET;*寫數(shù)據(jù)WRITE1:MOV R1,#00HA1:MOV A,R1MOVC A,A+DPTRCALL WRITE2INC R1CJNE A,#0FEH,A1 ;未到字符串末尾繼續(xù)RETWRITE2:MOV P0,ASETB RSCLR RWCLR ECALL DELAYSETB ERET;*延時(shí)DELAY:MOV R4,#05D1:MOV R5,#0FF

25、HDJNZ R5,$DJNZ R4,D1RET ;-顯示開(kāi)機(jī),查表TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8HDB 80H,90H,88H,83H,0C6H,0A1H,86H,8EHTAB1:DB 89H,86H,0C7H,0C7H,0C0HTAB2:DB 0C6H,88H,0C0HTABLE1:DB' WELCOME! ',0FEHTABLE2:DB'DFF WB ',0FEHTABLE4:DB 'CAU',0FEHTABLE3:DB 30H,31H,32H,33H DB 34H,35H,36H,37H

26、;-;播放歌曲程序;-MAIN0:MOV TMOD,#11HMOV IE,#8AH MOV TH1,#3CHMOV TL1,#0B0H LCALL KSJNZ TTM12 MOV 40H,#00H;-NEXT20:MOV A,40HMOV DPH,52HMOV DPL,53HMOVC A,A+DPTRMOV R2,AJZ STOPANL A,#0FHMOV R1,AMOV A,R2SWAP AANL A,#0FHJNZ SINGCLR TR0JMP W1;-SING:DEC AMOV 22H,ARL AMOV DPTR,#TABLE00MOVC A,A+DPTRMOV TH0,AMOV 21H

27、,AMOV A,22HRL AINC AMOVC A,A+DPTRMOV TL0,AMOV 20H,ASETB TR0SETB TR1W1:LCALL DELAY30INC 40HLCALL KS ;-有鍵跳出JNZ STOPLJMP NEXT20;-STOP:CLR TR0CLR TR1LJMP MAIN0 ;-TTM12:LCALL K2MOV A,37HCJNE A,#0EH,TTM13CLR TR1LCALL DELAY1TTM120:LCALL KSLCALL DELAY1JZ TTM120LCALL K2MOV A,37HCJNE A,#0EH,TTM120SETB TR1LJMP

28、 NEXT20TTM13:CJNE A,#0CH,TTM14MOV A,52HINC AMOV 52H,AMOV A,53HINC AMOV 53H,AMOV A,36HINC AMOV 37H,ALJMP TTM2TTM14:CJNE A,#0DH,TTM2MOV A,52HDEC AMOV 52H,AMOV A,53HDEC AMOV 53H,AMOV A,36HDEC AMOV 37H,A;- TTM2:RET;*;定時(shí)器中斷子程序0;*TT0:PUSH ACCPUSH PSWMOV TL0,20HMOV TH0,21HCPL P3.0POP PSWPOP ACCRETI;*;定時(shí)器中斷

29、子程序1;*T1INT: MOV TH1, #3CHMOV TL1, #0B0HDJNZ L50MS,X4MOV L50MS,#20;*-每秒種時(shí)鐘刷新秒顯示一次SECSET:MOV A,SECMOV B,#10DIV ABADD A,#30H MOV P0,#0CEH ;顯示秒十位LCALL ENABLELCALL WRITE2MOV A,BADD A,#30HMOV P0,#0CFH ;顯示秒個(gè)位LCALL ENABLELCALL WRITE2MOV A,SECINC AMOV SEC,AXRL A,#60X4:JNZ OUTMINSET:MOV SEC,#00H ;*每分鐘刷新分顯示一次

30、MOV A,MININC AMOV MIN,A MOV B,#10DIV ABADD A,#30HMOV P0,#0CBH ;顯示分十位LCALL ENABLELCALL WRITE2MOV A,BADD A,#30HMOV P0,#0CCH ;顯示分個(gè)位LCALL ENABLELCALL WRITE2MOV A,MIN MOV B,#3MUL ABMOV B,#100DIV ABMOV R2,AMOV A,#10XCH A,BDIV ABMOV A,MINXRL A,#60JNZ OUTHOUSET:MOV MIN,#00H ;*每小時(shí)刷新小時(shí)顯示一次 MOV A,HOUMOV B,#10D

31、IV ABADD A,#30H ;將BCD嗎轉(zhuǎn)化為ASIIC碼MOV P0,#0C8H ;顯示小時(shí)十位CALL ENABLECALL WRITE2MOV A,BADD A,#30HMOV P0,#0C9H ;顯示小時(shí)個(gè)位CALL ENABLECALL WRITE2MOV A,HOUINC AMOV HOU,AXRL A,#10JNZ OUTSJMP OVERFLOWOUT:RETI;*溢出處理OVERFLOW:MOV L50MS,#20MOV L1MS,#00HMOV L250MS,#00HMOV SEC,#00HMOV MIN,#00HMOV HOU,#00HRETI;-DELAY30: ;

32、延時(shí)子程序MOV R7,#2W2:MOV R4,#125W3:MOV R3,#248DJNZ R3,$DJNZ R4,W3DJNZ R7,W2DJNZ R1,DELAY30RET;-TABLE00: ;決定音調(diào)的定時(shí)初值DW 64580,64684,64777,64820DW 64898,64968,65030,64260DW 64400,64524,65058,63835,64021;-;第一首同一首歌;-TABLE10:DB 88H,14H,24H,36H,42H,34H,14H,28H,14H,94HDB 1FH,88H,14H,24H,34H,32H,42H,54H,14HDB 46H

33、,32H,54H,22H,32H,32H,22H,2CH,38H,54H,74HDB 76H,62H,68H,54H,52H,62H,74H,62H,52H,3FHDB 46H,42H,54H,64H,54H,42H,32H,28H,0A4H,0A2HDB 92H,84H,94H,1FH,0B8H,68H,46H,52H,68HDB 74H,72H,72H,74H,62H,52H,3FH,0B8H,68HDB 46H,52H,68H,64H,62H,62H,64H,42H,32H,2FHDB 58H,14H,24H,36H,42H,34H,12H,12H,26H,22H,24H,22H,12H

34、DB 94H,9CH,0A8H,0A6H,92H,84H,64H,54H,22H,22H,46H,42H,44H,32H,22H,5FHDB 00;-;第二首<<世上只有媽媽好>>-TABLE20:DB 66H,52H,34H,54H,0B4H,62H,52H,68H,34H,52H,62H,54H,34H,12H,92H,52H,32H,28HDB 26H,32H,54H,52H,62H,34H,24H,18H,56H,32H,22H,12H,92H,12H,8FHDB 66H,52H,34H,54H,0B4H,62H,52H,68H,34H,52H,62H,54H,

35、34H,12H,92H,52H,32H,28HDB 26H,32H,54H,52H,62H,34H,24H,18H,56H,32H,22H,12H,92H,12H,8FHDB 66H,52H,34H,54H,0B4H,62H,52H,68H,34H,52H,62H,54H,34H,12H,92H,52H,32H,28HDB 26H,32H,54H,52H,62H,34H,24H,18H,56H,32H,22H,12H,92H,12H,8FHDB 00;-;第三首精忠報(bào)國(guó);-TABLE30:DB 66H,52H,36H,22H,12H,12H,22H,32H,98H,84H,82H,92H,14H,12H,22HDB 32H,52H,2

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論