基于51單片機(jī)的數(shù)字鐘設(shè)計(jì)_第1頁(yè)
基于51單片機(jī)的數(shù)字鐘設(shè)計(jì)_第2頁(yè)
基于51單片機(jī)的數(shù)字鐘設(shè)計(jì)_第3頁(yè)
基于51單片機(jī)的數(shù)字鐘設(shè)計(jì)_第4頁(yè)
基于51單片機(jī)的數(shù)字鐘設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上武漢大學(xué)電子信息學(xué)院電子系統(tǒng)綜合設(shè)計(jì)課程論文 基于51單片機(jī)的數(shù)字鐘設(shè)計(jì) 專 業(yè): 年 級(jí): 作 者: 指導(dǎo)教師:2012年 6月 13 日專心-專注-專業(yè) 目 錄24.3蜂鳴器驅(qū)動(dòng)電路55.3按鍵處理流程圖75.4 定時(shí)器中斷流程圖8 6.1.1調(diào)試軟件 6.1.2仿真軟件00012261 作品的背景與意義 近年來(lái),隨著電子產(chǎn)品的發(fā)展,人們對(duì)數(shù)字時(shí)鐘的要求越來(lái)越高,本文針對(duì)人們的這一需求,設(shè)計(jì)了一種有單片機(jī)控制的多功能數(shù)字時(shí)鐘。該系統(tǒng)具有年、月、日、星期、時(shí)、分、秒設(shè)置及顯示、鬧鐘定時(shí)等功能。系統(tǒng)以 C51單片機(jī)為核心,主要進(jìn)行基于C51單片低功耗MCU的字符型數(shù)字

2、鐘及其系統(tǒng)的研究,可以通過(guò)它的時(shí)鐘信號(hào)進(jìn)行計(jì)時(shí)實(shí)現(xiàn)計(jì)時(shí)功能,將其時(shí)間數(shù)據(jù)經(jīng)單片機(jī)輸出,利用顯示器顯示出來(lái)。通過(guò)鍵盤可以進(jìn)行定時(shí)、校時(shí)功能。輸出設(shè)備顯示器可以用液晶顯示技術(shù)和數(shù)碼管顯示技術(shù)。系統(tǒng)帶有數(shù)碼管顯示器,配合按鍵提供友好的用戶界面,操作簡(jiǎn)單,同時(shí)具有定點(diǎn)報(bào)時(shí)功能,該數(shù)字鐘能長(zhǎng)期、連續(xù)、可靠、穩(wěn)定的工作;同時(shí)還具有體積小、功耗低等特點(diǎn),便于攜帶,使用方便。系統(tǒng)軟件設(shè)計(jì)包括單片機(jī)計(jì)算機(jī)兩部分的編程。計(jì)算機(jī)軟件編程主要實(shí)現(xiàn)參數(shù)設(shè)置、串行口數(shù)據(jù)接收、指令發(fā)送以及數(shù)據(jù)的顯示和存儲(chǔ)。單片機(jī)軟件編程主要實(shí)現(xiàn)鍵盤、數(shù)碼管顯示、定點(diǎn)報(bào)時(shí)等各模塊的功能,采用匯編語(yǔ)言編程。鐘表的數(shù)字化給人們生產(chǎn)生活帶來(lái)了極大

3、的方便而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。因此,研究數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非常現(xiàn)實(shí)的意義。 2 功能指標(biāo)設(shè)計(jì)本設(shè)計(jì)準(zhǔn)備實(shí)現(xiàn)的功能:(1)顯示公歷日期功能(年、月、日、時(shí)、分、秒)。(2)可通過(guò)按鍵切換年、月、日及時(shí)、分、秒的顯示狀態(tài)。(3)可隨時(shí)調(diào)校年、月、日或時(shí)、分、秒。(5)可實(shí)現(xiàn)鬧鐘功能。3 作品方案設(shè)計(jì)3.1總體方案的選擇 基于51單片機(jī)的數(shù)字鐘設(shè)計(jì)單片機(jī)芯片作為控制系統(tǒng)的核心部件,它除了具備微機(jī)CPU的數(shù)值計(jì)算功能外,還具有靈活強(qiáng)大的控制功能,以便實(shí)時(shí)檢測(cè)系統(tǒng)的輸入量、控制系統(tǒng)的輸出量,實(shí)現(xiàn)自動(dòng)控制。在本次設(shè)計(jì)中采用單片機(jī)技術(shù)來(lái)實(shí)現(xiàn)數(shù)字鐘的功能。方案的設(shè)計(jì)可以從以下幾個(gè)方面來(lái)確定。

4、在本次設(shè)計(jì)中采用AT89C51單片機(jī);顯示電路的設(shè)計(jì),在這里采用數(shù)碼管顯示;校時(shí)和定時(shí)電路的設(shè)計(jì);實(shí)時(shí)控制電路是時(shí)鐘電路的一個(gè)重要組成部分,采用的是一個(gè)時(shí)鐘芯片,單片機(jī)從中讀取數(shù)據(jù)送到顯示器上顯示,從而實(shí)現(xiàn)數(shù)字鐘的功能;還有一些其他控制電路如復(fù)位電路、時(shí)鐘電路等。通過(guò)這些控制電路的連接構(gòu)成了完整的電路。3.2控制方案比較程序設(shè)計(jì)內(nèi)單片機(jī)的程序設(shè)計(jì)有其自身的特點(diǎn)。在單片機(jī)系統(tǒng)中,硬件與軟件緊密結(jié)合,由于硬件電路的設(shè)計(jì)不具有通用性,所以必須根據(jù)具體的硬件電路來(lái)設(shè)計(jì)對(duì)應(yīng)的軟件,硬件設(shè)計(jì)的優(yōu)劣直接影響到軟件設(shè)計(jì)的難易,軟件設(shè)計(jì)的優(yōu)劣又直接影響到硬件的發(fā)揮。在很多時(shí)候,軟件可以替代硬件的功能,當(dāng)然,需要

5、付出額外占用CPU時(shí)間的代價(jià)。軟件程序的設(shè)計(jì)是根據(jù)硬件電路圖的連接和各個(gè)元器件的功能進(jìn)行設(shè)計(jì)。在編寫軟件時(shí),可以按各個(gè)程序的功能將軟件細(xì)分為各個(gè)功能模塊,再通過(guò)主程序的調(diào)用來(lái)實(shí)現(xiàn)整個(gè)軟件系統(tǒng)。而一般編寫的程序都是根據(jù)事前所用的流程圖來(lái)編寫的,而且,流程圖中也包含了對(duì)設(shè)計(jì)所得結(jié)果的要求,因此,流程圖的設(shè)計(jì)直接影響到源程序的設(shè)計(jì)。 控制鍵盤采用獨(dú)立式按鍵,開(kāi)機(jī)時(shí),顯示12:00:00的時(shí)間開(kāi)始計(jì)時(shí);P0.0/AD0控制“秒”的調(diào)整,每按一次加1秒; P0.1/AD1控制“分”的調(diào)整,每按一次加1分;P0.2/AD2控制“時(shí)”的調(diào)整,每按一次加1個(gè)小時(shí);定時(shí)器1中斷入口,產(chǎn)生秒基準(zhǔn)時(shí)間并實(shí)現(xiàn)時(shí)間日期

6、自增,定時(shí)器2中斷入口,由軟件控制蜂鳴器產(chǎn)生鬧鐘鈴聲。3.3顯示方案比較單片機(jī)控制段式LED數(shù)碼管顯示。碼管由7段LED組成,因此可以稱為七段數(shù)碼管。將這七個(gè)LED按一定規(guī)律點(diǎn)亮,就能夠顯示數(shù)字09,以及英文字母A、B、C、D、E、F。而現(xiàn)在的數(shù)碼管都有帶有小數(shù)點(diǎn)(DP),實(shí)際上數(shù)碼管就變成8段了。顯示二進(jìn)制、十進(jìn)制數(shù)、十六進(jìn)制數(shù),小數(shù)都不是問(wèn)題。數(shù)碼管有共陽(yáng)、共陰的區(qū)分。顧名思義,共陽(yáng)數(shù)碼管公共陽(yáng)極,即將8個(gè)數(shù)碼管正極連接在一起,負(fù)極又8個(gè)不同端口控制。共陰則與共陽(yáng)相反。段選引腳用于驅(qū)動(dòng)一位數(shù)碼管的八個(gè)段,即圖上的a、c、d、e、f、g和dp。根據(jù)不同的數(shù)字輸出對(duì)應(yīng)的電平,從而點(diǎn)亮一位數(shù)碼管

7、。位選用于選擇在某一時(shí)刻驅(qū)動(dòng)哪一位數(shù)碼管,設(shè)計(jì)里面使用兩位數(shù)碼管,因此需要兩個(gè)引腳來(lái)控制這些位。在控制位選時(shí)候,將數(shù)碼管的位選引腳直接接到單片機(jī)的I/O口,是可行的。原因是,單片機(jī)的I/O負(fù)載能力不足以驅(qū)動(dòng)數(shù)碼管,這時(shí)候,就需要外加上三極管作為電流放大使用。使用了PNP三極管,將發(fā)射極接到電源的+5V,基極串上一10K電阻接到單片機(jī)的位選I/O口,集電極就接到數(shù)碼管的位選端。3.4 公式定時(shí)時(shí)間 t=(-T0初值)*振蕩周期*12 (1.1)4 硬件設(shè)計(jì)4.1顯示模塊電路圖 圖4.1 AD9851連接電路 4.2 4X4矩陣鍵盤硬件原理圖按鈕未按下前,四個(gè)I/O口通過(guò)一個(gè)10K的電阻與VCC相

8、連,所以此時(shí)四個(gè)I/O口的輸入都為1即高電平;當(dāng)按鈕按下時(shí),四個(gè)I/O口都接地,此時(shí)四個(gè)I/O口的輸入都為即低電平。圖4.2 4*4鍵盤4.3蜂鳴器驅(qū)動(dòng)電路蜂鳴器工作電壓為+5V,將蜂鳴器的正極連接到電源+5V,負(fù)極連接到電源的GND,蜂鳴器就能發(fā)出聲響。單片機(jī)I/O的負(fù)載能力并不足以驅(qū)動(dòng)蜂鳴器,為了解決這個(gè)問(wèn)題,必需另需它法。蜂鳴器的典型驅(qū)動(dòng)電路是使用極管做開(kāi)關(guān)。5 軟件設(shè)計(jì) 程序開(kāi)始5.1主程序流程圖 啟動(dòng)定時(shí)器按鍵檢測(cè)時(shí)間顯示 結(jié)束圖5.1 主程序流程圖5.2顯示模塊流程圖 程序開(kāi)始 秒十位計(jì)數(shù)顯示分個(gè)位計(jì)數(shù)顯示分十位計(jì)數(shù)顯示時(shí)個(gè)位計(jì)數(shù)顯示時(shí)十位計(jì)數(shù)顯示 結(jié)束開(kāi)始5.3按鍵處理流程圖秒按

9、鍵按下? N秒加1 Y分按鍵按下? N Y分加1時(shí)按鍵按下? N Y時(shí)加1顯示時(shí)間結(jié)束開(kāi)始5.4 定時(shí)器中斷流程圖1秒時(shí)間到? N Y秒單元加160秒時(shí)間到? N Y秒單元清零;分單元加160分鐘時(shí)間到? N 分單元清零,時(shí)單元加1 Y24小時(shí)到? N Y時(shí)單元清零時(shí)間顯示中斷返回6 系統(tǒng)測(cè)試6.1測(cè)試環(huán)境6.1.1調(diào)試軟件KEIL:KEIL C51標(biāo)準(zhǔn)C編譯器為微控制器的軟件開(kāi)發(fā)供了C語(yǔ)言環(huán)境,同時(shí)保留了匯編代碼高效,快速的特點(diǎn)。C51編譯器的功能不斷增強(qiáng)。使你可以更加貼近CPU本身,及其它的衍生產(chǎn)品。C51已被完全集成到uVision2的集成開(kāi)發(fā)環(huán)境中,這個(gè)集成開(kāi)發(fā)環(huán)境包含:編譯器,匯編器

10、,實(shí)時(shí)操作系統(tǒng),項(xiàng)目管理器,調(diào)試器。uVision2 IDE可為它們提供單一而靈活的開(kāi)發(fā)環(huán)境。一個(gè)單一的uVision2工程能夠產(chǎn)生一個(gè)或多個(gè)目標(biāo)程序。產(chǎn)生目標(biāo)程序的源文件構(gòu)成“組”。開(kāi)發(fā)工具選項(xiàng)可以對(duì)應(yīng)目標(biāo),組或單個(gè)文件。同時(shí)uVision2包含一個(gè)器件數(shù)據(jù)庫(kù)(device database),可以自動(dòng)設(shè)置匯編器、編譯器、連接定位器及調(diào)試器選項(xiàng),來(lái)滿足用戶充分利用特定,微控制器的要求。此數(shù)據(jù)庫(kù)包含:片上存儲(chǔ)器和外圍設(shè)備的信息,擴(kuò)展數(shù)據(jù)指針(extra data pointer)或者加速器(math accelerator)的特性。uVision2還可以為片外存儲(chǔ)器產(chǎn)生必要的連接選項(xiàng):確定起始

11、地址和規(guī)模。uVision2編輯器包含了所有用戶熟悉的特性,彩色語(yǔ)法顯像和文件辯識(shí)都對(duì)C源代碼進(jìn)行和優(yōu)化,也可以在編輯器內(nèi)調(diào)試程序,它能提供一種自然的調(diào)試環(huán)境,使你更快速地檢查和修改程序。另外KEIL C51編譯器在遵循ANSI標(biāo)準(zhǔn)的同時(shí),為8051微控制器系列特別設(shè)計(jì)。因?yàn)檎Z(yǔ)言上的擴(kuò)展能讓用戶使用應(yīng)用中的所有資源。6.1.2仿真軟件 PROTEUS: Proteus軟件是Labcenter Electronics公司的一款電路設(shè)計(jì)與仿真軟件,它包括ISIS、ARES等軟件模塊,ARES模塊主要用來(lái)完成PCB的設(shè)計(jì),而ISIS模塊用來(lái)完成電路原理圖的布圖與仿真。Proteus的軟件仿真基于VS

12、M技術(shù),它與其他軟件最大的不同也是最大的優(yōu)勢(shì)就在于它能仿真大量的單片機(jī)芯片,比如MCS-51系列、PIC系列等等,以及單片機(jī)外圍電路,比如鍵盤、LED、LCD等等。通過(guò)Proteus軟件的使用我們能夠輕易地獲得一個(gè)功能齊全、實(shí)用方便的單片機(jī)實(shí)驗(yàn)室。6.2測(cè)試步驟1.硬件調(diào)試,檢測(cè)硬件是否合格;2.默認(rèn)為走時(shí)模式,按24小時(shí)制分別為 “時(shí)時(shí),分分.秒秒”。然后進(jìn)行走時(shí)調(diào)整;3.萬(wàn)年歷模式,為 “年份,月份.日期”。可以進(jìn)行調(diào)整;4.鬧鐘模式,可以定時(shí)鬧鐘。6.3測(cè)試結(jié)果單片機(jī)數(shù)字鐘擁有時(shí)間模式,日歷模式,鬧鐘模式三種模式。6.4測(cè)試數(shù)據(jù)表6.1 功能數(shù)據(jù)測(cè)試電子鐘測(cè)試值/min實(shí)際值/min誤差

13、/%平均誤差/%100:00:59.950.050.09100:00:59.880.12100:01:00.100.10200:01:59.770.120.14200:02:00.210.11200:01:59.650.186.5 心得體會(huì)回顧起此次實(shí)驗(yàn)設(shè)計(jì),我感慨頗多,從一開(kāi)始的茫然到思路漸漸清晰,從開(kāi)始選題到最終定稿,從理論到實(shí)踐,在短短的五個(gè)星期的日子里,痛并快樂(lè)著,但是艱辛的付出是值得的。電子綜合設(shè)計(jì)課程作為一門開(kāi)放性課程讓適應(yīng)了填鴨式教育的我們手足無(wú)措,但是老師的諄諄教誨和不厭其煩的耐心指導(dǎo)撥散了我們心中的迷霧,使我們有曲徑通幽,豁然開(kāi)朗之感。從一開(kāi)始的了解電路結(jié)構(gòu)到最后的軟硬件結(jié)合

14、實(shí)現(xiàn)設(shè)計(jì)功能,我們遇到了各種問(wèn)題。這畢竟第一次做實(shí)驗(yàn)設(shè)計(jì),難免會(huì)遇到過(guò)各種各樣的問(wèn)題。在困難中前行,我們受益匪淺。隊(duì)友之間的相互磨合讓我們學(xué)會(huì)了團(tuán)隊(duì)精神!差錯(cuò)的出現(xiàn)考驗(yàn)了我們的隨機(jī)應(yīng)變能力!實(shí)驗(yàn)設(shè)計(jì)遇到的阻力讓我們明白了理論與實(shí)踐相結(jié)合的重要性!只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,從操作中鞏固理論,兩者有機(jī)結(jié)合,提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。同時(shí)在設(shè)計(jì)的過(guò)程中找出不足之處,加以改正不斷提升自己的水平。 通過(guò)此次實(shí)驗(yàn),在讓我們體會(huì)到了設(shè)計(jì)的艱辛的同時(shí),更讓我體會(huì)到成功的喜悅和快樂(lè).。這次電子設(shè)計(jì)實(shí)驗(yàn),雖然短暫但是讓我們得到多方面的提高:1.

15、 我們了解并掌握了單片機(jī)的基本應(yīng)用,學(xué)習(xí)了Keil軟件的用法,.2、提高了我們的邏輯思維能力,加強(qiáng)了實(shí)際操作能力。我們?cè)谶壿嬰娐返姆治雠c設(shè)計(jì)上有了質(zhì)的飛躍。我們理解了各種芯片的功能及構(gòu)造,加深了對(duì)組合邏輯電路與時(shí)序邏輯電路的認(rèn)識(shí),進(jìn)一步增進(jìn)了對(duì)一些常見(jiàn)邏輯器件的了解。3,查閱參考書的獨(dú)立思考的能力以及培養(yǎng)非常重要。我們?cè)谠O(shè)計(jì)電路時(shí),遇到很多不理解的東西,有的我們通過(guò)查閱參考書弄明白,有的通過(guò)網(wǎng)絡(luò)查到,但由于時(shí)間和資料有限我們更多的還是獨(dú)立思考。所以不斷的汲取知識(shí)是非常重要的。4、隊(duì)友之間的團(tuán)結(jié)合作也是非常重要的,眾人拾柴火焰高,我們?nèi)齻€(gè)人的力量加起來(lái)所有問(wèn)題就能迎刃而解! 參考文獻(xiàn)1李朝青.單

16、片機(jī)原理與接口技術(shù)(第三版).北京:北京航空航天大學(xué)出版社,20052李 軍. 51系列單片機(jī)高級(jí)實(shí)例開(kāi)發(fā)指南. 北京航空航天大學(xué)出版社3王毓銀數(shù)字電路邏輯設(shè)計(jì)M 高等教育出版社2004-2.4許偉敏程佩青.多功能電子數(shù)字鐘2009.5電子技術(shù)基礎(chǔ)實(shí)驗(yàn)課程組.電子技術(shù)基礎(chǔ)實(shí)驗(yàn)指導(dǎo)書.武漢大學(xué)電子信息學(xué)院.6李光飛. 單片機(jī)設(shè)計(jì)實(shí)例指導(dǎo).北京航空航天大學(xué)出版社.7劉華東. 單片機(jī)原理與應(yīng)用.北京電子工業(yè)出版社.附錄1 系統(tǒng)電路圖附錄2 系統(tǒng)軟件代碼/*/*/KEY EQU 0F8FFH ;按鍵地址LED_SEG EQU 0FAFFH ;液晶段數(shù)據(jù)LED_SEL EQU 0FBFFH ;液晶段片選

17、KH EQU 21H ;保存按鍵行值KK EQU 22H ;按鍵值地位KV EQU 23H ;保存按鍵列位KT EQU 24H ;臨時(shí)保存按鍵狀態(tài)HOU EQU 25H SEC EQU 26H MIN EQU 27HHB EQU 28H ;數(shù)據(jù)高位LB EQU 29H ;數(shù)據(jù)低位DATE_TIME EQU 2AH ;記錄時(shí)間、日期模式 ,3表示時(shí)間,4表示日期LP0 EQU 2BH ;定時(shí)器1循環(huán)次數(shù)LP1 EQU 2CH ;定時(shí)器2循環(huán)次數(shù)YEARH EQU 2DHYEARL EQU 2EHMON EQU 2FHDAY EQU 30HFLASH EQU 31H ;設(shè)置標(biāo)記變量FLASH_BI

18、TE EQU 32H ;設(shè)置位標(biāo)記變量FLASH_FIGURE EQU 33H ;設(shè)置位數(shù)值標(biāo)記變量SIGN EQU 34H ;閏年標(biāo)記BOOL EQU 35H ;是否按下LP3 EQU 36HLP4 EQU 37HBITE EQU 38HLP2 EQU 39HH_LB EQU 3AHH_HB EQU 3BH LP5 EQU 3CH ;鬧鐘個(gè)數(shù)LP6 EQU 4FHLP7 EQU 50HLP8 EQU 51HLP_H EQU 52HLP_L EQU 53HBP BIT P1.0 ;鬧鐘LED_1 BIT P1.1ON_OFF0 BIT 00HON_OFF1 BIT 01HON_OFF2 BIT

19、 02HON_OFF3 BIT 03HON_OFF4 BIT 04H BOOL_H BIT 05HBOOL_L BIT 06H/*/ORG 0000HLJMP MAINORG 000BH ;定時(shí)器1中斷入口,產(chǎn)生秒基準(zhǔn)時(shí)間并實(shí)現(xiàn)時(shí)間日期自增LJMP SERVEORG 001BH ;定時(shí)器2中斷入口,LJMP REDRAW/*/ORG 1000HMAIN:MOV SP,#60HMOV BOOL,#0HMOV LP0,#14HMOV LP1,#250MOV TMOD,#11HMOV TH0,#3CHMOV TL0,#0B0H;MOV TH1,#03CHMOV TL1,#0B0HMOV LP7,#2

20、 ;定時(shí)器1循環(huán)次數(shù)MOV LP8,#50 ;MOV SIGN,#0FFHMOV FLASH,#0MOV YEARH,#20MOV YEARL,#12MOV MON,#2MOV DAY,#29 MOV HOU,#23MOV SEC,#53MOVMIN,#59MOV R4,#0DFHMOV DATE_TIME,#3H MOV FLASH_BITE,#0FFHMOV LP5,#0MOV LP_H,#70MOV LP_L,#70SETB BPSETB ON_OFF0SETB ON_OFF1SETB ON_OFF2SETB ON_OFF3SETB ON_OFF4SETB BOOL_HSETB BOOL

21、_LMOV 3DH,#0MOV 45H,#0MOV 4AH,#0MOV 3FH,#1MOV 47H,#1MOV 4CH,#1/*定時(shí)器初始化*/SETB ET0 ;允許T0中斷SETB ET1 ;禁止T1中斷SETB EA ;CPU開(kāi)放中斷CLR TR1 ;關(guān)閉定時(shí)器T1SETB TR0 ;開(kāi)啟定時(shí)器T0/*/WHILE: LCALL LP KEY_NUM: ;按鍵處理 MOV DPTR,#KEYMOV A,#0HMOVX DPTR,AMOV A,FLASHJZ SETTR0MOV A,DATE_TIMECJNE A,#4,CLRTR0SETTR0: SETB TR0JMP JUDGE CLR

22、TR0:CLR TR0JUDGE: ;掃描是否有鍵按下MOV DPTR,#KEYMOVX A,DPTRANL A,#0FHMOV R1,#0EFHMOV R2,#4HMOV KT,ACJNE A,#0FH,FINDMOV BOOL,#0JMP WHILE FIND: ;查詢按下的鍵MOV A,R1RR AMOV R1,AMOV DPTR,#KEYMOVX DPTR,ANOPNOPMOV DPTR,#KEYMOVX A,DPTRANL A,#0FHMOV KV,AXRL A,KTJZ PRO0DJNZ R2,FIND PRO0: ;計(jì)算鍵值MOV A,BOOLJNZ RETURN3MOV BOO

23、L,#1HMOV KH,R2DEC KHMOV A,KVCPL AANL A,#0FHMOV B,#2HDIV ABCJNE A,#4H,PRO1MOV KV,#3HJMP PRO2 PRO1:MOV KV,APRO2:MOV A,KHMOV B,#4HMUL ABADD A,KVMOV KK,AKEYPRO: ;鍵功能處理MOV A,KKCJNE A,#0AH,KEYPRO1 KEYPRO1:JC DIGPROKEYTBL: ;功能鍵處理 MOV DPTR,#JMPTBLCLR C SUBB A,#0AHRL A JMP A+DPTRJMPTBL:;功能鍵入口地址表(前四行)AJMP CAL

24、AJMP TIMAJMP SETTINGAJMP YESAJMP ALARMAJMP ON_OFF_ALMDIGPRO: ;數(shù)字鍵處理 MOV FLASH_FIGURE,A MOV A,FLASH JZ RETURN3 LCALL PRO_CHANGE JMP SETTING1 RETURN3: LJMP RETURN1CAL:MOV P1,#0FFH;日期模式MOV A,DATE_TIMECJNE A,#4,CLASETJMP RETURN1CLASET:MOV DATE_TIME,#4HJMP YESTIM:MOV P1,#0FFH;時(shí)間模式MOV LP5,#0MOV A,DATE_TIM

25、ECJNE A,#3,TIMSETJMP RETURN1TIMSET:MOV DATE_TIME,#3HJMP YESSETTING: ;設(shè)置SETTING1:;判斷當(dāng)前模式MOV A,DATE_TIMECJNE A,#4H,SETTIMESETDATE:MOV A,FLASHCJNE A,#8,INCFJMP YESINCF: INC FLASH MOV B,FLASH MOV A,#0FEHLOOP4:RR ADJNZ FLASH,LOOP4MOV FLASH,BMOV FLASH_BITE,AJMP RETURN1SETTIME:MOV A,FLASHCJNE A,#6,INCF2JMP

26、 YESINCF2: INC FLASHMOV B,FLASHMOV A,#0BFHLOOP5:RR ADJNZ FLASH,LOOP5MOV FLASH,BMOV FLASH_BITE,AJMP RETURN1RETURN4:JMP RETURN1YES: ;確認(rèn)鍵MOV FLASH,#0HMOV FLASH_BITE,#0FFHJMP RETURN1ALARM:MOV DATE_TIME,#3MOV A,LP5CJNE A,#5,NORMALMOV LP5,#0NORMAL:INC LP5MOV A,LP5MOV 44H,AMOV A,#0FEHRLP:RR ADJNZ 44H,RLPMO

27、V P1,ANEX1:MOV A,LP5DEC AMOV DPTR,#ALM_TBLRL AJMP A+DPTR ALM_TBL:AJMP L0AJMP L1AJMP L2AJMP L3AJMP L4L0:MOV C,ON_OFF0MOV LED_1,CAJMP YESL1:MOV C,ON_OFF1MOV LED_1,CAJMP YESL2:MOV C,ON_OFF2MOV LED_1,CAJMP YESL3:MOV C,ON_OFF3MOV LED_1,CAJMP YESL4:MOV C,ON_OFF4MOV LED_1,CAJMP YESON_OFF_ALM:MOV A,LP5CJNE

28、A,#0,NEXJMP RETURN1NEX:DEC AMOV DPTR,#ON_OFF_TBLRL AJMP A+DPTRON_OFF_TBL:AJMP O0AJMP O1AJMP O2AJMP O3AJMP O4O0:CPL ON_OFF0AJMP NEX1O1:CPL ON_OFF1AJMP NEX1O2:CPL ON_OFF2AJMP NEX1O3:CPL ON_OFF3AJMP NEX1O4:CPL ON_OFF4AJMP NEX1 RETURN1: LJMP WHILESERVE: ;定時(shí)器1中斷服務(wù)子程序PUSH ACCPUSH PSWPUSH DPHPUSH DPLMOV TH

29、0,#03CHMOV TL0,#0B0HDJNZ LP0,SERVE2JMP SERVE3SERVE2:JMP SERVE1SERVE3:MOV LP0,#014HMOV LP6,#5ALM_LP: MOV A ,LP6DEC ARL AMOV DPTR,#A_TBLJMP A+DPTRA_TBL:AJMP AL1AJMP AL2AJMP AL3AJMP AL4AJMP AL5AL1:JB ON_OFF0,C_ALMJMP FIND_OUTAL2:JB ON_OFF1,C_ALMJMP FIND_OUTAL3:JB ON_OFF2,C_ALMJMP FIND_OUTAL4:JB ON_OFF3

30、,C_ALMJMP FIND_OUTAL5:JB ON_OFF4,C_ALMJMP FIND_OUTFIND_OUT:MOV DPTR,#ALM_HMOV A,LP6MOVC A,A+DPTRMOV R0,AMOV A,R0CJNE A,HOU,C_ALMMOV DPTR,#ALM_MMOV A,LP6MOVC A,A+DPTRMOV R0,AMOV A,R0CJNE A,MIN,C_ALMMOV DPTR,#ALM_SMOV A,LP6MOVC A,A+DPTRMOV R0,AMOV A,R0CJNE A,SEC,C_ALMSETB TR1CLR BP C_ALM:DJNZ LP6,ALM_

31、LP INC SECMOV A,SECCJNE A,#3CH,SERVE1MOV SEC,#0HINC MINMOV A,MINCJNE A,#3CH,SERVE1MOV MIN,#0HINC HOUMOV A,HOUCJNE A,#18H,SERVE1MOV HOU,#0HINC DAY MOV A,MON ;當(dāng)月最大天數(shù)判斷DEC AMOV DPTR,#DAY_NUMMOVC A,A+DPTRMOV 44H,AINC 44HMOV A,MONCJNE A,#2,PROLEAP1MOV A,SIGNCJNE A,#1,PROLEAP1INC 44H PROLEAP1:MOV A,DAYCJN

32、E A,44H,SERVE1MOV DAY,#1HINC MONMOV A,MON ;月處理CJNE A,#13,SERVE1MOV MON,#1HINC YEARLMOV A, YEARL ;年處理CJNE A,#99,SERVE1MOV YEARL,#0HINC YEARH SERVE1:POP DPLPOP DPHPOP PSWPOP ACCRETI LIGHT: ;按參數(shù)點(diǎn)亮數(shù)碼管MOV A,#0HMOV DPTR,#LED_SEGMOVX DPTR,A MOV A,R4XRL A,FLASH_BITEJNZ L_HJB BOOL_H,PRO_LP_HL_H:MOV A,R4MOV D

33、PTR,#LED_SELMOVX DPTR,AMOV A,HBMOV DPTR,#STR_NUMMOVC A,A+DPTRMOV DPTR,#LED_SEGMOVX DPTR,ALCALL DELAY_2MSMOV A,R4XRL A,FLASH_BITEJNZ PRO_LPRO_LP_H:MOV A,LP_HJZ PRO_BOOL_HDEC LP_HJMP PRO_LPRO_BOOL_H: CPL BOOL_HMOV LP_H,#70PRO_L:MOV A,#0HMOV DPTR,#LED_SEGMOVX DPTR,A MOV A,R4RR AMOV R4,AXRL A,FLASH_BITE

34、JNZ L_LJB BOOL_L,PRO_LP_LL_L:MOV A,R4MOV DPTR,#LED_SELMOVX DPTR,AMOV A,LBMOV DPTR,#STR_NUMMOVC A,A+DPTRMOV DPTR,#LED_SEGADD A,#80HCJNE R5,#4,TRAP0SUBB A,#80HJMP TRAPTRAP0:CJNE R5,#1,TRAPSUBB A,#80HTRAP:MOVX DPTR,A LCALL DELAY_2MSMOV A,R4XRL A,FLASH_BITEJNZ RETURNXPRO_LP_L:MOV A,LP_LJZ PRO_BOOL_LDEC

35、LP_LJMP RETURNXPRO_BOOL_L: CPL BOOL_LMOV LP_L,#70RETURNX:RETREDRAW:;定時(shí)器1中斷服務(wù)子程序 PUSH ACCPUSH PSWPUSH DPHPUSH DPLMOV TH1,#03CHMOV TL1,#0B0HMOV A,LP8JNZ RE1MOV LP8,#50CLR TR1SETB BPJMP RERE1:DJNZ LP7,REDEC LP8MOV LP7,#2CPL BP RE:POP DPLPOP DPH POP PSWPOP ACCRETILP:;顯示子程序 LCALL PROLEAPMOV R5,DATE_TIME

36、CJNE R5,#4H,TIMEDATE:MOV R4,#7FHDATE1:MOV A,R5XRL A,#4HJZ PROYHMOV A,R5 XRL A,#3H JZ PROYL MOV A,R5 XRL A,#2H JZPROM MOV A,R5 XRL A,#1H JZ PRODPROYH:LCALL PRO_DATE_YH JMP DATE2PROYL:LCALL PRO_DATE_YL JMP DATE2PROM:LCALL PRO_DATE_M JMP DATE2PROD:LCALL PRO_DATE_DDATE2:LCALL LIGHTMOV A,R4RR AMOV R4,ADJ

37、NZ R5,DATE1JMP RETURNTIME:MOV R4,#0DFHTIME1:MOV A,R5 XRL A,#3H JZ PROT1 MOV A,R5 XRL A,#2H JZPROT2 MOV A,R5 XRL A,#1H JZ PROT3PROT1:LCALL PRO_TIME_HJMP TIME2PROT2:LCALL PRO_TIME_MJMP TIME2PROT3:LCALL PRO_TIME_STIME2:LCALL LIGHTMOV A,R4RR AMOV R4,ADJNZ R5,TIME1RETURN:RETPRO_DATE_YH:MOV A,YEARHLCALL P

38、RORETPRO_DATE_YL:MOV A,YEARLLCALL PRORETPRO_DATE_M:MOV A,MONJNZ PRO_MINC MONPRO_M:LCALL PROMOV A,HBCJNE A,#0,MO1RETMO1:CJNE A,#1,MO2MO5:MOV A,LBCJNE A,#3,MO3MO3:JNC MO4 RETMO4:MOV LB,#2JMP CALCUMO2:MOV HB,#1JMP MO5CALCU:MOV A,#10ADD A,LBMOV MON,ARETPRO_DATE_D:MOV A,DAYJNZ PRO_DINC DAYPRO_D:MOV DPTR,

39、#DAY_NUMMOV A,MONDEC AMOVC A,A+DPTRMOV 44H,AMOV A,MONCJNE A,#2,PROLEAP2MOV A,SIGNCJNE A,#1,PROLEAP2INC 44H PROLEAP2: MOV A,44HMOV R0,ACJNE A,DAY,DXDX:JNC D2LCALL PROMOV 40H,HBMOV 41H,LBMOV A,DAYLCALL PROMOV A,HBCJNE A,40H,D1D1: JC D2 CJNE A,40H,D3 MOV A,LB CJNE A,41H,D0 D0: JC D2 D3: MOV DAY,R0 D2: MOV A,DAYLCALL PRO RETPRO_TIME_H:MOV DPTR,#ALM_HMOV A,LP5MOVC A,A+DPTRMOV R0,AMOV A,R0LCALL PROMOV A,HBCJNE

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論