版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 單片機原理與接口技術(shù)</p><p> 課 程 設(shè) 計</p><p> 設(shè)計課題 : 數(shù)字音樂盒的設(shè)計 </p><p> 學(xué)院名稱 : 電氣工程學(xué)院 </p><p> 專業(yè)班級 :
2、 _</p><p> 學(xué)生姓名 : __</p><p> 學(xué) 號 : </p><p> 指導(dǎo)教師 : </p><p> 設(shè)計地點 :
3、 </p><p> 設(shè)計時間 : 2012-12-17~2012-12-28 </p><p> 單片機原理與接口技術(shù) 課程設(shè)計任務(wù)書</p><p><b> 目錄</b></p><p><b> 1. 概述4</b&g
4、t;</p><p> 1.1 設(shè)計任務(wù)4</p><p> 1.2 設(shè)計內(nèi)容5</p><p> 2. 系統(tǒng)總體方案介紹5</p><p> 2.1 系統(tǒng)組成5</p><p> 3. 硬件設(shè)計10</p><p> 3.1各部分硬件設(shè)計及其原理10</p>
5、<p><b> 4.軟件設(shè)計13</b></p><p> 4.1 軟件程序設(shè)計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 測試結(jié)果14</p><p> 6. 課程設(shè)計體會15</p><p><b> 參考文獻16</b></p><p> 附錄A 系統(tǒng)原理圖17</p><p> 附錄B 程序源代碼及注釋18</p><p> 1. 概述 </p><
7、;p> 本設(shè)計是以AT89C51芯片的電路為基礎(chǔ),外部加上放音設(shè)備,以此來實現(xiàn)音樂演奏控制器的硬件電路,通過軟件程序來控制單片機內(nèi)部的定時器使其演奏出優(yōu)美動聽的音樂。</p><p><b> 1.1 設(shè)計任務(wù)</b></p><p> 設(shè)計一個基于單片機的音樂盒,利用按鍵切換演奏出不同的樂曲。蜂鳴器發(fā)出某個音調(diào),使用兩個按鍵,一個用來選擇上一首歌曲,另一
8、個切換下一首歌曲。</p><p><b> 1.2 設(shè)計內(nèi)容</b></p><p> 用單片機設(shè)計一個音樂盒。</p><p><b> 功能如下:</b></p><p> 1.利用I/O口產(chǎn)生一定頻率的方波,驅(qū)動蜂鳴器,發(fā)出不同的音調(diào),從而演奏樂曲(最少三首樂曲,每首不少于30秒)。
9、</p><p> 2.采用LCD顯示信息,顯示樂曲編號,播放時間或剩余時間,開機時有英文歡迎提示字符。</p><p> 3. 可通過功能鍵選擇樂曲,暫停,播放。</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é)閃爍可編程可擦除只讀存儲器的低電壓,高性能CMOS8位微處理器。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的M
11、CS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。引腳如圖2.1所示</p><p><b> 主要特性:</b></p><p> ·與MCS-51 兼容 ·4K字節(jié)可編程閃爍存儲器·壽命:100
12、0寫/擦循環(huán)·數(shù)據(jù)保留時間:10年·全靜態(tài)工作:0Hz-24Hz·三級程序存儲器鎖定·128*8位內(nèi)部RAM·32可編程I/O線·兩個16位定時器/計數(shù)器·5個中斷源 圖2.2 89c51引腳圖·可編程串行通道·低功耗的閑置和掉電模式·片內(nèi)振蕩器和時鐘電路 <
13、;/p><p><b> 音頻輸出部分</b></p><p> 整個輸出部分由一個蜂鳴器/喇叭組成,原理圖如右圖所示:</p><p> 用P3.0口控制蜂鳴器。輸出顯示電路如圖2.3所示:</p><p><b> 圖</b></p><p> 圖2.3輸出顯示電路
14、 </p><p><b> 3. 硬件設(shè)計</b></p><p> 當(dāng)鍵盤有鍵按下時,判斷鍵值,啟動計數(shù)器T0,產(chǎn)生一定頻率的脈沖,驅(qū)
15、 動蜂鳴器,放出樂曲。同時啟動定時器T1,顯示樂曲播放的時間,并驅(qū)動LCD,顯示歌曲號及播放時間。也可在LED顯示歌曲號。</p><p> 3.1 按鍵電路設(shè)計</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è)計與原理</p><p> LCD顯示電路如圖3.2所示,文字型LCD(16×2)的D0-D07端口與AT89C51端口P0.0-P0.7相連接VSS與VEE兩端接地。P2.0-P2.2作為LCD的RS,R/W,E的控制信號。用P0.0-P0.7作為LCD的D0-D7的控制信號。</p><p>
17、 圖3.2 LCD顯示電路</p><p> 3.3 時鐘振蕩電路</p><p> AT89C51中有一個用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或者陶瓷諧振器一起構(gòu)成自然振蕩器。外接石英晶體及電容C1、C2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。振蕩器電路入圖3.3所示:</p&g
18、t;<p> 圖3.3 單片機內(nèi)部時鐘電路</p><p><b> 4.軟件設(shè)計</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檢查各硬件管腳是否連接正確,線路邏輯是否正確,例如:晶振電路的連接,復(fù)位電路是否設(shè)計正確。</p>&
20、lt;p> 5.2 檢查軟件系統(tǒng)</p><p> 1.根據(jù)系統(tǒng)的原理結(jié)構(gòu)檢查各流程圖是否正確,再根據(jù)流程圖來檢查程序是否也正確。</p><p> 2.將所有程序組織起來,在軟件環(huán)境下運行,檢查程序是否正確。通過對硬件和軟件系統(tǒng)的認真檢查,反復(fù)測試,如果沒有出現(xiàn)問題即可把源程序編譯成HEX文件裝載到單片機中,對硬件進行仿真。</p><p><b
21、> 5.3 測試結(jié)果</b></p><p> 5.3.1.總體運行圖</p><p> 圖5.1 系統(tǒng)總體運行圖</p><p><b> 6. 課程設(shè)計體會</b></p><p> 這學(xué)期學(xué)習(xí)單片機的課時不多,對單片機的硬件設(shè)計,軟件設(shè)計掌握的深度不夠,但通過此次課程設(shè)計,明顯的改善了,
22、首先對于硬件電路的工作原理有了進一步的學(xué)習(xí),同時有了一個提升;軟件方面,在程序的設(shè)計,程序的調(diào)試方面都有了很大的進步。</p><p> 在一個好的氛圍里才能踏下心來做東西,在這一段時間里,同學(xué)們都認真對待這次課程設(shè)計,除了自己做好自己的課題外,在遇到不懂的地方互相討論,查閱資料,互助解決問題。另外在編程中出現(xiàn)問題時,一定要戒驕戒躁,腳踏實地,認真看書,仔細分析,仔細調(diào)試,就一定會發(fā)現(xiàn)錯誤。我們也是這么做的,這
23、一點在這次的課程設(shè)計中十分重要。</p><p> 通過這次課程設(shè)計,我體會到了成功的喜悅,聽著自己設(shè)計的程序下載到單片機中播放出音樂,心理非常自豪。這次的課程設(shè)計在一定程度上改變了我學(xué)習(xí)單片機這門課程的態(tài)度,從最初的認為學(xué)它沒有什么實際意義,到如今愛上單片機學(xué)習(xí),并希望能將理論運用到實踐,設(shè)計出更好更完整的系統(tǒng)。我明白了一個人要想做好一件事,就必須具備自信心,耐心,還要有毅力,要膽大心細,要勇于嘗試,要手腦并
24、用,最后才能交出一份令人滿意的答卷。對我而言,知識上的收獲重要,精神上的豐收更加。讓我知道了學(xué)無止境的道理。我們每一個人永遠不能滿足于現(xiàn)有的成就,人生就像在爬山,一座山峰的后面還有更高的山峰在等著你。挫折是一份財富,經(jīng)歷是一份擁有。這次課程設(shè)計必將成為為我人生旅途上一個非常美好的回憶</p><p> 在論文即將完成之際,我的心情無法平靜,從開始進入課題到論文的順利完成,有多少可敬的師長、同學(xué)、朋友給了我無言的
25、幫助,在這里請接受我誠摯的謝意!</p><p><b> 參考文獻</b></p><p> [1] 吳亦峰,陳德偉,單片機原理與接口技術(shù),北京:電子工業(yè)出版社,2010年11月</p><p> [2] 黃智偉 全國大學(xué)生電子設(shè)計競賽系統(tǒng)設(shè)計[M],北京:北京航空航天大學(xué)出版社,2006.6.</p><p>
26、 [3] 黃智偉 凌陽單片機課程設(shè)計指導(dǎo)[M],北京:北京航空航天大學(xué)出版社,2006.11.</p><p> [4] 李廣弟,朱月秀,王秀山.單片機基礎(chǔ)[M],北京:北京航空航天大學(xué)出版社,2001.7.</p><p> [5] 趙曙光,郭萬有,楊頌華.可編程邏輯器件原理開發(fā)與應(yīng)用[M],西安:西安電子科技大學(xué), 2000.</p><p> [6]
27、候伯亨.VHDL硬件描述語言與數(shù)字邏輯電路設(shè)計[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;定義液晶顯示端口標號</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)用延時程序</p><p> MOV P0,#38H ;8位,2行顯示</p><p> LCALL ENABLE</p><
33、p> MOV P0,#0FH ;屏顯ON,光標ON,閃爍ON</p><p> LCALL ENABLE</p><p> MOV P0,#06H ;計數(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><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>&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),第一行無按鍵</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 ;若同時有其他按鍵,則等待</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> ;開機提示字</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è)光標地址 </p><p> LCALL ENABLE</p><p> MOV DPTR,#TABLE1;寫數(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 ;顯示小時十位</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 ;顯示小時個位</p><p> CALL ENABLE</p><p> CALL WRIT
70、E2</p><p> MOV A,#3AH</p><p> MOV P0,#0DH ;顯示冒號</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 ;顯示分個位</p><p> CALL ENABLE</p><p> CALL WRITE2</p><p>
73、 MOV A,#3AH</p><p> MOV P0,#0CDH ;顯示冒號</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 ;顯示秒個位</p><p> CALL ENABLE</p><p> CALL WRITE2</p><p> MOV P0,#0C0H ;設(shè)光標地址
76、 </p><p> CALL ENABLE</p><p> MOV DPTR,#TABLE2;寫數(shù)據(jù)</p><p> CALL WRITE1 </p><p><b> RET</b></p><p> ;******************************
77、***************寫指令</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> ;**********************************************寫數(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> ;**********************************************延時</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> ;----------------------------------------------顯示開機,查表</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> ;定時器中斷子程序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> ;定時器中斷子程序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> ;****************---每秒種時鐘刷新秒顯示
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 ;顯示秒個位</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 ;顯示分個位</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> ;**************************************每小時刷新小時顯示一次 </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 ;顯示小時十位</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 ;顯示小時個位</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: ;延時子程序</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)的定時初值</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> ;第三首《精忠報國》</p><p> ;---------------------------------------------------------
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計---數(shù)字音樂盒的設(shè)計
- 單片機課程設(shè)計---數(shù)字音樂盒
- 單片機課程設(shè)計--- 數(shù)字音樂盒
- 單片機課程設(shè)計-數(shù)字音樂盒設(shè)計
- 單片機課程設(shè)計--數(shù)字音樂盒的設(shè)計
- 單片機課程設(shè)計《數(shù)字音樂盒的設(shè)計》
- 單片機課程設(shè)計-基于單片機的數(shù)字音樂盒設(shè)計
- 單片機課程設(shè)計--基于單片機的數(shù)字音樂盒
- 課程設(shè)計---基于at89s52單片機數(shù)字音樂盒設(shè)計
- 基于單片機的數(shù)字音樂盒的設(shè)計
- 基于單片機的數(shù)字音樂盒的設(shè)計
- 課程設(shè)計--雙功能音樂盒
- 基于89c51的數(shù)字音樂盒設(shè)計
- 基于51單片機數(shù)字音樂盒的設(shè)計
- 單片機音樂盒課程設(shè)計
- 單片機課程設(shè)計--音樂盒
- 音樂盒單片機課程設(shè)計
- 單片機音樂盒課程設(shè)計
- 單片機音樂盒課程設(shè)計
- 電子音樂盒課程設(shè)計
評論
0/150
提交評論