音樂播放電路設(shè)計(jì)_第1頁
音樂播放電路設(shè)計(jì)_第2頁
音樂播放電路設(shè)計(jì)_第3頁
音樂播放電路設(shè)計(jì)_第4頁
音樂播放電路設(shè)計(jì)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上課程 單片機(jī)原理及應(yīng)用課程設(shè)計(jì)題目 音樂播放電路設(shè)計(jì) 一、設(shè)計(jì)目的:訓(xùn)練學(xué)生綜合運(yùn)用己學(xué)課程的基本知識,獨(dú)立進(jìn)行單片機(jī)應(yīng)用技術(shù)開發(fā)工作,掌握單片機(jī)程序設(shè)計(jì)、調(diào)試,應(yīng)用電路設(shè)計(jì)、分析及調(diào)試檢測。二、設(shè)計(jì)要求:1. 應(yīng)用MCS-51單片機(jī)設(shè)計(jì)音樂產(chǎn)生電路;2. 編程實(shí)現(xiàn)簡單音樂的播放,利用單片機(jī)的定時(shí)器產(chǎn)生音調(diào)和節(jié)奏,驅(qū)動喇叭發(fā)聲,要求至少編寫2首音樂,用按鍵控制播放和切換。3. 硬件設(shè)計(jì)根據(jù)設(shè)計(jì)的任務(wù)選定合適的單片機(jī),根據(jù)控制對象設(shè)計(jì)接口電路。設(shè)計(jì)的單元電路必須有工作原理,器件的作用,分析和計(jì)算過程;4. 軟件設(shè)計(jì)根據(jù)電路工作過程,畫出軟件流程圖,根據(jù)流程圖編寫相應(yīng)的程

2、序,進(jìn)行調(diào)試并打印程序清單;5. 原理圖設(shè)計(jì)根據(jù)所確定的設(shè)計(jì)電路,利用Protel等有關(guān)工具軟件繪制電路原理圖、PCB板圖、提供元器件清單。三、參考資料:1 單片微型計(jì)算機(jī)與接口技術(shù),李群芳、黃建編著,電子工業(yè)出版社;2 單片機(jī)原理及應(yīng)用,張毅剛編著,高等教育出版社;3 51系列單片機(jī)及C51程序設(shè)計(jì),王建校,楊建國等編著,科學(xué)出版社;4 單片機(jī)原理及接口技術(shù),李朝青編著,北京航空航天大學(xué)出版社;完成期限 2011.3.142011.3.18 指導(dǎo)教師 專業(yè)負(fù)責(zé)人 2011年 3 月 13 日第一章 概述隨著科技的飛速發(fā)展,單片機(jī)技術(shù)已經(jīng)趨于成熟。單片機(jī)自動完成賦予它的任務(wù)的過程,也就是單片機(jī)

3、執(zhí)行程序的過程,即一條條執(zhí)行的指令的過程,所謂指令就是把要求單片機(jī)執(zhí)行的各種操作用的命令的形式寫下來,這是在設(shè)計(jì)人員賦予它的指令系統(tǒng)所決定的,一條指令對應(yīng)著一種基本操作;單片機(jī)所能執(zhí)行的全部指令,就是該單片機(jī)的指令系統(tǒng),不同種類的單片機(jī),其指令系統(tǒng)亦不同。本設(shè)計(jì)主要的設(shè)計(jì)要求是,應(yīng)用MCS-51單片機(jī)設(shè)計(jì)音樂產(chǎn)生電路; 編程實(shí)現(xiàn)簡單音樂的播放,利用單片機(jī)的定時(shí)器產(chǎn)生音調(diào)和節(jié)奏,驅(qū)動喇叭發(fā)聲,要求至少編寫2首音樂,用按鍵控制播放和切換。硬件設(shè)計(jì)根據(jù)設(shè)計(jì)的任務(wù)選定合適的單片機(jī),根據(jù)控制對象設(shè)計(jì)接口電路。軟件設(shè)計(jì)根據(jù)電路工作過程,畫出軟件流程圖,根據(jù)流程圖編寫相應(yīng)的程序,進(jìn)行調(diào)試并打印程序清單; 原

4、理圖設(shè)計(jì)根據(jù)所確定的設(shè)計(jì)電路。第二章 系統(tǒng)硬件電路設(shè)計(jì)本設(shè)計(jì)中用到了89C51單片機(jī),4*4鍵盤,蜂鳴器,16*2 LCD,七段顯示數(shù)碼管LED。下來詳細(xì)介紹各部分功能。1、89C51: 89C51是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲器。使用高密度非易失性存儲器技術(shù)制造,在單芯片上,擁有靈巧的8 位CPU 和在線系統(tǒng)可編程Flash,使得89C51為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活。 89C51的功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門狗定時(shí)器,兩個(gè)數(shù)據(jù)指針,三個(gè)16 位 定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級中斷結(jié)構(gòu),全

5、雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外, 89C51可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。8 位微控制器 8K字節(jié)在系統(tǒng)可編程 Flash。P0 口:P0口是一個(gè)8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個(gè)TTL邏輯電平。對P0端口寫“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下, P0具有內(nèi)部上拉電阻。在flash編程時(shí),P0口也用來

6、接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。P1 口:P1 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動四個(gè) TTL 邏輯電平。對P1 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3 口:P3 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅(qū)動四個(gè) TTL 邏輯電平。對P3 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 P3口亦作為8

7、9C51特殊功能(第二功能)使用。RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將是單片機(jī)復(fù)位。ALE/PROG:當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時(shí)鐘或用于定時(shí)目的。PSEN:程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號。EA/VPP外部訪問允許,欲使CPU訪問外部程序存儲器(地址為0000H-FFFFH),EA必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會鎖存EA端狀態(tài)。2、數(shù)碼管,按發(fā)光二極管

8、單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽極數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管。共陽極數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。共陰極數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管。共陰極數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陽極為低電平時(shí),相應(yīng)字段就不亮。數(shù)碼管要正常顯示,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字?jǐn)?shù)碼管動態(tài)顯示接口是單片

9、機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個(gè)顯示筆劃“a,b,c,d,e,f,g,dp”的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM加位選通控制電路,位選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會顯示出字形,取決于單片機(jī)對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時(shí)輪流控制各個(gè)數(shù)碼管的COM端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡

10、管實(shí)際上各位數(shù)碼管并不是同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。 3、矩陣式鍵盤的結(jié)構(gòu)與工作原理,在鍵盤中按鍵數(shù)量較多時(shí),為了減少I/O口的占用,通常將按鍵排列成矩陣形式,如圖=所示:在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個(gè)按鍵加以連接。這樣,一個(gè)端口(如P1口)就可以構(gòu)成4*4=16個(gè)按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數(shù)比

11、較多時(shí),采用矩陣法來做鍵盤是合理的。 矩陣式結(jié)構(gòu)的鍵盤顯然比直接法要復(fù)雜一些,識別也要復(fù)雜一些,上圖中,列線通過電阻接正電源,并將行線所接的單片機(jī)的I/O口作為輸出端,而列線所接的I/O口則作為輸入。這樣,當(dāng)按鍵沒有按下時(shí),所有的輸出端都是高電平,代表無鍵按下。行線輸出是低電平,一旦有鍵按下,則輸入線就會被拉低,這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下了。具體的識別及方法如下所述。矩陣鍵盤矩陣式鍵盤的按鍵識別方法,確定矩陣式鍵盤上何鍵被按下介紹一種“行掃描法”。行掃描法又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識別方法,如上圖所示鍵盤,介紹過程如下。判斷鍵盤中有無鍵按下 將全部行線

12、Y0-Y3置低電平,然后檢測列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個(gè)按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。判斷閉合鍵所在的位置 在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時(shí),其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。4、LCD 液晶顯示器是 Liquid Crystal Display 的簡稱,LCD 的構(gòu)造是在兩片平行的玻璃當(dāng)中放置液態(tài)的晶體,兩片玻璃中間有許多

13、垂直和水平的細(xì)小電線,透過通電與否來控制桿狀水晶分子改變方向,將光線折射出來產(chǎn)生畫面。比CRT要好的多,但是價(jià)錢較其貴。LCD的主要技術(shù)參數(shù):對比度LCD制造時(shí)選用的控制IC、濾光片和定向膜等配件,與面板的對比度有關(guān),對一般用戶而言,對比度能夠達(dá)到350:1就足夠了,但在專業(yè)領(lǐng)域這樣的對比度平還不能滿足用戶的需求。相對輕易達(dá)到500:1甚至更高的對比度而言,只有高檔液晶顯示器才能達(dá)到這樣如此程度。亮度也是一個(gè)比較重要的指標(biāo),越亮的液晶給人很遠(yuǎn)一看,就從一排液晶墻中脫穎而出,我們在CRT中經(jīng)常見到的高亮技術(shù),一般是以犧牲畫質(zhì),和的壽命來換取的,所有采用此類技術(shù)的產(chǎn)品在缺省狀態(tài)下都是普亮的,總要按

14、個(gè)鈕才能實(shí)行,按一下3X亮玩游戲;再按一變成5X亮看影碟,仔細(xì)一看都變糊了,要看文本還得老實(shí)的回到普通的文本模式,這樣的設(shè)計(jì)其實(shí)就是讓大家不要常用高亮LCD顯示亮度的原理和CRT不一樣,他們是靠面板后面的背光燈管的亮度來實(shí)現(xiàn)的所以燈管要設(shè)計(jì)的多,發(fā)光才會均勻早期賣液晶時(shí)和別人說液晶是三根已是很牛的事了,但當(dāng)時(shí)奇美CRV,就搞出了一個(gè)六燈管技術(shù),其實(shí)也就是把三管彎成了”U”型,變成了所謂的六根;這樣的六燈管設(shè)計(jì),加上燈管發(fā)光本身就很強(qiáng),面板就看到很亮,這樣的代表作在優(yōu)派中以VA712為代表;但所有高亮的面板都會有一個(gè)致命傷,屏?xí)?,這個(gè)術(shù)語一般人很少提及,編者個(gè)人認(rèn)為他很重要,漏光是指在全黑的屏幕

15、下,液晶不是黑的,而是發(fā)白發(fā)灰所以好的液晶不要一味的強(qiáng)調(diào)亮度,而是要多強(qiáng)調(diào)對比度,優(yōu)派的VP和VG系列就是不講亮度,講對比度的產(chǎn)品! 響應(yīng)時(shí)間指的是液晶顯示器對于輸入信號的反應(yīng)速度,也就是液晶由暗轉(zhuǎn)亮或由亮轉(zhuǎn)暗的反應(yīng)時(shí)間,通常是以毫秒(ms)為單位。要說清這一點(diǎn)我們還要從人眼對動態(tài)圖像的感知談起。人眼存在“視覺殘留”的現(xiàn)象,高速運(yùn)動的畫面在人腦中會形成短暫的印象。動畫片、電影等一直到現(xiàn)在最新的游戲正是應(yīng)用了視覺殘留的原理,讓一系列漸變的圖像在人眼前快速連續(xù)顯示,便形成動態(tài)的影像。人能夠接受的畫面顯示速度一般為每秒24張,這也是電影每秒24幀播放速度的由來,如果顯示速度低于這一標(biāo)準(zhǔn),人就會明顯感

16、到畫面的停頓和不適。按照這一指標(biāo)計(jì)算,每張畫面顯示的時(shí)間需要小于40ms。這樣,對于液晶顯示器來說,響應(yīng)時(shí)間40ms就成了一道坎,低于40ms的顯示器便會出現(xiàn)明顯的畫面閃爍現(xiàn)象,讓人感覺眼花。要是想讓圖像畫面達(dá)到不閃的程度,則就最好要達(dá)到每秒60幀的速度。5、蜂鳴器,蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用供電,廣泛應(yīng)用于、打印機(jī)、復(fù)印機(jī)、報(bào)警器、汽車電子設(shè)備、電話機(jī)、等電子產(chǎn)品中作發(fā)聲。 ;蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。蜂鳴器在中用字母“H”或“HA”(舊標(biāo)準(zhǔn)用“FM”、“LB”、“JD”等)表示。鳴器的介紹。蜂鳴器的分類:蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型

17、 “LB”、“JD”等)表示。壓電式蜂鳴器 壓電式蜂鳴器主要由、壓電蜂鳴片、及共鳴箱、外殼等組成。有的壓電式蜂鳴器外殼上還裝有。多諧振蕩器由或集成電路構(gòu)成。當(dāng)接通后(1.515V直流工作電壓),多諧振蕩器起振,輸出1.52.5kHZ的,阻抗匹配器推動壓電蜂鳴片發(fā)聲。壓電蜂鳴片由鋯鈦酸鉛或鈮鎂酸鉛壓電材料制成。在陶瓷片的兩面鍍上銀,經(jīng)極化和老化處理后,再與黃銅片或不銹鋼片粘在一起。電磁式蜂鳴器 電磁式蜂鳴器由振蕩器、電磁、磁鐵、振動膜片及外殼等組成。接通電源后,振蕩器產(chǎn)生的音頻信號通過電磁線圈,使電磁線圈產(chǎn)生。振動膜片在電磁線圈和磁鐵的相互作用下,周期性地振動發(fā)聲.第三章 軟件設(shè)計(jì)流程及描述 專

18、心-專注-專業(yè)首先從主程序開始,進(jìn)入初始化變量及LCD接口,然后初始化計(jì)數(shù)器和定時(shí)器,此時(shí)LCD顯示英文歡迎字符。隨后等待按鍵,如果沒有按鍵則返回,有按鍵則接著往下執(zhí)行,此時(shí)歌曲號及播放時(shí)間顯示在LCD上,依據(jù)按鍵碼演奏對應(yīng)的歌曲,隨后返回。第四章 源程序以及調(diào)試RS BIT P2.0 ;定義液晶顯示端口標(biāo)號RW BIT P2.1E BIT P2.2L50MS EQU 60HL1MS EQU 61HL250MS EQU 62HSEC EQU 65HMIN EQU 64HHOU EQU 63Horg 0000hljmp mainORG 000BHLJMP TT0ORG 001BHLJMP T1I

19、NTorg 1000hmain: ;-;液晶初始化MOV SP,#70H MOV P0,#01H ;清屏CALL ENABLEMOV 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 kaijilcall SOPxn:ljmp keyk

20、1: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,#0ch;- lk:add a,R4push acck4:lcall delay1 ;若同時(shí)有其他按鍵,則等待lcall ksjnz k4;-

21、 mov r3,#07h clr amov r0,#30hmov r1,#31hmm1: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:no

22、p nopdjnz R6,dl3djnz R5,dl2 CLR RS0 RET;- ;30H-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;- ;開機(jī)提示字;- kaiji:mov a,37hcjne a,#0fh,DFFMOV P0,#80H ;設(shè)光標(biāo)地址 lCALL ENABLEMOV DPTR,#T

23、ABLE1;寫數(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 52H,#HIGH TABLE30MOV 53H

24、,#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,#HIGH TABLE60MOV 53H,#LOW TA

25、BLE60 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,A99LCALL MODDMOV 52H,#HIGH TABLE90MOV 53H,#LOW TABLE90 L

26、CALL 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碼MOV P0,#0C8H ;顯示小時(shí)十位CALL EN

27、ABLECALL WRITE2MOV A,BADD A,#30HMOV P0,#0C9H ;顯示小時(shí)個(gè)位CALL ENABLECALL WRITE2MOV A,#3AHMOV P0,#0DH ;顯示冒號CALL ENABLECALL WRITE2MOV A,MINMOV B,#10DIV ABADD A,#30HMOV P0,#0CBH ;顯示分十位CALL ENABLECALL WRITE2MOV A,BADD A,#30HMOV P0,#0CCH ;顯示分個(gè)位CALL ENABLECALL WRITE2MOV A,#3AHMOV P0,#0CDH ;顯示冒號CALL ENABLECALL

28、WRITE2MOV A,SECMOV B,#10DIV ABADD A,#30H MOV P0,#0CEH ;顯示秒十位CALL ENABLECALL WRITE2MOV A,BADD A,#30HMOV P0,#0CFH ;顯示秒個(gè)位CALL ENABLECALL WRITE2MOV P0,#0C0H ;設(shè)光標(biāo)地址 CALL ENABLEMOV DPTR,#TABLE2;寫數(shù)據(jù)CALL WRITE1 RET;*寫指令ENABLE: CLR RSCLR RWCLR ELCALL DELAYSETB ERET;*寫數(shù)據(jù)WRITE1:MOV R1,#00HA1:MOV A,R1MOVC A,A+D

29、PTRCALL WRITE2INC R1CJNE A,#0FEH,A1 ;未到字符串末尾繼續(xù)RETWRITE2:MOV P0,ASETB RSCLR RWCLR ECALL DELAYSETB ERET;* DELAY: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,0c0hTAB2:db 0c6h,88h,0c0hTABLE1:DBW

30、ELCOM HERE,0FEHTABLE2:DBDFF 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,#00H;- NEXT20:MOV A,40HMOV DPH,52HMOV DPL,53HMOVC A,A+DPTRMOV R2,AJZ S

31、TOPANL 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,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 ;- TTM

32、12:LCALL K2MOV A,37HCJNE A,#0EH,TTM13CLR TR1LCALL DELAY1TTM120:LCALL KSLCALL DELAY1JZ TTM120LCALL K2MOV A,37HCJNE A,#0EH,TTM120SETB TR1LJMP 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,53

33、HDEC AMOV 53H,AMOV A,36HDEC AMOV 37H,A;- TTM2:RET;* ;定時(shí)器中斷子程序0;* TT0:PUSH ACCPUSH PSWMOV TL0,20HMOV TH0,21HCPL P3.7POP PSWPOP ACCRETI;* ;定時(shí)器中斷子程序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 ENABLElCA

34、LL WRITE2MOV A,BADD A,#30HMOV P0,#0CFH ;顯示秒個(gè)位lCALL ENABLElCALL 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 ENABLElCALL WRITE2MOV A,BADD A,#30HMOV P0,#0CCH ;顯示分個(gè)位lCALL ENABLElCALL WRITE2MOV

35、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,#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,HOUINC AMOV HOU,AX

36、RL A,#10JNZ OUTSJMP OVERFLOWOUT:RETI; *溢出處理OVERFLOW:MOV L50MS,#20MOV L1MS,#00HMOV L250MS,#00HMOV SEC,#00HMOV MIN,#00HMOV HOU,#00HRETI;- DELAY30: MOV R7,#2W2:MOV R4,#125W3:MOV R3,#248DJNZ R3,$DJNZ R4,W3DJNZ R7,W2DJNZ R1,DELAY30RET;- TABLE00:DW 64580,64684,64777,64820DW 64898,64968,65030,64260DW 64400

37、,64524,65058,63835,64021;-;第一首精忠報(bào)國;-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,38HDB 66H,

38、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;-;第二首月亮代表我的心;-T

39、ABLE20: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,32HDB 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,22H,32H

40、DB 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;-;第三首;-TABLE90: DB 02H,11H,21H,32H,32H,22H,32H,21H,11H,0A1H,91H,92H,0D1H,91H,83H,91H,0A2H,91H,81H,94H,11H,0A1H,91H,0A1H,98H,03H,8

41、1H,0A1H,0A1H,91H,0A1HDB 98H,04H,02H,11H,21H,32H,32H,22H,32H,21H,31H,51H,11H,13H,31H,22H,22H,21H,11H,0A1H,11H,13H,11H,11H,0A1H,91H,0A1HDB 11H,93H,94H,03H,81H,11H,0A1H,91H,81H,92H,0A1H,91H,94H,08H,03H,81H,32H,21H,11H,22H,31H,21H,21H,83HDB 01H,11H,91H,0A1H,11H,61H,51H,11H,34H,01H,31H,21H,31H,48H,23H,31H,32H,42H,38H,03H,11H,21H,52H,31HDB 33H,31H,31H,41H,51H,61H,23H,21H,21H,41H,31H,21H,13H,0D1H,0D1H,21H,11H,0A1H,11H,91H,92

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論