畢業(yè)設計---制作單片機at89s52的萬年歷_第1頁
已閱讀1頁,還剩28頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  制作單片機AT89S52的萬年歷</p><p>  摘要:電子萬年歷是一種應用非常廣泛的日常計時工具,本設計利用美國DALLAS公司推出的具有涓細電流充電的低功耗實時時鐘電路DS1320,研制了一種多功能電子萬年歷,主要功能包括:電子萬年歷要求能顯示的陽歷/陰歷、年、月、日、星期、小時、分、秒,除此之外還有顯示潤年,記憶時間。DS1302可以對年、月、日、周日、時、分、秒進行計時,還具有潤

2、年補償?shù)墓δ?,而且DS1320的使用壽命長,誤差小。對于數(shù)字電子萬年歷采用它,具有較準的計時。</p><p>  關鍵詞:AT89S52 DS1302 74LS164 萬年歷 </p><p>  The production of the calendar with the single-chip AT89S52 </p><p>  Abstract:E

3、lectronic 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, develo

4、ped a multi-function electronic calendar.The main 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 indic

5、ate Leap year, the memory of the time. DS1302 can </p><p>  Keywords: AT89S52 DS1302 74LS164   calendar</p><p><b>  目 錄</b></p><p>  第一章 緒論………………………………………………………………………

6、.……3</p><p>  1.1 課題背景………………………………………………………………………3</p><p>  1.2 電子萬年歷的目的和意義……………………………………………………3</p><p>  第二章 系統(tǒng)硬件電路設計...............................................................

7、..............................4</p><p>  2.1 硬件設計框圖……………………………………………………………….4</p><p>  2.2 AT89S52原理…………………………………………………………….…..4 </p><p>  2.3 74LS164電路原理………………………………………………………….

8、.5</p><p>  2.4 DS1302電路原理……………………………………………………………5</p><p>  2.5 電源原理…………………………………………………………………….7</p><p>  2.6 數(shù)碼管原理………………………………………………………………….8</p><p>  第三章 系統(tǒng)軟件實現(xiàn)………

9、………………………………………………………...9</p><p>  3.1顯示及調整時間子程序流程………………………………………..………..9</p><p>  3.2調整時間子程序流程…………………………………………………..……..9</p><p>  3.3顯示閏年子程序流程………………………………………………..……….10</p>

10、<p>  3.4顯示星期的子程序流程………………………………..…………………….11</p><p>  3.5陽歷日期推算陰歷日期流程圖…………………………………………..….11</p><p>  總結…………………………………………………………………………………… 12</p><p>  致謝…………………………………………………………………

11、………………….13</p><p>  參考文獻………………….………………………………………...………………….14</p><p>  附錄1.元件清單……………………………………………………………………….15</p><p>  附錄2.電路原理圖…………………….……………………………………………….16</p><p>  附

12、錄3.程序…………………….……………………………………………………….17</p><p><b>  第一章 緒論</b></p><p><b>  1.1課題背景</b></p><p>  在生活中,我們經常能看到各種各樣的制作精美的萬年歷,萬年歷大有取代常規(guī)鐘表的趨勢.隨著人們生活水平的提高,智能產品越來越受到

13、人們的歡迎.而單片機,傳感器各種集成電路起到關鍵作用.希望通過本設計能夠對未來的趨勢有所把握,從而適應社會需要.</p><p>  1.2 電子萬年歷的目的和意義</p><p>  電子萬年歷是一種應用非常廣泛的日常計時工具,液晶顯示的萬年歷已經越來越普及,特別是適合在家庭居室、辦公室、大廳、會議室和廣場使用。LED顯示的日歷鐘顯示清晰直觀、走時準確,并且還可以擴展出多種功能,本設計利

14、用數(shù)量較少的芯片研制了一種多功能電子萬年歷,主要功能包括:電子萬年歷要求能顯示陽歷/陰歷、年、月、日、星期、小時、分、秒,除此之外還有顯示潤年,記憶時間。</p><p>  隨著歷史的發(fā)展,從古代觀太陽到滴水計時,從擺鐘到現(xiàn)代電子鐘表,人類不斷的研究,不斷的進步。美國DALLAS公司推出的具有涓細電流充電能的低功耗實時時鐘電路DS1320。它可以對年、月、日、周日、時、分、秒進行計時,還具有潤年補償?shù)亩喾N功能,

15、而且DS1320的使用壽命長,誤差小。對于數(shù)字電子萬年歷采用它具有較準的計時功能。</p><p>  第二章 系統(tǒng)硬件電路設計</p><p><b>  2.1硬件設計框圖</b></p><p><b>  圖2.1</b></p><p>  2.2 AT89S52</p>&

16、lt;p>  AT89S52 是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash 存儲器。使用Atmel公司高密度非易失性存儲器技術制造,與工業(yè)80C51產品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標準功能:8k字節(jié)

17、Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時器,2個數(shù)據(jù)指針,三個16 位定時器/計數(shù)器,一個6向量2級中斷結構,全雙工串行口,片內晶振及時鐘電路。另外,AT89S52可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。</p>

18、<p>  圖2.2AT89S52引腳圖</p><p>  2.3 74LS164電路原理</p><p>  74LS164顯示模塊是由74LS164移位寄存器和數(shù)碼管構成它為串行輸入并行輸出的移位寄存器,可以作為靜態(tài)顯示器接口,接在89C51的串行口上用于數(shù)碼的顯示.如圖所示:clear (9腳)高電平有效,低電平時使所有輸出(Qa~Qh)為低電平 Clock(8腳)上升

19、延輸出移位,其余狀態(tài)保持 A(1腳)B(2腳)輸入:邏輯與關系,即全高為高,見低為低。</p><p>  圖2.3 74LS164引腳圖</p><p>  2.4 DS1302工作原理</p><p>  首先介紹DS1302的結構及工作原理:DS1302 是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、

20、秒進行計時,具有閏年補償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內部有一個31×8的用于臨時性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級產品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時提供了對后背電源進行涓細電流充電的能力。 其次介紹引腳功能及結構:圖3.22示出DS1302的引腳排列,

21、其中Vcc1為后備電源,VCC2為主電源。在主電源關閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當Vcc2大于Vcc1+0.2V時,Vcc2給DS1302供電。當Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復位/片選線,通過把RST輸入驅動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST</p>&l

22、t;p>  圖2.4 DS1302引腳圖</p><p>  慢速充電時鐘芯片包括實時時鐘/日歷和31字節(jié)的靜態(tài)RAM。它經過一個簡單的串行接口與微 處理器通信。實時時鐘/日歷提供秒、分、時、日、周、月和年等信息。對于小于31天的月,月末的日期自動進行調整,還包括了閏年校正的功能。時鐘的運行可以采用24小時或帶AM(上午)/PM(下午)的12小時格式。使用同步串行通信,簡化了DS1302與微處理器的通信。

23、與時鐘/RAM通信僅需三根線:(1)RST (復位)、(2)I/O(數(shù)據(jù)線)、和(3)SCLK(串行時鐘)。數(shù)據(jù)可以以每次一個字節(jié)或多達31字節(jié)的多字節(jié)形式傳送至時鐘/RAM或從其中送出。DS1302設計成能在非常低的功耗下工作,消耗小于1微瓦的功率便能保存數(shù)據(jù)和時鐘信息。DS1302是DS1202的升級產品,除了DS1202基本的慢速充電功能外,DS1302具有的其它特點包括:用于主電源和備份電源的雙電源引腳,可編程的VCC1慢速充電

24、器以及7個附加字節(jié)的高速暫存存儲器(scratchpad memory)。</p><p><b>  2.5電源原理</b></p><p>  穩(wěn)壓電源由電源變壓器、整流電路、濾波電路和穩(wěn)壓電路組成,如圖</p><p>  圖2.51交直流轉換圖</p><p>  圖2.52電源原理圖</p>&l

25、t;p>  VCC1在單電源與電池供電的系統(tǒng)中提供低電源并提供低功率的電池備份。VCC2在雙電源系統(tǒng)中提供主電源,在這種運用方式中VCC1連接到備份電源,以便在沒有主電源的情況下能保存時間信息以及數(shù)據(jù)。DS1302由VCC1或VCC2兩者中較大者供電。當VCC2大于VCC1+0.2V時,VCC2給DS1302供電。當VCC2小于VCC1時,DS1302由VCC1供電。</p><p><b>  

26、2.6 數(shù)碼管原理</b></p><p>  LED數(shù)碼管分共陽極與共陰極兩種,其工作特點是,當筆段電極接低電平,公共陽極接高電平時,相應筆段可以發(fā)光。共陰極LED數(shù)碼管則與之相反,它是將發(fā)光二極管的陰極(負極)短接后作為公共陰極。當驅動信號為高電平、?端接低電平時,才能發(fā)光。LED的輸出光譜決定其發(fā)光顏色以及光輻射純度,也反映出半導體材料的特性。常見管芯材料有磷化鎵(GaP)、砷化鎵(GaAs)、

27、磷砷化鎵(GaAsP)、氮化鎵(GaN)等,其中氮化鎵可發(fā)藍光。發(fā)光顏色不僅與管芯材料有關,還與所摻雜質有關,因此用同一種管芯材料可以制成發(fā)出紅、橙、黃、綠等不同顏色的數(shù)碼管。其它顏色LED數(shù)碼管的光譜曲線形狀與之相似,僅入,值不同。LED數(shù)碼管的產品中,以發(fā)紅光、綠光的居多、這兩種顏色也比較醒目。LED數(shù)碼管等效于多只具有發(fā)光性能的PN結。當PN結導通時,依靠少數(shù)載流子的注人及隨后的復合而輻射發(fā)光,其伏安特性與普通二極管相似。在正向導

28、通之前,正向電流近似于零,筆段不發(fā)光。當電壓超過開啟電壓時,電流就急劇上升,筆段發(fā)光。因此,LED數(shù)碼管屬于電流控制型器件,其發(fā)光亮度L(單位是cd/m2)與正向電流IF有關,用公式表示:L=KIF即亮度</p><p><b>  圖2.61</b></p><p><b>  圖2.62</b></p><p>  第

29、三章 系統(tǒng)軟件實現(xiàn)</p><p>  3.1 顯示時間子程序流程</p><p><b>  圖3.1</b></p><p>  3.2調整時間子程序流程</p><p><b>  圖3.2</b></p><p>  3.3顯示閏年子程序流程</p>&

30、lt;p>  編程中公歷閏年的簡單計算方法:設年份 year if (year能被4整除 and 不能被100整除) or year能被400整除 then 該年為閏年 else 該年為平年</p><p><b>  圖3.3</b></p><p>  3.4顯示星期的子程序流程</p><p><b>  圖3.4

31、</b></p><p> ?、?求某年某月某日是星期幾的子功能。(要求編成子程序) 算法:s=(y-1)+(y-1)/4-(y-1)/100+(y-1)/400+c (其中:y為年份;c為某月某日是這一年的第幾天,由②求出;s為總天數(shù)?!?”為整除。) n=s%7 (其中:n為星期數(shù);“%”為求余數(shù)) ② 求某月某日是這一年的第幾天的子功能。(要求編成子程序) 二月份是否為平年(28天)或

32、閏年(29天)的算法: y/400=0∨y/4=0∧y/100≠0 (y為年份;“/”整除) ,則y為以閏年;否則,y為平年。 根據(jù)①②可求出一年中的日歷。</p><p>  3.5陽歷日期推算陰歷日期的方法</p><p><b>  圖3.5</b></p><p><b>  總 結</b></p>

33、;<p>  通過這次畢業(yè)設計――制作單片機AT89S52的萬年歷,我學到了許多知識,還學到了許多思考問題的方法,受益非淺。</p><p>  提高了分析問題、解決問題的能力。在設計過程中,我遇到了很多問題,這是不可避免的,但我并沒有急于尋求問題的答案,而是認真分析問題存在的原因,從而著手解決問題,以免以后出現(xiàn)類似的問題。</p><p>  通過本文的學習,你可以很清楚的

34、了解萬年歷開發(fā)與應用,使讀者一目了然。文中只是對系統(tǒng)硬件電路設計、軟件設計簡單闡述。但本文對具體的電路具體設計等沒做說明。本文還簡單介紹了這個萬年歷元件清單、電路原理圖、為讀者竟進行實物焊接提供了很好的幫助以及為以后的電路設計做好了鋪墊。</p><p><b>  致謝</b></p><p>  本文的研究工作是在xx老師的精心指導和悉心關懷下完成的,在我的學業(yè)和

35、論文的研究工作中無不傾注著老師辛勤的汗水和心血。xx老師在科研和工作中嚴謹治學勇于創(chuàng)新無私奉獻的精神使我受益菲淺。在此論文完成之際,我向導師致以深深的敬意及最真誠的謝意。</p><p>  在學習和科研期間我還得到了許多老師同學和同學的熱情關心和大力幫助,在此也深表感謝,并向所有關心和幫助過我的領導老師同學和朋友表示由衷的謝意。</p><p>  最后衷心感謝在百忙之中評閱論文和參加答

36、辯的各位老師。</p><p><b>  參考文獻</b></p><p>  [1] 胡漢才.《單片機原理及其接口技術》.清華大學出版社 .2004</p><p>  [2] 丁元杰.《單片機原理與應用》.機械工業(yè)出版社. 2005</p><p>  [3] 孫育才.《MCS-51系列單片微型計算機及其應用》.

37、東南大學出版社. 2004</p><p>  [4] 蔡美勤,張為民,沈新群,張榮娟.《MCS-51系列單片機系統(tǒng)及其應用》.高等教育出版社 .2004</p><p>  [5]王幸之,鐘愛琴,王雷,王閃.《STC89系列單片機原理與接口技術》.北京航空航天大學出版社.2004</p><p><b>  附錄1.元件清單</b></

38、p><p>  Part TypeDesignatorFootprint</p><p>  74LS164U3DIP-14</p><p>  74LS164U2DIP-14</p><p>  74LS164U4DIP-14</p><p>  89S52U1DIP-40</p>

39、;<p>  CAPC6RAD0.4</p><p>  CAPC5RAD0.4</p><p>  CAPC4RAD0.4</p><p>  CAPC3RAD0.4</p><p>  CAPACITORC2RB.2/.4</p><p>  CON2J1SIP2&

40、lt;/p><p>  CON10J2SIP10</p><p>  CRYSTALY2DIP2</p><p>  CRYSTALY1DIP2</p><p>  Component_1C1DIP8</p><p>  DPY_7-SEG_DPDS9DIP10</p><

41、p>  DPY_7-SEG_DPDS11DIP10</p><p>  DPY_7-SEG_DPDS13DIP10</p><p>  DPY_7-SEG_DPDS8DIP10</p><p>  DPY_7-SEG_DPDS3DIP10</p><p>  DPY_7-SEG_DPDS5DIP10</p>

42、;<p>  DPY_7-SEG_DPDS4DIP10</p><p>  DPY_7-SEG_DPDS1DIP10</p><p>  DPY_7-SEG_DPDS6DIP10</p><p>  DPY_7-SEG_DPDS2DIP10</p><p>  DPY_7-SEG_DPDS15DIP10<

43、;/p><p>  DPY_7-SEG_DPDS18DIP10</p><p>  DPY_7-SEG_DPDS12DIP10</p><p>  DPY_7-SEG_DPDS14DIP10</p><p>  DPY_7-SEG_DPDS16DIP10</p><p>  DPY_7-SEG_DPDS7

44、DIP10</p><p>  DPY_7-SEG_DPDS17DIP10</p><p>  DPY_7-SEG_DPDS10DIP10</p><p>  DPY_7-SEG_DPDS19DIP10</p><p>  LEDD1DIODE0.4</p><p>  PNPQ7TO-92A&l

45、t;/p><p>  PNPQ8TO-92A</p><p>  PNPQ3TO-92A</p><p>  PNPQ2TO-92A</p><p>  PNPQ1TO-92A</p><p>  PNPQ6TO-92A</p><p>  PNPQ5TO-92A</p

46、><p>  PNPQ4TO-92A</p><p>  RES2R1AXIAL0.4</p><p>  RES2R2AXIAL0.4</p><p>  RES2R7AXIAL0.4</p><p>  RES2R6AXIAL0.4</p><p>  RES2R5AXI

47、AL0.4</p><p>  RES2R3AXIAL0.4</p><p>  RES2R4AXIAL0.4</p><p>  RES2R12AXIAL0.4</p><p>  RES2R13AXIAL0.4</p><p>  RES2R14AXIAL0.4</p><p

48、>  RES2R11AXIAL0.4</p><p>  RES2R8AXIAL0.4</p><p>  RES2R9AXIAL0.4</p><p>  RES2R10AXIAL0.4</p><p>  SW-PBS2AXIAL0.4</p><p>  SW-PBS1AXIAL0.

49、4</p><p><b>  附錄2.電路原理圖</b></p><p><b>  附錄3程序 </b></p><p><b>  3.1 主程序</b></p><p>  sec11 equ 10h</p><p>  sec12 equ

50、 11h</p><p>  min11 equ 12h</p><p>  min12 equ 13h</p><p>  hour11 equ 14h</p><p>  hour12 equ 15h</p><p>  day11 equ 16h</p><p>  da

51、y12 equ 17h</p><p>  month11 equ 18h</p><p>  month12 equ 19h</p><p>  year11 equ 1ah</p><p>  year12 equ 1bh</p><p>  year13 equ 1ch</p&

52、gt;<p>  year14 equ 1dh</p><p>  TEMP EQU 1EH</p><p>  N_DAY EQU 1FH</p><p>  shu2 equ 20h</p><p>  adress2 equ 21h</p><p>  ADRESS

53、1 EQU 23H</p><p>  SHU1 EQU 24H</p><p>  SHU3 EQU 25H</p><p>  TEMP11 EQU 26H</p><p>  TEMP12 EQU 27H</p><p>  N_DAY11 EQU 28H</p>

54、<p>  N_DAY12 EQU 29H</p><p>  N_MONTH11 EQU 2AH</p><p>  N_MONTH12 EQU 2BH</p><p>  N_MONTH EQU 2CH</p><p>  huan equ 2dh</p><p>  SCLK b

55、it 90h</p><p>  io bit 91h</p><p>  RST bit 92h</p><p>  sec data 60h</p><p>  min data 61h</p><p>  hour data 62h</p><p>  dat

56、e data 63h</p><p>  month data 64h</p><p>  day data 65h</p><p>  year1 DATA 66H</p><p>  year2 data 67h</p><p>  int_min equ 68h</p>

57、<p>  int_hour equ 69h</p><p>  int_date equ 6ah</p><p>  int_month equ 6bh</p><p>  int_year1 equ 6ch</p><p>  int_day equ 6dh</p><p> 

58、 start_year EQU 01; 定義查詢表起始年份,</p><p>  01--199 表示1901-2099 年</p><p>  ;以下三單元為需轉換的公歷日期是子程序的入口數(shù)據(jù)</p><p>  time_year DATA 66h</p><p>  time_month DATA 64h ;BIT7 表示世紀,<

59、/p><p>  為1 表示19 世紀,為0 表示20 世紀</p><p>  time_date DATA 63h</p><p>  ;以下三單元存轉換后農歷日期與入口單元重疊,</p><p>  如要保留入口信息,請重定義出口地址</p><p>  CONvert_yeAr DATA 33h</p>

60、<p>  CONvert_mONth DATA 34h ;BIT7 為1 表示閏月</p><p>  CONvert_dAte DATA 35h</p><p>  temp_Byte1 DATA 37h</p><p>  temp_Byte2 DATA 38h</p><p>  temp_Byte3 DATA 39h&

61、lt;/p><p>  temp_Byte4 DATA 3Ah</p><p>  temp_Byte5 DATA 3Bh</p><p>  time_week DATA 65h ;星期天出口</p><p>  3.2 公歷轉農歷子程序</p><p>  org 0000h</p><p>

62、;  mov p0,#0ffh</p><p>  mov 6eh,#00hmov </p><p>  int_min,#59h</p><p>  mov int_hour,#23h</p><p>  mov int_date,#12h</p><p>  mov int_month,#11h</

63、p><p>  mov int_year1,#04h</p><p>  mov int_day,#07h</p><p>  mov temp,#00h</p><p>  mov year2,#20h</p><p>  MOV SP,#74H</p><p>  3.3 DS1302

64、讀寫程序</p><p>  lcall init</p><p>  start: mov 70h,hour</p><p>  mov 71h,min</p><p>  mov day,time_week</p><p>  mov r0,#sec</p><p>  mov

65、r7,#7</p><p>  setb psw.5</p><p>  lcall rwrtc</p><p>  lcall kEY</p><p>  LCALL CONvert</p><p>  lcall GetWeek</p><p>  LCALL TRUN</

66、p><p>  ;LCALL DINGSHI</p><p>  LCALL DISP1</p><p>  LCALL DISP3</p><p>  ljmp start</p><p>  rwrtc: mov b,#10000001b</p><p>  jb psw.5,rw

67、rtc1</p><p>  mov b,#10000000b</p><p>  rwrtc1:clr sclk</p><p><b>  nop</b></p><p><b>  setb rst</b></p><p>  mov r6,#8</p

68、><p><b>  mov a,b</b></p><p>  rwrtc2:clr sclk</p><p><b>  rrc a</b></p><p><b>  mov io,c</b></p><p><b>  nop&l

69、t;/b></p><p>  setb sclk</p><p>  djnz r6,rwrtc2</p><p>  mov r6,#8</p><p>  jnb psw.5,rwrtc4</p><p>  rwrtc3:clr sclk</p><p><b>

70、  nop</b></p><p>  mov c,io</p><p><b>  rrc a</b></p><p>  setb sclk</p><p>  djnz r6,rwrtc3</p><p>  mov @r0,a</p><p&g

71、t;  sjmp rwrtc6</p><p>  rwrtc4:mov a,@r0</p><p>  rwrtc5:clr sclk</p><p><b>  rrc a</b></p><p><b>  mov io,c</b></p><p><b

72、>  nop</b></p><p><b>  setb sclk</b></p><p>  djnz r6,rwrtc5</p><p>  rwrtc6:inc r0</p><p><b>  mov a,b</b></p><p>  ad

73、d a,#02h</p><p><b>  mov b,a</b></p><p><b>  clr rst</b></p><p><b>  nop</b></p><p><b>  clr sclk</b></p><

74、;p>  djnz r7,rwrtc1</p><p><b>  RET</b></p><p>  WRRTC: CLR SCLK</p><p><b>  NOP</b></p><p><b>  SETB RST</b></p><

75、p><b>  NOP</b></p><p><b>  NOP</b></p><p>  MOV R7,#2</p><p>  WRRTC1: MOV R6,#8</p><p>  MOV A,@R0</p><p><b>  CLR C

76、</b></p><p>  wrrtc2: CLR SCLK</p><p><b>  RRC A</b></p><p><b>  MOV IO,C</b></p><p><b>  nop</b></p><p>  SET

77、B SCLK</p><p>  DJNZ R6,WRRTC2</p><p><b>  INC R0</b></p><p>  djnz r7,wrrtc1</p><p>  clr rst</p><p><b>  nop</b></p>

78、;<p>  clr sclk</p><p><b>  ret</b></p><p><b>  init:</b></p><p><b>  CLR SCLK</b></p><p><b>  CLR RST</b><

79、;/p><p>  MOV SEC,#10001110b</p><p>  MOV MIN,#00000000b</p><p>  MOV R0,#SEC</p><p>  LCALL wrrtc</p><p>  MOV SEC,#10010000b</p><p>  MOV

80、 MIN,#10100101b</p><p>  MOV R0,#SEC</p><p>  LCALL wrrtc</p><p>  MOV R0,#SEC</p><p>  MOV SEC,#10000000b</p><p>  MOV MIN,#00000000b</p><

81、;p>  lcall writer_f</p><p>  lcall writer_sh</p><p>  lcall writer_date</p><p>  lcall writer_yue</p><p>  lcall writer_nian</p><p><b>  ret&

82、lt;/b></p><p>  writer_f:LCALL wrrtc</p><p>  mov r0,#sec</p><p>  mov sec,#82h</p><p>  mov min,int_min</p><p>  lcall wrrtc</p><p>&

83、lt;b>  ret</b></p><p>  writer_sh:mov sec,#10000100b</p><p>  mov min,int_hour</p><p>  mov r0,#sec</p><p>  lcall wrrtc</p><p><b>  ret

84、</b></p><p>  writer_yue:mov sec,#88h</p><p>  mov min,int_month</p><p>  mov r0,#sec</p><p>  lcall wrrtc</p><p><b>  ret</b><

85、/p><p>  writer_nian:mov sec,#8ch</p><p>  mov min,int_year1</p><p>  mov r0,#sec</p><p>  lcall wrrtc</p><p><b>  ret</b></p><p>

86、;  writer_date:mov sec,#86h</p><p>  mov min,int_date</p><p>  mov r0,#sec</p><p>  lcall wrrtc</p><p><b>  RET</b></p><p>  3.4 BCD轉換<

87、/p><p><b>  TRUN:</b></p><p>  MOV A,SEC</p><p>  MOV B,#10H</p><p><b>  DIV AB</b></p><p>  MOV SEC12,A</p><p>  MOV

88、 SEC11,B</p><p>  MOV A,MIN</p><p>  MOV B,#10H</p><p><b>  DIV AB</b></p><p>  MOV MIN12,A</p><p>  MOV MIN11,B</p><p>  M

89、OV A,HOUR</p><p>  MOV B,#10H</p><p><b>  DIV AB</b></p><p>  MOV HOUR12,A</p><p>  MOV HOUR11,B</p><p>  MOV A,date</p><p>

90、  MOV B,#10H</p><p><b>  DIV AB</b></p><p>  MOV DAY12,a</p><p>  MOV DAY11,b</p><p>  MOV A,MONTH</p><p>  MOV B,#10H</p><p&g

91、t;<b>  DIV AB</b></p><p>  MOV MONTH12,A</p><p>  MOV MONTH11,B</p><p>  MOV A,year1</p><p>  MOV B,#10H</p><p><b>  DIV AB</b&g

92、t;</p><p>  MOV YEAR12,A</p><p>  MOV YEAR11,B</p><p>  MOV A,YEAr2</p><p>  MOV B,#10H</p><p><b>  DIV AB</b></p><p>  MOV

93、YEAR14,A</p><p>  MOV YEAR13,b</p><p>  MOV A,35h</p><p>  MOV B,#10H</p><p><b>  DIV AB</b></p><p>  MOV N_DAY12,A</p><p>  

94、MOV N_day11,B</p><p>  MOV A,34h</p><p>  MOV B,#10H</p><p><b>  DIV AB</b></p><p>  MOV N_MONTH12,A</p><p>  MOV N_MONTH11,B</p>

95、<p>  MOV A,TEMP</p><p>  MOV B,#10H</p><p><b>  DIV AB</b></p><p>  MOV TEMP12,A</p><p>  MOV TEMP11,B</p><p><b>  RET</b&g

96、t;</p><p><b>  3.5延時程序</b></p><p>  DEALY:MOV R5,#01h</p><p>  DEL1: MOV R2,#07dH</p><p><b>  DEL2:NOP</b></p><p><b>  NOP<

97、;/b></p><p>  DJNZ R2,DEL2</p><p>  DJNZ R5,DEL1</p><p><b>  RET</b></p><p><b>  3.6 顯示程序</b></p><p>  DENG:MOV P2,#0FFH</

98、p><p>  MOV A,#00H</p><p>  MOV SBUF,A</p><p><b>  JNB TI,$</b></p><p><b>  CLR TI</b></p><p>  MOV P2,ADRESS2</p><p&g

99、t;  MOV A,SHU2</p><p>  MOV SBUF,A</p><p><b>  JNB TI,$</b></p><p><b>  CLR TI</b></p><p>  MOV A,#00H</p><p>  MOV SBUF,A<

100、;/p><p>  JNB TI,$</p><p><b>  CLR TI</b></p><p>  LCALL DEALY</p><p>  MOV P2,#0FFH</p><p><b>  RET</b></p><p>  DE

101、NG1:MOV P2,#0FFH</p><p>  MOV A,SHU1</p><p>  MOV SBUF,A</p><p><b>  JNB TI,$</b></p><p><b>  CLR TI</b></p><p>  MOV P2,#0FFH

102、</p><p>  mov a,#00h</p><p>  MOV SBUF,a</p><p><b>  JNB TI,$</b></p><p><b>  CLR TI</b></p><p>  MOV P2,ADRESS1</p><

103、;p>  MOV A,SHU3</p><p>  MOV SBUF,A</p><p><b>  JNB TI,$</b></p><p><b>  CLR TI</b></p><p>  LCALL DEALY</p><p><b>  

104、RET</b></p><p><b>  DISP1:</b></p><p>  MOV R3,#0bFH</p><p>  MOV R4,#06H</p><p>  MOV R0,#10H</p><p>  DISP2:MOV A,@R0</p>&l

105、t;p>  MOV DPTR,#TAB</p><p>  MOVC A,@A+DPTR</p><p>  MOV SHU2,A</p><p><b>  inc r0</b></p><p><b>  MOV A,R3</b></p><p><

106、b>  Rr A</b></p><p><b>  MOV R3,A</b></p><p>  MOV ADRESS2,A</p><p>  LCALL DENG</p><p>  DJNZ R4,DISP2</p><p>  mov a,day<

107、/p><p>  mov dptr,#xing</p><p>  movc a,@a+dptr</p><p>  mov shu2,a</p><p>  mov adress2,#0bfh</p><p>  lcall deng</p><p><b>  RET<

108、/b></p><p>  DISP3:MOV R3,#0FEH</p><p>  MOV R4,#08H</p><p>  MOV R1,#24H</p><p>  DISP4:MOV A,@R0</p><p>  MOV DPTR,#TAB</p><p>  MOV

109、C A,@A+DPTR</p><p>  MOV SHU3,A</p><p><b>  INC r0</b></p><p>  MOV A,@R1</p><p>  MOVC A,@A+DPTR</p><p>  MOV SHU1,A</p><p&g

110、t;<b>  INC R1</b></p><p><b>  MOV A,R3</b></p><p><b>  RR A</b></p><p>  MOV R3,A</p><p>  MOV ADRESS1,A</p><p> 

111、 LCALL DENG1</p><p>  DJNZ R4,DISP4</p><p><b>  RET</b></p><p><b>  3.7鍵盤程序</b></p><p>  key:jb p1.3,s2</p><p>  s1: lcall disp

112、1</p><p>  lcall disp3</p><p>  jnb p1.3,s1</p><p>  mov a,6eh</p><p><b>  inc a</b></p><p><b>  mov 6eh,a</b></p><p

113、>  dianliang1:cjne a,#01h,dianliang2</p><p>  mov p0,#0feh</p><p><b>  ret</b></p><p>  dianliang2:cjne a,#02h,dianliang3</p><p>  mov p0,#0fch</p

114、><p><b>  ret</b></p><p>  dianliang3:cjne a,#03h,dianliang4</p><p>  mov p0,#0f8h</p><p><b>  ret</b></p><p>  dianliang4:cjne a,#

115、04h,dianliang5</p><p>  mov p0,#0f0h</p><p><b>  ret</b></p><p>  dianliang5:cjne a,#05h,mie</p><p>  mov p0,#0e0h</p><p><b>  ret<

116、/b></p><p>  mie:cjne a,#06h,out</p><p>  mov 06eh,#00h</p><p>  mov p0,#0ffh</p><p><b>  ret</b></p><p><b>  out: ret</b><

117、;/p><p>  s2:jb p3.3,s3</p><p>  shang:acall disp1</p><p>  acall disp3</p><p>  jnb p3.3,shang</p><p>  mov a,temp</p><p><b>  inc

118、a</b></p><p>  mov temp,a</p><p>  cjne a,#01h,out</p><p>  mov a,6eh</p><p>  cjne a,#05h,out</p><p>  mov r0,#sec</p><p>  mov

119、 sec,#0c0h</p><p>  mov min,70h</p><p>  lcall wrrtc</p><p>  mov r0,#sec</p><p>  mov sec,#0c2h</p><p>  mov min,71h</p><p>  lcall wr

120、rtc</p><p><b>  ret</b></p><p>  s3: jb p3.2,out</p><p>  MOV R7,#05H</p><p>  xian: MOV 6FH,R7</p><p>  lcall disp1</p><p>

121、;  lcall disp3</p><p>  MOV R7,6FH</p><p>  DJNZ R7,XIAN</p><p>  jia: mov a,6eh</p><p>  cjne a,#01h,pan2</p><p>  LJMP jia_SH</p><p> 

122、 pan2:cjne a,#02h,pan3</p><p>  LJMP jia_F</p><p>  pan3:cjne a,#03h,pan4</p><p>  LJMP jia_nian</p><p>  pan4:cjne a,#04h,pan5</p><p>  ljmp jia_yue&

123、lt;/p><p>  pan5:cjne a,#05h,out</p><p>  ljmp jia_ri</p><p><b>  ret</b></p><p>  jia_f:mov a,int_min</p><p><b>  inc a</b></p

124、><p><b>  da a</b></p><p>  mov int_min,a</p><p>  cjne a,#60h,diao_jf</p><p>  mov int_min,#00h</p><p><b>  diao_jf:</b></p&

125、gt;<p>  lcall writer_f</p><p>  lcall chxie_ds1302</p><p><b>  ret</b></p><p><b>  jia_sh:</b></p><p>  mov a,int_hour</p><

126、;p><b>  inc a</b></p><p><b>  da a</b></p><p>  mov int_hour,a</p><p>  cjne a,#24h,diao_jsh</p><p>  mov int_hour,#00h</p><

127、;p><b>  diao_jsh:</b></p><p>  lcall writer_sh</p><p>  lcall chxie_ds1302</p><p><b>  ret</b></p><p>  jia_ri:mov a,int_date</p>&

128、lt;p><b>  inc a</b></p><p><b>  da a</b></p><p>  mov int_date,a</p><p>  MOV A,MONTH</p><p><b>  clr c</b></p><p

129、>  mov R7,#0f8h</p><p>  addc a,R7</p><p><b>  jc hou</b></p><p>  qian: mov a,month</p><p>  mov b,#02h</p><p><b>  div ab<

130、/b></p><p><b>  mov a,b</b></p><p><b>  rrc a</b></p><p>  jc dayue</p><p>  xiaoyue:mov a,int_date</p><p>  cjne a,#31h,d

131、iao_jri</p><p>  mov int_date,#01h</p><p>  sjmp diao_jri</p><p>  dayue:mov a,int_date</p><p>  cjne a,#32h,diao_jri</p><p>  mov int_date,#01h</

132、p><p>  sjmp diao_jri</p><p>  hou: mov a,month</p><p>  mov b,#02h</p><p><b>  div ab</b></p><p><b>  mov a,b</b></p><

133、p><b>  rrc a</b></p><p>  jc xiaoyue</p><p>  sjmp dayue</p><p><b>  diao_jri:</b></p><p>  lcall writer_date</p><p>  lcal

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論