版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 單片機(jī)原理與接口技術(shù)</p><p> 課 程 設(shè) 計(jì)</p><p> 設(shè)計(jì)課題 : 數(shù)字音樂(lè)盒的設(shè)計(jì) </p><p> 學(xué)院名稱(chēng) : 電氣工程學(xué)院 </p><p> 專(zhuān)業(yè)班級(jí) :
2、 _</p><p> 學(xué)生姓名 : __</p><p> 學(xué) 號(hào) : </p><p> 指導(dǎo)教師 : </p><p> 設(shè)計(jì)地點(diǎn) :
3、 </p><p> 設(shè)計(jì)時(shí)間 : 2012-12-17~2012-12-28 </p><p> 單片機(jī)原理與接口技術(shù) 課程設(shè)計(jì)任務(wù)書(shū)</p><p><b> 目錄</b></p><p><b> 1. 概述4</b&g
4、t;</p><p> 1.1 設(shè)計(jì)任務(wù)4</p><p> 1.2 設(shè)計(jì)內(nèi)容5</p><p> 2. 系統(tǒng)總體方案介紹5</p><p> 2.1 系統(tǒng)組成5</p><p> 3. 硬件設(shè)計(jì)10</p><p> 3.1各部分硬件設(shè)計(jì)及其原理10</p>
5、<p><b> 4.軟件設(shè)計(jì)13</b></p><p> 4.1 軟件程序設(shè)計(jì)13</p><p><b> 5. 調(diào)試14</b></p><p> 5.1 檢查硬件連接14</p><p> 5.2 檢查軟件系統(tǒng)14</p><p>
6、 5.3 測(cè)試結(jié)果14</p><p> 6. 課程設(shè)計(jì)體會(huì)15</p><p><b> 參考文獻(xiàn)16</b></p><p> 附錄A 系統(tǒng)原理圖17</p><p> 附錄B 程序源代碼及注釋18</p><p> 1. 概述 </p><
7、;p> 本設(shè)計(jì)是以AT89C51芯片的電路為基礎(chǔ),外部加上放音設(shè)備,以此來(lái)實(shí)現(xiàn)音樂(lè)演奏控制器的硬件電路,通過(guò)軟件程序來(lái)控制單片機(jī)內(nèi)部的定時(shí)器使其演奏出優(yōu)美動(dòng)聽(tīng)的音樂(lè)。</p><p><b> 1.1 設(shè)計(jì)任務(wù)</b></p><p> 設(shè)計(jì)一個(gè)基于單片機(jī)的音樂(lè)盒,利用按鍵切換演奏出不同的樂(lè)曲。蜂鳴器發(fā)出某個(gè)音調(diào),使用兩個(gè)按鍵,一個(gè)用來(lái)選擇上一首歌曲,另一
8、個(gè)切換下一首歌曲。</p><p><b> 1.2 設(shè)計(jì)內(nèi)容</b></p><p> 用單片機(jī)設(shè)計(jì)一個(gè)音樂(lè)盒。</p><p><b> 功能如下:</b></p><p> 1.利用I/O口產(chǎn)生一定頻率的方波,驅(qū)動(dòng)蜂鳴器,發(fā)出不同的音調(diào),從而演奏樂(lè)曲(最少三首樂(lè)曲,每首不少于30秒)。
9、</p><p> 2.采用LCD顯示信息,顯示樂(lè)曲編號(hào),播放時(shí)間或剩余時(shí)間,開(kāi)機(jī)時(shí)有英文歡迎提示字符。</p><p> 3. 可通過(guò)功能鍵選擇樂(lè)曲,暫停,播放。</p><p> 2. 系統(tǒng)總體方案介紹</p><p><b> 2.1 系統(tǒng)組成</b></p><p> 系統(tǒng)組成框
10、圖如圖2.1所示</p><p><b> 圖</b></p><p> 2.1 系統(tǒng)組成框圖</p><p> 2.1.1控制器選擇</p><p> AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓,高性能CMOS8位微處理器。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的M
11、CS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。引腳如圖2.1所示</p><p><b> 主要特性:</b></p><p> ·與MCS-51 兼容 ·4K字節(jié)可編程閃爍存儲(chǔ)器·壽命:100
12、0寫(xiě)/擦循環(huán)·數(shù)據(jù)保留時(shí)間:10年·全靜態(tài)工作:0Hz-24Hz·三級(jí)程序存儲(chǔ)器鎖定·128*8位內(nèi)部RAM·32可編程I/O線(xiàn)·兩個(gè)16位定時(shí)器/計(jì)數(shù)器·5個(gè)中斷源 圖2.2 89c51引腳圖·可編程串行通道·低功耗的閑置和掉電模式·片內(nèi)振蕩器和時(shí)鐘電路 <
13、;/p><p><b> 音頻輸出部分</b></p><p> 整個(gè)輸出部分由一個(gè)蜂鳴器/喇叭組成,原理圖如右圖所示:</p><p> 用P3.0口控制蜂鳴器。輸出顯示電路如圖2.3所示:</p><p><b> 圖</b></p><p> 圖2.3輸出顯示電路
14、 </p><p><b> 3. 硬件設(shè)計(jì)</b></p><p> 當(dāng)鍵盤(pán)有鍵按下時(shí),判斷鍵值,啟動(dòng)計(jì)數(shù)器T0,產(chǎn)生一定頻率的脈沖,驅(qū)
15、 動(dòng)蜂鳴器,放出樂(lè)曲。同時(shí)啟動(dòng)定時(shí)器T1,顯示樂(lè)曲播放的時(shí)間,并驅(qū)動(dòng)LCD,顯示歌曲號(hào)及播放時(shí)間。也可在LED顯示歌曲號(hào)。</p><p> 3.1 按鍵電路設(shè)計(jì)</p><p> 按鍵電路如圖3.1所示:P1.0-P1.5控制按鍵,其中P1.0-P1.1掃描行,P1.4-P1.5掃描列。</p><p><b> 圖3.1 按鍵電路<
16、/b></p><p> 3.2 LCD顯示電路設(shè)計(jì)與原理</p><p> LCD顯示電路如圖3.2所示,文字型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)。</p><p>
17、 圖3.2 LCD顯示電路</p><p> 3.3 時(shí)鐘振蕩電路</p><p> AT89C51中有一個(gè)用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外石英晶體或者陶瓷諧振器一起構(gòu)成自然振蕩器。外接石英晶體及電容C1、C2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。振蕩器電路入圖3.3所示:</p&g
18、t;<p> 圖3.3 單片機(jī)內(nèi)部時(shí)鐘電路</p><p><b> 4.軟件設(shè)計(jì)</b></p><p> 4.1 主程序流程圖</p><p> 主程序流程圖如圖4.1所示。</p><p><b> 4.1主程序流程圖</b></p><p>
19、 LCD顯示流程圖如圖4.2所示</p><p> 圖4.2 LCD顯示流程圖</p><p><b> 5 調(diào)試</b></p><p> 5.1 檢查硬件連接</p><p> 在PROTUES檢查各硬件管腳是否連接正確,線(xiàn)路邏輯是否正確,例如:晶振電路的連接,復(fù)位電路是否設(shè)計(jì)正確。</p>&
20、lt;p> 5.2 檢查軟件系統(tǒng)</p><p> 1.根據(jù)系統(tǒng)的原理結(jié)構(gòu)檢查各流程圖是否正確,再根據(jù)流程圖來(lái)檢查程序是否也正確。</p><p> 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)行仿真。</p><p><b
21、> 5.3 測(cè)試結(jié)果</b></p><p> 5.3.1.總體運(yùn)行圖</p><p> 圖5.1 系統(tǒng)總體運(yùn)行圖</p><p><b> 6. 課程設(shè)計(jì)體會(huì)</b></p><p> 這學(xué)期學(xué)習(xí)單片機(jī)的課時(shí)不多,對(duì)單片機(jī)的硬件設(shè)計(jì),軟件設(shè)計(jì)掌握的深度不夠,但通過(guò)此次課程設(shè)計(jì),明顯的改善了,
22、首先對(duì)于硬件電路的工作原理有了進(jìn)一步的學(xué)習(xí),同時(shí)有了一個(gè)提升;軟件方面,在程序的設(shè)計(jì),程序的調(diào)試方面都有了很大的進(jìn)步。</p><p> 在一個(gè)好的氛圍里才能踏下心來(lái)做東西,在這一段時(shí)間里,同學(xué)們都認(rèn)真對(duì)待這次課程設(shè)計(jì),除了自己做好自己的課題外,在遇到不懂的地方互相討論,查閱資料,互助解決問(wèn)題。另外在編程中出現(xiàn)問(wèn)題時(shí),一定要戒驕戒躁,腳踏實(shí)地,認(rèn)真看書(shū),仔細(xì)分析,仔細(xì)調(diào)試,就一定會(huì)發(fā)現(xiàn)錯(cuò)誤。我們也是這么做的,這
23、一點(diǎn)在這次的課程設(shè)計(jì)中十分重要。</p><p> 通過(guò)這次課程設(shè)計(jì),我體會(huì)到了成功的喜悅,聽(tīng)著自己設(shè)計(jì)的程序下載到單片機(jī)中播放出音樂(lè),心理非常自豪。這次的課程設(shè)計(jì)在一定程度上改變了我學(xué)習(xí)單片機(jī)這門(mén)課程的態(tài)度,從最初的認(rèn)為學(xué)它沒(méi)有什么實(shí)際意義,到如今愛(ài)上單片機(jī)學(xué)習(xí),并希望能將理論運(yùn)用到實(shí)踐,設(shè)計(jì)出更好更完整的系統(tǒng)。我明白了一個(gè)人要想做好一件事,就必須具備自信心,耐心,還要有毅力,要膽大心細(xì),要勇于嘗試,要手腦并
24、用,最后才能交出一份令人滿(mǎn)意的答卷。對(duì)我而言,知識(shí)上的收獲重要,精神上的豐收更加。讓我知道了學(xué)無(wú)止境的道理。我們每一個(gè)人永遠(yuǎn)不能滿(mǎn)足于現(xiàn)有的成就,人生就像在爬山,一座山峰的后面還有更高的山峰在等著你。挫折是一份財(cái)富,經(jīng)歷是一份擁有。這次課程設(shè)計(jì)必將成為為我人生旅途上一個(gè)非常美好的回憶</p><p> 在論文即將完成之際,我的心情無(wú)法平靜,從開(kāi)始進(jìn)入課題到論文的順利完成,有多少可敬的師長(zhǎng)、同學(xué)、朋友給了我無(wú)言的
25、幫助,在這里請(qǐng)接受我誠(chéng)摯的謝意!</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 吳亦峰,陳德偉,單片機(jī)原理與接口技術(shù),北京:電子工業(yè)出版社,2010年11月</p><p> [2] 黃智偉 全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽系統(tǒng)設(shè)計(jì)[M],北京:北京航空航天大學(xué)出版社,2006.6.</p><p>
26、 [3] 黃智偉 凌陽(yáng)單片機(jī)課程設(shè)計(jì)指導(dǎo)[M],北京:北京航空航天大學(xué)出版社,2006.11.</p><p> [4] 李廣弟,朱月秀,王秀山.單片機(jī)基礎(chǔ)[M],北京:北京航空航天大學(xué)出版社,2001.7.</p><p> [5] 趙曙光,郭萬(wàn)有,楊頌華.可編程邏輯器件原理開(kāi)發(fā)與應(yīng)用[M],西安:西安電子科技大學(xué), 2000.</p><p> [6]
27、候伯亨.VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)[M], 西安:西安電子科技大學(xué)出版社, 1999.</p><p> [7] 康華光. 模擬電子技術(shù)基礎(chǔ)(第四版)[M], 武漢:華中理工大學(xué)出版社,1999。</p><p><b> 附錄A 系統(tǒng)原理圖</b></p><p><b> 系統(tǒng)原理圖</b></
28、p><p> 附錄B 程序源代碼及注釋</p><p> RS BIT P2.0;定義液晶顯示端口標(biāo)號(hào)</p><p> RW BIT P2.1</p><p> E BIT P2.2</p><p> ;*************************</p><p> L50MS
29、 EQU 60H </p><p> L1MS EQU 61H</p><p> L250MS EQU 62H</p><p> SEC EQU 65H</p><p> MIN EQU 64H</p><p> HOU EQU 63H</p><p> ORG 0000H
30、 </p><p> ;*************************</p><p><b> LJMP MAIN</b></p><p><b> ORG 000BH</b></p><p><b> LJMP TT0</b></p><
31、p><b> ORG 001BH</b></p><p> LJMP T1INT</p><p><b> ORG 1000H</b></p><p><b> MAIN: </b></p><p> ;-----------------------;液晶初始化
32、</p><p> MOV SP,#70H ;設(shè)置堆棧指針</p><p> MOV P0,#01H ;清屏</p><p> CALL ENABLE ;調(diào)用延時(shí)程序</p><p> MOV P0,#38H ;8位,2行顯示</p><p> LCALL ENABLE</p><
33、p> MOV P0,#0FH ;屏顯ON,光標(biāo)ON,閃爍ON</p><p> LCALL ENABLE</p><p> MOV P0,#06H ;計(jì)數(shù)地址加1,顯示幕ON</p><p> LCALL ENABLE</p><p> ;-------------------------------內(nèi)存初始化</p
34、><p> LCALL INITIL </p><p> ;-------------------------------</p><p><b> KEY1:</b></p><p><b> LCALL KEY</b></p><p> LCALL MOD
35、D </p><p><b> LJMP KEY1</b></p><p> ;---------------------鍵盤(pán)掃描</p><p><b> KEY:</b></p><p><b> NOP</b></p><p&g
36、t;<b> NOP</b></p><p><b> LCALL KS</b></p><p> JNZ K1 ;有按鍵轉(zhuǎn)到K1</p><p> LCALL KAIJI</p><p><b> LCALL SOP</b></p><
37、;p><b> XN:</b></p><p><b> LJMP KEY</b></p><p><b> K1:</b></p><p> LCALL MODD</p><p> LCALL MODD</p><p><b>
38、; LCALL KS</b></p><p><b> JNZ K2</b></p><p><b> LJMP KEY</b></p><p><b> K2:</b></p><p> MOV R2,#0FEH ;讀鍵盤(pán)</p>&l
39、t;p> MOV R4,#00H</p><p><b> K3:</b></p><p><b> MOV A,R2</b></p><p><b> MOV P1,A</b></p><p><b> MOV A,P1</b></
40、p><p> JB ACC.4,L1 ;為1跳轉(zhuǎn),第一行無(wú)按鍵</p><p> MOV A,#00H</p><p><b> LJMP LK</b></p><p><b> L1:</b></p><p> JB ACC.5,NEXT1</p>
41、<p> MOV A,#0CH</p><p> ;-------------------------------------------------------</p><p><b> LK:</b></p><p><b> ADD A,R4</b></p><p>&l
42、t;b> PUSH ACC</b></p><p><b> K4:</b></p><p> LCALL DELAY1 ;若同時(shí)有其他按鍵,則等待</p><p><b> LCALL KS</b></p><p><b> JNZ K4</b>
43、;</p><p> ;--------------------------------------------------------</p><p> MOV R3,#07H </p><p><b> CLR A</b></p><p> MOV R0,#30H</p><p&g
44、t; MOV R1,#31H</p><p><b> MM1:</b></p><p><b> MOV A,@R1</b></p><p><b> MOV @R0,A</b></p><p><b> INC R0</b></p>
45、;<p><b> INC R1</b></p><p> DJNZ R3,MM1</p><p><b> POP ACC</b></p><p> MOV @R0,A </p><p><b> RET</b></p><p>
46、; ;------------------------------------------------------</p><p><b> NEXT1:</b></p><p> INC R4 ;------列掃描</p><p><b> MOV A,R2</b></p><p>
47、 JNB ACC.3,N2</p><p><b> LJMP N1</b></p><p><b> N2:</b></p><p><b> LJMP KEY</b></p><p><b> N1:</b></p><p
48、><b> RL A</b></p><p><b> MOV R2,A</b></p><p><b> LJMP K3</b></p><p> ;----------------------------------------------</p><p>&
49、lt;b> KS:</b></p><p> MOV A,#0F0H ;判斷P1口</p><p><b> MOV P1,A</b></p><p><b> NOP</b></p><p><b> NOP</b></p>
50、<p><b> MOV A,P1</b></p><p><b> CPL A</b></p><p> ANL A,#0F0H</p><p><b> RET</b></p><p> ;--------------------------------
51、------------------</p><p><b> DELAY1:</b></p><p><b> SETB RS0</b></p><p><b> DL:</b></p><p> MOV R5,#0AH</p><p><
52、;b> DL2:</b></p><p> MOV R6,#63</p><p><b> DL3:</b></p><p><b> NOP </b></p><p><b> NOP</b></p><p> DJNZ
53、R6,DL3</p><p> DJNZ R5,DL2 </p><p> CLR RS0 </p><p><b> RET</b></p><p> ;--------------------------------------------------- </p><p>
54、;30H-37H初值為零</p><p> ;----------------------------------------------------</p><p> INITIL: </p><p> MOV R3,#08H</p><p> MOV R0,#30H</p><p><b&g
55、t; M1:</b></p><p> MOV @R0,#00H</p><p><b> INC R0</b></p><p> DJNZ R3,M1 </p><p><b> RET</b></p><p> ;---------
56、-------------------------------------------</p><p><b> ;顯示 </b></p><p> ;---------------------------------------------------</p><p><b> MODD: </b><
57、;/p><p> MOV P0,#8EH</p><p> LCALL ENABLE </p><p><b> MOV A,37H</b></p><p> MOV DPTR,#TABLE3 </p><p> MOVC A,@A+DPTR</p>
58、;<p> LCALL WRITE2 </p><p><b> RET</b></p><p> ;--------------------------------------------------</p><p><b> ;開(kāi)機(jī)提示字</b></p><p>
59、; ;-------------------------------------------------</p><p><b> KAIJI:</b></p><p><b> MOV A,37H</b></p><p> CJNE A,#0FH,DFF</p><p> MOV P0,
60、#80H ;設(shè)光標(biāo)地址 </p><p> LCALL ENABLE</p><p> MOV DPTR,#TABLE1;寫(xiě)數(shù)據(jù)</p><p> LCALL WRITE1 </p><p><b> DFF:</b></p><p><b> RET&l
61、t;/b></p><p> ;----------------------------------------------</p><p><b> ;按鍵值播放歌曲</b></p><p> ;----------------------------------------------</p><p>&
62、lt;b> SOP:</b></p><p><b> MOV A,37H</b></p><p> CJNE A,#01H,A11</p><p> LCALL MODD</p><p> MOV 52H,#HIGH TABLE10</p><p> MOV 53H
63、,#LOW TABLE10</p><p> LCALL INITILE2</p><p> LCALL MAIN0</p><p><b> A11:</b></p><p> CJNE A,#02H,A22</p><p> LCALL MODD</p><p&g
64、t; MOV 52H,#HIGH TABLE20</p><p> MOV 53H,#LOW TABLE20 </p><p> LCALL INITILE2 </p><p> LCALL MAIN0</p><p><b> A22:</b></p><p> CJNE
65、A,#03H,AAA</p><p> LCALL MODD</p><p> MOV 52H,#HIGH TABLE30</p><p> MOV 53H,#LOW TABLE30 </p><p> LCALL INITILE2 </p><p> LCALL MAIN0 </
66、p><p> AAA:RET </p><p> ;******************************************</p><p><b> INITILE2:</b></p><p> MOV L50MS,#20</p><p> MOV L1MS
67、,#00H</p><p> MOV L250MS,#00H</p><p> MOV SEC,#00H</p><p> MOV MIN,#00H</p><p> MOV HOU,#00H</p><p><b> MOV A,HOU</b></p><p>
68、<b> MOV B,#10</b></p><p><b> DIV AB</b></p><p> ADD A,#30H ;將BCD嗎轉(zhuǎn)化為ASIIC碼</p><p> MOV P0,#0C8H ;顯示小時(shí)十位</p><p> CALL ENABLE</p&g
69、t;<p> CALL WRITE2</p><p><b> MOV A,B</b></p><p> ADD A,#30H</p><p> MOV P0,#0C9H ;顯示小時(shí)個(gè)位</p><p> CALL ENABLE</p><p> CALL WRIT
70、E2</p><p> MOV A,#3AH</p><p> MOV P0,#0DH ;顯示冒號(hào)</p><p> CALL ENABLE</p><p> CALL WRITE2</p><p><b> MOV A,MIN</b></p><p>&
71、lt;b> MOV B,#10</b></p><p><b> DIV AB</b></p><p> ADD A,#30H</p><p> MOV P0,#0CBH ;顯示分十位</p><p> CALL ENABLE</p><p> CALL WRI
72、TE2</p><p><b> MOV A,B</b></p><p> ADD A,#30H</p><p> MOV P0,#0CCH ;顯示分個(gè)位</p><p> CALL ENABLE</p><p> CALL WRITE2</p><p>
73、 MOV A,#3AH</p><p> MOV P0,#0CDH ;顯示冒號(hào)</p><p> CALL ENABLE</p><p> CALL WRITE2</p><p><b> MOV A,SEC</b></p><p><b> MOV B,#10</
74、b></p><p><b> DIV AB</b></p><p> ADD A,#30H </p><p> MOV P0,#0CEH ;顯示秒十位</p><p> CALL ENABLE</p><p> CALL WRITE2</p><p>
75、;<b> MOV A,B</b></p><p> ADD A,#30H</p><p> MOV P0,#0CFH ;顯示秒個(gè)位</p><p> CALL ENABLE</p><p> CALL WRITE2</p><p> MOV P0,#0C0H ;設(shè)光標(biāo)地址
76、 </p><p> CALL ENABLE</p><p> MOV DPTR,#TABLE2;寫(xiě)數(shù)據(jù)</p><p> CALL WRITE1 </p><p><b> RET</b></p><p> ;******************************
77、***************寫(xiě)指令</p><p><b> ENABLE: </b></p><p><b> CLR RS</b></p><p><b> CLR RW</b></p><p><b> CLR E</b></p>
78、;<p> LCALL DELAY </p><p><b> SETB E</b></p><p><b> RET</b></p><p> ;**********************************************寫(xiě)數(shù)據(jù)</p><p><b&g
79、t; WRITE1:</b></p><p> MOV R1,#00H</p><p><b> A1:</b></p><p><b> MOV A,R1</b></p><p> MOVC A,@A+DPTR</p><p> CALL WRITE
80、2</p><p><b> INC R1</b></p><p> CJNE A,#0FEH,A1 ;未到字符串末尾繼續(xù)</p><p><b> RET</b></p><p><b> WRITE2:</b></p><p><b
81、> MOV P0,A</b></p><p><b> SETB RS</b></p><p><b> CLR RW</b></p><p><b> CLR E</b></p><p> CALL DELAY</p><p&g
82、t;<b> SETB E</b></p><p><b> RET</b></p><p> ;**********************************************延時(shí)</p><p><b> DELAY:</b></p><p> MOV
83、 R4,#05</p><p><b> D1:</b></p><p> MOV R5,#0FFH</p><p><b> DJNZ R5,$</b></p><p> DJNZ R4,D1</p><p><b> RET </b>&l
84、t;/p><p> ;----------------------------------------------顯示開(kāi)機(jī),查表</p><p><b> TAB:</b></p><p> DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H</p><p> DB 80H,90H,88H
85、,83H,0C6H,0A1H,86H,8EH</p><p> TAB1:DB 89H,86H,0C7H,0C7H,0C0H</p><p> TAB2:DB 0C6H,88H,0C0H</p><p> TABLE1:DB' WELCOME! ',0FEH</p><p> TABLE2:DB'DFF WB
86、',0FEH</p><p> TABLE4:DB 'CAU',0FEH</p><p><b> TABLE3:</b></p><p> DB 30H,31H,32H,33H </p><p> DB 34H,35H,36H,37H</p><p>
87、; ;-------------------------------------------------------------------</p><p><b> ;播放歌曲程序</b></p><p> ;-------------------------------------------------------------------</p>
88、;<p><b> MAIN0:</b></p><p> MOV TMOD,#11H</p><p> MOV IE,#8AH </p><p> MOV TH1,#3CH</p><p> MOV TL1,#0B0H </p><p><b> LCAL
89、L KS</b></p><p> JNZ TTM12 </p><p> MOV 40H,#00H</p><p> ;---------------------------------------------------------</p><p><b> NEXT20:</b&g
90、t;</p><p><b> MOV A,40H</b></p><p> MOV DPH,52H</p><p> MOV DPL,53H</p><p> MOVC A,@A+DPTR</p><p><b> MOV R2,A</b></p>
91、<p><b> JZ STOP</b></p><p> ANL A,#0FH</p><p><b> MOV R1,A</b></p><p><b> MOV A,R2</b></p><p><b> SWAP A</b>&l
92、t;/p><p> ANL A,#0FH</p><p><b> JNZ SING</b></p><p><b> CLR TR0</b></p><p><b> JMP W1</b></p><p> ;------------------
93、----------------------------------------</p><p><b> SING:</b></p><p><b> DEC A</b></p><p><b> MOV 22H,A</b></p><p><b> RL
94、A</b></p><p> MOV DPTR,#TABLE00</p><p> MOVC A,@A+DPTR</p><p><b> MOV TH0,A</b></p><p><b> MOV 21H,A</b></p><p><b>
95、 MOV A,22H</b></p><p><b> RL A</b></p><p><b> INC A</b></p><p> MOVC A,@A+DPTR</p><p><b> MOV TL0,A</b></p><p&
96、gt;<b> MOV 20H,A</b></p><p><b> SETB TR0</b></p><p><b> SETB TR1</b></p><p><b> W1:</b></p><p> LCALL DELAY30</
97、p><p><b> INC 40H</b></p><p> LCALL KS ;------有鍵跳出</p><p><b> JNZ STOP</b></p><p> LJMP NEXT20</p><p> ;-----------------
98、------------------------------------------</p><p><b> STOP:</b></p><p><b> CLR TR0</b></p><p><b> CLR TR1</b></p><p> LJMP MAIN0
99、 </p><p> ;----------------------------------------------------------</p><p><b> TTM12:</b></p><p><b> LCALL K2</b></p><p><b> MOV A,3
100、7H</b></p><p> CJNE A,#0EH,TTM13</p><p><b> CLR TR1</b></p><p> LCALL DELAY1</p><p><b> TTM120:</b></p><p><b> LCA
101、LL KS</b></p><p> LCALL DELAY1</p><p><b> JZ TTM120</b></p><p><b> LCALL K2</b></p><p><b> MOV A,37H</b></p><p&
102、gt; CJNE A,#0EH,TTM120</p><p><b> SETB TR1</b></p><p> LJMP NEXT20</p><p><b> TTM13:</b></p><p> CJNE A,#0CH,TTM14</p><p><
103、b> MOV A,52H</b></p><p><b> INC A</b></p><p><b> MOV 52H,A</b></p><p><b> MOV A,53H</b></p><p><b> INC A</b&g
104、t;</p><p><b> MOV 53H,A</b></p><p><b> MOV A,36H</b></p><p><b> INC A</b></p><p><b> MOV 37H,A</b></p><p&
105、gt;<b> LJMP TTM2</b></p><p><b> TTM14:</b></p><p> CJNE A,#0DH,TTM2</p><p><b> MOV A,52H</b></p><p><b> DEC A</b>&l
106、t;/p><p><b> MOV 52H,A</b></p><p><b> MOV A,53H</b></p><p><b> DEC A</b></p><p><b> MOV 53H,A</b></p><p>&
107、lt;b> MOV A,36H</b></p><p><b> DEC A</b></p><p><b> MOV 37H,A</b></p><p> ;------------------------------------------------------ </p>&
108、lt;p><b> TTM2:</b></p><p><b> RET</b></p><p> ;***************************************************</p><p> ;定時(shí)器中斷子程序0</p><p> ;*********
109、******************************************</p><p><b> TT0:</b></p><p><b> PUSH ACC</b></p><p><b> PUSH PSW</b></p><p> MOV TL0,2
110、0H</p><p> MOV TH0,21H</p><p><b> CPL P3.0</b></p><p><b> POP PSW</b></p><p><b> POP ACC</b></p><p><b> RETI
111、</b></p><p> ;***************************************************</p><p> ;定時(shí)器中斷子程序1</p><p> ;***************************************************</p><p><b&
112、gt; T1INT: </b></p><p> MOV TH1, #3CH</p><p> MOV TL1, #0B0H</p><p> DJNZ L50MS,X4</p><p> MOV L50MS,#20</p><p> ;****************---每秒種時(shí)鐘刷新秒顯示
113、一次</p><p><b> SECSET:</b></p><p><b> MOV A,SEC</b></p><p><b> MOV B,#10</b></p><p><b> DIV AB</b></p><p&g
114、t; ADD A,#30H </p><p> MOV P0,#0CEH ;顯示秒十位</p><p> LCALL ENABLE</p><p> LCALL WRITE2</p><p><b> MOV A,B</b></p><p> ADD A,#30H</p&g
115、t;<p> MOV P0,#0CFH ;顯示秒個(gè)位</p><p> LCALL ENABLE</p><p> LCALL WRITE2</p><p><b> MOV A,SEC</b></p><p><b> INC A</b></p><
116、;p><b> MOV SEC,A</b></p><p><b> XRL A,#60</b></p><p><b> X4:</b></p><p><b> JNZ OUT</b></p><p><b> MINSET:
117、</b></p><p> MOV SEC,#00H </p><p> ;*************************************每分鐘刷新分顯示一次</p><p><b> MOV A,MIN</b></p><p><b> INC A</b><
118、;/p><p> MOV MIN,A </p><p><b> MOV B,#10</b></p><p><b> DIV AB</b></p><p> ADD A,#30H</p><p> MOV P0,#0CBH ;顯示分十位</p>
119、<p> LCALL ENABLE</p><p> LCALL WRITE2</p><p><b> MOV A,B</b></p><p> ADD A,#30H</p><p> MOV P0,#0CCH ;顯示分個(gè)位</p><p> LCALL ENABL
120、E</p><p> LCALL WRITE2</p><p> MOV A,MIN </p><p><b> MOV B,#3</b></p><p><b> MUL AB</b></p><p> MOV B,#100</p><p>
121、;<b> DIV AB</b></p><p><b> MOV R2,A</b></p><p><b> MOV A,#10</b></p><p><b> XCH A,B</b></p><p><b> DIV AB<
122、/b></p><p><b> MOV A,MIN</b></p><p><b> XRL A,#60</b></p><p><b> JNZ OUT</b></p><p><b> HOUSET:</b></p>&l
123、t;p> MOV MIN,#00H </p><p> ;**************************************每小時(shí)刷新小時(shí)顯示一次 </p><p><b> MOV A,HOU</b></p><p><b> MOV B,#10</b></p><p>
124、;<b> DIV AB</b></p><p> ADD A,#30H ;將BCD嗎轉(zhuǎn)化為ASIIC碼</p><p> MOV P0,#0C8H ;顯示小時(shí)十位</p><p> CALL ENABLE</p><p> CALL WRITE2</p><p>
125、<b> MOV A,B</b></p><p> ADD A,#30H</p><p> MOV P0,#0C9H ;顯示小時(shí)個(gè)位</p><p> CALL ENABLE</p><p> CALL WRITE2</p><p><b> MOV A,HOU<
126、/b></p><p><b> INC A</b></p><p><b> MOV HOU,A</b></p><p><b> XRL A,#10</b></p><p><b> JNZ OUT</b></p><
127、p> SJMP OVERFLOW</p><p><b> OUT:</b></p><p><b> RETI</b></p><p> ;*************************************溢出處理</p><p><b> OVERFLOW:&l
128、t;/b></p><p> MOV L50MS,#20</p><p> MOV L1MS,#00H</p><p> MOV L250MS,#00H</p><p> MOV SEC,#00H</p><p> MOV MIN,#00H</p><p> MOV HOU,#
129、00H</p><p><b> RETI</b></p><p> ;-------------------------------------------------------------------</p><p> DELAY30: ;延時(shí)子程序</p><p><b> MOV R7,#
130、2</b></p><p><b> W2:</b></p><p> MOV R4,#125</p><p><b> W3:</b></p><p> MOV R3,#248</p><p><b> DJNZ R3,$</b>
131、</p><p> DJNZ R4,W3</p><p> DJNZ R7,W2</p><p> DJNZ R1,DELAY30</p><p><b> RET</b></p><p> ;-----------------------------------------------
132、--------------------</p><p> TABLE00: ;決定音調(diào)的定時(shí)初值</p><p> DW 64580,64684,64777,64820</p><p> DW 64898,64968,65030,64260</p><p> DW 64400,64524,65058,63835,64021</
133、p><p> ;-------------------------------------------------------------------</p><p> ;第一首《同一首歌》</p><p> ;-------------------------------------------------------------------</p>
134、<p><b> TABLE10:</b></p><p> DB 88H,14H,24H,36H,42H,34H,14H,28H,14H,94H</p><p> DB 1FH,88H,14H,24H,34H,32H,42H,54H,14H</p><p> DB 46H,32H,54H,22H,32H,32H,22H,
135、2CH,38H,54H,74H</p><p> DB 76H,62H,68H,54H,52H,62H,74H,62H,52H,3FH</p><p> DB 46H,42H,54H,64H,54H,42H,32H,28H,0A4H,0A2H</p><p> DB 92H,84H,94H,1FH,0B8H,68H,46H,52H,68H</p>
136、<p> DB 74H,72H,72H,74H,62H,52H,3FH,0B8H,68H</p><p> DB 46H,52H,68H,64H,62H,62H,64H,42H,32H,2FH</p><p> DB 58H,14H,24H,36H,42H,34H,12H,12H,26H,22H,24H,22H,12H</p><p> DB 9
137、4H,9CH,0A8H,0A6H,92H,84H,64H,54H,22H,22H,46H,42H,44H,32H,22H,5FH</p><p><b> DB 00</b></p><p> ;-------------------------------------------------------------------</p><p&
138、gt; ;第二首<<世上只有媽媽好>></p><p> ;-------------------------------------------------------------------</p><p><b> TABLE20:</b></p><p> DB 66H,52H,34H,54H,0B4H,
139、62H,52H,68H,34H,52H,62H,54H,34H,12H,92H,52H,</p><p><b> 32H,28H</b></p><p> DB 26H,32H,54H,52H,62H,34H,24H,18H,56H,32H,22H,12H,92H,12H,8FH</p><p> DB 66H,52H,34H,54H,
140、0B4H,62H,52H,68H,34H,52H,62H,54H,34H,12H,92H,52H,</p><p><b> 32H,28H</b></p><p> DB 26H,32H,54H,52H,62H,34H,24H,18H,56H,32H,22H,12H,92H,12H,8FH</p><p> DB 66H,52H,34H
141、,54H,0B4H,62H,52H,68H,34H,52H,62H,54H,34H,12H,92H,52H,</p><p><b> 32H,28H</b></p><p> DB 26H,32H,54H,52H,62H,34H,24H,18H,56H,32H,22H,12H,92H,12H,8FH</p><p><b>
142、DB 00</b></p><p> ;-------------------------------------------------------------------</p><p> ;第三首《精忠報(bào)國(guó)》</p><p> ;---------------------------------------------------------
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計(jì)---數(shù)字音樂(lè)盒的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---數(shù)字音樂(lè)盒
- 單片機(jī)課程設(shè)計(jì)--- 數(shù)字音樂(lè)盒
- 單片機(jī)課程設(shè)計(jì)-數(shù)字音樂(lè)盒設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--數(shù)字音樂(lè)盒的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)《數(shù)字音樂(lè)盒的設(shè)計(jì)》
- 單片機(jī)課程設(shè)計(jì)-基于單片機(jī)的數(shù)字音樂(lè)盒設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的數(shù)字音樂(lè)盒
- 課程設(shè)計(jì)---基于at89s52單片機(jī)數(shù)字音樂(lè)盒設(shè)計(jì)
- 基于單片機(jī)的數(shù)字音樂(lè)盒的設(shè)計(jì)
- 基于單片機(jī)的數(shù)字音樂(lè)盒的設(shè)計(jì)
- 課程設(shè)計(jì)--雙功能音樂(lè)盒
- 基于89c51的數(shù)字音樂(lè)盒設(shè)計(jì)
- 基于51單片機(jī)數(shù)字音樂(lè)盒的設(shè)計(jì)
- 單片機(jī)音樂(lè)盒課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--音樂(lè)盒
- 音樂(lè)盒單片機(jī)課程設(shè)計(jì)
- 單片機(jī)音樂(lè)盒課程設(shè)計(jì)
- 單片機(jī)音樂(lè)盒課程設(shè)計(jì)
- 電子音樂(lè)盒課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論