畢業(yè)設(shè)計----單片機在定時鬧鈴中的應(yīng)用_第1頁
已閱讀1頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  2011屆畢業(yè)設(shè)計(說明書)</p><p>  題目:單片機在定時鬧鈴中的應(yīng)用</p><p>  班 級:  </p><p>  學(xué) 號:      </p><p>  姓 名:   </p><p>  指導(dǎo)教師:  

2、   </p><p><b>  2011年4月</b></p><p><b>  摘 要</b></p><p>  本設(shè)計通過用對一個能實現(xiàn)定時,時鐘,日歷顯示功能的時間系統(tǒng)的設(shè)計學(xué)習(xí),詳細介紹了AT89C51 單片機應(yīng)用中的數(shù)據(jù)轉(zhuǎn)換顯示,數(shù)碼管顯示原理,動態(tài)掃描顯示原理,單片機的定時中 斷原理、從而達到學(xué)

3、習(xí),了解單片機相關(guān)指令在各方面的應(yīng)用。系統(tǒng)由AT89C51、LED 數(shù)碼管、 按鍵、二極管等部分構(gòu)成,能實現(xiàn)時鐘日歷的功能:能進行時、分、秒的顯示。也具有日歷計算、 顯示和時鐘,日歷的校準、定時時間的設(shè)定,實現(xiàn)三路開關(guān)定時輸出等功能。文章后附有電路圖 ,程序清單,各數(shù)據(jù)存儲單元的所在地址,輸入輸出口對應(yīng)表?! ∠到y(tǒng)由AT89C51、LED 數(shù)碼管、按鍵、發(fā)光二極管等部分構(gòu)成,能實現(xiàn)時間的調(diào)整、定時時間的設(shè)定,輸出等功能。系統(tǒng)的功能選擇

4、由SB0、SB1、SB2、SB3、SB4 完成。其中SB0 為時間校對,定時器調(diào)整功能鍵,按SB 0 進入調(diào)整狀態(tài)。SB1 為功能切換鍵。第一輪按動SB1 依次進入一路、二路、三路定時時間設(shè)提示程序,按SB3 進入各路定時調(diào)整狀態(tài)。定時時間到,二極管發(fā)亮。到了關(guān)斷時間后滅掉。如果不進入繼續(xù)按SB1 鍵,依次進入時間. 年. 位校對、. 月. 位校對、 . 日. 位校</p><p>  關(guān)鍵詞:單片機,定時,鬧鈴

5、,顯示器</p><p><b>  目 錄</b></p><p><b>  摘要I</b></p><p><b>  1 緒論1</b></p><p><b>  1.1概述1</b></p><p>  2

6、 系統(tǒng)總體方案及硬件設(shè)計2</p><p>  2.1 總體設(shè)計2</p><p>  2.2 系統(tǒng)時鐘電路設(shè)計2</p><p>  2.3系統(tǒng)復(fù)位電路的設(shè)計2</p><p>  2.4 鬧鐘指示電路設(shè)計3</p><p>  2.5 電子鬧鐘的顯示電路設(shè)計3</p><p>

7、;  3 軟件設(shè)計4</p><p><b>  3.1 概述4</b></p><p>  3.2 主模塊的設(shè)計4</p><p>  3.3 基本顯示模塊設(shè)計5</p><p>  3.4 時間設(shè)定模塊設(shè)計5</p><p>  3.5 鬧鈴功能的實現(xiàn)6</p>

8、<p>  4 Proteus程序調(diào)試9</p><p>  5 設(shè)計總結(jié)11</p><p><b>  參考文獻12</b></p><p><b>  致  謝13</b></p><p>  附1:源程序代碼14</p><p>  附2

9、:系統(tǒng)原理圖27</p><p><b>  1 緒 論</b></p><p><b>  1.1概述</b></p><p>  本設(shè)計是定時鬧鐘的設(shè)計,由單片機AT89C51芯片和LED數(shù)碼管為核心,輔以必要的電路,構(gòu)成的一個單片機電子定時鬧鐘。</p><p>  定時鬧鐘設(shè)計可采用數(shù)字

10、電路實現(xiàn),也可以采用單片機來完成。定時鬧鐘是用數(shù)字集成電路構(gòu)成的,用數(shù)碼管顯示“時”,“分”,“秒”的現(xiàn)代計時裝置。單片機具有集成度高、功能強、通用性好、特別是它能耗低、價格便宜、可靠性高、抗干擾能力強和使用方便等獨特的優(yōu)點,所以單片機現(xiàn)在廣泛的應(yīng)用到家用電器、機電產(chǎn)品、兒童玩具、機器人、辦公自動化產(chǎn)品等領(lǐng)域。所以在該設(shè)計中采用單片機利用AT89C51,它是低功耗、高性能的CMOS型8位單片機。片內(nèi)帶有4KB的Flash存儲器,且允許在

11、系統(tǒng)內(nèi)改寫或用編程器編程。另外, AT89C51的指令系統(tǒng)和引腳與8051完全兼容,片內(nèi)有128B 的RAM、32條I/O口線、2個16位定時計數(shù)器、5個中斷源、一個全雙工串行口等。AT89C51單片機結(jié)合七段顯示器設(shè)計的簡易定時鬧鈴時鐘,可以設(shè)置現(xiàn)在的時間及顯示鬧鈴設(shè)置時間,若時間到則發(fā)出一陣聲響,進—步可以擴充控制電器的啟停。</p><p>  設(shè)計內(nèi)容包括了秒信號發(fā)生器、時間顯示電路、按鍵電路、供電電源以

12、及鬧鈴指示電路等幾部分的設(shè)計。采用四個開關(guān)來控制定時鬧鐘的工作狀態(tài),分別為:K1、設(shè)置時間和鬧鐘的小時;K2、設(shè)置小時以及設(shè)置鬧鐘的開關(guān);K3、設(shè)置分鐘和鬧鐘的分鐘;K4、設(shè)置完成退出。</p><p>  課設(shè)準備中根據(jù)具體的要求,查找資料,然后按要求根據(jù)已學(xué)過的時鐘程序編寫定時鬧鐘的程序,依據(jù)程序利用proteus軟件進行了仿真試驗,對出現(xiàn)的問題進行分析和反復(fù)修改源程序,最終得到正確并符合要求的結(jié)果。<

13、/p><p>  設(shè)計完成的定時鬧鐘達到課程設(shè)計的要求,在到達定時的時間便立即發(fā)出蜂鳴聲音,持續(xù)一分鐘。顯示采用的六位數(shù)碼管電路,如果亮度感覺不夠,可以通過提升電阻來調(diào)節(jié),控制程序中延遲時間的長短,可以獲得不同的效果。也可以改蜂鳴器為繼電器,通過控制繼電器從而進一步擴展的來控制一些家電開關(guān)。</p><p>  2 系統(tǒng)總體方案及硬件設(shè)計</p><p><b

14、>  2.1 總體設(shè)計</b></p><p>  電子鬧鐘應(yīng)包括秒信號發(fā)生器、時間顯示電路、按鍵電路、供電電源以及鬧鈴指示電路等幾部分。</p><p>  按鍵功能說明:K1,設(shè)置時間和鬧鐘的小時;K2,設(shè)置小時以及設(shè)置鬧鐘的開關(guān);K3,設(shè)置分鐘和鬧鐘的分鐘;K4;設(shè)置完成退出。</p><p>  電子鬧鐘的系統(tǒng)框圖如下所示:</p&g

15、t;<p>  電子鬧鐘的主電路指的是圖1中虛線框內(nèi)部分,主要涉及到CPU電路和按鍵按鈕電路。主機的設(shè)計具體地說有:1)系統(tǒng)時鐘電路設(shè)計;2)系統(tǒng)復(fù)位電路設(shè)計;3)按鍵與按鈕電路設(shè)計;4)鬧鈴聲指示電路設(shè)計。</p><p>  2.2 系統(tǒng)時鐘電路設(shè)計</p><p>  對于時間要求不是很高的系統(tǒng),只要按圖進行設(shè)計就能使系統(tǒng)可靠起振并穩(wěn)定運行。但由于原理圖中的C1、C2電

16、容起著系統(tǒng)時鐘頻率微調(diào)和穩(wěn)定的作用,因此,在本鬧鐘系統(tǒng)的實際應(yīng)用中一定要注意正確選擇參數(shù)(30±10 PF),并保證對稱性(盡可能匹配),選用正牌廠家生產(chǎn)的瓷片或云母電容,如果可能的話,溫度系數(shù)要盡可能低。實驗表明,這2個電容元件對鬧鐘的走時誤差有較大關(guān)系。</p><p>  2.3系統(tǒng)復(fù)位電路的設(shè)計</p><p>  智能系統(tǒng)一般應(yīng)有手動或上電復(fù)位電路。復(fù)位電路的實現(xiàn)通常有

17、兩種方式:1)RC復(fù)位電路;2)專用µP監(jiān)控電路。前者實現(xiàn)簡單,成本低,但復(fù)位可靠性相對較低;后者成本較高,但復(fù)位可靠性高,尤其是高可靠重復(fù)復(fù)位。對于復(fù)位要求高、并對電源電壓進行監(jiān)視的場合,大多采用這種方式。</p><p>  本次課程設(shè)計采用了上電按鈕電平復(fù)位電路。</p><p>  2.4 鬧鐘指示電路設(shè)計</p><p>  鬧鈴指示可以有聲或

18、光兩種形式。本系統(tǒng)采用聲音指示。關(guān)鍵元件是蜂鳴器。蜂鳴器有無源和有源兩種,前者需要輸入聲音頻率信號才能正常發(fā)聲,后者則只需外加適當直流電源電壓即可,元件內(nèi)部已封裝了音頻振蕩電路,在得電狀態(tài)下即起振發(fā)聲。市場上的有源蜂鳴器分為3V、5V、6V等系列,以適應(yīng)不同的應(yīng)用需要。鬧鐘電路是用比較器來比較計時系統(tǒng)和定時系統(tǒng)的輸出狀態(tài),如果計時系統(tǒng)和定時系統(tǒng)的輸出狀態(tài)相同,則發(fā)出一個脈沖信號,再和一個高頻信號混合,送到放大電路驅(qū)動揚聲器發(fā)聲,從而實現(xiàn)

19、定時鬧響的功能。其電路設(shè)計參見系統(tǒng)原理圖。</p><p>  2.5 電子鬧鐘的顯示電路設(shè)計</p><p>  本次課程設(shè)計采用了6位數(shù)碼管顯示電路。在6位LED顯示時,為了簡化電路,降低成本,采用動態(tài)顯示的方式, 6個LED顯示器共用一個8位的I/O, 6位LED數(shù)碼管的位選線分別由相應(yīng)的P2. 0~P2. 5控制,而將其相應(yīng)的段選線并聯(lián)在一起,由一個8位的I/O口控制,即P0口。譯

20、碼顯示電路將“時”、“分”、“秒”計數(shù)器的輸出狀態(tài)菁七段顯示譯碼器譯碼,通過6位LED七段顯示器顯示出來。到達定時電路時根據(jù)計時系統(tǒng)的輸出狀態(tài)產(chǎn)生一脈沖信號,然后去觸發(fā)一音頻發(fā)生器實現(xiàn)鬧鈴。校時電路時用來對“時”、“分”、“秒”顯示數(shù)字進行校對調(diào)整的。</p><p><b>  3 軟件設(shè)計</b></p><p><b>  3.1 概述</b

21、></p><p>  軟件設(shè)計的重點在于秒脈沖信號的產(chǎn)生、顯示的實現(xiàn)、以及按鍵的處理等方面?;谲浖拿朊}沖信號通常有延時法和定時中斷法。延時法一般采用查詢方式,在延時子程序前后必然需要查詢和處理的程序,導(dǎo)致誤差的產(chǎn)生,因此其秒脈沖的精度不高;中斷法的原理是,利用單片機內(nèi)部的定時器溢出中斷來實現(xiàn)。例如,設(shè)定某定時器每100ms中斷1次,則10次的周期為1s。本系統(tǒng)中所使用的晶振頻率為12MHZ。</

22、p><p>  3.2 主模塊的設(shè)計</p><p>  主模塊是系統(tǒng)軟件的主框架。結(jié)構(gòu)化程序設(shè)計一般有“自上而下”和“自下而上”兩種方式,“自上而下”法的核心就是主框架的構(gòu)建。它的合理與否關(guān)系到程序最終的功能的多少和性能的好壞。本系統(tǒng)的主模塊的程序框圖如下圖2所示:</p><p>  3.3 基本顯示模塊設(shè)計</p><p>  基本顯示模塊

23、設(shè)計的重點是由顯示代碼取得相應(yīng)的段碼,顯示段碼數(shù)據(jù)的并行發(fā)送,高精度的計時工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘,石英表,石英鐘都采用了石英技術(shù),因此走時精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)校,數(shù)字式電子鐘用集成電路計時時,譯碼代替機械式傳動,用LED顯示器代替顯示器代替指針顯示進而顯示時間,減小了計時誤差,這種表具有時,分,秒顯示時間的功能,還可以進行時和分的校對,片選的靈活性好。</p><p> 

24、 程序流程如圖3所示。</p><p>  3.4 時間設(shè)定模塊設(shè)計</p><p>  時間設(shè)定模塊的設(shè)計要點是按鍵的去抖處理與“一鍵多態(tài)”的處理。即只涉及4個鍵完成了6位時間參數(shù)的設(shè)定。軟件法去抖動的實質(zhì)是軟件延時,即檢測到某一鍵狀態(tài)變化后延時一段時間,再檢測該按鍵的狀態(tài)是否還保持著,如是則作為按鍵處理,否則,視為抖動,不予理睬。去抖中的延時時間一般參考資料多描述為10ms左右,實際應(yīng)

25、用中,應(yīng)大于20ms,否則,會導(dǎo)致按一次作多次處理,影響程序正常執(zhí)行?!耙绘I多態(tài)”即多功能鍵的實現(xiàn)思想是,根據(jù)按鍵時刻的系統(tǒng)狀態(tài),決定按鍵采取何種動作,即何種功能。</p><p>  其流程圖如下圖4所示:</p><p>  3.5 鬧鈴功能的實現(xiàn)</p><p>  鬧鈴功能的實現(xiàn)涉及到兩個方面:鬧鈴時間設(shè)定和是否鬧鈴判別與相應(yīng)處理。鬧鈴時間設(shè)定模塊的設(shè)計可參

26、照時間設(shè)定模塊,這里著重闡述鬧鈴判別與處理模塊的設(shè)計問題。鬧鈴判別與鬧鈴處理的關(guān)鍵在于判別何時要進行鬧鈴。當時十位、時個位、分十位、分個位中任一位發(fā)生改變(進位)時,就必須進行鬧鈴判別。譯碼顯示電路將“時”、“分”、“秒”計數(shù)器的輸出送到七段顯示譯碼驅(qū)動器譯碼驅(qū)動,通過六個七段LED顯示器顯示出來。鬧鈴電路根據(jù)計時系統(tǒng)的輸出狀態(tài)產(chǎn)生一脈沖信號,然后加上一個高頻或低頻信號送到放大電路驅(qū)動蜂鳴器發(fā)聲實現(xiàn)報時。校時電路是直接加一個脈沖信號到時

27、計數(shù)器或者分計數(shù)器或者秒計數(shù)器來對“時”、“分”、“秒”顯示數(shù)字進行校對調(diào)整。</p><p><b>  其流程圖如下所示:</b></p><p>  考慮到實用性,在該電子鐘的設(shè)計中修改定時或調(diào)整時間時采用了閃爍,而且以定時20組鬧鐘。在編程上,首先進行了初始化定義了程序的入口地址以及中斷的入口地址,在主程序的開始定義了一組固定單元用來存儲計數(shù)的秒,分,時以及定

28、時時間的序號等。</p><p>  在顯示程序段中主要進行了閃爍的處理,采用定時器中斷置標志位,再與位選相互結(jié)合的方法來控制調(diào)時或定時中的閃爍。時,分,秒顯示則是用了軟件譯碼(查表)的方式,再用了一段固定的程序段進行進制轉(zhuǎn)化。初始化之后,用中斷方式對其計數(shù),計數(shù)的同時采用了定時器比較的方法,比較當前計數(shù)時間與定時時間是否相等,若相等則將鬧鈴標志位置數(shù)。由于定義了定時鬧鐘組,在這里采用中斷組次,每中斷一次比較一組

29、鬧鐘,避免了一次比較中斷時間過長,影響下次中斷時間。顯示之后查詢鬧鈴標志位是否與前面所置數(shù)相等,若相等則響鈴。</p><p>  為了避免響鈴影響顯示,采用了每顯示幾屏以后在顯示程序中出現(xiàn)脈沖,驅(qū)動喇叭,不會影響顯示。之后用查詢方式對按鍵進行判斷,若有鍵按下,則進行軟件延時消抖,避免了抖動引起的干擾,執(zhí)行相應(yīng)的定時,選時或調(diào)時程序段。對當前時間或定時時間修改后又返回到最初的顯示程序段,如此循環(huán)下去。</p

30、><p>  4 Proteus程序調(diào)試</p><p>  本次課程設(shè)計所采用的程序調(diào)試軟件為wave6000集成調(diào)試軟件,所采用的仿真軟件為protus 6 professional軟件。</p><p>  本次試驗的效果圖如下所示:</p><p><b>  性能及誤差分析</b></p><

31、;p>  該電子鐘有三個按鍵: K1, K2和K3鍵。按K1鍵進行校時,可以分別對時及分進行單獨校時,使其校正到標準時間,校時時需要校正哪一位哪一位就閃爍。按K2鍵是對閃爍位進行加一或返回的操作。按K3鍵調(diào)整定時時間和定時組數(shù),需要調(diào)整哪一位哪一位就閃爍,該電子鐘最多可定時20組鬧鐘。經(jīng)測試該電子鐘在一天的累計誤差約為0. 1秒。該電子鐘的誤差主要由晶振自身的誤差所造成,晶振的誤差約為0. 0001~0. 000001。在軟件的編

32、程過程中所產(chǎn)生的誤差比較小,在重裝初值的過程中大概需要約8個機器周期,但在程序開始對定時器賦初值時,多加了8個機器周期,減小了這方面的誤差。另外在中斷的過程中,只會在第一次計時時產(chǎn)生時間的偏移,而它所產(chǎn)生累計誤差很小,可以忽略。</p><p>  結(jié)構(gòu)化軟件程序的調(diào)試一般可以將重點放在分模塊調(diào)試上,統(tǒng)調(diào)是最后一環(huán)。軟件調(diào)試可以采取離線調(diào)試和在線調(diào)試兩種方式。前者不需要硬件仿真器,可借助于軟件仿真器即可;后者一般

33、需要仿真系統(tǒng)的支持。本次課設(shè),采用wave6000集成調(diào)試軟件來調(diào)試程序,通過各個模塊程序的單步或跟蹤調(diào)試,使程序逐漸趨于正確,最后統(tǒng)調(diào)程序。</p><p>  仿真部分采用protus 6 professional軟件,此軟件功能強大且操作較為簡單,可以很容易的實現(xiàn)各種系統(tǒng)的仿真。</p><p>  首先打開protus 6 professional軟件,在元件庫中找到要選用的所有元

34、件,然后進行原理圖的繪制;繪制好后再選擇wave6000已經(jīng)編譯好的*.hex文件,選擇運行,觀察顯示結(jié)果,根據(jù)顯示的結(jié)果和課設(shè)的要求再修改程序,再運行查,直到滿足要求。</p><p><b>  5 設(shè)計總結(jié)</b></p><p>  單片機是一門應(yīng)用性很強的學(xué)科,課程設(shè)計是培養(yǎng)我們綜合運用所學(xué)知識,發(fā)現(xiàn)、提出、分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是

35、對我們實際工作能力的具體訓(xùn)練和考察過程。雖然在做課程設(shè)計以前已經(jīng)系統(tǒng)的把單片機課本認真的學(xué)習(xí)了一下,但是在剛拿到設(shè)計任務(wù)書時還是有點一頭霧水,不知道該從哪里下手。令人欣慰的是經(jīng)過一周的學(xué)習(xí),雖然過程很艱辛,但是總算實現(xiàn)了定時鬧鐘的功能,所有的努力都很值得。這一周的大部分時間都在研究程序怎么處理,在這個過程中加深了我對匯編語言命令的應(yīng)用,而且也更加了解到軟硬件配套的重要性。</p><p>  通過這次課程設(shè)計,使

36、我對這們功課有了更深刻的認識和了解。首先對于硬件電路的工作原理有了進一步系統(tǒng)的學(xué)習(xí),同樣就有了進一步的認識,使我懂得了理論與實際相結(jié)合的重要性,只有理論知識是遠遠不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,才能提高自己的實際動手能力和獨立思考的能力。其次軟件在這次設(shè)計中也有不足之處,比如音樂的響聲不連續(xù),但又不知道從哪個地方入手解決這個問題,這要求在以后的學(xué)習(xí)中,拓寬自己的知識面,解決設(shè)計的不足之處。</p><p

37、>  總之,通過這次課程設(shè)計不僅使我鞏固了本課程所學(xué)的基本知識,還使我具有了撰寫科研報告的初步訓(xùn)練能力,我相信這些能力在我以后的工作或者是再學(xué)習(xí)中一定會起到不小的作用,一切的辛苦和艱難都是值得的。</p><p><b>  參考文獻</b></p><p>  [1] 余發(fā)山 單片機原理及應(yīng)用技術(shù),徐州:中國礦業(yè)大學(xué)出版社,2003</p>&l

38、t;p>  [2] 楊剛,周群.電子系統(tǒng)設(shè)計與實踐.電子工業(yè)出版社.2004:18-23 341-347 118-122</p><p>  [3] 何立民.單片機高級教程(應(yīng)用與設(shè)計).北京:北京航空航天大學(xué)出版社,2000年.53-98</p><p>  [4] 涂時亮,張友德.單片微機控制技術(shù).清華大學(xué)出版社.1994:86-87 146-147</p><

39、;p>  [5] 《融會貫通 Protel99電路設(shè)計》 弘道工作室 北京 人民交通出版設(shè),2000.</p><p>  [6] 《單片機原理及接口技術(shù)實驗》 朱定華 北京 北方交通大學(xué)出版社2002.11</p><p><b>  致  謝</b></p><p>  在本次論文設(shè)計過程中,**老師對該論文從選題,構(gòu)思到最后定稿的

40、各個環(huán)節(jié)給予細心指引與教導(dǎo),使我得以最終完成畢業(yè)論文設(shè)計。經(jīng)過兩個月的忙碌和工作,本次的畢業(yè)設(shè)計已經(jīng)接近尾聲,作為一個??粕漠厴I(yè)設(shè)計,由于經(jīng)驗的匱乏,難免有許多考慮不周全的地方,如果沒有導(dǎo)師的督促指導(dǎo),以及一起工作的同學(xué)們的支持,想要完成這個設(shè)計是難以想象的。兩年多來,***老師不僅在學(xué)業(yè)上給我以精心指導(dǎo),同時還在思想、生活上給我以無微不至的關(guān)懷,在此謹向楊老師致以誠摯的謝意和崇高的敬意。</p><p>  

41、在此,我還要感謝****的各位同門,正是由于你們的幫助和支持,我才能克服一個一個的困難和疑惑,直至本文的順利完成。特別感謝我的同學(xué)徐文斌,他對本課題做了不少工作,給予我不少的幫助。</p><p>  在論文即將完成之際,我的心情無法平靜,從開始進入課題到論文的順利完成,有多少可敬的老師、舍友、朋友給了我無言的幫助,在這里請接受我誠摯的謝意!</p><p>  最后,大學(xué)三年學(xué)習(xí)時光已經(jīng)

42、接近尾聲,在此我想對我的母校,我的父母、親人們,我的老師和同學(xué)們表達我由衷的謝意。  感謝我的家人對我大學(xué)三年學(xué)習(xí)的默默支持;感謝我的母校給了我在大學(xué)三年深造的機會,讓我能繼續(xù)學(xué)習(xí)和提高;感謝科技學(xué)院的老師和同學(xué)們?nèi)陙淼年P(guān)心和鼓勵。老師們課堂上的激情洋溢,課堂下的諄諄教誨;同學(xué)們在學(xué)習(xí)中的認真熱情,生活上的熱心主動,所有這些都讓我的三年充滿了感動。</p><p><b>  謝謝!<

43、/b></p><p><b>  附1:源程序代碼</b></p><p>  K1 EQU P1.0 ;在程序開始前定義變量</p><p>  K2 EQU P1.1</p><p>  K3 EQU P1.2</p><p>  K4 EQU P1.3</p><

44、;p>  ORG 0000H </p><p><b>  LJMP MAIN</b></p><p>  ORG 000BH </p><p><b>  LJMP TIME</b></p><p><b>  ORG 0100H</b></p&g

45、t;<p>  MAIN:MOV SP,#50H</p><p>  MOV 20H,#00H ;時間 BIN SECOND</p><p>  MOV 21H,#00H ; BIN MINUTE</p><p>  MOV 22H,#00H ; BIN HOUR</p><p>  MOV 2

46、3H,#01H ;鬧鈴 BIN MINUTE</p><p>  MOV 24H,#01H ; BIN HOUR</p><p>  MOV 25H,#00H ;定義一個標志位</p><p>  MOV 30H,#00H ;時間 BCD SECOND</p><p>  MOV 31H,#00H ;</

47、p><p>  MOV 32H,#00H ; BCD MINUTE</p><p>  MOV 33H,#00H ;</p><p>  MOV 34H,#00H ; BCD HOUR</p><p>  MOV 35H,#00H ;</p><p>  MOV 36H,#01H

48、 ;鬧鈴 BCD MINUTE</p><p>  MOV 37H,#00H ;</p><p>  MOV 38H,#01H ; BCD HOUR</p><p>  MOV 39H,#00H ;</p><p>  MOV TMOD,#01H ;16位計數(shù)器 T0,方式1</p>&

49、lt;p>  MOV TH0,#03CH ;賦初值</p><p>  MOV TL0,#0B0H </p><p>  MOV IE,#10000111B ;開中斷 T0,EA=1</p><p>  SETB TR0 ;T0啟動計數(shù)</p><p>  MOV R2,#14H

50、 ;計數(shù)器</p><p>  MOV P2,#0FFH</p><p>  LOOP:LCALL TIMEPRO ; 調(diào)用現(xiàn)在時間與鬧鈴時間比較程序</p><p>  LCALL DISPLAY1 ; 調(diào)用現(xiàn)在時間顯示子程序</p><p>  JB K1,M1 ; 判斷按鍵是否按下</p>

51、;<p>  LCALL XIAOZHEN1 ; 調(diào)用消抖程序</p><p>  MOV C,25H.0</p><p><b>  JC A1</b></p><p>  A1:CLR 25H.0</p><p>  LCALL SETTIME ; 調(diào)用設(shè)置現(xiàn)在時間子程序</p&g

52、t;<p><b>  LJMP LOOP</b></p><p>  M1:JB K2,M2</p><p>  LCALL XIAOZHEN2</p><p>  MOV C,25H.0</p><p><b>  JC A2</b></p><p>  A

53、2:CLR 25H.0</p><p>  LCALL SETATIME ; 調(diào)用設(shè)置鬧鐘的程序</p><p><b>  LJMP LOOP</b></p><p>  M2:JB K4,M3</p><p>  A3:LCALL XIAOZHEN3</p><p>  MOV C,25

54、H.0</p><p><b>  JC A4</b></p><p>  A4:CLR 25H.0</p><p>  M3:LJMP LOOP</p><p><b>  SETTIME:</b></p><p>  L0:LCALL DISPLAY1</p>

55、<p><b>  JB K2,L1</b></p><p>  LCALL XIAOZHEN4</p><p>  MOV C,25H.0</p><p><b>  JC A5</b></p><p>  A5:CLR 25H.0</p><p><b

56、>  INC 22H</b></p><p><b>  MOV A,22H</b></p><p>  CJNE A,#18H,GO12</p><p>  MOV 22H,#00H</p><p>  MOV 34H,#00H</p><p>  MOV 35H,#00H&l

57、t;/p><p><b>  LJMP L0</b></p><p>  L1:JB K3,L2</p><p>  LCALL XIAOZHEN5</p><p>  MOV C,25H.0</p><p><b>  JC A6</b></p><p>

58、;  A6:CLR 25H.0</p><p><b>  INC 21H</b></p><p><b>  MOV A,21H</b></p><p>  CJNE A,#3CH,GO11</p><p>  MOV 21H,#00H</p><p>  MOV 32H,

59、#00H</p><p>  MOV 33H,#00H</p><p><b>  LJMP L0</b></p><p>  GO11:MOV B,#0AH</p><p><b>  DIV AB</b></p><p><b>  MOV 32H,B</

60、b></p><p><b>  MOV 33H,A</b></p><p><b>  LJMP L0</b></p><p>  GO12:MOV B,#0AH</p><p><b>  DIV AB</b></p><p><b>

61、;  MOV 34H,B</b></p><p><b>  MOV 35H,A</b></p><p><b>  LJMP L0</b></p><p>  L2:JB K4,L0</p><p>  LCALL XIAOZHEN3</p><p>  MOV

62、 C,25H.0</p><p><b>  JC AX</b></p><p>  AX:CLR 25H.0</p><p><b>  RET</b></p><p>  SETATIME:LCALL DISPLAY2 ;調(diào)用鬧鐘設(shè)置,鬧鈴響時的顯示程序</p><p&g

63、t;  N0:LCALL DISPLAY2</p><p><b>  JB K3,N1</b></p><p>  LCALL XIAOZHEN6</p><p>  MOV C,25H.0</p><p><b>  JC A7</b></p><p>  A7:CLR

64、25H.0</p><p><b>  INC 24H</b></p><p><b>  MOV A,24H</b></p><p>  CJNE A,#24,GO22</p><p>  MOV 24H,#00H</p><p>  MOV 38H,#00H</p&

65、gt;<p>  MOV 39H,#00H</p><p><b>  LJMP N0</b></p><p>  N1:JB K1,N2</p><p>  LCALL XIAOZHEN7</p><p>  MOV C,25H.0</p><p><b>  JC A8

66、</b></p><p>  A8:CLR 25H.0</p><p><b>  INC 23H</b></p><p><b>  MOV A,23H</b></p><p>  CJNE A,#60,GO21</p><p>  MOV 23H,#00H&l

67、t;/p><p>  MOV 36H,#00H</p><p>  MOV 37H,#00H</p><p><b>  LJMP N0</b></p><p>  GO21:MOV B,#0AH</p><p><b>  DIV AB</b></p><p

68、><b>  MOV 36H,B</b></p><p><b>  MOV 37H,A</b></p><p><b>  LJMP N0</b></p><p>  GO22:MOV B,#0AH</p><p><b>  DIV AB</b>

69、</p><p><b>  MOV 38H,B</b></p><p><b>  MOV 39H,A</b></p><p><b>  LJMP N0</b></p><p>  N2:JB K4,N0</p><p>  LCALL XIAOZH

70、EN3</p><p>  MOV C,25H.0</p><p><b>  JC A9</b></p><p>  A9:CLR 25H.0</p><p><b>  RET</b></p><p>  TIMEPRO:MOV A,21H</p><

71、p><b>  MOV B,23H</b></p><p>  CJNE A,B,BK</p><p><b>  MOV A,22H</b></p><p><b>  MOV B,24H</b></p><p>  CJNE A,B,BK</p><

72、;p>  SETB 25H.0</p><p>  MOV C,25H.0</p><p><b>  JC XX</b></p><p>  XX:LCALL TIMEOUT</p><p><b>  BK:RET</b></p><p><b>  TI

73、MEOUT:</b></p><p>  X1:LCALL BZ </p><p>  LCALL DISPLAY2</p><p><b>  CLR 25H.0</b></p><p><b>  JB K4, X1</b></p><p><b&g

74、t;  RET</b></p><p>  BZ:CLR P3.7</p><p>  MOV R7,#250</p><p>  T2:MOV R6,#124</p><p>  T3:DJNZ R6,T3</p><p>  DJNZ R7,T2</p><p><b>

75、;  SETB P3.7</b></p><p><b>  JB K4,XY</b></p><p>  LCALL XIAOZHEN3</p><p>  MOV C,25H.0</p><p><b>  JC XY1</b></p><p><b&g

76、t;  XY:RET</b></p><p>  XY1:LJMP LOOP</p><p>  XIAOZHEN1:LCALL DISPLAY1</p><p>  JB K1,XIAOZHEN1</p><p><b>  MOV C,K1</b></p><p>  JC XIA

77、OZHEN1</p><p>  LCALL DELAY</p><p><b>  MOV C,K1</b></p><p>  JC XIAOZHEN1</p><p>  STOP1:MOV C,K1</p><p><b>  JNC STOP1</b></p&

78、gt;<p>  LCALL DELAY</p><p><b>  MOV C,K1</b></p><p><b>  JNC STOP1</b></p><p>  SETB 25H.0</p><p><b>  RET</b></p>&l

79、t;p>  XIAOZHEN2:LCALL DISPLAY2</p><p>  JB K2,XIAOZHEN2</p><p><b>  MOV C,K2</b></p><p>  JC XIAOZHEN2</p><p>  LCALL DELAY</p><p><b>

80、  MOV C,K2</b></p><p>  JC XIAOZHEN2</p><p>  STOP2:MOV C,K2</p><p><b>  JNC STOP2</b></p><p>  LCALL DELAY</p><p><b>  MOV C,K2<

81、;/b></p><p><b>  JNC STOP2</b></p><p>  SETB 25H.0</p><p><b>  RET</b></p><p>  XIAOZHEN3:LCALL DISPLAY1</p><p>  JB K4,XIAOZHEN

82、3</p><p><b>  MOV C,K4</b></p><p>  JC XIAOZHEN3</p><p>  LCALL DELAY</p><p><b>  MOV C,K4</b></p><p>  JC XIAOZHEN3</p><

83、;p>  STOP3:MOV C,K4</p><p><b>  JNC STOP3</b></p><p>  LCALL DELAY</p><p><b>  MOV C,K4</b></p><p><b>  JNC STOP3</b></p>

84、<p>  SETB 25H.0</p><p><b>  RET</b></p><p>  XIAOZHEN4:LCALL DISPLAY1</p><p>  JB K2,XIAOZHEN4</p><p><b>  MOV C,K2</b></p><p&g

85、t;  JC XIAOZHEN4</p><p>  LCALL DELAY</p><p><b>  MOV C,K2</b></p><p>  JC XIAOZHEN4</p><p>  STOP4:MOV C,K2</p><p><b>  JNC STOP4</b&

86、gt;</p><p>  LCALL DELAY</p><p><b>  MOV C,K2</b></p><p><b>  JNC STOP4</b></p><p>  SETB 25H.0</p><p><b>  RET</b><

87、/p><p>  XIAOZHEN5:LCALL DISPLAY1</p><p>  JB K3,XIAOZHEN5</p><p><b>  MOV C,K3</b></p><p>  JC XIAOZHEN5</p><p>  LCALL DELAY</p><p>

88、;<b>  MOV C,K3</b></p><p>  JC XIAOZHEN5</p><p>  STOP5:MOV C,K3</p><p><b>  JNC STOP5</b></p><p>  LCALL DELAY</p><p><b>  M

89、OV C,K3</b></p><p><b>  JNC STOP5</b></p><p>  SETB 25H.0</p><p><b>  RET</b></p><p>  XIAOZHEN6:LCALL DISPLAY2</p><p>  JB K

90、3,XIAOZHEN6</p><p><b>  MOV C,K3</b></p><p>  JC XIAOZHEN6</p><p>  LCALL DELAY</p><p><b>  MOV C,K3</b></p><p>  JC XIAOZHEN6</

91、p><p>  STOP6:MOV C,K3</p><p><b>  JNC STOP6</b></p><p>  LCALL DELAY</p><p><b>  MOV C,K3</b></p><p><b>  JNC STOP6</b>&l

92、t;/p><p>  SETB 25H.0</p><p><b>  RET</b></p><p>  XIAOZHEN7:LCALL DISPLAY2</p><p>  JB K1,XIAOZHEN7</p><p><b>  MOV C,K1</b></p>

93、;<p>  JC XIAOZHEN7</p><p>  LCALL DELAY</p><p><b>  MOV C,K1</b></p><p>  JC XIAOZHEN7</p><p>  STOP7:MOV C,K1</p><p><b>  JNC ST

94、OP7</b></p><p>  LCALL DELAY</p><p><b>  MOV C,K1</b></p><p><b>  JNC STOP7</b></p><p>  SETB 25H.0</p><p><b>  RET<

95、/b></p><p>  DELAY:MOV R4,#14H</p><p>  DL00:MOV R5,#0FFH</p><p>  DL11:DJNZ R5,DL11</p><p>  DJNZ R4,DL00</p><p><b>  RET</b></p>&l

96、t;p>  TIME:PUSH ACC</p><p><b>  PUSH PSW</b></p><p>  MOV TH0,#03CH</p><p>  MOV TL0,#0B0H</p><p>  DJNZ R2,RET0</p><p>  MOV R2,#14H</p&

97、gt;<p><b>  MOV A,20H</b></p><p><b>  CLR C</b></p><p><b>  INC A</b></p><p>  CJNE A,#3CH,GO1</p><p>  MOV 20H,#0</p>

98、<p>  MOV 30H,#0</p><p>  MOV 31H,#0</p><p><b>  MOV A,21H</b></p><p><b>  INC A</b></p><p>  CJNE A,#3CH,GO2</p><p>  MOV 2

99、1H,#0H</p><p>  MOV 32H,#0</p><p>  MOV 33H,#0</p><p><b>  MOV A,22H</b></p><p><b>  INC A</b></p><p>  CJNE A,#18H,GO3</p>

100、<p>  MOV 22H,#00H</p><p>  MOV 34H,#0</p><p>  MOV 35H,#0</p><p><b>  AJMP RET0</b></p><p>  GO1:MOV 20H,A</p><p>  MOV B,#0AH</p>

101、<p><b>  DIV AB</b></p><p><b>  MOV 31H,A</b></p><p><b>  MOV 30H,B</b></p><p><b>  AJMP RET0</b></p><p>  GO2:MOV

102、 21H,A</p><p>  MOV B,#0AH</p><p><b>  DIV AB</b></p><p><b>  MOV 33H,A</b></p><p><b>  MOV 32H,B</b></p><p><b> 

103、 AJMP RET0</b></p><p>  GO3:MOV 22H,A</p><p>  MOV B,#0AH</p><p><b>  DIV AB</b></p><p><b>  MOV 35H,A</b></p><p><b>  

104、MOV 34H,B</b></p><p><b>  AJMP RET0</b></p><p>  RET0:POP PSW</p><p><b>  POP ACC</b></p><p><b>  RETI</b></p><p>

105、;  DISPLAY1:MOV R0,#30H</p><p>  MOV R3,#0FEH</p><p><b>  MOV A,R3</b></p><p>  PLAY1:MOV P2,A</p><p><b>  MOV A,@R0</b></p><p>  M

106、OV DPTR,#DSEG1</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p><p><b>  LCALL DL1</b></p><p>  MOV P2,#0FFH</p><p><b>  M

107、OV A,R3</b></p><p><b>  RL A</b></p><p>  JNB ACC.6,LD1</p><p><b>  INC R0</b></p><p><b>  MOV R3,A</b></p><p>  

108、LJMP PLAY1</p><p><b>  LD1:RET</b></p><p>  DISPLAY2:PUSH ACC</p><p><b>  PUSH PSW</b></p><p>  MOV R0,#36H</p><p>  MOV R3,#0FBH&

109、lt;/p><p><b>  MOV A,R3</b></p><p>  PLAY2:MOV P2,A</p><p><b>  MOV A,@R0</b></p><p>  MOV DPTR,#DSEG1</p><p>  MOVC A,@A+DPTR</p&g

110、t;<p><b>  MOV P0,A</b></p><p><b>  LCALL DL1</b></p><p>  MOV P2,#0FFH</p><p><b>  MOV A,R3</b></p><p><b>  RL A</b

111、></p><p>  JNB ACC.6,LD2</p><p><b>  INC R0</b></p><p><b>  MOV R3,A</b></p><p>  LJMP PLAY2</p><p>  LD2:POP PSW</p><

112、;p><b>  POP ACC</b></p><p><b>  RET</b></p><p>  DL1:MOV R7,#05H</p><p>  DL:MOV R6,#0FFH</p><p>  DL6:DJNZ R6,$</p><p>  DJNZ R

113、7,DL</p><p><b>  RET</b></p><p>  DSEG1:DB 3FH,06H,5BH,4FH,66H</p><p>  DB 6DH,7DH,07H,7FH,6FH</p><p><b>  END</b></p><p><b>

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論