




已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
寧波技師學(xué)院課 程 設(shè) 計(jì) 報(bào) 告論文題目 基于at89s51控制的數(shù)字時(shí)鐘 專業(yè)班級(jí) 學(xué)生姓名 _學(xué) 號(hào) _指導(dǎo)教師 _ _寧波技師學(xué)院電氣技術(shù)系二零一三 年 九 月摘 要本系統(tǒng)采用msc-51系列單片機(jī)以at89s51為中心器件來設(shè)計(jì)多功能數(shù)字時(shí)鐘。文中詳細(xì)介紹了51單片機(jī)應(yīng)用中的數(shù)據(jù)轉(zhuǎn)換顯示,數(shù)碼管顯示原理,動(dòng)態(tài)掃描顯示原理,單片機(jī)的定時(shí)中斷原理。該時(shí)鐘系統(tǒng)能實(shí)現(xiàn)時(shí)鐘日歷的功能:能進(jìn)行時(shí)、分、秒的顯示;也具有日歷計(jì)算、顯示和時(shí)鐘,日歷的校準(zhǔn)、定時(shí)時(shí)間的設(shè)定,實(shí)現(xiàn)秒表,整點(diǎn)報(bào)時(shí)等功能關(guān)鍵詞:at89s51;74ls245 ;原理;時(shí)鐘 ;單片機(jī)目錄1引言42總體設(shè)計(jì)方案52.1系統(tǒng)總體結(jié)構(gòu)框圖53硬件設(shè)計(jì)63.1復(fù)位電路63.2晶振電路63.3 數(shù)碼管原理圖73.3.1at89s51的管腳說明84軟件設(shè)計(jì)94.1主程序流程圖95制作和調(diào)試中遇到的問題和解決方法96結(jié)論107致謝108參考文獻(xiàn)10附錄1c語言程序11附錄2硬件接線圖24附錄3系統(tǒng)仿真圖25寧波技師學(xué)院電氣系胡珂、姚燁汀、虞峰課程設(shè)計(jì) 221 引言近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷地走向深入,同時(shí)帶動(dòng)傳統(tǒng)控制檢測(cè)日新月異更新.在實(shí)時(shí)檢測(cè)和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往是作為一個(gè)核心部件來使用,僅單片機(jī)方面知識(shí)是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對(duì)具體應(yīng)用對(duì)象特點(diǎn)的軟件結(jié)合,加以完善.本文通過用對(duì)一個(gè)能實(shí)現(xiàn)定時(shí),日歷顯示功能的時(shí)間系統(tǒng)的設(shè)計(jì)學(xué)習(xí),詳細(xì)介紹了51單片機(jī)應(yīng)用中的數(shù)據(jù)轉(zhuǎn)換顯示,數(shù)碼管顯示原理,動(dòng)態(tài)掃描顯示原理,單片機(jī)的定時(shí)中斷原理、從而達(dá)到學(xué)習(xí),了解單片機(jī)相關(guān)指令在各方面的應(yīng)用。2 總體設(shè)計(jì)方案系統(tǒng)at89s51、led數(shù)碼管、按鍵、電容,電阻,晶震等部分構(gòu)成,能實(shí)現(xiàn)的功能有:時(shí)間顯示、日期顯示、定時(shí)。左鍵:切換更改項(xiàng)目,按一下選擇更改時(shí)鐘秒位,再按為分位、小時(shí)位。小時(shí)位置在按則跳出編輯時(shí)間功能。中鍵:給當(dāng)前項(xiàng)進(jìn)行加1的控制,使當(dāng)前項(xiàng)在個(gè)位加1。右鍵:給當(dāng)前項(xiàng)進(jìn)行減1的控制,使當(dāng)前項(xiàng)在個(gè)位減1。2.1 系統(tǒng)總體結(jié)構(gòu)框圖針對(duì)于設(shè)計(jì)思想,做系統(tǒng)的結(jié)構(gòu)框圖如下圖2-1所示:晶振電路顯示電路復(fù)位電路aaat89s51按鍵控制電 路圖2-1總體方案方框圖3 硬件設(shè)計(jì)本數(shù)字時(shí)鐘系統(tǒng)的硬件電路主要包括晶振電路、數(shù)碼顯示電路及其它外圍電路等。3.1復(fù)位電路【2】9復(fù)位電路的基本功能是:系統(tǒng)上電時(shí)提供復(fù)位信號(hào),直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號(hào)。為可靠起見,電源穩(wěn)定后還要經(jīng)一定的延時(shí)才撤銷復(fù)位信號(hào),以防電源開關(guān)或電源插頭分-合過程中引起的抖動(dòng)而影響復(fù)位。下圖所示的rc復(fù)位電路可以實(shí)現(xiàn)上述基本功能,sm為手動(dòng)復(fù)位開關(guān)。圖3-0 復(fù)位電路圖3.2晶振電路1at89s51中有一個(gè)構(gòu)成內(nèi)部震蕩器的高增益反向放大器,引腳xtal1和xtal2分別是放大器的輸入端和輸出端,這個(gè)放大器與作為反饋元件的石英晶體構(gòu)成自激震蕩電路。外接石英晶體及電容c1,c2接在放大器的反饋回路中構(gòu)成并聯(lián)震蕩電路。圖3-1晶體震蕩電路3.3數(shù)碼管原理圖4810。 圖3-2 數(shù)碼管管腳圖3.3.1 at89s51的管腳說明2 圖3-3 at89s51管腳圖vcc 電源電壓.gnd 接地.rst 復(fù)位輸入.當(dāng)rst變?yōu)楦唠娖讲⒈3?個(gè)機(jī)器周期時(shí),將使單片機(jī)復(fù)位.wdt溢出將使該引腳輸出高電平,設(shè)置sfr auxr的disrto位(地址8eh)可打開或關(guān)閉該功能.diskrto位缺省為reset輸出高電平打開狀態(tài).xtal1 反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入.xtal2 來自反向振蕩放大器的輸出.p0口 一組8位漏極開路型雙向i/o口.也即地址/數(shù)據(jù)總線復(fù)用口.作為輸出口用時(shí),每位能驅(qū)動(dòng)8個(gè)ttl邏輯門電路,對(duì)端口寫1可作為高阻抗輸入端用.在訪問外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻.在flash編程時(shí),p0口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻.p1口 一個(gè)帶內(nèi)部上拉電阻的8位雙向i/o口,p1的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)ttl邏輯門電路.對(duì)端口寫1,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口.作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(iil).flash編程和程序校驗(yàn)期間,p1接收低8位地址. p2口 一個(gè)帶內(nèi)部上拉電阻的8位雙向i/o口.p1的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)ttl邏輯門電路.對(duì)端口寫1,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口.作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(iil).在訪問外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),p2口送出高8位地址數(shù)據(jù).在訪問8位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),p2口線上的內(nèi)容在整個(gè)訪問期間不改變.flash編程和程序校驗(yàn)期間,p2亦接收低8位地址.p3口 一個(gè)帶內(nèi)部上拉電阻的8位雙向i/o口.p3的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)ttl邏輯門電路.對(duì)p3口寫1時(shí),它們被內(nèi)部的上拉電阻把拉到高電并可作輸入端口.作輸入端口使用時(shí),被外部拉低的p3口將用上拉電阻輸出電流(iil).p3口除了作為一般的i/o口線外,更重要的用途是它的第二功能,如下圖所示.p3口還接收一些用于flash閃速存儲(chǔ)器編程和程序校驗(yàn)期間的控制信號(hào).psen/ 程序儲(chǔ)存允許輸出是外部程序存儲(chǔ)器的讀先通信號(hào),當(dāng)at89s51由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次psen/有效,即輸出兩個(gè)脈沖.當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,沒有兩次有效的psen/信號(hào).ea/vpp 外部訪問允許.欲使cpu僅訪問外部程序存儲(chǔ)器,ea端必須保持低電平,需注意的是:如果加密位lb1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存ea端狀態(tài).flash存儲(chǔ)器編程時(shí),該引腳加上+12v的編程電壓vpp.4 軟件設(shè)計(jì)4.1 主程序流程圖5 制作和調(diào)試中的一些問題和解決辦法數(shù)字時(shí)鐘設(shè)計(jì)剛完成時(shí),我經(jīng)過檢查,發(fā)現(xiàn)了一些問題147:1 剛弄好電路板并燒寫程序進(jìn)去后發(fā)現(xiàn)數(shù)碼管不能正確顯示時(shí)間,每個(gè)數(shù)碼管中顯示的數(shù)字幾乎一樣。經(jīng)過詢問老師,自己查閱資料,終于找出問題的原因:由于我在電路中采用的是動(dòng)態(tài)數(shù)碼管顯示,需準(zhǔn)確地調(diào)整延時(shí)子程序del1ms。我在程序中采取的延時(shí)時(shí)間為1毫秒。2復(fù)位電路中的開關(guān)不能使電路復(fù)位到初始狀態(tài)即12:00:00,經(jīng)過認(rèn)真檢查電路后我發(fā)現(xiàn)我是開關(guān)的管腳沒接對(duì)。測(cè)試后重新接下開關(guān)的管腳就可以了。6 結(jié)論經(jīng)過調(diào)試之后,我發(fā)現(xiàn)我做的基于at89s51設(shè)計(jì)的數(shù)字時(shí)鐘,經(jīng)過調(diào)試,一天的時(shí)間里面,差不多在1秒,計(jì)時(shí)是相對(duì)準(zhǔn)確。而且該設(shè)計(jì)的成本不高,硬件電路簡(jiǎn)單,可以用在對(duì)時(shí)間精度要求不高的場(chǎng)合. 由于時(shí)鐘電路的重要性,時(shí)鐘電路在很多應(yīng)用系統(tǒng)中必不可少,用軟件方法可以實(shí)現(xiàn),但誤差很大。在對(duì)時(shí)間精度要求很高的情況下,通常采用時(shí)鐘芯片來實(shí)現(xiàn)。典型的時(shí)鐘芯片有:ds1302,ds12887,x1203等都可以滿足精度要求。致謝辭在論文完成之際,謹(jǐn)向關(guān)心我、支持我的師長(zhǎng)、朋友和親人表示最衷心的感謝。首先要感謝我尊敬的指導(dǎo)老師陳弢和唐幼君,本論文的工作得到了陳老師悉心的指導(dǎo)和啟發(fā),從論文的選題和具體實(shí)現(xiàn)都給予極大的幫助。唐老師平易近人,我非常感兩位老師。本設(shè)計(jì)的完成,當(dāng)然也少不了同學(xué)的幫助,感謝他們對(duì)我的幫助,沒有他們的幫助,設(shè)計(jì)的任務(wù)是不可能這么快順利完成的。同時(shí),也要感謝我的爸爸媽媽,感謝他們這么多年來默默地支持著我的學(xué)業(yè),我會(huì)再接再厲,以更加飽滿的熱情投入到今后的學(xué)習(xí)和工作中去。參考文獻(xiàn): 1 曹巧媛 單片機(jī)原理與應(yīng)用m.京:電子工業(yè)出版社, 20022 何立民 mcs-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì).北京航空航天大學(xué)出版社,20003 丁元杰 單片微機(jī)原理及應(yīng)用第2版m.北京機(jī)械工業(yè)出版社,20014 郁凱平 mcs-51單片機(jī)串口一口兩用在led顯示屏的一例應(yīng)用 電子與電腦2008年第1期5 陳忠平 p89lpc935驅(qū)動(dòng)數(shù)碼管顯示時(shí)鐘的設(shè)計(jì) 湖南工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報(bào)2007 年第 02 期6 林成武等 mcs-51單片機(jī)po口擴(kuò)展技術(shù)研究.電子元器件應(yīng)用2007 年第 4 期7 謝自美 電子線路設(shè)計(jì)、實(shí)驗(yàn)、測(cè)試 .華中理工大學(xué)出版社,20008 李正浩等 51單片機(jī)在led數(shù)碼管顯示中的應(yīng)用.實(shí)驗(yàn)科學(xué)與技術(shù) 2006 年第z1 期9 包國(guó)賓、張建民 單片機(jī)復(fù)位電路的設(shè)計(jì)與分析.光電技術(shù)應(yīng)用 2005 年第 03 期10 唐光明 基于中斷技術(shù)的開關(guān)軟件消抖算法現(xiàn)代機(jī)械 2006 年第 03 期11 n. ambramson, editor, multiple acess communication-foundation of emerging tecnologies, ieee press,1992附錄1 c語言程序附錄org 0000hljmp main ;跳到主程序org 0003hljmp int0 ;跳到外部中斷0org 000bh ljmp t0 ;跳到定時(shí)器0org 0013hljmp int1 ;跳到外部中斷1org 001bhljmp t1 ;跳到定時(shí)器1org 0100hmain: ;主函數(shù)clr p3.0 ;關(guān)蜂鳴器acall initial ;調(diào)用初始化函數(shù)done:jnb 00h,done1 ;是否顯示時(shí)間mov r0,#73h ;顯示時(shí)間acall convert ;把時(shí)間存儲(chǔ)器轉(zhuǎn)化到顯示存儲(chǔ)器ajmp test ;是否處于調(diào)整狀態(tài)done1:jnb 01h,done2 ;是否顯示日期mov r0,#70h ;顯示日期acall convert ;轉(zhuǎn)化ajmp test ;是否處于調(diào)整狀態(tài)done2:jnb 02h,done3 ;是否顯示定時(shí)時(shí)間mov r0,#63h ;顯示定時(shí)時(shí)間acall convert ;轉(zhuǎn)化ajmp test ;done3:mov r0,#60h ;顯示秒表acall convert ;轉(zhuǎn)化ljmp disp ;跳到顯示函數(shù)test: ;判斷是否處于調(diào)整狀態(tài) jnb 18h,test10 ;是否按鍵已經(jīng)按下 jnb p3.5,test7 ;按鍵是否已經(jīng)釋放 ajmp test11test10:jb 16h,test8 ;判斷是否有按鍵按下 jb p3.5,test7 setb 16h ajmp test7test8:jb p3.5,test9 setb 18h ajmp test7 test11:clr 18h cpl 17h mov c,17h mov p0.0,c clr 16h clr 12h ;定時(shí)結(jié)束 clr tr1 ;關(guān)定時(shí)器1 clr p3.0 ;關(guān)蜂鳴器 clr 13h ; mov 59h,#00h ; mov 58h,#01h ajmp test7 test9:clr 16h test7:jnb 12h,test6 jb p3.4,test6 clr 12h ;定時(shí)結(jié)束 clr tr1 ;關(guān)定時(shí)器1 clr p3.0 ;關(guān)蜂鳴器 clr 13h ; mov 59h,#00h ; mov 58h,#01h ;test6:jnb 01h,test5 ;是否處于日期狀態(tài) jb p3.4,test4 ;案鍵3是否按下 mov 20h,#01h ; 返回時(shí)間狀態(tài) mov 21h,#00h ljmp disp test5:jnb 02h,test4 ;是否處于定時(shí)時(shí)間狀態(tài) jb p3.4,test4 ;按鍵3是否按下 mov 20h,#01h ;返回時(shí)間狀態(tài) mov 21h,#00h ljmp disp test4:jnb 15h,do ;閃爍標(biāo)志是否有效 ljmp disp ;無效則進(jìn)入顯示函數(shù)do: mov a,21h ; cjne a,#00h,test2 ;是否在調(diào)整狀態(tài) ljmp disp ;不處于調(diào)整狀態(tài)則進(jìn)入顯示函數(shù) test2: jb p3.4,test3 mov 20h,#01h mov 21h,#00h ljmp disp test3:jnb 08h,done4 ;是否秒位置處于調(diào)整狀態(tài) mov 78h,#11 ;不顯示 mov 79h,#11 ;不顯示 ljmp disp ;進(jìn)入顯示函數(shù) done4:jnb 09h,done5 ;是否分位置處于調(diào)整狀態(tài) mov 7bh,#11 ;不顯示 mov 7ch,#11 ;不顯示 ljmp disp ;進(jìn)入顯示函數(shù) done5:mov 7eh,#11 ;時(shí)位置不顯示 mov 7fh,#11 ;時(shí)位置不顯示 ljmp disp ;進(jìn)入主函數(shù)convert: ;轉(zhuǎn)化成數(shù)碼管顯示所對(duì)應(yīng)的存儲(chǔ)器mov a,r0 ;把r0存儲(chǔ)的地址所對(duì)應(yīng)的存儲(chǔ)器的內(nèi)容轉(zhuǎn)化到秒位置的存儲(chǔ)器mov b,#10 ;div ab ;mov 79h,a ;高位存儲(chǔ)?mov 78h,b ;地位存儲(chǔ)inc r0 ;地址加一mov a,r0 ;取數(shù)據(jù)mov b,#10 ;div ab ;mov 7ch,a ;高位存儲(chǔ)mov 7bh,b ;低位存儲(chǔ)inc r0 ;地址加一mov a,r0 ;取數(shù)據(jù)mov b,#10 ;div ab ;mov 7fh,a ;高位存儲(chǔ)mov 7eh,b ;低位存儲(chǔ)retinitial: mov 7fh,#1 ;數(shù)碼管顯示12:00:00 mov 7eh,#2 mov 7dh,#10 mov 7ch,#0 mov 7bh,#0 mov 7ah,#10 mov 79h,#0 mov 78h,#0 mov 75h,#12 ;初始化時(shí)間 12:00:00 mov 74h,#0 mov 73h,#0 mov 72h,#08 ;初始化日期 08.3.20 mov 71h,#3 mov 70h,#20 mov 65h,#12 ;初始化定時(shí)時(shí)間 12:00:20 mov 64h,#0 mov 63h,#20 mov 62h,#00 ;初始化秒表00:00.00 mov 61h,#00 mov 60h,#00 mov 50h,#100 ;1s定時(shí)100*10ms mov 51h,#20 ;200ms閃爍計(jì)時(shí) mov 52h,#10 ;秒表計(jì)數(shù)器 mov 53h,#5 ;每放一個(gè)音時(shí)延時(shí)5ms mov 58h,#1 ;存放音樂表的指針 mov th0,#0d8h ;t0定義為10ms中斷 mov tl0,#0f0h mov tmod,#11h ;定時(shí)器工作在方式1 mov ip,#2 ;定時(shí)器0高優(yōu)先級(jí) mov ie,#8fh ;開中斷 setb it0 ;外部中斷為邊緣觸發(fā) setb it1 ;外部中斷為邊緣觸發(fā) setb tr0 ;開定時(shí)器0 mov 20h,#0 ; setb 00h ;設(shè)置成處在時(shí)間顯示狀態(tài) 00h為時(shí)間顯示標(biāo)志,01h為日期顯示標(biāo)志,02h為定時(shí)時(shí)間顯示標(biāo)志,03h秒表顯示標(biāo)志 ;08h為秒位置選擇標(biāo)志,09h為分位置選者標(biāo)志,0ah為時(shí)位置選擇標(biāo)志 ;10h為秒表開始或暫停標(biāo)志,11h為,12h為是否正在放音樂標(biāo)志,13h為是否延時(shí)標(biāo)志,15h為閃爍標(biāo)志,16h,17h為判斷定時(shí)按鍵標(biāo)志 mov 21h,#0 ;位存儲(chǔ)器初始化 mov 22h,#0 ; setb 17h ; 開定時(shí)器 setb p0.0 ;開定時(shí)器指示燈retdisp: ;顯示函數(shù) mov r0,#78h ;顯示第一 個(gè)位置 mov dptr,#tab ;mov r7,#0feh ;第一位有效next: mov a,r0 ; movc a,a+dptr ;把十進(jìn)制數(shù)轉(zhuǎn)化成數(shù)碼管對(duì)應(yīng)的數(shù)據(jù) mov p1,a ;數(shù)據(jù)送出端口 mov p2,r7 ;地址送出端口 acall del1ms ;延時(shí)一毫秒 mov a,r7 ; rl a ;地址位左移到下一位 mov r7,a ; inc r0 ;數(shù)據(jù)地址加1 cjne r0,#80h,next ;是否已經(jīng)顯示完ljmp donetab:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,40h,00h ;0 1 2 3 4 5 6 7 8 9 - 空del1ms: ;延時(shí)1毫秒函數(shù) mov r6,#2 del1:mov r5,#250 djnz r5,$ djnz r6,del1rett0: ;定時(shí)器0函數(shù) push dph push dpl push psw push acc mov th0,#0d8h ;定時(shí)時(shí)間設(shè)置為10毫秒 mov tl0,#0f0h djnz 50h,miao1 ;是否已經(jīng)延時(shí)1秒 ajmp next5 ; miao1:ljmp miaobiao ;一秒還沒到,進(jìn)入秒表 next5:mov 50h,#100 ; 重新循環(huán)100次,即一秒 inc 73h ;秒加一 mov a,73h ; cjne a,#60,miao2 ;是否已經(jīng)加到60 ajmp next6 ; miao2:ljmp miaobiao ;沒到60,進(jìn)入秒表 next6:mov 73h,#0 ;已經(jīng)加到60,秒清0 inc 74h ;分加一 mov a,74h ; cjne a,#60,miao3 ;分是否已經(jīng)加到60 ajmp next7 ; miao3:ljmp miaobiao ;沒到60,進(jìn)入秒表 next7:mov 74h,#0 ;已經(jīng)到60,分清0 inc 75h ;時(shí)加1 mov a,75h ; cjne a,#24,miao4 ;是否已加到24 ajmp next8 ; miao4:ljmp miaobiao ;沒到24則進(jìn)入秒表 next8:mov 75h,#0 ;時(shí)清0 inc 70h ;日加1 mov a,70h ; cjne a,#29,month ;是否是29 mov a,71h ; cjne a,#2,miao5 ;是否是2月 ajmp next9 ;miao5:ljmp miaobiao ;不是2月,進(jìn)入秒表next9:mov 71h,#3 ;月份為3 mov 70h,#1 ;日為1 ljmp miaobiao ;month: mov a,70h ; cjne a,#31,month1 ;是否是日是31 mov a,71h ; cjne a,#4,month6 ;是否是4月 mov 71h,#5 ;月份為5 mov 70h,#1 ;日為1 ajmp miaobiao ; month6:mov a,71h ; cjne a,#6,month9 ;是否是6月 mov 71h,#7 ;月份為7 mov 70h,#1 ;日為1 ajmp miaobiao ; month9:mov a,71h ; cjne a,#9,month11 ;是否是 9月 mov 71h,#10 ;月分為10 mov 70h,#1 ;日為1 ajmp miaobiao ; month11:mov a,71h ; cjne a,#11,miaobiao ;是否是11月 mov 71h,#12 ;月份為12 mov 70h,#1 ; 日為1 ajmp miaobiao ;month1: mov a,70h ; cjne a,#32,miaobiao ;是否日是32 mov a,71h ; cjne a,#12,month0 ;是否是 12月 inc 73h ;年加1 mov 70h,#1 ;月為1 mov 71h,#1 ;日為1 ajmp miaobiao ; month0:inc 71h ;不是12月,月加1 mov 70h,#1 ;日為 ajmp miaobiao ;miaobiao: ;秒表函數(shù) jnb 03h,dingshi ;是否進(jìn)入計(jì)時(shí) jnb 10h,dingshi ;是否開始計(jì)時(shí) djnz 52h,dingshi ;是否100毫秒已到 mov 52h,#10 ; jnb p3.4,clear ;按鍵按下時(shí)清0 inc 60h ;0.1秒位加1 mov a,60h ; cjne a,#10,dingshi ;是否已加到10 mov 60h,#0 ;0.1秒位清0 inc 61h ;秒位加1 mov a,61h ; cjne a,#60,dingshi ;秒是否已經(jīng)加到60 mov 61h,#0 ;秒位清0 inc 62h ;分加1 mov a,62h ; cjne a,#60,dingshi ;是否是60分 mov 62h,#0 ;分為清0 ajmp dingshi ; clear:mov 60h,#0 ;清0 mov 61h,#0 ; mov 62h,#0 ; clr 10h ;停止計(jì)數(shù) ajmp dingshi ;dingshi: ;定時(shí)函數(shù) jb 17h,ystart ;定時(shí)器有效 ljmp baoshi ;定時(shí)器無效 ystart:jb 12h,start ;是否已經(jīng)在放音樂 mov a,63h ; cjne a,73h,bao1 ;是否時(shí)已到 ajmp next10 ; bao1:ljmp baoshi ; next10:mov a,64h ; cjne a,74h,bao2 ;是否分已到 ajmp next11 ; bao2:ljmp baoshi ; next11:mov a,65h ; cjne a,75h,bao3 ;是否秒已到 ajmp next12 ; bao3:ljmp baoshi ; next12:setb 12h ;設(shè)置定時(shí)已到 mov 55h,#10h ;第一個(gè)節(jié)拍 mov 57h,#0fbh ;第一個(gè)音調(diào)高位 mov 56h,#8bh ;第一個(gè)音調(diào)低位 setb tr1 ;啟動(dòng)定時(shí)器1start:djnz 55h,bao4 ;節(jié)拍是否已結(jié)束 ajmp next13 ;bao4: ljmp baoshi ;next13: cpl 13h ; jb 13h,delay50ms ;進(jìn)入延時(shí)50毫秒 mov a,58h ; inc a ;表地址加1 mov 58h,a ; getnext:mov dptr,#dat ; movc a,a+dptr ;取音調(diào) cjne a,#00h,dsq1 ;是否已經(jīng)結(jié)束 clr 12h ;定時(shí)結(jié)束 clr tr1 ;關(guān)定時(shí)器1 clr p3.0 ;關(guān)蜂鳴器 clr 13h ; mov 59h,#00h ; mov 58h,#01h ; ajmp baoshi ; dsq1:cjne a,#01h,dsq2 ; mov a,55h ; inc a ; inc a ; mov 55h,a ; ajmp getnext ; dsq2:cjne a,#0ffh,dsq3 ;是否播放空音調(diào) clr tr1 ;關(guān)定時(shí)器1 clr p3.0 ;關(guān)蜂鳴器 ajmp dsq4 ; dsq3:mov b,#20 ;把音調(diào)轉(zhuǎn)化成定時(shí)器1所對(duì)應(yīng)定時(shí)存儲(chǔ)器 mul ab ; mov 59h,a ; mov a,#0ffh ; subb a,59h ; mov 56h,a ; mov 59h,b ; mov a,#0ffh ; subb a,59h ; mov 57h,a ; setb tr1 ; dsq4:mov a,58h ; inc a ;表地址加1 mov 58h,a ; mov dptr,#dat ; movc a,a+dptr ;取節(jié)拍進(jìn)行延時(shí) mov 55h,a ; jb p3.4,baoshi ;是否停止放 clr 12h ;清標(biāo)志位 clr tr1 ;關(guān)定時(shí)器1 clr p3.0 ;關(guān)蜂鳴器 clr 13h ; mov 59h,#00h ; mov 58h,#01h ; ajmp baoshi ; delay50ms:clr tr1 ;延時(shí)50毫秒 clr p3.0 ;關(guān)蜂鳴器 mov 55h,#5 ;baoshi: ;整點(diǎn)報(bào)時(shí)函數(shù) jb 12h,flashctrl ;如果正在定時(shí)放音樂則不整點(diǎn)報(bào)時(shí) mov a,74h ; cjne a,#0,bao ;是否是0分 mov
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 紡織工程師考試整體規(guī)劃試題及答案
- 設(shè)計(jì)師在科技進(jìn)步中的適應(yīng)能力與創(chuàng)新探索試題及答案
- 紡織品市場(chǎng)調(diào)查與反饋方法試題及答案
- 事業(yè)單位合同制協(xié)議書
- 租賃合同更名協(xié)議書
- 拳擊合同協(xié)議書
- 單獨(dú)裝修合同協(xié)議書
- 合同退火協(xié)議書
- 郵快合作合同框架協(xié)議書
- 承包水渠合同協(xié)議書
- 大型污泥脫水離心機(jī)機(jī)組安裝及調(diào)試工法
- 機(jī)械基礎(chǔ)章節(jié)練習(xí)題集題庫帶答案
- 塔式起重機(jī)大臂減臂使用的受力分析和計(jì)算
- 三年高考高考生物試題分項(xiàng)版解析 專題01 組成細(xì)胞的分子
- 電力供應(yīng)與使用條例考試卷及答案
- 生物大分子晶體學(xué)基礎(chǔ)(I)2016
- 申請(qǐng)?jiān)鲋惦娦艠I(yè)務(wù)經(jīng)營(yíng)許可證材料范本說明書
- 卒中與卒中后抑郁分析
- 煙草商業(yè)企業(yè)卷煙物流配送中心服務(wù)規(guī)范
- 機(jī)械畢業(yè)設(shè)計(jì)(論文)帶式輸送機(jī)傳動(dòng)滾筒設(shè)計(jì)【全套圖紙】
- 關(guān)于電商平臺(tái)對(duì)入駐經(jīng)營(yíng)者的審核要求或規(guī)范文件
評(píng)論
0/150
提交評(píng)論