單片機數(shù)字音樂盒設(shè)計_第1頁
單片機數(shù)字音樂盒設(shè)計_第2頁
單片機數(shù)字音樂盒設(shè)計_第3頁
單片機數(shù)字音樂盒設(shè)計_第4頁
單片機數(shù)字音樂盒設(shè)計_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機數(shù)字音樂盒設(shè)計摘 要:本設(shè)計是采用單片機為核心設(shè)計的數(shù)字音樂播放器。它可以實現(xiàn)音樂的播放,可以通過功能鍵來選擇樂曲,播放或暫停,上一曲或下一曲,并可以通過 LCD 屏幕顯示正在播放的歌曲的序號,以及播放時間。開機時有英文歡迎提示字符。本音樂播放器可以播放十首歌曲。主控芯片采用 AT89C51,采用匯編語言進行編程,編程后利用 KEIl C51 進行編譯,用Proteus 軟件來仿真。關(guān)鍵詞:數(shù)字音樂盒;單片機;智能化 Digital Music Box Design CHENYING Instructor:HUKEYONG Abstract:This design is using mi

2、crocontroller as the core design of the digital music player . It can play music. It can function keys to select a song, play or pause on one or the next one. and the serial number of the song that is playing, as well as play time can be displayed through the LCD screen. English boot welcome prompt

3、characters. The music player can play ten songs.The master chip is AT89C51, assembly language is programming, programming by KEIl C51 compile,then using Proteus software to simulate. Key words:Digital Music Box, SCM, Intelligent目錄目錄1 引言.11.1 單片機總體功能簡介 .12 系統(tǒng)設(shè)計.12.1 總體設(shè)計方案 .12.2 系統(tǒng)硬件設(shè)計 .22.3 主要元器件介紹

4、.42.3.1 AT89C51 單片機.42.3.2 LM016L 液晶顯示器.52.4 PROTEUS軟件介紹 .63 軟件設(shè)計及仿真.73.1 程序流程 .73.2 系統(tǒng)初始化程序設(shè)計 .73.3 音調(diào)的確定 .83.4 項目仿真 .9總結(jié).10參考文獻:.10附錄一.11附錄二.1111 引言引言目前,各種傳感器、變送器、控制儀表已經(jīng)普遍采用單片機應(yīng)用系統(tǒng)。它測量、處理、控制功能于一單片機是單片微型機的簡稱,故又稱為微控制器 MCU。通常由單塊集成電路芯片組成,內(nèi)部含有計算機的基本功能部件:中央處理器 CPU,存儲器和 I/O 接口電路等。因此,單片機只要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便

5、可成為一個單片機控制系統(tǒng)。1.11.1 單片機總體功能簡介單片機總體功能簡介單片機是在工業(yè)測控需要背景下而產(chǎn)生的,在一個應(yīng)用系統(tǒng)中。按照測控系統(tǒng)的特點和要求,單片機的應(yīng)用可分為單機應(yīng)用和多機應(yīng)用兩大類。我們這次要完成的單片機課程設(shè)計就是它的單機應(yīng)用,下面介紹一下單片機應(yīng)用領(lǐng)域內(nèi)的主要內(nèi)容。(1) 智能產(chǎn)品單片機與傳統(tǒng)機械產(chǎn)品相結(jié)合,使傳統(tǒng)機械產(chǎn)品結(jié)構(gòu)簡化,控制智能化,購成新一代機電一體化產(chǎn)品。目前,利用單片機構(gòu)成的智能產(chǎn)品已廣泛應(yīng)用于家用電器、辦公設(shè)備、數(shù)控機床、紡織機械、 工業(yè)設(shè)備等行業(yè)。(2) 智能儀表 目前,各種傳感器、變送器、控制儀表已經(jīng)普遍采用單片機應(yīng)用系統(tǒng)。它測量、處理、控制功能于

6、 一體,具有各種智能化功能,如存儲、數(shù)據(jù)處理、查找、判斷、聯(lián)網(wǎng)和語音等功能。單片機構(gòu)成的智能儀表,能使儀表具有數(shù)字化、智能化、多功能化、綜合化等優(yōu)點。(3) 測控技術(shù)用于單片機結(jié)構(gòu)的各種工業(yè)控制系統(tǒng)中的數(shù)據(jù)采集系統(tǒng)具有工作穩(wěn)定可靠、抗干擾能力強的優(yōu)點。(4) 智能接口在計算機系統(tǒng),特別是較大型的工業(yè)測控系統(tǒng)中,除通用外部設(shè)備外,還由許多外部通信、采集、多路分配管理、驅(qū)動控制等接口。這些外部設(shè)備與接口如果完全由主機進行管理,勢必會造成主機負(fù)擔(dān)過重,運行速度降低,接 口的管理水平也不可能提高。如果用單片機進行接口的控制與管理,單片機與主機可并行加工處理,可以大量降 低接口的通信密度,極大的提高了接

7、口控制廣利水平。在一些通用計算機外部設(shè)備上,以實現(xiàn)了單片機的鍵盤管理、打印機控制、硬盤驅(qū)動控制等。2 2 系統(tǒng)設(shè)計系統(tǒng)設(shè)計2.12.1 總體設(shè)計方案總體設(shè)計方案(1)利用 AT89C51 單片機的 I/O 口產(chǎn)生一定頻率的方波,驅(qū)動蜂鳴器,發(fā)出不同的音調(diào),2從而演奏樂曲。(2)LCD 液晶顯示歌曲的序號、播放時間,開機時顯示英文歡迎字符。(3)用鍵盤控制 10 首歌曲的播放,并設(shè)置開機鍵、暫停鍵、上一曲、下一曲控制鍵。2.22.2 系統(tǒng)硬件設(shè)計系統(tǒng)硬件設(shè)計硬件功能模塊劃分:單片機最小系統(tǒng)模塊、按鍵模塊、蜂鳴器電路模塊、LCD 液晶顯示屏模塊。系統(tǒng)結(jié)構(gòu)框圖如圖 2.1 所示LCD 液晶顯示AT8

8、9C51單片機復(fù)位電路晶振電路電源電路蜂鳴器電路4X4 按鍵矩陣電路圖 2.1 數(shù)字音樂盒系統(tǒng)結(jié)構(gòu)框圖(1)單片機最小系統(tǒng)模塊最小系統(tǒng)模塊包括單片機、復(fù)位電路、晶振電路以及電源電路。如圖 2.2 所示圖 2.2 單片機最小系統(tǒng)(2)按鍵模塊選用 4X4 矩陣鍵盤,如圖 2.3 所示,14 端口掃描行,58 端口掃描列3圖 2.3 按鍵模塊4x4 鍵盤構(gòu)成與鍵盤對應(yīng)功能如圖 2.4 所示曲一曲二曲三曲四曲五曲六曲七曲八曲九曲十下曲上曲暫停開機圖 2.4 鍵盤對應(yīng)功能圖(3)蜂鳴器電路模塊蜂鳴器電路模塊由單片機接口外接兩個 1K 電阻、一個 100 歐電阻和一個 NPN 型三極管來驅(qū)動揚聲器。其主

9、要任務(wù)是輸出大信號和大功率,對音頻信號有效不失真的進行放大以推動揚聲器發(fā)出聲音。如圖 2.5 所示42.5 蜂鳴器電路(4)LCD 液晶顯示屏模塊LCD 液晶顯示屏如圖 2.6 所示,D0D7 為傳送數(shù)據(jù)信息引腳,E 為使能信號引腳,而當(dāng) RS為 1,R/W 為 0 時,設(shè)定為將數(shù)據(jù)信息寫入 LCD 的數(shù)據(jù)暫存區(qū)圖 2.6 LCD 液晶顯示屏模塊2.32.3 主要元器件介紹主要元器件介紹2.3.12.3.1 AT89C51AT89C51 單片機單片機本系統(tǒng)采用的是 51 系列的 AT89C51 單片機。AT89C51 是一種帶 4K 字節(jié)閃爍可編程可擦除只讀存儲器(FPEROMFlash Pr

10、ogrammable and Erasable Read Only Memory)的低電壓,高性能 CMOS8 位微處理器,俗稱單片機。該器件采用 ATMEL 高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的 MCS-51 指令集和輸出管腳相兼容。由于將多功能 8 位CPU 和閃爍存儲器組合在單個芯片中,ATMEL 的 AT89C51 是一種高效微控制器, 為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。圖 2.7 為 AT89C51 單片機的管腳圖。5圖 2.7 AT89C51 單片機管腳圖VCC:正電源端GND:單片機的接地端XTAL1/XTAL2:片內(nèi)振蕩電路輸入/輸出端,兩端跨接晶體或

11、陶瓷諧振器,與單片機內(nèi)部反相器構(gòu)成穩(wěn)定的自激振蕩器。發(fā)出的脈沖直接送入片內(nèi)定的控制部件RESET:復(fù)位端EA/VPP:尋址外部 ROM 控制端/編程電源輸入端。ALE/PROG:地址鎖存允許/編程脈沖輸入端。PSEN:尋址外部程序存儲器,選通外部 EPROM 的端口(OE) 。P0.0P0.7 P1.0P1.7 P2.0P2.7:準(zhǔn)雙向 I/O 口。P3.0P3.7:具有特定的第二功能(準(zhǔn)雙向 I/O 口) 。2.3.22.3.2 LM016LLM016L 液晶顯示器液晶顯示器LM016L 液晶模塊采用 HD44780 控制器,HD44780 具有簡單而功能較強的指令集,可以實現(xiàn)字符移動,閃爍

12、等功能,LM016L 與單片機 MCU 通訊可采用 8 位或 4 位并行傳輸兩種方式,hd44780 控制器由兩個 8 位寄存器,指令寄存器(IR)和數(shù)據(jù)寄存器(DR)忙標(biāo)志(BF) ,顯示數(shù) RAM(DDRAM) ,字符發(fā)生器 ROMA(CGOROM)字符發(fā)生器RAM(CGRAM) ,地址計數(shù)器 RAM(AC)。IR 用于寄存指令碼,只能寫入不能讀出,DR用于寄存數(shù)據(jù),數(shù)據(jù)由內(nèi)部操作自動寫入 DDRAM 和 CGRAM,或者暫存從 DDRAM 和CGRAM 讀出的數(shù)據(jù),BF 為 1 時,液晶模塊處于內(nèi)部模式,不響應(yīng)外部操作指令和接受數(shù)6據(jù),DDTAM 用來存儲顯示的字符,能存儲 80 個字符

13、碼, CGROM 由 8 位字符碼生成5*7 點陣字符 160 種和 5*10 點陣字符 32 種。圖 2.8 為 LM016L 液晶顯示屏的引腳圖圖 2.8 LM016L 液晶顯示屏引腳圖VSS:一般接地VCC:接電源(+5V)V0:液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個 10K 的電位器調(diào)整對比度)。RS:RS 為寄存器選擇,高電平 1 時選擇數(shù)據(jù)寄存器、低電平 0 時選擇指令寄存器。R/W:R/W 為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。E:E(或 EN)端為使能(enable)端,下降

14、沿使能。DB0DB7:底 4 位三態(tài)、 雙向數(shù)據(jù)總線 06 位RS、R/W 寄存器選擇控制如表 2.1 所示:表 2.1 RS、R/W 寄存器選擇控制表RSR/W操作說明00寫入指令寄存器(清除屏等)01讀 busy flag(DB7),以及讀取位址計數(shù)器(DB0DB6)值10寫入數(shù)據(jù)寄存器(顯示各字型等)11從數(shù)據(jù)寄存器讀取數(shù)據(jù)2.42.4 proteusproteus 軟件介紹軟件介紹Proteus 與其它單片機仿真軟件不同的是,它不僅能仿真單片機 CPU 的工作情況,也能仿真單片機外圍電路或沒有單片機參與的其它電路的工作情況。因此在仿真和程序調(diào)試時,關(guān)心的不再是某些語句執(zhí)行時單片機寄存器

15、和存儲器內(nèi)容的改變,而是從工程的角度直接看程序運行和電路工作的過程和結(jié)果。對于這樣的仿真實驗,從某種意義上講,是彌補了實驗和工程應(yīng)用間脫節(jié)的矛盾和現(xiàn)象。運行 proteus 的 ISIS 程序后,進入該仿真軟件的主界面。在工作前,要設(shè)置 view 菜單下的捕捉對齊和 system 下的顏色、圖形界面大小等項目。通過工具欄中的 p(從庫中選擇元件命令)命令,在 pick devices 窗口中選擇電路所需的元件,放置元件并調(diào)整其相對位置,元件參數(shù)設(shè)置,元器件間連線,編寫程序;在 source 菜單的7Definecode generation tools 菜單命令下,選擇程序編譯的工具、路徑、擴

16、展名等項目;在 source 菜單的 Add/removesource files 命令下,加入單片機硬件電路的對應(yīng)程序;通過 debug 菜單的相應(yīng)命令仿真程序和電路的運行情況。Proteus 軟件所提供的元件資源 Proteus 軟件所提供了 30 多個元件庫,數(shù)千種元件。元件涉及到數(shù)字和模擬、交流和直流等。3 3 軟件設(shè)計及仿真軟件設(shè)計及仿真3.13.1 程序流程程序流程先從主程序開始,接著初始化變量及 LCD 接口,使 LCD 進入了開機狀態(tài),等待選擇按鍵,包括播放鍵,暫停鍵,停止鍵。鍵盤采用動態(tài)掃描方式,每次掃描一行鍵盤,送此行低電平,讀輸入口的狀態(tài)值,判斷有沒有鍵按下。如有鍵按下,

17、則根據(jù)讀入口的值選擇顯示值并送至顯示值寄存單元,判斷鍵值;啟動計數(shù)器 T0,根據(jù)次值為偏移地址找到要選擇的音樂的代碼的首地址,根據(jù)代碼產(chǎn)生一定的頻率脈沖,驅(qū)動蜂鳴器,放出聲音;同時啟動定時器 T1,計算音樂的播放時間,并且啟動 LCD,在 LCD 上顯示序號和播放時間。程序流程圖如圖 3.1 所示圖 3.1 主程序流程圖和 LCD 顯示流程圖3.23.2 系統(tǒng)初始化程序設(shè)計系統(tǒng)初始化程序設(shè)計8RS BIT P2.0 ;引腳定義,定義液晶顯示端口標(biāo)號RW BIT P2.1E BIT P2.2L50MS EQU 60H ;工作內(nèi)存定義L1MS EQU 61HL250MS EQU 62HSEC EQ

18、U 65HMIN EQU 64HHOU EQU 63HORG 0000HLJMP MAINORG 000BH ;定時器 T0 溢出中斷入口地址LJMP TT0ORG 001BH ; 定時器 T1 溢出中斷入口地址LJMP T1INTORG 1000HMAIN: ;液晶初始化 MOV SP,#70H MOV P0,#01H ;清屏 CALL DISPLAY MOV P0,#38H ;8 位,2 行顯示 LCALL DISPLAY MOV P0,#0FH ;屏顯 on,光標(biāo) on,閃爍 on LCALL DISPLAY MOV P0,#06H ;計數(shù)地址加 1,顯示幕 on LCALL DISPL

19、AYLCALL INITIL ;內(nèi)存初始化INITIL:MOV R3,#08HMOV R0,#30H3.33.3 音調(diào)的確定音調(diào)的確定不同音高的樂音是用 C、D、E、F、G、A、B 來表示,這 7 個字母就是音樂的音名,它們一般依次唱成 DO、RE、MI、FA、SO、LA、SI,即唱成簡譜的 1、2、3、4、5、6、7,相當(dāng)于漢字“都喏米發(fā)梭拉西”的讀音,這是唱曲時樂音的發(fā)音,所以叫“音調(diào)” ,即 Tone。把C、D、E、F、G、A、B 這一組音的距離分成 12 個等份,每一個等份叫一個“半音” 。兩個音之間的距離有兩個“半音” ,就叫“全音” 。在鋼琴等鍵盤樂器上,CD、DE、FG、GA、A

20、B 兩音之間隔著一個黑鍵,他們之間的距離就是全音;EF、BC 兩音之間沒有黑鍵相隔,它們之間的距離就是半音。通常唱成 1、2、3、4、5、6、7 的音叫自然音,那些在它們的左上角加上號或者 b 號的叫變化音。叫升記號,表示把音在原來的基礎(chǔ)上升高半音,b 叫降記音,表示在原來的基礎(chǔ)上降低半音。高音 DO 的頻率(1046Hz)剛好9是中音 DO 的頻率(523Hz)的一倍,中音 DO 的頻率(523Hz)剛好是低音 DO 頻率(266 Hz)的一倍;同樣的,高音 RE 的頻率(1175Hz)剛好是中音 RE 的頻率(587Hz)的一倍,中音 RE 的頻率(587Hz)剛好是低音 RE 頻率(29

21、4 Hz)的一倍。要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率) ,然后將此周期除以 2,即為半周期的時間。利用定時器計時這半個周期時間,每當(dāng)計時到后就將輸出脈沖的 I/O 反相,然后重復(fù)計時此半周期時間再對 I/O 反相,就可在 I/O 腳上得到此頻率的脈沖。利用 AT89S52 的內(nèi)部定時器使其工作在計數(shù)器模式 MODE1 下,改變計數(shù)值 TH0 及 TL0以產(chǎn)生不同頻率的方法。此外結(jié)束符和休止符可以分別用代碼 00H 和 FFH 來表示,若查表結(jié)果為 00H,則表示曲子終了;若查表結(jié)果為 FFH,則產(chǎn)生相應(yīng)的停頓效果。C 調(diào)各音符頻率與計數(shù)值 T 的值如表 3.1 所示:表 3.1

22、C 調(diào)音符頻率與計數(shù)值 T低音頻率T參數(shù)中音頻率T參數(shù)高音頻率T參數(shù)Do2621908229Do523956115Do10465757Do2771805217Do554903108Do11095454Re2941701204Re587852102Re11755151Re3111608193Re62280497Re12454848Mi3301515182Mi65975991Mi13184545Fa3491433172Fa69871686Fa13974343Fa3701351162Fa74067681Fa14804141So3921276153So78463877So15683838So41512

23、05145So83160272So16613636La4401136136La88056868La17603434La4641078129La93253664La18653232Si4941012121Si98850661Si197630303.43.4 項目仿真項目仿真使用 keil 軟件進行編譯,生成 hex 文件。 導(dǎo)入 protus 軟件進行仿真。結(jié)果如下圖103.2 (a)按下開機鍵 (b)按下第三首圖 3.2 仿真結(jié)果按下一曲、上一曲、暫停等功能鍵,均能實現(xiàn)??偨Y(jié)總結(jié)此次設(shè)計的整個過程中,出現(xiàn)了各種小問題,例如因為代碼錯誤某一首歌無法播放,我通過查找資料重新修改了音樂代碼,解決了這

24、個問題。雖然設(shè)計結(jié)果不是很完美,但是,在這整個設(shè)計期間,使我學(xué)到了很多在這之前沒有學(xué)到的知識、技能。使我把大學(xué)期間所學(xué)到的知識進行了一個總結(jié)和復(fù)習(xí),也使我對所學(xué)的知識有了進一步的思考。也讓我從另一個方面認(rèn)識了我所學(xué)專業(yè)的重要性。腳踏實地,認(rèn)真嚴(yán)謹(jǐn),實事求是的學(xué)習(xí)態(tài)度,不怕困難、堅持不懈、吃苦耐勞的精神是我在這次設(shè)計中最大的收益。我想這是一次意志的磨練,是對我實際能力的一次提升,也會對我未來的學(xué)習(xí)和工作有很大的幫助。 參考文獻: 1王為青,邱文勛.51 單片機應(yīng)用開發(fā)案例精選人民郵政出版社,2007.2單片機基礎(chǔ)李廣第 朱月秀 王秀山編 北京航空航天大學(xué)出版社,2001.3 楊居義. 單片機課程

25、設(shè)計指導(dǎo). 清華大學(xué)出版社, 2009. 44-61 頁.4 陳駿蓮. 倪云峰.單片機原理與應(yīng)用基礎(chǔ).清華大學(xué)出版社.200911附錄一附錄一仿真電路圖如下:附錄圖 1 仿真電路圖附錄二附錄二以下是以下是十首歌音樂播放器的單片機控制源程序:RS BIT P2.0 ;引腳定義,定義液晶顯示端口標(biāo)號RW BIT P2.1E BIT P2.2L50MS EQU 60H ;工作內(nèi)存定義L1MS EQU 61HL250MS EQU 62HSEC EQU 65HMIN EQU 64HHOU EQU 63H org 0000hljmp mainORG 000BH ;定時器 T0 溢出中斷入口地址LJMP T

26、T0ORG 001BH ;定時器 T1 溢出中斷入口地址LJMP T1INTorg 1000hmain: ;液晶初始化MOV SP,#70H MOV P0,#01H ;清屏CALL DISPLAYMOV P0,#38H ;8 位,2 行顯示lCALL DISPLAYMOV P0FH ;屏顯 on,光標(biāo) on,閃爍 onlCALL DISPLAYMOV P0,#06H ;計數(shù)地址加 1,顯示幕 onlCALL DISPLAYlcall initil ;內(nèi)存初始化 WAIT:lcall key ; 鍵盤掃描是否有鍵按下12lcall modd ljmp WAIT ;若無則等待key:nopnopl

27、call ksjnz k1 ;有按鍵轉(zhuǎn)到 K1lcall kaijilcall 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),第一行無按鍵mov a,#00hljmp lkL1:jb acc.5,L2mov a,#04hljmp lkL2:jb acc.6,L3mov a,#08hljmp lkL3:jb acc.7,next1mov a,#0chlk:add a,R4p

28、ush acck4:lcall delay1 ;若同時有其他按鍵,則等待lcall ksjnz k4mov r3,#07h clr amov r0,#30hmov r1,#31hmm1:mov a,r1mov r0,ainc r0inc r1djnz r3,mm1pop accmov r0,a RETnext1:inc R4 ;-列掃描mov a,R2JNB acc.3,n2ljmp n1n2:ljmp keyn1:rl amov R2,aljmp k3ks:mov a,#0f0h ;判斷 P1 口mov P1,anopnopmov a,P1cpl aanl a,#0f0hRETDELAY1:

29、SETB RS0dl:mov R5,#0ahdl2:mov R6,#63dl3:nop nopdjnz R6,dl313djnz R5,dl2 CLR RS0 RETinitil: ;30H-37H 初值為 0mov r3,#08hmov r0,#30hm1:mov r0,#00hinc r0djnz r3,m1 RETmodd: ;顯示MOV P0,#8EHlCALL DISPLAY mov A,37Hmov DPTR,#TABLE3 MOVC A,A+DPTRlCALL WRITE2 RETkaiji: ;開機提示字mov a,37hcjne a,#0fh,DFFMOV P0,#80H ;

30、設(shè)光標(biāo)地址 lCALL DISPLAYMOV DPTR,#TABLE1;寫數(shù)據(jù)lCALL WRITE1 DFF:RET;按鍵值播放歌曲SOP:mov 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,A33LCALL MODDMOV

31、 52H,#HIGH TABLE30MOV 53H,#LOW TABLE30 LCALL INITILE2 lcall MAIN0 A33:CJNE A,#04H,A44LCALL MODDMOV 52H,#HIGH TABLE40MOV 53H,#LOW TABLE40 LCALL INITILE2 lcall MAIN0A44:CJNE A,#05H,A55LCALL MODDMOV 52H,#HIGH TABLE50MOV 53H,#LOW TABLE50 LCALL INITILE2 lcall MAIN0A55:CJNE A,#06H,A66LCALL MODDMOV 52H,#HI

32、GH TABLE60MOV 53H,#LOW TABLE60 LCALL INITILE2 lcall MAIN0 A66:CJNE A,#07H,A77LCALL MODDMOV 52H,#HIGH TABLE70MOV 53H,#LOW TABLE70 LCALL INITILE2 lcall MAIN0 A77:CJNE A,#08H,A88LCALL MODDMOV 52H,#HIGH TABLE80MOV 53H,#LOW TABLE80 LCALL INITILE2 lcall MAIN0A88:CJNE A,#09H,A9914LCALL MODDMOV 52H,#HIGH TA

33、BLE90MOV 53H,#LOW TABLE90 LCALL INITILE2 lcall MAIN0 A99:CJNE A,#0AH,AAALCALL MODDMOV 52H,#HIGH TABLE100MOV 53H,#LOW TABLE100 LCALL INITILE2 lcall MAIN0 AAA:RET 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

34、碼MOV P0,#0C8H ;顯示小時十位CALL DISPLAYCALL WRITE2MOV A,BADD A,#30HMOV P0,#0C9H ;顯示小時個位CALL DISPLAYCALL WRITE2MOV A,#3AHMOV P0,#0DH ;顯示冒號CALL DISPLAYCALL WRITE2MOV A,MINMOV B,#10DIV ABADD A,#30HMOV P0,#0CBH ;顯示分十位CALL DISPLAYCALL WRITE2MOV A,BADD A,#30HMOV P0,#0CCH ;顯示分個位CALL DISPLAYCALL WRITE2MOV A,#3AHM

35、OV P0,#0CDH ;顯示冒號CALL DISPLAYCALL WRITE2MOV A,SECMOV B,#10DIV ABADD A,#30H MOV P0,#0CEH ;顯示秒十位CALL DISPLAYCALL WRITE2MOV A,BADD A,#30HMOV P0,#0CFH ;顯示秒個位CALL DISPLAYCALL WRITE2MOV P0,#0C0H ;設(shè)光標(biāo)地址 CALL DISPLAYMOV DPTR,#TABLE2;寫數(shù)據(jù)CALL WRITE1 RETDISPLAY: ;寫指令CLR RSCLR RWCLR ELCALL DELAYSETB ERETWRITE1:

36、 ;寫數(shù)據(jù)MOV R1,#00HA1:MOV A,R1MOVC A,A+DPTRCALL WRITE2INC R1CJNE A,#0FEH,A1 ;未到字符串末尾繼續(xù)RETWRITE2:MOV P0,ASETB RS15CLR RWCLR ECALL DELAYSETB ERETDELAY:MOV R4,#05D1:MOV R5,#0FFHDJNZ R5,$DJNZ R4,D1RET TAB:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8hdb 80h,90h,88h,83h,0c6h,0a1h,86h,8ehTAB1:db 89h,86h,0c7h,0c7h,0

37、c0hTAB2:db 0c6h,88h,0c0hTABLE1:DB WELCOME HERE,0FEHTABLE2:DB DFF WB ,0FEHTABLE4:DB CAU,0FEHTABLE3:DB 30H,31H,32H,33h DB 34H,35H,36H,37HDB 38h,39H,41H,42HDB 43H,44H,45H,46H ;播放歌曲程序MAIN0:MOV TMOD,#11HMOV IE,#8aH ;MOV TH1,#3cH;MOV TL1,#0b0H lcall ksjnz TTM12 MOV 40H,#00HNEXT20:MOV A,40HMOV DPH,52HMOV D

38、PL,53HMOVC A,A+DPTRMOV R2,AJZ STOPANL A,#0FHMOV R1,AMOV A,R2SWAP AANL A,#0FHJNZ SINGCLR TR0JMP W1SING:DEC AMOV 22H,ARL AMOV DPTR,#TABLE00MOVC A,A+DPTRMOV TH0,AMOV 21H,AMOV A,22HRL AINC AMOVC A,A+DPTRMOV TL0,AMOV 20H,ASETB TR0SETB TR1W1:LCALL DELAY30INC 40HLCALL KS ;有鍵跳出JNZ STOPLJMP NEXT20STOP:CLR TR

39、0CLR TR1LJMP MAIN0 TTM12:LCALL K2MOV A,37HCJNE A,#0EH,TTM13CLR TR1LCALL DELAY1TTM120:LCALL KSLCALL DELAY1JZ TTM120LCALL K2MOV A,37HCJNE A,#0EH,TTM120SETB TR116LJMP 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,5

40、2HDEC AMOV 52H,AMOV A,53HDEC AMOV 53H,AMOV A,36HDEC AMOV 37H,A TTM2:RET;定時器中斷子程序 0TT0:PUSH ACCPUSH PSWMOV TL0,20HMOV TH0,21HCPL P3.7POP PSWPOP ACCRETI*;定時器中斷子程序 1T1INT: MOV TH1, #3cHMOV TL1, #0b0HDJNZ L50MS,X4MOV L50MS,#20;每秒種時鐘刷新秒顯示一次SECSET:MOV A,SECMOV B,#10DIV ABADD A,#30H MOV P0,#0CEH ;顯示秒十位lCAL

41、L DISPLAYlCALL WRITE2MOV A,BADD A,#30HMOV P0,#0CFH ;顯示秒個位lCALL DISPLAYlCALL WRITE2MOV A,SECINC AMOV SEC,AXRL A,#60X4:JNZ OUTMINSET:MOV SEC,#00H ;每分鐘刷新分顯示一次MOV A,MININC AMOV MIN,A MOV B,#10DIV ABADD A,#30HMOV P0,#0CBH ;顯示分十位lCALL DISPLAYlCALL WRITE2MOV A,BADD A,#30HMOV P0,#0CCH ;顯示分個位lCALL DISPLAYlCA

42、LL WRITE2MOV A,MIN MOV B,#3MUL ABMOV B,#100DIV ABMOV R2,AMOV A,#10XCH A,B17DIV ABMOV A,MINXRL A,#60JNZ OUTHOUSET:MOV MIN,#00H ;每小時刷新小時顯示一次 MOV A,HOUMOV B,#10DIV ABADD A,#30H ;將 BCD 嗎轉(zhuǎn)化為 ASIIC 碼MOV P0,#0C8H ;顯示小時十位CALL DISPLAYCALL WRITE2MOV A,BADD A,#30HMOV P0,#0C9H ;顯示小時個位CALL DISPLAYCALL WRITE2MOV

43、A,HOUINC AMOV HOU,AXRL A,#10JNZ OUTSJMP OVERFLOWOUT:RETIOVERFLOW:;溢出處理MOV L50MS,#20MOV L1MS,#00HMOV L250MS,#00HMOV SEC,#00HMOV MIN,#00HMOV HOU,#00HRETIDELAY30: MOV R7,#2W2:MOV R4,#125W3:MOV R3,#248DJNZ R3,$DJNZ R4,W3DJNZ R7,W2DJNZ R1,DELAY30RETTABLE00:DW 64580,64684,64777,64820DW 64898,64968,65030,6

44、4260DW 64400,64524,65058,63835,64021;第一首精忠報國TABLE10: DB 66H,52H,36H,22H,12H,12H,22H,32H,98H,84H,82H,92H,14H,12H,22HDB 32H,52H,22H,42H,38H,66H,52H,36H,22H,12H,22H,22H,32H,98HDB 24H,22H,32H,54H,52H,32H,92H,12H,92H,82H,98H,66H,52H,36H,22HDB 12H,12H,22H,32H,98H,84H,82H,92H,14H,12H,22H,32H,52H,22H,42H,38

45、HDB 66H,52H,36H,22H,12H,22H,22H,32H,98H,24H,22H,32H,54H,52H,32HDB 22H,12H,92H,82H,98H,14H,24H,34H,44H,64H,0B4H,64H,32H,52HDB 62H,0B2H,62H,52H,38H,24H,22H,32H,54H,52H,62H,52H,32H,32H,22H,38HDB 64H,0B4H,64H,32H,52H,62H,0B2H,62H,52H,38H,22H,22H,22H,32H,52H,52HDB 52H,62H,7FH,74H,04H,58H,6FHDB 00;第二首月亮代表

46、我的心TABLE20: DB 02H,82HDB 16H,32H,54H,02H,52HDB 0A6H,32H,54H,02H,52HDB 64H,74H,0B6H,64HDB 52H,5CH,32H,22HDB 16H,12H,14H,32H,22HDB 16H,12H,14H,22H,32HDB 26H,12H,94H,22H,32H18DB 2CHDB 32H,52HDB 36H,22H,14H,54HDB 0ACH,92H,0A2HDB 96H,0A2H,96H,82HDB 3CH,54HDB 36H,22H,14H,54HDB 0ACH,92H,0A2HDB 16H,12H,14H,

47、22H,32HDB 2CH,02H,82HDB 16H,32H,56H,12HDB 0A6H,32H,56H,52HDB 66H,72H,0B6H,62HDB 62H,52H,58H,32H,22HDB 16H,12H,14H,32H,22HDB 16H,12H,14H,22H,32HDB 26H,92H,0A4H,12H,22HDB 1CHDB 00;第三首看我七十二變TABLE30:DB 0d4H,84H,94H,82H,92HDB 12H,22H,82H,92H,02H,92H,82H,0d2HDB 82H,92H,14H,84H,02H,0d1H,0d1HDB 0c2H,0d2H,84

48、H,0d2H,0d2H,82H,82HDB 84H,82H,82H,94H,82H,0d2HDB 82H,82H,82H,92H,02H,82H,82H,0d2HDB 0c4H,84H,0d4H,92H,0d2HDB 82H,0d2H,82H,92H,98HDB 04H,94H,88HDB 04H,94H,88HDB 04H,94H,88HDB 04H,94H,88H,04HDB 32H,32H,22H,12H,02H,92H,12H,92HDB 32H,32H,22H,12H,02H,92H,12H,92HDB 32H,32H,22H,12H,02H,92H,12H,22HDB 54H,44

49、H,34H,12H,22HDB 34H,22H,12H,02H,92H,12H,92HDB 32H,32H,22H,12H,02H,92H,12H,92HDB 32H,32H,22H,12H,02H,92H,12H,22HDB 54H,44H,32H,22H,12H,92HDB 00 ;第四首同一首歌TABLE40:DB 88h,14h,24h,36H,42H,34H,14H,28H,14H,94HDB 1fH,88H,14H,24H,34H,32H,42H,54H,14HDB 46H,32H,54H,22H,32H,32H,22H,2CH,38H,54H,74HDB 76H,62H,68H,

50、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,12HDB 94H,9cH,0a8H,0a6H,92H,84H,64H,54H,22H,22H,46H,42H,44

51、H,32H,22H,5fHDB 00;第五首大海TABLE50:DB 82H,92H,12H,14H,12H,14H,92H,82H,12H,14H,22H,14H,92H,12H,22H,24HDB 22H,24H,12H,92H,22H,24H,32H,24H,32H,52H,62H,54H,52H,64H,52H,32HDB 22H,32H,22H,12H,94H,82H,92H,12H,14H,12H,14H,94H,1cHDB 82H,92H,12H,14H,12H,14H,92H,82H,12H,14H,22H,14H,92H,12H,22H,24HDB 22H,24H,12H,9

52、2H,22H,24H,32H,24H,32H,52H,62H,54H,52H,64H,52H,32HDB 22H,32H,22H,12H,94H,82H,92H,12H,14H,12H,14H,22H,12H,1cH,32H,52HDB 62H,64H,62H,64H,0b2H,62H,52H,54H,62H,54H,32H,22HDB 12H,14H,12H,14H,24H,3cH,32H,22H,12H,14H,12H,14H,0b2H,62H,52H,54H,62H,54H,32H,52H19DB 66H,0b2H,0b4H,62H,52H,5cH,32H,52H,62H,64H,62H

53、,64H,0b2H,62H,52H,54HDB 62H,54H,32H,22H,12H,14H,12H,14H,54H,3cH,32H,22H,12H,14H,12H,14H,22H,32HDB 52H,54H,32H,54H,32H,52H,6fH,04H,02H,92H,32H,24H,12H,1fHDB 00;第六首兩只蝴蝶TABLE60:DB 32H,22H,38H,02H,22H,32H,22H,18H,04H,92H,12H,24H,22H,32H,22H,12H,92H,92H,88H,04H,32H,22HDB 38H,02H,22H,32H,22H,18H,04H,92H,1

54、2H,24H,22H,32H,22H,21H,92H,12H,28H,04H,32H,22HDB 38H,02H,22H,32H,22H,18H,04H,92H,12H,24H,22H,32H,22H,12H,92H,91H,11H,88HDB 04H,32H,52H,58H,02H,52H,62H,52H,38H,04H,22H,22H,24H,22H,32H,22H,12H,92H,92HDB 12H,12H,1cH,08H,02H,52H,52H,62H,0b2H,72H,72H,62H,32H,22H,22H,22HDB 38H,02H,32H,32H,52H,64H,64H,02H,

55、92H,32H,22H,28H,04H,32H,52H,52H,32H,54H,02H,0b4H,72HDB 62H,72H,34H,02H,62H,62H,72H,62H,52H,32H,22H,02H,32H,22H,32HDB 58H,02H,52H,52H,62H,0b2H,72H,72H,62H,32H,22H,22H,22HDB 38H,02H,32H,32H,52H,64H,64H,02H,92H,32H,22H,28H,04H,32H,52H,52H,32H,54H,02H,0b4H,72HDB 62H,72H,34H,02H,62H,62H,72H,62H,52H,32H,2

56、2H,02H,84H,92H,1cHDB 00;第七首TABLE70: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,34H,12H,92H,52H,32H,28HDB 26H,32H,54H,52H,62H,34H,24H,18H,56H,32H,22H,12H,92

57、H,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;第八首歌彩云追月TABLE80:DB 86H,92H,12H,22H,32H,52H,68H,63H,52H,34H,62H,0B2H,0B2H,62H,51H,61H,51H,31H,54HDB 62H,0B2H,0B2H,62H,52H,32H,52H,52H,51H,61H,51H,31H

58、,34H,52H,62H,74H,32H,52H,52H,32H,21H,31H,21H,11H,24HDB 32H,52H,52H,32H,22H,12H,24H,32H,52H,52H,32H,62H,52H,61H,51H,31H,21H,21H,31H,21H,11H,1CHDB 21H,31H,22H,23H,31H,21H,18H,02H,0B2H,0BCH,0B4H,72H,61H,51H,72H,61H,71H,61H,51H,61H,71H,61H,6FHDB 86H,94H,12H,22H,32H,52H,64H,62H,51H,31H,52H,21H,31H,21H,33

59、H,62H,0B2H,0B2H,62H,51H,61H,51H,31H,54HDB 62H,0B2H,72H,61H,51H,51H,61H,51H,31H,54H,6201H,0B2H,72H,61H,51H,51H,61H,51H,31H,32H,21H,11H,32H,51H,61H,54HDB 02H,32H,24H,32H,52H,52H,32H,22H,31H,21H,11H,24H,32H,52H,62H,0B2H,72H,61H,51H,61H,51H,31H,32H,52H,52H,32H,62HDB 51H,31H,31H,21H,11H,91H,23H,31H,21H,1CH,12H,24H,32H,6

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論