畢業(yè)設(shè)計(jì)制作單片機(jī)AT89S52的萬年歷_第1頁
畢業(yè)設(shè)計(jì)制作單片機(jī)AT89S52的萬年歷_第2頁
畢業(yè)設(shè)計(jì)制作單片機(jī)AT89S52的萬年歷_第3頁
畢業(yè)設(shè)計(jì)制作單片機(jī)AT89S52的萬年歷_第4頁
畢業(yè)設(shè)計(jì)制作單片機(jī)AT89S52的萬年歷_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、制作單片機(jī)at89s52的萬年歷摘要:電子萬年歷是一種應(yīng)用非常廣泛的日常計(jì)時(shí)工具,本設(shè)計(jì)利用美國(guó)dallas公司推出的具有涓細(xì)電流充電的低功耗實(shí)時(shí)時(shí)鐘電路ds1320,研制了一種多功能電子萬年歷,主要功能包括:電子萬年歷要求能顯示的陽歷/陰歷、年、月、日、星期、小時(shí)、分、秒,除此之外還有顯示潤(rùn)年,記憶時(shí)間。ds1302可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),還具有潤(rùn)年補(bǔ)償?shù)墓δ?,而且ds1320的使用壽命長(zhǎng),誤差小。對(duì)于數(shù)字電子萬年歷采用它,具有較準(zhǔn)的計(jì)時(shí)。關(guān)鍵詞:at89s52 ds1302 74ls164 萬年歷 the production of the calendar with

2、the single-chip at89s52 abstract:electronic calendar application is a kind of tool ,which is widely used in our daily life.the design using the united states with dallas small trickle charge current of the low-power real-time clock circuit ds1320, developed a multi-function electronic calendar.the m

3、ain features include e-calendar requirements which are shown in the solar calendar / lunar calendar, year, month, day, weeks, hours, minutes and seconds, in addition to indicate leap year, the memory of the time. ds1302 can remember year, month, day, weekdays, hours, minutes, seconds for time,which

4、also has the function of a leap year compensation, and long life of the ds1320, the error small. the use of digital electronic calendar for it has a quasi-time.keywords: at89s52 ds1302 74ls164 calendar目 錄第一章 緒論.31.1 課題背景31.2 電子萬年歷的目的和意義3第二章 系統(tǒng)硬件電路設(shè)計(jì).42.1 硬件設(shè)計(jì)框圖.42.2 at89s52原理.4 2.3 74ls164電路原理.52.4

5、ds1302電路原理52.5 電源原理.72.6 數(shù)碼管原理.8第三章 系統(tǒng)軟件實(shí)現(xiàn).93.1顯示及調(diào)整時(shí)間子程序流程.93.2調(diào)整時(shí)間子程序流程.93.3顯示閏年子程序流程.103.4顯示星期的子程序流程.113.5陽歷日期推算陰歷日期流程圖.11總結(jié) 12致謝.13參考文獻(xiàn).14附錄1.元件清單.15附錄2.電路原理圖.16附錄3.程序.17第一章 緒論1.1課題背景在生活中,我們經(jīng)常能看到各種各樣的制作精美的萬年歷,萬年歷大有取代常規(guī)鐘表的趨勢(shì).隨著人們生活水平的提高,智能產(chǎn)品越來越受到人們的歡迎.而單片機(jī),傳感器各種集成電路起到關(guān)鍵作用.希望通過本設(shè)計(jì)能夠?qū)ξ磥淼内厔?shì)有所把握,從而適應(yīng)

6、社會(huì)需要. 1.2 電子萬年歷的目的和意義電子萬年歷是一種應(yīng)用非常廣泛的日常計(jì)時(shí)工具,液晶顯示的萬年歷已經(jīng)越來越普及,特別是適合在家庭居室、辦公室、大廳、會(huì)議室和廣場(chǎng)使用。led顯示的日歷鐘顯示清晰直觀、走時(shí)準(zhǔn)確,并且還可以擴(kuò)展出多種功能,本設(shè)計(jì)利用數(shù)量較少的芯片研制了一種多功能電子萬年歷,主要功能包括:電子萬年歷要求能顯示陽歷/陰歷、年、月、日、星期、小時(shí)、分、秒,除此之外還有顯示潤(rùn)年,記憶時(shí)間。隨著歷史的發(fā)展,從古代觀太陽到滴水計(jì)時(shí),從擺鐘到現(xiàn)代電子鐘表,人類不斷的研究,不斷的進(jìn)步。美國(guó)dallas公司推出的具有涓細(xì)電流充電能的低功耗實(shí)時(shí)時(shí)鐘電路ds1320。它可以對(duì)年、月、日、周日、時(shí)、

7、分、秒進(jìn)行計(jì)時(shí),還具有潤(rùn)年補(bǔ)償?shù)亩喾N功能,而且ds1320的使用壽命長(zhǎng),誤差小。對(duì)于數(shù)字電子萬年歷采用它具有較準(zhǔn)的計(jì)時(shí)功能。第二章 系統(tǒng)硬件電路設(shè)計(jì)2.1硬件設(shè)計(jì)框圖at89s52led顯示ds1302按鍵圖.2.2 at89s52at89s52 是一種低功耗、高性能cmos8位微控制器,具有8k在系統(tǒng)可編程flash 存儲(chǔ)器。使用atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80c51產(chǎn)品指令和引腳完全兼容。片上flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位cpu 和在系統(tǒng)可編程flash,使得at89s52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效

8、的解決方案。at89s52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)flash,256字節(jié)ram,32 位i/o 口線,看門狗定時(shí)器,2個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,at89s52可降至0hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,cpu 停止工作,允許ram、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,ram內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。 圖.at89s52引腳圖2. 74ls164電路原理74ls164顯示模塊是由74ls164移位寄存器和數(shù)碼管構(gòu)成它為串行輸入并

9、行輸出的移位寄存器,可以作為靜態(tài)顯示器接口,接在89c51的串行口上用于數(shù)碼的顯示.如圖所示:clear (9腳)高電平有效,低電平時(shí)使所有輸出(qaqh)為低電平 clock(8腳)上升延輸出移位,其余狀態(tài)保持 a(1腳)b(2腳)輸入:邏輯與關(guān)系,即全高為高,見低為低。圖.74ls164引腳圖2. ds1302工作原理首先介紹ds1302的結(jié)構(gòu)及工作原理:ds1302 是美國(guó)dallas公司推出的一種高性能、低功耗、帶ram的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5v5.5v。采用三線接口與cpu進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多

10、個(gè)字節(jié)的時(shí)鐘信號(hào)或ram數(shù)據(jù)。ds1302內(nèi)部有一個(gè)318的用于臨時(shí)性存放數(shù)據(jù)的ram寄存器。ds1302是ds1202的升級(jí)產(chǎn)品,與ds1202兼容,但增加了主電源/后背電源雙電源引腳,同時(shí)提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力。 其次介紹引腳功能及結(jié)構(gòu):圖3.22示出ds1302的引腳排列,其中vcc1為后備電源,vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。ds1302由vcc1或vcc2兩者中的較大者供電。當(dāng)vcc2大于vcc10.2v時(shí),vcc2給ds1302供電。當(dāng)vcc2小于vcc1時(shí),ds1302由vcc1供電。x1和x2是振蕩源,外接32.768khz晶振。

11、rst是復(fù)位/片選線,通過把rst輸入驅(qū)動(dòng)置高電平來啟動(dòng)所有的數(shù)據(jù)傳送。rst輸入有兩種功能:首先,rst接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,rst提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)rst為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)ds1302進(jìn)行操作。如果在傳送過程中rst置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,i/o引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在vcc2.5v之前,rst必須保持低電平。只有在sclk為低電平時(shí),才能將rst置為高電平。i/o為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細(xì)說明。sclk始終是輸入端。圖2.4 ds1302引腳圖慢速充電時(shí)鐘芯片包括實(shí)時(shí)時(shí)鐘/日歷和3

12、1字節(jié)的靜態(tài)ram。它經(jīng)過一個(gè)簡(jiǎn)單的串行接口與微 處理器通信。實(shí)時(shí)時(shí)鐘/日歷提供秒、分、時(shí)、日、周、月和年等信息。對(duì)于小于31天的月,月末的日期自動(dòng)進(jìn)行調(diào)整,還包括了閏年校正的功能。時(shí)鐘的運(yùn)行可以采用24小時(shí)或帶am(上午)/pm(下午)的12小時(shí)格式。使用同步串行通信,簡(jiǎn)化了ds1302與微處理器的通信。與時(shí)鐘/ram通信僅需三根線:(1)rst (復(fù)位)、(2)i/o(數(shù)據(jù)線)、和(3)sclk(串行時(shí)鐘)。數(shù)據(jù)可以以每次一個(gè)字節(jié)或多達(dá)31字節(jié)的多字節(jié)形式傳送至?xí)r鐘/ram或從其中送出。ds1302設(shè)計(jì)成能在非常低的功耗下工作,消耗小于1微瓦的功率便能保存數(shù)據(jù)和時(shí)鐘信息。ds1302是ds

13、1202的升級(jí)產(chǎn)品,除了ds1202基本的慢速充電功能外,ds1302具有的其它特點(diǎn)包括:用于主電源和備份電源的雙電源引腳,可編程的vcc1慢速充電器以及7個(gè)附加字節(jié)的高速暫存存儲(chǔ)器(scratchpad memory)。2.電源原理穩(wěn)壓電源由電源變壓器、整流電路、濾波電路和穩(wěn)壓電路組成,如圖圖2.51交直流轉(zhuǎn)換圖圖2.52電源原理圖vcc1在單電源與電池供電的系統(tǒng)中提供低電源并提供低功率的電池備份。vcc2在雙電源系統(tǒng)中提供主電源,在這種運(yùn)用方式中vcc1連接到備份電源,以便在沒有主電源的情況下能保存時(shí)間信息以及數(shù)據(jù)。ds1302由vcc1或vcc2兩者中較大者供電。當(dāng)vcc2大于vcc1+

14、0.2v時(shí),vcc2給ds1302供電。當(dāng)vcc2小于vcc1時(shí),ds1302由vcc1供電。2. 數(shù)碼管原理led數(shù)碼管分共陽極與共陰極兩種,其工作特點(diǎn)是,當(dāng)筆段電極接低電平,公共陽極接高電平時(shí),相應(yīng)筆段可以發(fā)光。共陰極led數(shù)碼管則與之相反,它是將發(fā)光二極管的陰極(負(fù)極)短接后作為公共陰極。當(dāng)驅(qū)動(dòng)信號(hào)為高電平、端接低電平時(shí),才能發(fā)光。led的輸出光譜決定其發(fā)光顏色以及光輻射純度,也反映出半導(dǎo)體材料的特性。常見管芯材料有磷化鎵(gap)、砷化鎵(gaas)、磷砷化鎵(gaasp)、氮化鎵(gan)等,其中氮化鎵可發(fā)藍(lán)光。發(fā)光顏色不僅與管芯材料有關(guān),還與所摻雜質(zhì)有關(guān),因此用同一種管芯材料可以制

15、成發(fā)出紅、橙、黃、綠等不同顏色的數(shù)碼管。其它顏色led數(shù)碼管的光譜曲線形狀與之相似,僅入,值不同。led數(shù)碼管的產(chǎn)品中,以發(fā)紅光、綠光的居多、這兩種顏色也比較醒目。led數(shù)碼管等效于多只具有發(fā)光性能的pn結(jié)。當(dāng)pn結(jié)導(dǎo)通時(shí),依靠少數(shù)載流子的注人及隨后的復(fù)合而輻射發(fā)光,其伏安特性與普通二極管相似。在正向?qū)ㄖ埃螂娏鹘朴诹?,筆段不發(fā)光。當(dāng)電壓超過開啟電壓時(shí),電流就急劇上升,筆段發(fā)光。因此,led數(shù)碼管屬于電流控制型器件,其發(fā)光亮度l(單位是cdm2)與正向電流if有關(guān),用公式表示:l=kif即亮度與正向電流成正比。led的正向電壓u,則與正向電流以及管芯材料有關(guān)。使用led數(shù)碼管時(shí),工作電

16、流一般選10ma左右段,既保證亮度適中,又不會(huì)損壞器件。圖2.61圖2.62第三章 系統(tǒng)軟件實(shí)現(xiàn)ds1302初始化3.1 顯示時(shí)間子程序流程 從ds1302中讀數(shù)據(jù),并放入ram調(diào)用顯示子程序顯示時(shí)間圖.3.調(diào)整時(shí)間子程序流程調(diào)整狀態(tài)年+1月+1日+1時(shí)+1分+1返回年=2000月=1日=1時(shí)=0分=0yyyyy當(dāng)前狀態(tài)年月日時(shí)分年2050月12日31時(shí)23分59nnnnn圖.3.顯示閏年子程序流程編程中公歷閏年的簡(jiǎn)單計(jì)算方法:設(shè)年份 year if (year能被4整除 and 不能被100整除) or year能被400整除 then 該年為閏年 else 該年為平年能被4整除and不能被

17、100整除是閏年是平年能被400整除圖.3.顯示星期的子程序流程x是年份,c是該年從元旦開始到到這一日的天數(shù)s=x-1+(x-1)/4+(x-1)/100+(x-1)/400+cw=s/7的余數(shù)既是星期數(shù) 輸出w圖. 求某年某月某日是星期幾的子功能。(要求編成子程序) 算法:s=(y-1)+(y-1)/4-(y-1)/100+(y-1)/400+c (其中:y為年份;c為某月某日是這一年的第幾天,由求出;s為總天數(shù)?!?”為整除。) n=s%7 (其中:n為星期數(shù);“%”為求余數(shù)) 求某月某日是這一年的第幾天的子功能。(要求編成子程序) 二月份是否為平年(28天)或閏年(29天)的算法: y/

18、400=0y/4=0y/1000 (y為年份;“/”整除) ,則y為以閏年;否則,y為平年。 根據(jù)可求出一年中的日歷。3.陽歷日期推算陰歷日期的方法 m= 公元年數(shù)1977n= m n 4qr q、r、n均為自然數(shù),r4x=14q+10.6(r+1)+年內(nèi)日期序數(shù)-29.5n n=29.5除14q+10.6(r+1)+年內(nèi)日期序數(shù)陰歷日期 = x圖. 總結(jié)通過這次畢業(yè)設(shè)計(jì)制作單片機(jī)at89s52的萬年歷,我學(xué)到了許多知識(shí),還學(xué)到了許多思考問題的方法,受益非淺。提高了分析問題、解決問題的能力。在設(shè)計(jì)過程中,我遇到了很多問題,這是不可避免的,但我并沒有急于尋求問題的答案,而是認(rèn)真分析問題存在的原因

19、,從而著手解決問題,以免以后出現(xiàn)類似的問題。通過本文的學(xué)習(xí),你可以很清楚的了解萬年歷開發(fā)與應(yīng)用,使讀者一目了然。文中只是對(duì)系統(tǒng)硬件電路設(shè)計(jì)、軟件設(shè)計(jì)簡(jiǎn)單闡述。但本文對(duì)具體的電路具體設(shè)計(jì)等沒做說明。本文還簡(jiǎn)單介紹了這個(gè)萬年歷元件清單、電路原理圖、為讀者竟進(jìn)行實(shí)物焊接提供了很好的幫助以及為以后的電路設(shè)計(jì)做好了鋪墊。致謝本文的研究工作是在王老師的精心指導(dǎo)和悉心關(guān)懷下完成的,在我的學(xué)業(yè)和論文的研究工作中無不傾注著老師辛勤的汗水和心血。王老師在科研和工作中嚴(yán)謹(jǐn)治學(xué)勇于創(chuàng)新無私奉獻(xiàn)的精神使我受益菲淺。在此論文完成之際,我向?qū)熤乱陨钌畹木匆饧白钫嬲\(chéng)的謝意。在學(xué)習(xí)和科研期間我還得到了許多老師同學(xué)和同學(xué)的熱情

20、關(guān)心和大力幫助,在此也深表感謝,并向所有關(guān)心和幫助過我的領(lǐng)導(dǎo)老師同學(xué)和朋友表示由衷的謝意。最后衷心感謝在百忙之中評(píng)閱論文和參加答辯的各位老師。參考文獻(xiàn)1 胡漢才.單片機(jī)原理及其接口技術(shù).清華大學(xué)出版社 .20042 丁元杰.單片機(jī)原理與應(yīng)用.機(jī)械工業(yè)出版社. 20053 孫育才.mcs-51系列單片微型計(jì)算機(jī)及其應(yīng)用. 東南大學(xué)出版社. 20044 蔡美勤,張為民,沈新群,張榮娟.mcs51系列單片機(jī)系統(tǒng)及其應(yīng)用.高等教育出版社 .20045王幸之,鐘愛琴,王雷,王閃.stc89系列單片機(jī)原理與接口技術(shù).北京航空航天大學(xué)出版社.2004附錄1.元件清單16part typedesignator

21、footprint74ls164u3dip-1474ls164u2dip-1474ls164u4dip-1489s52u1dip-40capc6rad0.4capc5rad0.4capc4rad0.4capc3rad0.4capacitorc2rb.2/.4con2j1sip2con10j2sip10crystaly2dip2crystaly1dip2component_1c1dip8dpy_7-seg_dpds9dip10dpy_7-seg_dpds11dip10dpy_7-seg_dpds13dip10dpy_7-seg_dpds8dip10dpy_7-seg_dpds3dip10dpy_

22、7-seg_dpds5dip10dpy_7-seg_dpds4dip10dpy_7-seg_dpds1dip10dpy_7-seg_dpds6dip10dpy_7-seg_dpds2dip10dpy_7-seg_dpds15dip10dpy_7-seg_dpds18dip10dpy_7-seg_dpds12dip10dpy_7-seg_dpds14dip10dpy_7-seg_dpds16dip10dpy_7-seg_dpds7dip10dpy_7-seg_dpds17dip10dpy_7-seg_dpds10dip10dpy_7-seg_dpds19dip10ledd1diode0.4pnp

23、q7to-92apnpq8to-92apnpq3to-92apnpq2to-92apnpq1to-92apnpq6to-92apnpq5to-92apnpq4to-92ares2r1axial0.4res2r2axial0.4res2r7axial0.4res2r6axial0.4res2r5axial0.4res2r3axial0.4res2r4axial0.4res2r12axial0.4res2r13axial0.4res2r14axial0.4res2r11axial0.4res2r8axial0.4res2r9axial0.4res2r10axial0.4sw-pbs2axial0.

24、4sw-pbs1axial0.4制作單片機(jī)at89s52的萬年歷附錄2.電路原理圖附錄3程序 31 主程序29sec11 equ 10hsec12 equ 11hmin11 equ 12hmin12 equ 13hhour11 equ 14hhour12 equ 15hday11 equ 16hday12 equ 17hmonth11 equ 18hmonth12 equ 19hyear11 equ 1ahyear12 equ 1bhyear13 equ 1chyear14 equ 1dhtemp equ 1ehn_day equ 1fhshu2 equ 20hadress2 equ 21ha

25、dress1 equ 23hshu1 equ 24hshu3 equ 25htemp11 equ 26htemp12 equ 27hn_day11 equ 28hn_day12 equ 29hn_month11 equ 2ahn_month12 equ 2bhn_month equ 2chhuan equ 2dhsclk bit 90hio bit 91hrst bit 92hsec data 60hmin data 61hhour data 62hdate data 63hmonth data 64hday data 65hyear1 data 66hyear2 data 67hint_mi

26、n equ 68hint_hour equ 69hint_date equ 6ahint_month equ 6bhint_year1 equ 6chint_day equ 6dhstart_year equ 01; 定義查詢表起始年份,01-199 表示1901-2099 年;以下三單元為需轉(zhuǎn)換的公歷日期是子程序的入口數(shù)據(jù)time_year data 66htime_month data 64h ;bit7 表示世紀(jì),為1 表示19 世紀(jì),為0 表示20 世紀(jì)time_date data 63h;以下三單元存轉(zhuǎn)換后農(nóng)歷日期與入口單元重疊,如要保留入口信息,請(qǐng)重定義出口地址convert_ye

27、ar data 33hconvert_month data 34h ;bit7 為1 表示閏月convert_date data 35htemp_byte1 data 37htemp_byte2 data 38htemp_byte3 data 39htemp_byte4 data 3ahtemp_byte5 data 3bhtime_week data 65h ;星期天出口3.2 公歷轉(zhuǎn)農(nóng)歷子程序org 0000hmov p0,#0ffhmov 6eh,#00hmov int_min,#59hmov int_hour,#23hmov int_date,#12hmov int_month,#11

28、hmov int_year1,#04hmov int_day,#07hmov temp,#00hmov year2,#20hmov sp,#74h3.3 ds1302讀寫程序lcall initstart: mov 70h,hourmov 71h,minmov day,time_weekmov r0,#secmov r7,#7setb psw.5lcall rwrtc lcall key lcall convert lcall getweek lcall trun ;lcall dingshi lcall disp1 lcall disp3 ljmp startrwrtc: mov b,#10

29、000001b jb psw.5,rwrtc1 mov b,#10000000brwrtc1:clr sclk nop setb rst mov r6,#8 mov a,brwrtc2:clr sclk rrc a mov io,c nop setb sclk djnz r6,rwrtc2 mov r6,#8 jnb psw.5,rwrtc4rwrtc3:clr sclk nop mov c,io rrc a setb sclk djnz r6,rwrtc3 mov r0,a sjmp rwrtc6rwrtc4:mov a,r0rwrtc5:clr sclk rrc a mov io,c no

30、p setb sclk djnz r6,rwrtc5rwrtc6:inc r0 mov a,b add a,#02h mov b,a clr rst nop clr sclk djnz r7,rwrtc1 retwrrtc: clr sclk nop setb rst nop nop mov r7,#2wrrtc1: mov r6,#8 mov a,r0 clr cwrrtc2: clr sclk rrc a mov io,c nop setb sclk djnz r6,wrrtc2 inc r0 djnz r7,wrrtc1 clr rst nop clr sclk ret init: cl

31、r sclk clr rst mov sec,#10001110b mov min,#00000000b mov r0,#sec lcall wrrtc mov sec,#10010000b mov min,#10100101b mov r0,#sec lcall wrrtc mov r0,#sec mov sec,#10000000b mov min,#00000000b lcall writer_f lcall writer_sh lcall writer_date lcall writer_yue lcall writer_nian retwriter_f:lcall wrrtc mov

32、 r0,#sec mov sec,#82h mov min,int_min lcall wrrtc retwriter_sh:mov sec,#10000100b mov min,int_hour mov r0,#sec lcall wrrtc retwriter_yue:mov sec,#88h mov min,int_month mov r0,#sec lcall wrrtc retwriter_nian:mov sec,#8ch mov min,int_year1 mov r0,#sec lcall wrrtc retwriter_date:mov sec,#86h mov min,in

33、t_date mov r0,#sec lcall wrrtc ret3.4 bcd轉(zhuǎn)換trun: mov a,sec mov b,#10h div ab mov sec12,a mov sec11,b mov a,min mov b,#10h div ab mov min12,a mov min11,b mov a,hour mov b,#10h div ab mov hour12,a mov hour11,b mov a,date mov b,#10h div ab mov day12,a mov day11,b mov a,month mov b,#10h div ab mov month

34、12,a mov month11,b mov a,year1 mov b,#10h div ab mov year12,a mov year11,b mov a,year2 mov b,#10h div ab mov year14,a mov year13,b mov a,35h mov b,#10h div ab mov n_day12,a mov n_day11,b mov a,34h mov b,#10h div ab mov n_month12,a mov n_month11,b mov a,temp mov b,#10h div ab mov temp12,a mov temp11,

35、b ret3.5延時(shí)程序 dealy:mov r5,#01h del1: mov r2,#07dh del2:nop nop djnz r2,del2 djnz r5,del1 ret3.6 顯示程序deng:mov p2,#0ffh mov a,#00h mov sbuf,a jnb ti,$ clr ti mov p2,adress2 mov a,shu2 mov sbuf,a jnb ti,$ clr ti mov a,#00h mov sbuf,a jnb ti,$ clr ti lcall dealy mov p2,#0ffh retdeng1:mov p2,#0ffh mov a,

36、shu1 mov sbuf,a jnb ti,$ clr ti mov p2,#0ffh mov a,#00h mov sbuf,a jnb ti,$ clr ti mov p2,adress1 mov a,shu3 mov sbuf,a jnb ti,$ clr ti lcall dealy retdisp1: mov r3,#0bfh mov r4,#06h mov r0,#10hdisp2:mov a,r0 mov dptr,#tab movc a,a+dptr mov shu2,a inc r0 mov a,r3 rr a mov r3,a mov adress2,a lcall de

37、ng djnz r4,disp2 mov a,day mov dptr,#xing movc a,a+dptr mov shu2,a mov adress2,#0bfh lcall deng retdisp3:mov r3,#0feh mov r4,#08h mov r1,#24hdisp4:mov a,r0 mov dptr,#tab movc a,a+dptr mov shu3,a inc r0 mov a,r1 movc a,a+dptr mov shu1,a inc r1 mov a,r3 rr a mov r3,a mov adress1,a lcall deng1 djnz r4,

38、disp4 ret3.7鍵盤程序key:jb p1.3,s2s1: lcall disp1 lcall disp3 jnb p1.3,s1 mov a,6eh inc a mov 6eh,adianliang1:cjne a,#01h,dianliang2 mov p0,#0feh retdianliang2:cjne a,#02h,dianliang3 mov p0,#0fch retdianliang3:cjne a,#03h,dianliang4 mov p0,#0f8h retdianliang4:cjne a,#04h,dianliang5 mov p0,#0f0h retdianl

39、iang5:cjne a,#05h,mie mov p0,#0e0h retmie:cjne a,#06h,out mov 06eh,#00h mov p0,#0ffh ret out: rets2:jb p3.3,s3shang:acall disp1 acall disp3 jnb p3.3,shang mov a,temp inc a mov temp,a cjne a,#01h,out mov a,6eh cjne a,#05h,out mov r0,#sec mov sec,#0c0h mov min,70h lcall wrrtc mov r0,#sec mov sec,#0c2h

40、 mov min,71h lcall wrrtc ret s3: jb p3.2,out mov r7,#05h xian: mov 6fh,r7 lcall disp1 lcall disp3 mov r7,6fh djnz r7,xianjia: mov a,6eh cjne a,#01h,pan2 ljmp jia_shpan2:cjne a,#02h,pan3 ljmp jia_fpan3:cjne a,#03h,pan4 ljmp jia_nianpan4:cjne a,#04h,pan5 ljmp jia_yuepan5:cjne a,#05h,out ljmp jia_ri re

41、tjia_f:mov a,int_min inc a da a mov int_min,a cjne a,#60h,diao_jf mov int_min,#00hdiao_jf: lcall writer_f lcall chxie_ds1302 retjia_sh: mov a,int_hour inc a da a mov int_hour,a cjne a,#24h,diao_jsh mov int_hour,#00hdiao_jsh: lcall writer_sh lcall chxie_ds1302 retjia_ri:mov a,int_date inc a da a mov

42、int_date,a mov a,month clr c mov r7,#0f8h addc a,r7 jc houqian: mov a,month mov b,#02h div ab mov a,b rrc a jc dayuexiaoyue:mov a,int_date cjne a,#31h,diao_jri mov int_date,#01h sjmp diao_jridayue:mov a,int_date cjne a,#32h,diao_jri mov int_date,#01h sjmp diao_jrihou: mov a,month mov b,#02h div ab m

43、ov a,b rrc a jc xiaoyue sjmp dayuediao_jri: lcall writer_date lcall chxie_ds1302 retjia_yue:mov a,int_month inc a da a mov int_month,a cjne a,#13h,diao_jyue mov int_month,#01hdiao_jyue: lcall writer_yue lcall chxie_ds1302 retjia_nian:mov a,int_year1 inc a da a mov int_year1,a cjne a,#99h,diao_jnian

44、mov int_year1,#00hdiao_jnian: lcall writer_nian lcall chxie_ds1302 ret3.8公農(nóng)歷算法convert: mov a,time_year ;將年月日轉(zhuǎn)化為hex 格式mov b,#16div abmov convert_year,bmov b,#10mul abadd a,convert_yearmov convert_year,amov a,time_monthmov c,acc.7mov f0,c ;f0暫存世紀(jì)標(biāo)志,僅用于數(shù)據(jù)表定位clr acc.7jnb acc.4,con_02clr acc.4 ;acc.4 為1 表示大于10 月add a,#10con_02: mov convert_month,amov a,time_datemov b,#16div abmov convert_date,bmov b,#10mul abadd a,convert_datemov convert_date,amov dptr,#month_data ;以下定位本年數(shù)據(jù)在表格中的位置mov a,convert_yearjb f0,con_06 ;當(dāng)前為19 世紀(jì)年跳轉(zhuǎn)add a,#100 ;從19 世紀(jì)起定義表格起始年,20 世紀(jì)

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論