應(yīng)用電子技術(shù)畢業(yè)設(shè)計(論文)基于AT89C2051的數(shù)字電子鐘的設(shè)計_第1頁
應(yīng)用電子技術(shù)畢業(yè)設(shè)計(論文)基于AT89C2051的數(shù)字電子鐘的設(shè)計_第2頁
應(yīng)用電子技術(shù)畢業(yè)設(shè)計(論文)基于AT89C2051的數(shù)字電子鐘的設(shè)計_第3頁
應(yīng)用電子技術(shù)畢業(yè)設(shè)計(論文)基于AT89C2051的數(shù)字電子鐘的設(shè)計_第4頁
應(yīng)用電子技術(shù)畢業(yè)設(shè)計(論文)基于AT89C2051的數(shù)字電子鐘的設(shè)計_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、金金 華華 職職 業(yè)業(yè) 技技 術(shù)術(shù) 學(xué)學(xué) 院院jinhuajinhua collegecollege ofof vocationvocation andand technologytechnology畢業(yè)教學(xué)環(huán)節(jié)成果畢業(yè)教學(xué)環(huán)節(jié)成果 (2011 屆)題 目基于 at89c2051 的數(shù)字電子鐘的設(shè)計2010 年 5 月 16 日 目目 錄錄摘要.1英文摘要.1引言.21 任務(wù)分析 .32 總的方案及框圖 .33 硬件總的設(shè)計 .34 分模塊硬件電路設(shè)計 .44.1 單片機最小系統(tǒng).44.2 顯示電路.74.3 按鍵電路.94.4 時鐘芯片電路.105 軟件總的設(shè)計 .116 軟件分模塊設(shè)計 .

2、126.1 顯示程序流程圖.126.2 鬧鐘比較程序流程圖.137 調(diào)試結(jié)果記錄 .138 總結(jié) .14結(jié)論與謝辭.14參考文獻.15附件 1程序清單 .16附件 2仿真電路圖 .46附件 3pcb 圖 .47理工類基于基于 at89c2051at89c2051 的數(shù)字電子鐘的設(shè)計的數(shù)字電子鐘的設(shè)計摘要摘要: : 本文介紹了一款基于 at89c51 單片機數(shù)字鐘的設(shè)計,通過數(shù)字電子鐘的設(shè)計思路,詳細敘述了系統(tǒng)硬件、軟件的具體實現(xiàn)過程。論文重點闡述了數(shù)字鐘硬件中 mcu模塊、時鐘模塊和相關(guān)控制模塊等的模塊化設(shè)計與制作;軟件同樣采用模塊化的設(shè)計,包括中斷模塊、鬧鐘模塊、時間調(diào)整模塊設(shè)計,并采用簡單

3、流通性強的 medwin 語言編寫實現(xiàn)。本設(shè)計實現(xiàn)了時間與鬧鐘的修改功能、年、月、日和星期的顯示功能。并且通過對比實際的時鐘,查找出了誤差的來源,確定了調(diào)整誤差的方法,盡可能的減少誤差,使得系統(tǒng)可以達到實際數(shù)字鐘的允許誤差范圍內(nèi)。關(guān)鍵詞關(guān)鍵詞: : at89c51 單片機;數(shù)字鐘design of digital electronic clock based on scm of at89c2051(major of applied electronic technology information and engineering college tao cun-zhen)abstract: t

4、his paper introduced the design of digital clock based on scm of at89s51, the specific process of how the system hardware and software achieved were detailed description through the design of digital clock. the modular design and production, which consisted of mcu module, clock module and the associ

5、ated control module, were mainly recounted;as well as hardware designing,software design use the same method, consists suspension module,alarm clock module, time adjust module, and that use the medwin language to achieve because of its simple and strong negotiability. in this design the functions of

6、 time and alarm clock run and change, functions of the year, month, day and week display have been achieved. and by comparing the actual clock, find out the source of the error and determined the method of adjusting error, reduce errors as much as possibly, so this system can achieve a practical dig

7、ital clock with error within the permissible range.key words :at89s51 microcontroller; digital clock引言引言數(shù)字電子鐘具有走時準(zhǔn)確,一鐘多用等特點,在生活中已經(jīng)得到廣泛的應(yīng)用。雖然現(xiàn)在市場上已有現(xiàn)成的電子鐘集成電路芯片出售,價格便宜、使用也方便,但是人們對電子產(chǎn)品的應(yīng)用要求越來越高,數(shù)字鐘不但可以顯示當(dāng)前的時間,而且可以顯示日期、農(nóng)歷 、以及星期等,給人們的生活帶來了方便。另外數(shù)字鐘還具備秒表和鬧鐘的功能,且鬧鐘鈴聲可自選,使一款電子鐘具備了多媒體的色彩。時間對人們來說總是那么寶貴,工作的忙碌性

8、和繁雜性容易使人忘記當(dāng)前的時間。忘記了要做的事情,當(dāng)事情不是很重要的時候,這種遺忘無傷大雅。但是,一旦重要事情,一時的耽誤可能釀成大禍。電子鐘已成為人們?nèi)粘I钪斜夭豢缮俚谋匦杵罚瑥V泛用于個人家庭以及車站、碼頭、劇院、辦公室等公共場所,給人們的生活、學(xué)習(xí)、工作、娛樂帶來極大的方便。由于數(shù)字集成電路技術(shù)的發(fā)展和采用了先進的石英技術(shù),使電子鐘具有走時準(zhǔn)確、性能穩(wěn)定、攜帶方便等優(yōu)點,它還用于計時、自動報時及自動控制等各個領(lǐng)域。1 任務(wù)分析任務(wù)分析生產(chǎn)中常用的電子鐘有:lcd 電子鐘、led 電子鐘、電子萬年歷文具禮品、電波氣象鐘、多功能投影鐘、語音報時鐘、電子鐘收音機、便攜式萬年歷等。(1)以 24

9、h 計時方式工作;(2)用液晶顯示時間和日期;(3)通過按鍵可以選擇顯示內(nèi)容、修改時間;(4)具有整點報時功能;(5)時間誤差:0.02。 設(shè)置四個按鍵,各按鍵功能是移位、增一、減一、定時2 總的方案及框圖總的方案及框圖 電子鐘主要有單片機最小系統(tǒng)、按鍵電路、顯示電路、時鐘芯片電路、指示燈蜂鳴器電路構(gòu)成。 圖 2-1電子鐘框圖3 硬件總的設(shè)計硬件總的設(shè)計電子鐘主要有單片機最小系統(tǒng)、按鍵電路、顯示電路、時鐘芯片電路、指示燈蜂鳴器電路構(gòu)成。單單片片機機電電源源時時鐘鐘電電路路復(fù)復(fù)位位電電路路時時鐘鐘芯芯片片顯顯示示器器蜂蜂鳴鳴器器指指示示燈燈按按鍵鍵圖 3-1 電子鐘原理圖4 分模塊硬件電路設(shè)分模

10、塊硬件電路設(shè)計計4.1 單片機最小系統(tǒng)單片機最小系統(tǒng)單片機最小系統(tǒng)由單片機、電源電路、時鐘電路和復(fù)位電路構(gòu)成。89c51 介紹圖 4-1 89c51 芯片p0 口特點p0 口作為通用 i/o 使用,是一個準(zhǔn)雙向口;作為地址/數(shù)據(jù)總線時,是一個真正的雙向接口。(1)p0 口可作通用 i/o 口使用,又可作地址/數(shù)據(jù)總線口;(2)p0 既可按字節(jié)尋址,又可按位尋址;(3)作通用 i/o 口輸出時:是開漏輸出,應(yīng)外接上拉電阻;(4)作地址/數(shù)據(jù)總線口時,p0 是一真正雙向口,而作通 用 i/o 口時,只是一個準(zhǔn)雙向口。 p1 口特點(1)只能作 i / o 口,沒有地址/數(shù)據(jù)復(fù)用功能12345678

11、91011121314151617181920403938373635343332313029282726252424222180318051 875189c51(2)可按字節(jié)尋址,也可按位尋址(3)是一準(zhǔn)雙向口,輸出驅(qū)動接有上拉電阻,不是開漏輸出。 p2 口特點(1)當(dāng) p2 口作為通用 i / o 時,是一準(zhǔn)雙向口。(2)從 p2 口輸入數(shù)據(jù)時,先向鎖存器寫“1” 。(3)可位尋址,也可按字節(jié)尋址。(4)可輸出地址高 8 位。 p3 口特點當(dāng) p3 口作為通用 i/o 接口時, 第 2 功能輸出線為高電平, 使與非門 3 的輸出取決于口鎖存器的狀態(tài)。 在這種情況下, p3 口仍是 1 個準(zhǔn)

12、雙向口, 它的工作方式、 負載能力均與 p1、 p2 口相同。 當(dāng) p3 口作為第 2 功能使用時, 其鎖存器 q 端必須為高電平, 否則 v1 管導(dǎo)通, 引腳被箝位在低電平, 無法輸入或輸出第 2 功能信號。當(dāng) q 端為高電平時, p3 口的口線狀態(tài)就取決于第 2 功能輸出線的狀態(tài)。并行 i/o 口的使用特性 mcs-51 系列單片機的 4 個并行 i/o 口均由內(nèi)部總線控制,端口的功能復(fù)用會自動識別,不用指令選擇。 p0 是 8 位、漏極開路的雙向 i/o 口,當(dāng)用作片外存儲器或接口擴展時,分時復(fù)用為數(shù)據(jù)總線和低 8 位地址總線,可驅(qū)動 8 個 lsttl 負載。 p1 是 8 位、準(zhǔn)雙向

13、 i/o 口,具有內(nèi)部上拉電阻,驅(qū)動為 4 個 lsttl 負載。 p2 是 8 位、準(zhǔn)雙向 i/o 口,具有內(nèi)部上拉電阻,可驅(qū)動 4 個 lsttl 負載,外部擴展時用作高 8 位地址總線。 p3 是 8 位、準(zhǔn)雙向 i/o 口,具有內(nèi)部上拉電阻,可驅(qū)動 4 個 lsttl 負載。p3 口的所有口線都具有第二功能,實現(xiàn)控制總線的作用。4.2 顯示電路顯示電路圖 4-2 顯示電路原理圖液晶 lcd1602 介紹1602lcd 主要技術(shù)參數(shù):顯示容量:162 個字符芯片工作電壓:4.55.5v工作電流:2.0ma(5.0v)模塊最佳工作電壓:5.0v字符尺寸:2.954.35(wh)mm引腳功能

14、說明1602lcd 采用標(biāo)準(zhǔn)的 14 腳(無背光)或 16 腳(帶背光)接口,各引腳接口說明如表4-1 所示:表 4-1 引腳接口說明表編號符號引腳說明編號符號引腳說明1vss電源地9d2數(shù)據(jù)2vdd電源正極10d3數(shù)據(jù)3vl液晶顯示偏壓11d4數(shù)據(jù)4rs數(shù)據(jù)/命令選擇12d5數(shù)據(jù)5r/w讀/寫選擇13d6數(shù)據(jù)6e使能信號14d7數(shù)據(jù)7d0數(shù)據(jù)15bla背光源正極8d1數(shù)據(jù)16blk第 1 腳:vss 為地電源。第 2 腳:vdd 接 5v 正電源。第 3 腳:vl 為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個 10k 的電位

15、器調(diào)整對比度。第 4 腳:rs 為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第 5 腳:r/w 為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當(dāng) rs 和r/w 共同為低電平時可以寫入指令或者顯示地址,當(dāng) rs 為低電平 r/w 為高電平時可以讀忙信號,當(dāng) rs 為高電平 r/w 為低電平時可以寫入數(shù)據(jù)。第 6 腳:e 端為使能端,當(dāng) e 端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第 714 腳:d0d7 為 8 位雙向數(shù)據(jù)線。第 15 腳:背光源正極。第 16 腳:背光源負極。1602 液晶模塊內(nèi)部的控制器共有 11 條控制指令,如表 4-2 所示:表 4-2 控

16、制命令表序號指令rsr/wd7d6d5d4d3d2d1d01清顯示00000000012光標(biāo)返回000000001*3置輸入模式00000001i/ds4顯示開/關(guān)控制0000001dcb5光標(biāo)或字符移位000001s/cr/l*6置功能00001dlnf*7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標(biāo)志或地址01bf計數(shù)器地址10寫數(shù)到 cgram 或ddram)10要寫的數(shù)據(jù)內(nèi)容11cgram 或 ddram讀數(shù)11讀出的數(shù)據(jù)內(nèi)容1602 液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實現(xiàn)的。 (說明:1為高電平、0 為低電平)指

17、令 1:清顯示,指令碼 01h,光標(biāo)復(fù)位到地址 00h 位置。指令 2:光標(biāo)復(fù)位,光標(biāo)返回到地址 00h。指令 3:光標(biāo)和顯示模式設(shè)置 i/d:光標(biāo)移動方向,高電平右移,低電平左移 s:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。指令 4:顯示開關(guān)控制。 d:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 c:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo) b:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。指令 5:光標(biāo)或顯示移位 s/c:高電平時移動顯示的文字,低電平時移動光標(biāo)。指令 6:功能設(shè)置命令 dl:高電平時為 4 位總線,低電平時為 8 位總線 n:

18、低電平時為單行顯示,高電平時雙行顯示 f: 低電平時顯示 5x7 的點陣字符,高電平時顯示5x10 的點陣字符。指令 7:字符發(fā)生器 ram 地址設(shè)置。指令 8:ddram 地址設(shè)置。指令 9:讀忙信號和光標(biāo)地址 bf:為忙標(biāo)志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令 10:寫數(shù)據(jù)。指令 11:讀數(shù)據(jù)。4.3 按鍵電路按鍵電路圖 4-3 按鍵電路原理圖按鍵按照結(jié)構(gòu)原理可分為兩類,一類是觸點式開關(guān)按鍵,如機械式開關(guān)、導(dǎo)電橡膠式開關(guān)等;另一類是無觸點式開關(guān)按鍵,如電氣式按鍵,磁感應(yīng)按鍵等。前者造價低,后者壽命長。目前,微機系統(tǒng)中最常見的是觸點式開關(guān)按鍵。 按鍵按照

19、接口原理可分為編碼鍵盤與非編碼鍵盤兩類。這兩類鍵盤的主要區(qū)別是識別鍵符及給出相應(yīng)鍵碼的方法。編碼鍵盤主要是用硬件來實現(xiàn)對鍵的識別,非編碼鍵盤主要是由軟件來實現(xiàn)鍵盤的定義與識別。全編碼鍵盤能夠由硬件邏輯自動提供與鍵對應(yīng)的編碼,此外,一般還具有去抖動和多鍵、竄鍵保護電路。這種鍵盤使用方便,但需要較多的硬件,價格較貴,一般的單片機應(yīng)用系統(tǒng)較少采用。非編碼鍵盤只簡單地提供行和列的矩陣,其它工作均由軟件完成。由于其經(jīng)濟實用,較多地應(yīng)用于單片機系統(tǒng)中。按鍵結(jié)構(gòu)與特點: 微機鍵盤通常使用機械觸點式按鍵開關(guān),其主要功能是把機械上的通斷轉(zhuǎn)換成為電氣上的邏輯關(guān)系。也就是說,它能提供標(biāo)準(zhǔn)的 ttl 邏輯電平,以便與

20、通用數(shù)字系統(tǒng)的邏輯電平相容。4.4 時鐘芯片電路時鐘芯片電路圖 4-4 時鐘芯片電路原理圖ds1302 介紹ds1302 的引腳排列,其中 vcc1 為后備電源, vcc2 為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。 ds1302 由 vcc1 或 vcc2 兩者中的較大者供電。當(dāng) vcc2 大于 vcc1+0.2v 時,vcc2 給 ds1302 供電。當(dāng) vcc2 小于 vcc1 時,ds1302由 vcc1 供電。x1 和 x2 是振蕩源,外接 32.768khz 晶振。rst 是復(fù)位/片選線,通過把 rst 輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。 rst 輸入有兩種功能:

21、首先,rst 接通控制邏輯,允許地址 /命令序列送入移位寄存器;其次, rst 提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)rst 為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對 ds1302 進行操作。如果在傳送過程中 rst 置為低電平,則會終止此次數(shù)據(jù)傳送,i/o 引腳變?yōu)楦咦钁B(tài)。上電運行時,在vcc2.0v 之前,rst 必須保持低電平。只有在 sclk 為低電平時,才能將 rst 置為高電平。 i/o 為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細說明。 sclk 為時鐘輸入端。 下圖為 ds1302 的引腳功能圖: 圖 4-5 ds1302 引腳圖5 軟件總的設(shè)計軟件總的設(shè)計圖 5-1 主程序流

22、程圖開開始始初初始始化化校校時時狀狀態(tài)態(tài)?讀讀ds1302數(shù)數(shù)據(jù)據(jù)格格式式變變換換顯顯示示按按鍵鍵掃掃描描處處理理整整點點查查詢詢ny6 軟件分模塊設(shè)計軟件分模塊設(shè)計6.1 顯示程序流程圖顯示程序流程圖圖 6-1 顯示程序流程圖6.2 鬧鐘比較程序流程圖鬧鐘比較程序流程圖圖 6-2 鬧鐘比較程序流程圖7 調(diào)試結(jié)果記錄調(diào)試結(jié)果記錄用 medwin 語言進行編程,采用 proteus 軟件進行電路圖的仿真,把程序燒寫進去進行調(diào)試,出現(xiàn)如下的結(jié)果,可以顯示年月日時分秒以及日期。圖 7-1 調(diào)試結(jié)果記錄圖8 總結(jié)總結(jié)這次仿真實現(xiàn)了電子鐘設(shè)計的任務(wù),并在要求的功能上增加了年月日以及星期的功能。對所學(xué)的知

23、識進行了鞏固,練習(xí)了匯編軟件、proteus 軟件和 protel 繪圖軟件。結(jié)論與謝辭結(jié)論與謝辭感謝學(xué)院在我們即將踏入社會時,給我們這次理論聯(lián)系實際的機會,通過這次畢業(yè)設(shè)計,我們更好地將已經(jīng)學(xué)過的知識進行鞏固,也很感謝余紅娟老師對我的論文的不厭其煩的細心指點。通過這段時間對專業(yè)基礎(chǔ)理論的學(xué)習(xí)與鞏固,通過查閱一些有關(guān)專業(yè)資料的學(xué)習(xí),使自己對專業(yè)知識有了進一步的理解。雖然在此過程中感覺有點不是太順利,但從畢業(yè)設(shè)計過程中,我的確學(xué)到了很多東西,在鞏固專業(yè)知識的同時也讓我學(xué)到了堅持和努力,讓我受益匪淺。畢業(yè)設(shè)計是我們在學(xué)校的最后一個環(huán)節(jié),也是最后一次考驗我們在校學(xué)習(xí)的理論知道是否扎實,從中提高我們的

24、設(shè)計、掌握技術(shù)知識的能力。為我們踏上社會奠定扎實的基礎(chǔ)。時光如梭,大學(xué)三年即將結(jié)束。感謝母校對我大學(xué)三年來的照顧,也很感謝老師們的精心教導(dǎo)。在以后的日子里我還會利用現(xiàn)在已經(jīng)學(xué)習(xí)的內(nèi)容更深入地學(xué)習(xí),也會用好現(xiàn)在的所學(xué)在以后的工作中發(fā)揮自己的能力,時刻銘記老師的教導(dǎo),并在實踐中不斷提高完善自己。參考文獻參考文獻1 沈紅衛(wèi),基于單片機的智能系統(tǒng)設(shè)計與實現(xiàn),電子工業(yè)出版社,2005。2 樓然苗,51 系列單片機設(shè)計實例. 北京航空航天大學(xué)出版社,2003。3 董傳岱、于云華,數(shù)字電子技術(shù). 石油大學(xué)出版社,2001。4 何立民,單片機應(yīng)用系統(tǒng)設(shè)計? 北京航空航天大學(xué)出版社,1995。5 貢春梅,日歷電

25、子鐘設(shè)計 西安航空技術(shù)高等??茖W(xué)校學(xué)報 2004。6 胥筱門,單片機系統(tǒng)的試驗及應(yīng)用? 電子制作 1999(6)20-30。7 譚浩強,c 程序設(shè)計(第二版). 清華大學(xué)出版社. 1999 年 12 月第 2 版附件附件 1程序清單程序清單rs bitp1.1rwbitp3.2en bitp3.3s1 bitp1.3s2 bitp1.4s3 bitp1.5s4 bitp1.6led1bitp3.4b1 bitp1.0rstbitp3.5sclkbitp3.6io bitp3.7org0000hljmpmainorg000bhljmptimer0org001bhljmptimer1org0030

26、hmain:lcall initlcall ds1302_init1loop: lcall keyscanlcall s4canscjner2,#0,loop1sjmplooploop1:lcall zengjiansjmplooptimer1:movth1,#3chmovtl1,#0b0hincr5cjner5,#4,zzclrtr1movr5,#0lcall ds1302_read_timelcall display_timelcall zhengdmova,36hcjnea,#0,zz2lcall naozhongzz2:mova,36hcjnea,#1,zz1cplled1mova,4

27、3hcjnea,#1,zz3mov43h,#2mov30h,#0cehlcall writecommov30h,#20hlcall writedatesjmpzz1zz3:mova,43hcjnea,#2,zz1mov43h,#1mov30h,#0cehlcall writecommov30h,#01hlcall writedatezz1:setbtr1zz: retitimer0:movth0,#3chmovtl0,#0b0hmova,36hcjnea,#0,ti1inc41hmova,41hcjnea,#20,ti0mov41h,#0setbb1clrtr0sjmpti0ti1:inc46

28、hmova,46hcjnea,#20,ti0mov46h,#0inc47hmova,47hcjnea,#60,ti0mov47h,#0inc48hmova,48hcjnea,#5,ti0mov48h,#0clrtr0setbb1setbled1mov36h,#0mov43h,#0clrtr1mov30h,#0cehlcall writecommov30h,#01hlcall writedatesetbtr1ti0:retiinit:mov33h,#22hmov34h,#17hmov35h,#15hmov39h,#00hmov3ah,#00hmov41h,#0mov42h,#0mov43h,#0

29、mov46h,#0mov47h,#0mov48h,#0mov36h,#0mov37h,#0movr1,#35hlcall liutoshimov35h,amovr1,#34hlcall liutoshimov34h,amovr1,#33hlcall liutoshimov33h,amovr2,#0movr5,#0movr6,#0movtmod,#11hmovth1,#3chmovtl1,#0b0hmovth0,#3chmovtl0,#0b0hsetbeasetbet1setbet0setbtr1clrrstclrsclkmov30h,#38hlcall writecommov30h,#0chl

30、call writecommov30h,#06hlcall writecommov30h,#01hlcall writecommov30h,#82hlcall writecommov30h,#32hlcall writedatemov30h,#30hlcall writedatemov30h,#86hlcall writecommov30h,#2fhlcall writedatemov30h,#89hlcall writecommov30h,#2fhlcall writedatemov30h,#0c6hlcall writecommov30h,#3ahlcall writedatemov30h

31、,#0c9hlcall writecommov30h,#3ahlcall writedatemovdptr,#tab2mov38h,#0mov30h,#40hlcall writecommova,38hlll:movc a,a+dptrmov30h,alcall writedateinc38hmova,38hcjnea,#24,lllmov30h,#0cdhlcall writecommov30h,#02hlcall writedateretreadbf:movp2,#0ffhclrenclrrssetbrwsetbennopmova,p2clrenjb acc.7,readbfretwrit

32、ecom:lcallreadbfclrrsclrrwclrenmovp2,30hnopsetbennopclrennopretwritedate:lcallreadbfsetbrsclrrwclrenmovp2,30hnopsetbennopclrennopretds1302_write:clrrstclrsclksetbrstmova,50hmovr7,#8write_add:rrcamovio,csetbsclkclrsclkdjnzr7,write_addmova,40hmovr7,#8write_date:rrcamovio,csetbsclkclrsclkdjnzr7,write_d

33、ateclrrstretds1302_read:clrrstclrsclksetbrstmova,50hmovr7,#8write_add1:rrcamovio,csetbsclkclrsclkdjnzr7,write_add1movr7,#8read_date:nopmovc,iorrcasetbsclkclrsclkdjnzr7,read_dateclrrstretds1302_init1:mov50h,#81hlcall ds1302_readrlcajnctfmov50h,#8ehmov40h,#00hlcall ds1302_writemov50h,#7ehmovr3,#0movdp

34、tr,#tabll1:mova,#2adda,50hmov50h,amova,r3movc a,a+dptrmov40h,alcall ds1302_writeincr3cjner3,#7,ll1mov50h,#8ehmov40h,#80hlcall ds1302_writetf: retds1302_read_time:mov50h,#7fhmovr3,#0movr0,#60hll2:mova,#2adda,50hmov50h,alcall ds1302_readmov45h,aanla,#0f0hrr arr arr arr amovb,#10mulabmov44h,amova,45han

35、la,#0fhadda,44hmovr0,aincr0incr3cjner3,#7,ll2retdisplay_time:movdptr,#tab1movr3,#0movr0,#60hll3:mova,r3movc a,a+dptrmov30h,alcall writecommova,r0movb,#10divabadda,#30hmov30h,alcall writedatemova,badda,#30hmov30h,alcall writedateincr3incr0cjner3,#5,ll3mov30h,#8dhlcall writecommovr0,#65hlcall weekdisp

36、laychangemov30h,#84hlcall writecommova,66hmovb,#10divabadda,#30hmov30h,alcall writedatemova,badda,#30hmov30h,alcall writedateretkeyscan:movp1,#0ffhjb s1,ext1lcall delaymovp1,#0ffhjb s1,ext1aa:movp1,#0ffhjnbs1,aalcall xidiaomova,36hjnzw2clrtr1incr2sjmpext1w2:setbb1setbled1mov36h,#0mov43h,#0clrtr1mov3

37、0h,#0cehlcall writecommov30h,#01hlcall writedatesetbtr1ext1: retzengjian:cjner2,#1,ddlcall secondplusljmpext2dd:cjner2,#2,fflcall minplusljmpext2ff: cjner2,#3,hhlcall hourplusljmpext2hh:cjner2,#4,jjlcall weekplusljmpext2jj: cjner2,#5,lllcall dayplusljmpext2ll: cjner2,#6,nnlcall monthplusljmpext2nn:c

38、jner2,#7,pplcall yearplusljmpext2pp: cjner2,#8,ext1setbtr1clrf0mov30h,#0chlcall writecommovr2,#0ext2: retsecondplus:mov30h,#0cahlcall writecommov30h,#0fhlcall writecomlcall s2canscjner6,#1,oo1movr6,#0jb f0,a1inc60hmovr4,60hcjner4,#60,ccmov60h,#0ljmpcca1: inc35hmovr4,35hcjner4,#60,cc1mov35h,#0ljmpcc1

39、oo1:cjner6,#2,lsmovr6,#0jb f0,a11dec60hmovr4,60hcjner4,#0ffh,ccmov60h,#59ljmpcca11:dec35hmovr4,35hcjner4,#0ffh,cc1mov35h,#59cc1:mov30h,#0cahlcall writecommova,35hmovb,#10divabadda,#30hmov30h,alcall writedatemova,badda,#30hmov30h,alcall writedatemov30h,#0cahlcall writecomljmplscc:mov30h,#0cahlcall wr

40、itecommovr0,#60hlcall displaychangemov30h,#0cahlcall writecommova,60hlcall shitoliumov51h,amov50h,#8ehmov40h,#00hlcall ds1302_writemov50h,#80hmov40h,51hlcall ds1302_writemov50h,#8ehmov40h,#80hlcall ds1302_writels: retminplus:mov30h,#0c7hlcall writecomlcall s2canscjner6,#1,pp1movr6,#0jb f0,e1inc61hmo

41、vr4,61hcjner4,#60,eemov61h,#0ljmpeee1: inc34hmovr4,34hcjner4,#60,ee1mov34h,#0ljmpee1pp1:cjner6,#2,lmimovr6,#0jb f0,e11dec61hmovr4,61hcjner4,#0ffh,eemov61h,#59ljmpeee11:dec34hmovr4,34hcjner4,#0ffh,ee1mov34h,#59ee1:mov30h,#0c7hlcall writecommova,34hmovb,#10divabadda,#30hmov30h,alcall writedatemova,bad

42、da,#30hmov30h,alcall writedatemov30h,#0c7hlcall writecomljmplmiee: mov30h,#0c7hlcall writecommovr0,#61hlcall displaychangemov30h,#0c7hlcall writecommova,61hlcall shitoliumov52h,amov50h,#8ehmov40h,#00hlcall ds1302_writemov50h,#82hmov40h,52hlcall ds1302_writemov50h,#8ehmov40h,#80hlcall ds1302_writelmi

43、:rethourplus:mov30h,#0c4hlcall writecomlcall s2canscjner6,#1,qqmovr6,#0jb f0,g1inc62hmovr4,62hcjner4,#24,ggmov62h,#0ljmpggg1: inc33hmovr4,33hcjner4,#24,gg1mov33h,#0ljmpgg1qq:cjner6,#2,lhmovr6,#0jb f0,g11dec62hmovr4,62hcjner4,#0ffh,ggmov62h,#23ljmpggg11:dec33hmovr4,33hcjner4,#0ffh,gg1mov33h,#23gg1:mo

44、v30h,#0c4hlcall writecommova,33hmovb,#10divabadda,#30hmov30h,alcall writedatemova,badda,#30hmov30h,alcall writedatemov30h,#0c4hlcall writecomljmplhgg:mov30h,#0c4hlcall writecommovr0,#62hlcall displaychangemov30h,#0c4hlcall writecommova,62hlcall shitoliumov53h,amov50h,#8ehmov40h,#00hlcall ds1302_writ

45、emov50h,#84hmov40h,53hlcall ds1302_writemov50h,#8ehmov40h,#80hlcall ds1302_writelh:retweekplus:mov30h,#8dhlcall writecomlcall s2canscjner6,#1,rr1movr6,#0inc65hmovr4,65hcjner4,#8,iimov65h,#1ljmpiirr1:cjner6,#2,lwmovr6,#0dec65hmovr4,65hcjner4,#0,iimov65h,#7ii:mov30h,#8dhlcall writecommovr0,#65hlcall d

46、isplaychangelcall weekdisplaychangemov30h,#8dhlcall writecommova,65hlcall shitoliumov56h,amov50h,#8ehmov40h,#00hlcall ds1302_writemov50h,#8ahmov40h,56hlcall ds1302_writemov50h,#8ehmov40h,#80hlcall ds1302_writelw:retdayplus:mov30h,#8ahlcall writecomlcall s2canscjner6,#1,ssmovr6,#0inc63hmovr4,63hcjner

47、4,#32,kkmov63h,#1ljmpkkss: cjner6,#2,ldmovr6,#0dec63hmovr4,63hcjner4,#0,kkmov63h,#31kk:mov30h,#8ahlcall writecommovr0,#63hlcall displaychangemov30h,#8ahlcall writecommova,63hlcall shitoliumov54h,amov50h,#8ehmov40h,#00hlcall ds1302_writemov50h,#86hmov40h,54hlcall ds1302_writemov50h,#8ehmov40h,#80hlca

48、ll ds1302_writeld:retmonthplus:mov30h,#87hlcall writecomlcall s2canscjner6,#1,ttmovr6,#0inc64hmovr4,64hcjner4,#13,mmmov64h,#1ljmpmmtt: cjner6,#2,lmmovr6,#0dec64hmovr4,64hcjner4,#0,mmmov64h,#12mm:mov30h,#87hlcall writecommovr0,#64hlcall displaychangemov30h,#87hlcall writecommova,64hlcall shitoliumov5

49、5h,amov50h,#8ehmov40h,#00hlcall ds1302_writemov50h,#88hmov40h,55hlcall ds1302_writemov50h,#8ehmov40h,#80hlcall ds1302_writelm:retyearplus:mov30h,#84hlcall writecomlcall s2canscjner6,#1,uumovr6,#0inc66hmovr4,66hcjner4,#100,oomov66h,#0ljmpoouu:cjner6,#2,lymovr6,#0dec66hmovr4,66hcjner4,#0ffh,oomov66h,#

50、99oo:mov30h,#84hlcall writecommovr0,#66hlcall displaychangemov30h,#84hlcall writecommova,66hlcall shitoliumov57h,amov50h,#8ehmov40h,#00hlcall ds1302_writemov50h,#8chmov40h,57hlcall ds1302_writemov50h,#8ehmov40h,#80hlcall ds1302_writely:retshitoliu:movb,#10divabmov44h,brl arl arl arl aorla,44hretliut

51、oshi:mova,r1anla,#0f0hrr arr arr arr amovb,#10mulabmov44h,amova,r1anla,#0fhadda,44hrets2cans:movp1,#0ffhjb s2,wwlcall delaymovp1,#0ffhjb s2,wwbb:movp1,#0ffhjnbs2,bblcall xidiaocjner6,#0,ext3incr6ljmpext3ww:movp1,#0ffhjb s3,ext3lcall delaymovp1,#0ffhjb s3,ext3yy:movp1,#0ffhjnbs3,yylcall xidiaocjner6,

52、#0,ext3incr6incr6ext3: retdisplaychange:mova,r0movb,#10divabadda,#30hmov30h,alcall writedatemova,badda,#30hmov30h,alcall writedateretweekdisplaychange:movdptr,#tab3mov58h,#0mova,r0cjnea,#1,week2mova,58hxx1:movc a,a+dptrmov30h,alcall writedateinc58hmova,58hcjnea,#3,xx1ljmpweekendweek2:cjnea,#2,week3m

53、ov58h,#3mova,58hxx2:movc a,a+dptrmov30h,alcall writedateinc58hmova,58hcjnea,#6,xx2ljmpweekendweek3:cjnea,#3,week4mov58h,#6mova,58hxx3:movc a,a+dptrmov30h,alcall writedateinc58hmova,58hcjnea,#9,xx3ljmpweekendweek4:cjnea,#4,week5mov58h,#9mova,58hxx4:movc a,a+dptrmov30h,alcall writedateinc58hmova,58hcjnea,#12,xx4ljmpweekendweek5:cjnea,#5,week6mov58h,#12mova,58hxx5:movc a,a+dptrmov30h,alcall writedateinc58hmova,58hcjnea,#15,xx5ljmpweekendweek6:cjnea,#6,week7mov58h,#15mova,58hxx6:mov

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論