版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)原理及應(yīng)用課程設(shè)計報告題 目數(shù)字音樂盒學(xué) 號1295054姓 名邢安超 張凱旋 羅杰 年級專業(yè)2012級自動化指導(dǎo)教師黃云飛完成日期2014年6月7日安徽師范大學(xué)物理與電子信息學(xué)院College of Physics and Electronic Information, Anhui Normal University目 錄摘要1引言21 課程設(shè)計目的22 課程設(shè)計任務(wù)及要求24 設(shè)計原理35 系統(tǒng)總體方案介紹45.1 系統(tǒng)組成框圖45.2 音樂盒的功能46 硬件設(shè)計46.1 總體設(shè)計框圖46.2各部分硬件設(shè)計及其原理56.3 硬件電路圖及功能77 軟件設(shè)計87.1 軟件程序設(shè)計88 調(diào)
2、試98.1 檢查硬件連接98.2 檢查軟件系統(tǒng)98.3 測試結(jié)果9課程設(shè)計體會10參考文獻(xiàn)10附 錄1數(shù)字音樂盒邢安超 張凱旋 羅杰,皖江學(xué)院摘 要:本設(shè)計是采用單片機(jī)為核心設(shè)計的數(shù)字音樂盒。它可以實現(xiàn)音樂的播放,可以通過功能鍵來選擇樂曲,播放或暫停,并且可以通過LCD屏幕顯示正在播放的歌曲的序號,及樂曲播放時間,開機(jī)時有英文歡迎提示字符,本音樂盒可以播放三首音樂。 主控芯片采用AT89C51,采用匯編語言進(jìn)行編程,編程后利用KEIL C51來進(jìn)行編譯,再生成的HEX文件裝入芯片中,采用proteus軟件來仿真,檢驗功能得以正常實現(xiàn)。 本系統(tǒng)功能鍵有一個2×4的鍵盤組成,其中1號到3
3、號鍵是歌曲序列號鍵,可以直接選擇音樂;4號鍵選擇當(dāng)前播放音樂的上一首音樂,5號鍵選擇當(dāng)前播放音樂的下一首音樂,6號鍵使音樂暫停播放,7號鍵顯示開機(jī)畫面。鍵盤采用動態(tài)掃描方式。每次掃描一行鍵盤,送此行低電平,讀輸入口的狀態(tài)值,判斷有沒有鍵按下。若有鍵按下,根據(jù)讀入口的值選擇顯示值并送至顯示值寄存單元,判斷鍵值,啟動計數(shù)器T0,根據(jù)次值為偏移地址找到要選擇的音樂的代碼的首地址,根據(jù)代碼產(chǎn)生一定頻率的脈沖,驅(qū)動蜂鳴器,放出音。同時啟動定時器T1,計算音樂的播放的時間,并且啟動LCD,在LCD上顯示序號和播放時間。在制作過程中,我發(fā)現(xiàn)將音樂代碼的首地址送出很難實現(xiàn)。因為其首地址是十六位的,而單片機(jī)中我
4、們能用的十六位的寄存器只有DPTR,但是DPTR在下面必須要用到,所以不能用。把十六位地址拆成倆個八位的地址分高低位去送,用直接地址#high(4000h)去送,編譯成功。關(guān)鍵詞:AT89C51,數(shù)字音樂盒, 2×4鍵盤,LCD,時鐘震蕩電路引言本課程設(shè)計是設(shè)計數(shù)字音樂盒及其播放程序。樂曲演奏廣泛用于自動答錄裝置、手機(jī)鈴聲、集團(tuán)電話、及智能儀器儀表設(shè)備。實現(xiàn)方法有許多種,在眾多的實現(xiàn)方法中,以純硬件完成樂曲演奏,隨著FPGA集成度的提高,價格下降,EDA設(shè)計工具更新?lián)Q代,功能日益普及與流行,使這種方案的應(yīng)用越來越多。如今的數(shù)字邏輯設(shè)計者面臨日益縮短的上市時間的壓力,不得不進(jìn)行上萬門的
5、設(shè)計,同時設(shè)計者不允許以犧牲硅的效率達(dá)到保持結(jié)構(gòu)的獨特性。使用現(xiàn)今的EDA軟件工具來應(yīng)付這些問題,并不是一件簡單的事情。FPGA預(yù)裝了很多已構(gòu)造好的參數(shù)化庫單LPM器件。通過引入支持LPM的EDA1軟件工具,設(shè)計者可以設(shè)計出結(jié)構(gòu)獨立而且硅片的使用效率非常高的產(chǎn)品。單片機(jī)制作的八音盒彌補了這些。1 課程設(shè)計目的基于學(xué)習(xí)單片機(jī)課程的基礎(chǔ),鍛煉我們的動手能力。單片機(jī)與接口技術(shù)課程設(shè)計是單片機(jī)課程的綜合性與實踐性教學(xué)環(huán)節(jié),課程設(shè)計的目的就是:a綜合運用單片機(jī)原理課程和單片機(jī)接口技術(shù)課程的知識,分析和解決實際應(yīng)用中的問題進(jìn)一步鞏固、加深和拓寬所學(xué)的知識。b通過設(shè)計實踐,逐步樹立正確的設(shè)計思想,熟悉掌握單
6、片機(jī)應(yīng)用系統(tǒng)設(shè)計的一般規(guī)律,培養(yǎng)分析問題和解決問題的能力。c通過邏輯分析、方案設(shè)計、硬件電路連接、畫程序流程圖,匯編語言編程,上機(jī)調(diào)試,進(jìn)行全面的單片微機(jī)應(yīng)用基本技能的訓(xùn)練。2 課程設(shè)計任務(wù)及要求以單片機(jī)為核心,設(shè)計一個數(shù)字音樂盒:利用I/O口產(chǎn)生一定頻率的方波,驅(qū)動蜂鳴器,發(fā)出不同的音調(diào),從而演奏樂曲(最少3首樂曲,每首不少于30s)。采用LCD顯示信息。a. 開機(jī)時有英文歡迎提示字符,播放時顯示歌曲序號(或名稱)。b. 可通過功能鍵選擇樂曲、暫停、播放。c利用I/O口產(chǎn)生一定頻率的方波,驅(qū)動蜂鳴器,發(fā)出不同的音調(diào),從而演奏樂曲 d采用LCD顯示信息
7、160; e選作內(nèi)容:顯示樂曲播放時間或剩余時間3 設(shè)計意義a、有利于基礎(chǔ)知識的理解通過初中信息技術(shù)必修部分的學(xué)習(xí),學(xué)生掌握了一些信息時代生存與發(fā)展必需的信息技術(shù)基礎(chǔ)知識和基本技能,具備了在日常生活與學(xué)習(xí)中應(yīng)用信息技術(shù)解決問題的基本態(tài)度與基本能力。但是,學(xué)生對于程序、病毒的內(nèi)涵,程序與文檔、數(shù)據(jù)的區(qū)別,計算機(jī)運行的機(jī)理等知識內(nèi)容的理解比較膚淺。學(xué)生如果接觸了程度設(shè)計,就能真正理解,從而進(jìn)一步打破計算機(jī)的神秘感。b、有利于邏輯思維的鍛煉在許多常規(guī)學(xué)科的日常教學(xué)中,我們不難發(fā)現(xiàn)這樣一個現(xiàn)象,不少學(xué)生的思維常常處于混亂的狀態(tài)。寫起作文來
8、前言不搭后語,解起數(shù)學(xué)題來步驟混亂,這些都是缺乏思維訓(xùn)練的結(jié)果。程序設(shè)計是公認(rèn)的、最能直接有效地訓(xùn)練學(xué)生的創(chuàng)新思維,培養(yǎng)分析問題、解決問題能力的學(xué)科之一。即使一個簡單的程序,從任務(wù)分析、確定算法、界面布局、編寫代碼到調(diào)試運行,整個過程學(xué)生都需要有條理地構(gòu)思,這中間有猜測設(shè)想、判斷推理的抽象思維訓(xùn)練,也有分析問題、解決問題、預(yù)測目標(biāo)等能力的培養(yǎng)。c、有利于與其他學(xué)科的整合在程序設(shè)計中,我們可以解決其它學(xué)科有關(guān)問題,也利用其它課程的有關(guān)知識來解決信息技術(shù)中比較抽象很難理解的知識。在信息技術(shù)課中整合其它學(xué)科的知識,發(fā)揮信息技術(shù)的優(yōu)勢。例如,在編寫“一元二次方程求解”程序時,就復(fù)習(xí)了數(shù)學(xué)的相關(guān)知識。而
9、在講解邏輯運算的知識時,我們又可以利用物理中的電路知識進(jìn)行講解,起到意想不到的效果。d、有利于治學(xué)態(tài)度的培養(yǎng)。程序設(shè)計中,語句的語法和常量變量的定義都有嚴(yán)格的要求,有時輸了一個中文標(biāo)點、打錯了一個字母,編譯就不通過,程序無法正常運行。因此,程序設(shè)計初學(xué)階段,學(xué)生經(jīng)常會犯這樣的錯誤,可能要通過幾次乃至十多次的反復(fù)修改、調(diào)試,才能成功,但這種現(xiàn)象會隨著學(xué)習(xí)的深入而慢慢改觀。這當(dāng)中就有一個嚴(yán)謹(jǐn)治學(xué)、一絲不茍的科學(xué)精神的培養(yǎng),又有一個不怕失敗、百折不撓品格的鍛煉。4 設(shè)計原理當(dāng)鍵盤有鍵按下時,判斷鍵值,啟動計數(shù)器T0,產(chǎn)生一定頻率的脈沖,驅(qū)動蜂鳴器,放出樂曲。同時啟動定時器T1,顯示樂曲播放的時間,并
10、驅(qū)動LCD,顯示歌曲號及播放時間。也可在LED顯示歌曲號。5 系統(tǒng)總體方案介紹5.1 系統(tǒng)組成框圖音樂盒的系統(tǒng)結(jié)構(gòu)以AT89C51單片機(jī)位控制核心,加上幾個按鍵、時鐘復(fù)位電路、蜂鳴器、LCD模塊組成。單片機(jī)負(fù)責(zé)接收按鍵的輸入,根據(jù)輸入控制音樂播放曲目和音樂播放|暫停的樣式以及蜂鳴器發(fā)音。系統(tǒng)組成框圖如圖2.1所示。圖5.1 系統(tǒng)組成框圖5.2 音樂盒的功能音樂盒的功能結(jié)構(gòu)如圖2.2所示。13號開關(guān)負(fù)責(zé)切換播放歌曲,播放歌曲共3首,分別是同一首歌、世上只有媽媽好和精忠報國。4、5號開關(guān)負(fù)責(zé)切換歌曲:上一首和下一首,6號開關(guān)負(fù)責(zé)歌曲的暫停和播放,7號開關(guān)是開機(jī)鍵。6 硬件設(shè)計6.1 總體設(shè)計框圖當(dāng)
11、鍵盤有鍵按下時,判斷鍵值,啟動計數(shù)器T0,產(chǎn)生一定頻率的脈沖,驅(qū) 動蜂鳴器,放出樂曲。同時啟動定時器T1,顯示樂曲播放的時間,并驅(qū)動LCD,顯示歌曲號及播放時間。也可在LED顯示歌曲號。AT89C512×4按鍵文字型LCD(16×2)蜂鳴器電源圖6.16.2各部分硬件設(shè)計及其原理6.2.1 按鍵電路設(shè)計按鍵電路如圖6.2所示:P1.0-P1.5控制按鍵,其中P1.0-P1.1掃描行,P1.4-P1.5掃描列。圖6.2 按鍵電路6.2.2 LCD顯示電路設(shè)計與原理如圖6.3所示文字型LCD(16×2)的D0-D07端口與AT89C51端口P0.0-P0.7相連接VS
12、S與VEE兩端接地。P2.0-P2.2作為LCD的RS,R/W,E的控制信號。用P0.0-P0.7作為LCD的D0-D7的控制信號。圖6.3 LCD顯示電路6.2.3 時鐘振蕩電路AT89C51中有一個用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或者陶瓷諧振器一起構(gòu)成自然振蕩器。外接石英晶體及電容C1、C2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對外接電容C1,C2雖然沒有什么嚴(yán)格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。如果使用石英晶體,我們推薦電
13、容使用30PF10PF,而如果使用陶瓷振蕩器建議選擇40PF10PF。用戶也可以采用外部時鐘。采用外部時鐘的電路如圖示。這種情況下,外部時鐘脈沖接到XTAL1端,即內(nèi)部時鐘發(fā)生器的輸入端,XTAL2則懸空。由于外部時鐘信號是通過一個2分頻觸發(fā)器后作為內(nèi)部時鐘信號的,所以對外部時鐘信號的占空比沒有特殊要求,但最小高電平持續(xù)時間和最大的低電平持續(xù)時間應(yīng)符合產(chǎn)品技術(shù)條件的要求。振蕩器電路圖如下:圖6.4 單片機(jī)內(nèi)部、外部振蕩電路6.3 硬件電路圖及功能總體硬件電路實現(xiàn)功能如下,如圖6.5所示電路中用P1.0P1.5控制按鍵。P0.0P0.7控制LED。P3.0控制蜂鳴器。電路為12MHZ晶振頻率工作
14、,起振電路中C1、C2均為30PF。圖6.5 硬件電路圖7 軟件設(shè)計7.1 軟件程序設(shè)計7.1.1 程序流程圖7.1.2 程序源代碼(見附錄)8 調(diào)試8.1 檢查硬件連接在PROTUES檢查各硬件管腳是否連接正確,線路邏輯是否正確,例如:晶振電路的連接,復(fù)位電路是否設(shè)計正確。8.2 檢查軟件系統(tǒng)1根據(jù)系統(tǒng)的原理結(jié)構(gòu)檢查各流程圖是否正確,再根據(jù)流程圖來檢查程序是否也正確。2將所有程序組織起來,在軟件環(huán)境下運行,檢查程序是否正確。通過對硬件和軟件系統(tǒng)的認(rèn)真檢查,反復(fù)測試,如果沒有出現(xiàn)問題即可把源程序編譯成HEX文件裝載到單片機(jī)中,對硬件進(jìn)行仿真。8.3 測試結(jié)果圖8.1 系統(tǒng)總體運行圖課程設(shè)計體會
15、這學(xué)期學(xué)習(xí)單片機(jī)的課時不多,對單片機(jī)的硬件設(shè)計,軟件設(shè)計掌握的深度不夠,但通過此次課程設(shè)計,明顯的改善了,首先對于硬件電路的工作原理有了進(jìn)一步的學(xué)習(xí),同時有了一個提升;軟件方面,在程序的設(shè)計,程序的調(diào)試方面都有了很大的進(jìn)步。在一個好的氛圍里才能踏下心來做東西,在這一段時間里,同學(xué)們都認(rèn)真對待這次課程設(shè)計,除了自己做好自己的課題外,在遇到不懂的地方互相討論,查閱資料,互助解決問題。另外在編程中出現(xiàn)問題時,一定要戒驕戒躁,腳踏實地,認(rèn)真看書,仔細(xì)分析,仔細(xì)調(diào)試,就一定會發(fā)現(xiàn)錯誤。我們也是這么做的,這一點在這次的課程設(shè)計中十分重要。通過這次課程設(shè)計,我體會到了成功的喜悅,聽著自己設(shè)計的程序下載到單片
16、機(jī)中播放出音樂,心理非常自豪。這次的課程設(shè)計在一定程度上改變了我學(xué)習(xí)單片機(jī)這門課程的態(tài)度,從最初的認(rèn)為學(xué)它沒有什么實際意義,到如今愛上單片機(jī)學(xué)習(xí),并希望能將理論運用到實踐,設(shè)計出更好更完整的系統(tǒng)。我明白了一個人要想做好一件事,就必須具備自信心,耐心,還要有毅力,要膽大心細(xì),要勇于嘗試,要手腦并用,最后才能交出一份令人滿意的答卷。對我而言,知識上的收獲重要,精神上的豐收更加。讓我知道了學(xué)無止境的道理。我們每一個人永遠(yuǎn)不能滿足于現(xiàn)有的成就,人生就像在爬山,一座山峰的后面還有更高的山峰在等著你。挫折是一份財富,經(jīng)歷是一份擁有。這次課程設(shè)計必將成為為我人生旅途上一個非常美好的回憶在設(shè)計即將完成之際,我
17、的心情無法平靜,從開始進(jìn)入課題到論文的順利完成,有多少可敬的師長、同學(xué)、朋友給了我無言的幫助,在這里請接受我誠摯的謝意!參考文獻(xiàn)1 吳亦峰,陳德偉,單片機(jī)原理與接口技術(shù),北京:電子工業(yè)出版社,2010年11月2 黃智偉 全國大學(xué)生電子設(shè)計競賽系統(tǒng)設(shè)計M,北京:北京航空航天大學(xué)出版社,2006.6.3 黃智偉 凌陽單片機(jī)課程設(shè)計指導(dǎo)M,北京:北京航空航天大學(xué)出版社,2006.11.4 李廣弟,朱月秀,王秀山.單片機(jī)基礎(chǔ)M,北京:北京航空航天大學(xué)出版社,2001.7.5 趙曙光,郭萬有,楊頌華.可編程邏輯器件原理開發(fā)與應(yīng)用M,西安:西安電子科技大學(xué), 2000.6 候伯亨.VHDL硬件描述語言與數(shù)
18、字邏輯電路設(shè)計M, 西安:西安電子科技大學(xué)出版社, 1999.7 康華光. 模擬電子技術(shù)基礎(chǔ)(第四版)M, 武漢:華中理工大學(xué)出版社,1999.附 錄RS BIT P2.0;定義液晶顯示端口標(biā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 001BHLJMP T1INTORG 1000HMAIN: ;-;液晶初始化MOV SP,#70H ;設(shè)置堆棧指針MOV P0,#
19、01H ;清屏CALL ENABLE ;調(diào)用延時程序MOV P0,#38H ;8位,2行顯示LCALL ENABLEMOV P0,#0FH ;屏顯ON,光標(biāo)ON,閃爍ONLCALL ENABLEMOV P0,#06H ;計數(shù)地址加1,顯示幕ONLCALL ENABLE;-內(nèi)存初始化LCALL INITIL ;-KEY1:LCALL KEYLCALL MODD LJMP KEY1;-鍵盤掃描KEY:NOPNOPLCALL KSJNZ K1 ;有按鍵轉(zhuǎn)到K1LCALL KAIJILCALL SOPXN:LJMP KEYK1:LCALL MODDLCALL MODDLCALL KSJNZ K2LJM
20、P 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,NEXT1MOV A,#0CH;-LK:ADD A,R4PUSH ACCK4:LCALL DELAY1 ;若同時有其他按鍵,則等待LCALL KSJNZ K4;-MOV R3,#07H CLR AMOV R0,#30HMOV R1,#31HMM1:MOV A,R1MOV R0,AINC R0INC R1DJNZ R3,MM1POP ACCMOV R0,A RET;-
21、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;- ;30H-37H初值為零;-INITIL: MOV R3,#08HMOV R0,#30HM1:MOV R0,#00HINC R0D
22、JNZ 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,#TABLE1;寫數(shù)據(jù)LCALL WRITE1 DFF:RET;-;按鍵值播放歌曲;-SOP:MOV A,37HCJNE A,#01H,A11LCALL MODDMOV 52H,#HIGH TABLE10MOV 53H,#LOW
23、 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 ;*INITILE2:MOV L50MS,#20MOV L1MS,#00HMOV L250MS,#00HMOV SEC,#00H
24、MOV MIN,#00HMOV HOU,#00HMOV A,HOUMOV B,#10DIV ABADD A,#30H ;將BCD嗎轉(zhuǎn)化為ASIIC碼MOV P0,#0C8H ;顯示小時十位CALL ENABLECALL WRITE2MOV A,BADD A,#30HMOV P0,#0C9H ;顯示小時個位CALL ENABLECALL WRITE2MOV A,#3AHMOV P0,#0DH ;顯示冒號CALL ENABLECALL WRITE2MOV A,MINMOV B,#10DIV ABADD A,#30HMOV P0,#0CBH ;顯示分十位CALL ENABLECALL WRITE2M
25、OV A,BADD A,#30HMOV P0,#0CCH ;顯示分個位CALL ENABLECALL WRITE2MOV A,#3AHMOV P0,#0CDH ;顯示冒號CALL ENABLECALL WRITE2MOV A,SECMOV B,#10DIV ABADD A,#30H MOV P0,#0CEH ;顯示秒十位CALL ENABLECALL WRITE2MOV A,BADD A,#30HMOV P0,#0CFH ;顯示秒個位CALL ENABLECALL WRITE2MOV P0,#0C0H ;設(shè)光標(biāo)地址 CALL ENABLEMOV DPTR,#TABLE2;寫數(shù)據(jù)CALL WRI
26、TE1 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;*延時DELAY:MOV R4,#05D1:MOV R5,#0FFHDJNZ R5,$DJNZ R4,D1RET ;-顯示開機(jī),查表TAB:DB 0C0H,0F9H,0A4H,0B0H,99H
27、,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;-;播放歌曲程序;-MAIN0:MOV TMOD,#11HMOV IE,#8AH MOV TH1,#3CHMOV TL1,#
28、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,AMOV A,22HRL AINC AMOVC A,A+DPTRMOV TL0,AMOV 20H,ASETB TR0SETB
29、 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 NEXT20TTM13:CJNE A,#0CH,TTM14MOV A,52HINC AMOV 52H,AMOV A,53HI
30、NC 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;*;定時器中斷子程序0;*TT0:PUSH ACCPUSH PSWMOV TL0,20HMOV TH0,21HCPL P3.0POP PSWPOP ACCRETI;*;定時器中斷子程序1;*T1INT: MOV TH1, #3CHMOV TL1, #0B0HDJNZ L50MS,X4MOV L50MS,
31、#20;*-每秒種時鐘刷新秒顯示一次SECSET:MOV A,SECMOV B,#10DIV ABADD A,#30H MOV P0,#0CEH ;顯示秒十位LCALL ENABLELCALL WRITE2MOV A,BADD A,#30HMOV P0,#0CFH ;顯示秒個位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 ;
32、顯示分十位LCALL ENABLELCALL WRITE2MOV A,BADD A,#30HMOV P0,#0CCH ;顯示分個位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 ;*每小時刷新小時顯示一次 MOV A,HOUMOV B,#10DIV ABADD A,#30H ;將BCD嗎轉(zhuǎn)化為ASIIC碼MOV P0,#0C8H ;顯示小時十位CALL ENABLEC
33、ALL WRITE2MOV A,BADD A,#30HMOV P0,#0C9H ;顯示小時個位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: ;延時子程序MOV R7,#2W2:MOV R4,#125W3:MOV R3,#248DJNZ R3,$DJNZ R4,W3DJ
34、NZ R7,W2DJNZ R1,DELAY30RET;-TABLE00: ;決定音調(diào)的定時初值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,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,12HDB 94H,9CH,0A8H,0A6H,92H,84H,64H,54H,22H,22H,
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《科技文獻(xiàn)概論》課件
- 2023-2024學(xué)年湖南省岳陽市高二(下)期末地理試卷
- 高中信息技術(shù)粵教版1.1-1.4信息及其特征說課稿001
- 人教版二年級數(shù)學(xué)下冊第一單元綜合測評卷(含答案)
- 青海省交通安全管理課件
- 2024-2025學(xué)年遼寧省鞍山市海城市東部集團(tuán)九年級(上)期末英語試卷含答案
- 浙教版2023小學(xué)信息技術(shù)三年級上冊3.11《關(guān)注網(wǎng)絡(luò)痕跡》說課稿及反思
- 五年級數(shù)學(xué)(小數(shù)乘法)計算題專項練習(xí)及答案
- 第16課《散文二篇》說課稿 2024-2025學(xué)年統(tǒng)編版語文八年級上冊
- 質(zhì)量目標(biāo)考核情況表
- 昌樂二中271高效課堂培訓(xùn)與評價ppt課件
- 顫病(帕金森?。┲嗅t(yī)護(hù)理常規(guī)
- 豬場名詞及指標(biāo)講義
- 果膠項目商業(yè)計劃書(模板范本)
- 旋挖鉆成孔掏渣筒沉渣處理施工工藝
- T∕CHTS 10040-2021 公路無機(jī)結(jié)合料穩(wěn)定粒料基層振動法施工技術(shù)指南
- 集團(tuán)后備人才培養(yǎng)方案
- 腦卒中偏癱患者早期康復(fù)護(hù)理現(xiàn)狀(一)
- 國家開放大學(xué)電大本科《機(jī)電控制工程基礎(chǔ)》2023-2024期末試題及答案(試卷代號:1116)
- 個體診所藥品清單
- 急救技術(shù)-洗胃術(shù) (2)
評論
0/150
提交評論