基于單片機的實時時鐘_第1頁
已閱讀1頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  畢 業(yè) 設 計 論 文</p><p>  基于單片機的實時時鐘</p><p><b>  馬傳俊</b></p><p>  指導老師姓名: 丁 鋒</p><p>  專 業(yè) 名 稱:應用電子/國際貿易</p><p>  班 級 學 號: 03

2、180404</p><p>  論文提交日期: 2007年6月15日</p><p><b>  論文答辯日期:</b></p><p>  2007年 月 日</p><p>  基于單片機的實時時鐘 </p><p><b>  摘要:</b></p&

3、gt;<p>  時鐘,自從它發(fā)明的那天起,就成為人類的朋友,但隨著時間的推移,科學技術的不斷發(fā)展,人們對時間計量的精度要求越來越高,應用越來越廣。怎樣讓時鐘更好的為人民服務,怎樣讓我們的老朋友煥發(fā)青春呢?這就要求人們不斷設計出新型時鐘。 現(xiàn)今,高精度的計時工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘,石英表,石英鐘都采用了石英技術,因此走時精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調校,數(shù)字式電子鐘用集成電路計時時,

4、譯碼代替機械式傳動,用LED顯示器代替顯示器代替指針顯示進而顯示時間,減小了計時誤差,這種表具有時,分,秒顯示時間的功能,還可以進行時和分的校對,片選的靈活性好。本文利用單片機實現(xiàn)數(shù)字時鐘計時功能的主要內容,其中AT89C51是核心元件同時采用數(shù)碼管動態(tài)顯示“時”,“分”,“秒”的現(xiàn)代計時裝置。與傳統(tǒng)機械表相比,它具有走時精確,顯示直觀等特點。它的計時周期為24小時,顯滿刻度為“23時59分59秒”,另外具有校時功能,斷電后有記憶功能,

5、恢復供電時可實現(xiàn)計時同步等特點。</p><p>  本文主要介紹用單片機內部的定時/計數(shù)器來實現(xiàn)電子時鐘的方法,本設計由單片機AT89C51芯片和LED數(shù)碼管為核心,輔以必要的電路,構成了一個單片機電子時鐘</p><p>  關鍵詞:C51單片機 動態(tài)顯示 鍵盤輸入 電壓檢測 電池功耗</p><p><b>  目錄</b>&

6、lt;/p><p><b>  第1章 前言4</b></p><p>  第2章 系統(tǒng)設計4</p><p>  2.1 電路組成及工作原理4</p><p>  2.2 硬件部分5</p><p>  2.2.1 單片機系統(tǒng)5</p><p>&l

7、t;b>  2.2.1.15</b></p><p>  2.2.2.2 AT89C51的主要性能參數(shù)5</p><p>  2.2.2 顯示部分6</p><p>  2.2.2.1 LED顯示結構與原理6</p><p>  2.2.2.2 LED顯示器接口及顯示方式7</p>&l

8、t;p>  2.2.3 鍵盤工作模塊8</p><p>  2.2.3.1 獨立式按鍵結構9</p><p>  2.2.3.2 獨立式按鍵的軟件結構9</p><p>  2.2.4 電壓檢測電路9</p><p>  2.2.5 備用電池功耗問題10</p><p>  2.2.6

9、 直流穩(wěn)壓電源部分10</p><p>  2.2.6.1 主要技術指標11</p><p>  2.2.6.2 濾波電路11</p><p>  2.2.7 相關參數(shù)計算12</p><p>  第3章 軟件設計(圖)13</p><p><b>  3.113</b>

10、</p><p><b>  3.213</b></p><p><b>  3.313</b></p><p>  第4章 系統(tǒng)調試17</p><p>  4.1 硬件調試17</p><p>  4.2 軟件調試17</p><p>

11、;  4.3 時鐘計時檢測17</p><p>  第5章 致謝18</p><p>  第6章 參考文獻19</p><p><b>  附錄(一)20</b></p><p><b>  附錄(二)29</b></p><p><b>  第

12、1章 前言</b></p><p>  單片機自20世紀70年代問世以來,以其極高的性能價格比,受到人們的重視和關注,應用很廣、發(fā)展很快。單片機體積小、重量輕、抗干擾能力強、環(huán)境要求不高、價格低廉、可靠性高、靈活性好、開發(fā)較為容易。由于具有上述優(yōu)點,在我國,單片機已廣泛地應用在工業(yè)自動化控制、自動檢測、智能儀器儀表、家用電器、電力電子、機電一體化設備等各個方面,而51單片機是各單片機中最為典型和最有

13、代表性的一種。這次畢業(yè)設計通過對它的學習、應用,以AT89S51芯片為核心,輔以必要的電路,設計了一個簡易的電子時鐘,它由直流電源供電,通過數(shù)碼管能夠準確顯</p><p>  數(shù)字時鐘是現(xiàn)代社會應用廣泛的計時工具,在航天、電子等科研單位,工廠、醫(yī)院、學校等企事業(yè)單位,各種體育賽事及至我們每個人的日常生活中都發(fā)揮著重要的作用。本系統(tǒng)是基于AT89C51單片機設計的一個具有六位LED顯示的數(shù)字時實時鐘,采用獨立式按

14、鍵進行時間調整,同時引入一個內部充電電源在停止外部供電時,仍具有內部計時的功能。該系統(tǒng)同時具有硬件設計簡單、工作穩(wěn)定性高、價格低廉等優(yōu)點</p><p><b>  第2章 系統(tǒng)設計</b></p><p>  2.1 電路組成及工作原理</p><p>  本文數(shù)字時鐘設計原理主要利用AT89C51單片機,由單片機的P0口控制數(shù)碼管的位顯

15、示, P2口控制數(shù)碼管的段顯示,P1口與按鍵相接用于時間的校正。在設計中引入兩個電源電路,一個是外部電源系統(tǒng)產(chǎn)生+5V電壓,用于給CPU及顯示電路提供工作電壓,這是數(shù)字時鐘正常工作時的總電壓。另一個是備用電源,當外部電源關斷時由它提供工作電壓使CPU繼續(xù)工作,利用單片機的空閑方式降低功耗,數(shù)碼管不顯示但能使計時保持正常,不會造成掉電時計時清零的現(xiàn)象。針對內外兩個電源情況又加入了MC34064電壓檢測電路,用于時實判斷是哪各電源在工作。&

16、lt;/p><p>  整個系統(tǒng)工作時,秒信號產(chǎn)生器是整個系統(tǒng)的時基信號,它直接決定計時系統(tǒng)的精度,將標準秒信號送入“秒計數(shù)器”,“秒計數(shù)器”采用60進制計數(shù)器,每累計60秒發(fā)出一個“分脈沖”信號,該信號將作為“分計數(shù)器”的時鐘脈沖。“分計數(shù)器”也采用60進制計數(shù)器,每累計60分鐘,發(fā)出一個“時脈沖”信號,該信號將被送到“時計數(shù)器”。“時計數(shù)器”采用24進制計時器,可實現(xiàn)對一天24小時的累計。顯示電路將“時”、“分”

17、、“秒”計數(shù)器的輸出,通過六個七段LED顯示器顯示出來。校時電路是直接加一個脈沖信號到時計數(shù)器或者分計數(shù)器或者秒計數(shù)器來對“時”、“分”、“秒”顯示數(shù)字進行校對調整。</p><p>  2.2 硬件部分</p><p>  2.2.1 單片機系統(tǒng)</p><p>  2.2.1.1 單片機是一種集成電路芯片,采用超大規(guī)模技術把具有數(shù)據(jù)處理能力(如算術運

18、算,邏輯運算、數(shù)據(jù)傳送、中斷處理)的微處理器(CPU),隨機存取數(shù)據(jù)存儲器(RAM),只讀程序存儲器(ROM),輸入輸出電路(I/O口),可能還包括定時計數(shù)器,串行通信口(SCI),顯示驅動電路(LCD或LED驅動電路),脈寬調制電路(PWM),模擬多路轉換器及A/D轉換器等電路集成到一塊單塊芯片上,構成一個最小然而完善的計算機系統(tǒng)。這些電路能在軟件的控制下準確、迅速、高效地完成程序設計者事先規(guī)定的任務。</p><

19、p>  本文采用的單片機為AT89C51,AT89C51是一種低功耗、高性能的片內含有4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。它的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多

20、功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。</p><p>  2.2.2.2 AT89C51的主要性能參數(shù):</p><p>  與MCS-51產(chǎn)品指令系統(tǒng)完全兼容</p><p>  4k 字節(jié)可重擦寫FL

21、ASH閃速存儲器</p><p><b>  1000次擦寫周期</b></p><p>  全靜態(tài)操作:0Hz—24MHz</p><p><b>  三級加密程序存儲器</b></p><p>  128×8字節(jié)內部RAM</p><p>  32個可編程I/O

22、口線</p><p>  2個16位定時/計數(shù)器</p><p><b>  6個中斷源</b></p><p>  可編程串行URAR通道</p><p>  低功耗空閑和掉電模式</p><p>  AT89C51提供以下標準功能:4k 字節(jié)FLASH閃速存儲器,128字節(jié)內部RAM,32個I

23、/O口線,2個16位定時/計數(shù)器,一個5向量兩級中斷結構,一個全雙工串行通信口,片內振蕩器及時鐘電路。同時,AT89C51降至0Hz的靜態(tài)邏輯操作,并支持兩種可選的節(jié)電工作模式。空閑方式體制CPU的工作,但允許RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內容,但振蕩器體制工作并禁止其他所有不見工作直到下一個硬件復位。</p><p>  2.2.2 顯示部分</p>

24、<p>  單片機應用系統(tǒng)中使用的顯示器主要有發(fā)光二極管顯示器,簡稱LED(Light Emitting Diode);液晶顯示器LCD(Liquid Crystal Display);近幾年也有配置CRT顯示器的。而目前在單片機系統(tǒng)中,通常用LED數(shù)碼顯示器來顯示各種數(shù)字或符號。由于它具有顯示清晰、亮度高、使用電壓低、壽命長的特點,因此使用非常廣泛。</p><p>  2.2.2.1 LED

25、顯示結構與原理</p><p>  單片機中通常用七段LED構成字型“8”,另外,還有一個小數(shù)點發(fā)光二極管以顯示小數(shù)位!這種顯示器有共陰和共陽兩種!發(fā)光二極管的陽極連在一起的(公共端)稱為共陽極顯示器,陰極連在一起的稱為共陰極顯示器。(如下圖所示)</p><p>  一位顯示器由8個發(fā)光二極管組成,其中,7個發(fā)光二極管構成字型“8”的各個筆劃(段) </p><p&g

26、t;  a_g,另一個小數(shù)點為dp發(fā)光二極管。當在某段發(fā)光二極管上施加一定的正向電壓時,該段筆畫即亮;不加電壓則暗。為了保護各段LED不被損壞,需外加限流電阻。</p><p>  由于共陰極連接需加驅動,故在這里我采用的是共陽陽極連接。</p><p>  以共陽極LED為例,如圖(b)所示,各LED公共陽極K0接高電平,若向各控制端a,b, ┄,g,dp順次送入00011110信號,則

27、該顯示器顯示“⒎”字型。</p><p>  共陰極7段LED顯示數(shù)字0 ~ F、文字、符號及小數(shù)點的編碼(a段為最地位,dp點為最高位)如(圖2-1)所示。</p><p>  共陰極7 段LED顯示字型編碼表</p><p><b>  圖2-1</b></p><p>  2.2.2.2 LED顯示器接口及顯示

28、方式 </p><p>  LED顯示器有靜態(tài)顯示方式和動態(tài)顯示方式兩種。靜態(tài)顯示就是當顯示器顯示某個字符時,相應的段恒定的導通或截止,直到顯示另一個字符為止。LED顯示器工作于靜態(tài)顯示方式時,各位的共陰極接地;若為共陽極則接+5V電源。每位的段選線分別與一個8位鎖存器的輸出口相連,顯示器中的各位相互獨立,而且各位的顯示字符一經(jīng)確定,相應鎖存的輸出將維持不變。</p><p>  正因為如

29、此,靜態(tài)顯示器的亮度較高。這種顯示方式編程容易,管理也較簡單,但占用I/O口線資源較多。因此,在顯示位數(shù)較多的情況下,一般都采用動態(tài)顯示方式。</p><p>  由于所有6位段皆由一個I/O口控制,因此,在每一瞬間,6位LED會顯示相 同的字符。要想每位顯示不同的字符,就必須采用掃描方法輪流點亮各位LED,即在每一瞬間只使某一位顯示字符。在此瞬間,段選控制I/O口輸出相應字符段選碼(字型碼),而位選則控制I/O

30、口在該顯示位送入選通電平(因為LED為共陰,故應送低電平),以保證該位顯示相應字符。如此輪流,使每位分時顯示該位應顯示字符。例如,要求顯示“LL0-20”時,I/O1和I/O2輪流送入段選碼、位選碼</p><p><b>  圖2-2</b></p><p>  在多位LED顯示時,為了簡化電路,降低成本,將所有位的段選線并聯(lián)在一起,由一個8位I/O口控制。而共陰(

31、共陽)極公共端分別由相應的I/O口線控制,實現(xiàn)各位的分時選通。</p><p>  段選碼,位選碼每送入一次后延時1MS,因人的視覺暫留時間為0.1S(100MS),所以每位顯示的時間不能超過20MS,并保持延時一段時間,以造成視覺暫留效果,給人看上去每個數(shù)碼管總在亮。這種方式稱為軟件掃描方式。</p><p>  2.2.3 鍵盤工作模塊</p><p>  

32、按鍵按照結構原理可分為兩類,一類是觸點式開關按鍵,如機械式開關、導電橡膠式開關等;另一類是無觸點式開關按鍵,如電氣式按鍵,磁感應按鍵等。前者造價低,后者壽命長。目前,微機系統(tǒng)中最常見的是觸點式開關按鍵。 </p><p>  按鍵按照接口原理可分為編碼鍵盤與非編碼鍵盤兩類,這兩類鍵盤的主要區(qū)別是識別鍵符及給出相應鍵碼的方法。編碼鍵盤主要是用硬件來實現(xiàn)對鍵的識別,非編碼鍵盤主要是由軟件來實現(xiàn)鍵盤的定義與識別。<

33、;/p><p>  全編碼鍵盤能夠由硬件邏輯自動提供與鍵對應的編碼,此外,一般還具有去抖動和多鍵、竄鍵保護電路。這種鍵盤使用方便,但需要較多的硬件,價格較貴,一般的單片機應用系統(tǒng)較少采用。非編碼鍵盤只簡單地提供行和列的矩陣,其它工作均由軟件完成。由于其經(jīng)濟實用,較多地應用于單片機系統(tǒng)中。在本套設計中由于只需要幾個功能鍵,此時,可采用獨立式按鍵結構</p><p><b>  獨立式按

34、鍵結構 </b></p><p>  獨立式按鍵是直接用I/O口線構成的單個按鍵電路,其特點是每個按鍵單獨占用一根I/O口線,每個按鍵的工作不會影響其它I/O口線的狀態(tài)。獨立式按鍵的典型應用如(圖3.1)所示。</p><p>  獨立式按鍵電路配置靈活,軟件結構簡單,但每個按鍵必須占用一根I/O口線,因此,在按鍵較多時,I/O口線浪費較大,采用。</p><

35、;p>  圖2.1 獨立式按鍵電路</p><p>  2.2.3.2 獨立式按鍵的軟件結構</p><p>  獨立式按鍵的軟件常采用查詢式結構。先逐位查詢每根I/O口線的輸入狀態(tài),如某一根I/O口線輸入為低電平,則可確認該I/O口線所對應的按鍵已按下,然后,再轉向該鍵的功能處理程序。圖3.1中的I/O口采用P1口。</p><p>  2.2.4電

36、壓檢測電路</p><p>  電路核心元件是MC34064,它具有電壓檢測功能。工作方式是低電平有效, 因此將其1腳與單片機的P1.7相接,2腳接VCC,3腳接地。當外部電源+5V供電時,P1.7為高電平送入累加器C,此時C=1調入顯示,時鐘進入正常的計時顯示狀態(tài)。當+5V沒接入而采用備用電源工作時,P1.7為低電平送入累加器C,此時C=0單片機進入空閑方式,關斷顯示但內部計時仍在進行。這樣就能很好地判斷是外部

37、+5V電源供電還是備用電池供電,根據(jù)CPU的工作狀態(tài)進而實現(xiàn)時鐘斷電仍能計時,當重新接入+5V電源時實現(xiàn)計時顯示同步運行的功能。</p><p>  2.2.5備用電池功耗問題</p><p>  在設計方案中采用+3.6V可充電電池作為備用電源,但若把電池直接并聯(lián)在外部+5V電源引腳兩端時,存在著電池功耗問題如:1.接入+5V時會對電池B1進行電流很大的強充電過程,這會直接影響電池的使用

38、壽命。2.停止外部+5V供電時,此時外部電源等效于一個電壓源,充電電池B1既要對CPU供電又要對電壓源供電,這樣會使電池電量消耗過大,使得電池供電效率大大降低。</p><p>  為解決上述問題,我們引入兩個1N5819如圖所示:1.若+5V接入時,一方面為顯示部分和復位電路提供+5V 工作電壓,另一方面通過V8、 R15對電池B1進行涓流充電,同時通過V7向CPU提供工作電壓。從而很好地解決電池充電時,電流過

39、大影響電池使用壽命的問題。2.當外部+5V電源斷開時,由電池B1經(jīng)V7向CPU提供工作電壓,同時由于V8截止故不會造成電池B1對外部的放電,從而提高了電池的供電效率,能夠長時間地為CPU提供工作電壓。如(圖5-1)</p><p><b>  圖5-1</b></p><p>  2.2.6 直流穩(wěn)壓電源部分</p><p>  直流穩(wěn)壓電源是

40、給電子設備提供穩(wěn)定直流電壓的電子電路。這次電路需要的是+5V直流電源。</p><p><b>  6.1設計分析</b></p><p>  本電源設計可采用集成三端穩(wěn)壓器構成,只要加上一些外圍元件即可實現(xiàn)。其框圖和電路分別示于圖2-1和圖2-2所示。</p><p>  圖6-1 直流穩(wěn)壓電源框圖</p><p>

41、  2.2.6.1 主要技術指標</p><p>  輸入交流電壓220V(50~60Hz)。</p><p>  輸出直流電壓5V,輸出電流1A。</p><p>  輸入交流在220V上下波動10%時,輸出電壓相對變化量小于2%。</p><p>  輸入電阻R0<0.1Ω。</p><p>  輸出最大

42、波紋電壓小于10Mv。</p><p><b>  圖6-2</b></p><p>  2.2.6.2 濾波電路</p><p>  它的任務是將全濾波形的輸出通過RC濾波網(wǎng)絡以后變成更平坦的直流電壓,減小脈動,提高整流的效果。這是整流管中通過的電流的瞬間值要比平均值大得多,特別在接通電源瞬間有相當大的沖擊電流(即充電電流)通過整流管,這一點

43、要引起注意。</p><p><b>  電源變壓器</b></p><p>  它的任務是把電源電壓220V變壓到合適的大小。如果U2的值太大,會造成集成端穩(wěn)壓器7805的功豪大,溫升高,且浪費電能。反之,如果U2的值小到一定程度,三端穩(wěn)壓器不能正常工作,失去穩(wěn)壓作用.因此U2的值應大小合適,這個值應該使三端穩(wěn)壓器在交流電網(wǎng)電壓最低和輸出電流最大時能正常工作。而且在

44、正常穩(wěn)壓的前提下,它的壓降盡可能小,以減小功耗。</p><p><b>  整流電路</b></p><p>  它的任務是將正弦波變換成直流電壓。這里一般采用橋式整流電路來實現(xiàn),既可用四個二極管來組成,也可用整流橋堆來完成,只是參數(shù)一定要選擇合理。</p><p><b>  穩(wěn)壓電路</b></p>&

45、lt;p>  要求輸出恒定的直流電壓,且要達到設計中所提出的要求。在此選用一片7805芯片來實現(xiàn)。</p><p>  2.2.7相關參數(shù)計算</p><p>  關于驅動電路中的限流電阻R,通常根據(jù)LED的工作電流計算而得到的。</p><p>  例如:(1.) R1=(VCC-V0)/I0 其中VCC=+5V, V0的壓降為+1.4v,

46、I0的工作電流為10mA 所以R1=(5V-1.4V)/10mA=360Ω,要想得到10mA的工作電流必須使限流電阻大于360Ω,故在電路中我選用了390Ω的電阻。</p><p> ?。?) 對于連接位選顯信號的電阻選用上,由Ic<100Ib,I0=10mA,得Ib>0.1 mA,根據(jù)R2=(VCC-Vbc)/Ib=(5v-0.7v)/0.1 mA=4.3kΩ,若要Ib>0.1 m

47、A則必須使R2>4.3 kΩ,因此選用了比較接近的4.7 kΩ</p><p>  第3章 軟件設計(圖)</p><p>  3.1時鐘主程序流程圖1</p><p>  3.2鍵盤中斷處理程序流程圖2</p><p>  3.3定時中斷服務程序流程圖3</p><p><b>  第4章 系統(tǒng)調試&

48、lt;/b></p><p>  4.1 硬件調試:主要檢查了電路板有無虛焊、短路、連線是否正常,尤其是單片機的各使能端的接線,I/O接口連線是否有誤。由于我們采用了六個數(shù)碼管并聯(lián)接入P2口的段選端,因此接線較多,經(jīng)常容易出現(xiàn)管腳間短路現(xiàn)象。這是硬件設計不足之處,今后將注意元件的選配使設計更簡潔實用。 </p><p>  4.2 軟件調試:在LCA51仿真機上,對定時中斷程序、

49、顯示子程序、按鍵中斷子程序進行了分段調試,結果功能正常。</p><p>  4.3 時鐘計時檢測:通過與其它計時器對比觀察發(fā)現(xiàn)數(shù)字時鐘走時過快,檢查定時中斷程序發(fā)現(xiàn)T0的初始值設定有誤,因此重新設置:</p><p>  根據(jù)T0選擇工作模式1,定時時間為50ms, focs=12MHz, </p><p>  由 T=(2^16-T0初始值) ×

50、;振蕩周期×12</p><p>  設T0的初始值為X,</p><p>  則:(2^16-X)×1/12×10^6s×12=50ms</p><p>  X=15625, </p><p>  轉化二進制值為:X=0011110010111010, 即TH=#3CH,TL=#0BA

51、H</p><p><b>  第5章 致謝</b></p><p>  在設計過程中,通過針對性地查找資料,了解了些電子方面的資料,既增長了自己見識,補充最新的專業(yè)知識,又提高了自己的應用能力。</p><p>  這次對AT89C51有了一個全面的認識,在此基礎上結合以前所學的專業(yè)知識,從而把我所學的知識貫穿到一起,對電子專業(yè)有了一個更全

52、面的認識!</p><p>  總之這次畢業(yè)設計讓我把理論設計和工程實踐相結合、鞏固基礎知識與培養(yǎng)創(chuàng)新意識相結合、個人作用和集體協(xié)作相結合等方面全面的培養(yǎng)學生的全面素質。這些在我今后的學習和工作當中都會有很大的幫助。</p><p>  最后,我要感謝我的指導老師,在這次畢業(yè)設計中給了我許多的幫助。同時也感謝無錫商院明天更美好!</p><p>  第6章 參考

53、文獻</p><p>  [1] 實用單片機電子鐘的設計/丁輝、姚慶文 無線電2003年合訂本(下) </p><p>  [2] 于海生.微型計算機控制技術[M] .清華大學出版社.1999-6[3] 孫涵芳.MCS-51系列單片機原理及應用[M] .北京航空航天大學出版社.1996-4[4] 黃正謹.綜合電子設計與實踐[M] .東南大學出版社.2

54、002-3[5] 楊欣等.電子設計從零開始[M] .清華大學出版社.2005-10[6] 謝嘉奎.電子線路[M] .高等教育出版社.2003-2[7] 夏路易,石宗義.電路原理圖與電路設計教程Protel 99SE[M] .北京希望電子出版社.2002</p><p><b>  附錄(一)</b></p><p>  ;;;;;;;;;;;;;;;;;;;;;

55、;;;;;;;;;</p><p>  ; DEF RAM </p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>  HOUR EQU 20H </p><p>  MIN EQU 21

56、H</p><p>  SEC EQU 22H</p><p>  SEC01 EQU 23H</p><p>  KEYFL EQU 24H</p><p>  KEYREG EQU 25H</p><p>  TMINTFL EQU 26H</p>

57、<p>  SETFL EQU 27H</p><p>  DSPDAT1 EQU 28H</p><p>  DSPDAT2 EQU 29H</p><p>  DSPDAT3 EQU 2AH</p><p>  DSPDAT4 EQU 2BH</p><p>  DSP

58、DAT5 EQU 2CH</p><p>  DSPDAT6 EQU 2DH</p><p>  SHFL EQU 2EH</p><p>  SMFL EQU 2FH</p><p>  SSFL EQU 30H</p><p>  ;;;;;;;;;;;;;;;;

59、;;;;;;;;;;;;;;</p><p>  ; MAIN ;</p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>  ORG 0000H</p><p>  LJMP START</p><p>  ORG 000BH&

60、lt;/p><p>  LJMP TIMEINT</p><p>  ORG 0100H</p><p>  START: MOV R7,#250</p><p>  LOOP: NOP</p><p><b>  NOP</b></p><p>

61、  DJNZ R7,LOOP</p><p>  MOV IE,#00H</p><p>  MOV P0,#0FFH</p><p>  MOV P1,#0FFH</p><p>  MOV P2,#0FFH</p><p>  MOV P3,#0FFH</p><

62、;p>  MOV SETFL,#00H</p><p>  MOV KEYFL,#00H</p><p>  MOV KEYREG,#00H</p><p>  MOV TMINTFL,#00H</p><p>  MOV SHFL,#00H</p><p>  MOV SMF

63、L,#00H</p><p>  MOV SSFL,#00H</p><p>  MOV TMOD,#01H</p><p>  MOV TCON,#00H</p><p>  MOV TH0,#3CH</p><p>  MOV TL0,#0BAH</p><p>

64、;  MOV IE,#82H</p><p>  MOV TCON,#10H</p><p>  MAIN: MOV A,SETFL</p><p>  JNZ MAIN1</p><p>  MOV TMINTFL,#00H</p><p>  MOV R0,HOUR<

65、;/p><p>  MOV A,TMINTFL</p><p>  JNZ MAIN2</p><p>  MOV R1,MIN</p><p>  MOV A,TMINTFL</p><p>  JNZ MAIN2</p><p>  MOV R2,SEC<

66、;/p><p>  MOV C,P1.7</p><p>  JNC MAIN3</p><p>  LCALL CODECHA</p><p>  MAIN1: MOV C,P1.7</p><p>  JNC MAIN3</p><p>  LCALL DISP

67、</p><p>  MOV C,P1.7</p><p>  JNC MAIN3</p><p>  MOV A,P1</p><p>  ANL A,#1FH</p><p>  MOV KEYREG,A</p><p><b>  CLR C&

68、lt;/b></p><p>  SUBB A,#1FH</p><p>  JZ MAIN1A</p><p>  MOV A,KEYFL</p><p>  JNZ MAIN2</p><p>  MOV C,P1.7</p><p>  JNC M

69、AIN3</p><p>  LCALL KEY</p><p>  LJMP MAIN2</p><p>  MAIN1A: LCALL DISP</p><p>  MOV A,P1</p><p>  ANL A,#1FH</p><p><b>  CL

70、R C</b></p><p>  SUBB A,#1FH</p><p>  JNZ MAIN2</p><p>  MOV KEYFL,#00H</p><p>  MAIN2: NOP</p><p>  MOV C,P1.7</p><p>

71、  JC MAIN</p><p>  MAIN3: MOV PCON,#01H</p><p>  LJMP MAIN2</p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>  ; TIMEINT SUB ;</p><p> 

72、 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>  TIMEINT: MOV IE,#00H</p><p>  MOV TCON,#00H</p><p>  MOV TH0,#3CH</p><p>  MOV TL0,#0BAH</p><p>  MOV

73、 TCON,#10H</p><p>  MOV IE,#82H</p><p>  PUSH PSW</p><p>  PUSH ACC</p><p>  INC SEC01</p><p>  MOV A,#19</p><p><b>  CL

74、R C</b></p><p>  SUBB A,SEC01</p><p>  JC TIMEINT1</p><p>  LJMP TIMEINT4</p><p>  TIMEINT1: MOV SEC01,#00H</p><p>  MOV TMINTFL,#0F

75、FH</p><p>  MOV A,SEC</p><p>  ADD A,#1</p><p><b>  DA A</b></p><p>  MOV SEC,A</p><p><b>  CLR C</b></p>&l

76、t;p>  SUBB A,#60H</p><p>  JNC TIMEINT2</p><p>  LJMP TIMEINT4</p><p>  TIMEINT2: MOV SEC,#00H</p><p>  MOV A,MIN</p><p>  ADD A,#1</

77、p><p><b>  DA A</b></p><p>  MOV MIN,A</p><p><b>  CLR C</b></p><p>  SUBB A,#60H</p><p>  JNC TIMEINT3</p><

78、p>  LJMP TIMEINT4</p><p>  TIMEINT3: MOV MIN, #00H</p><p>  MOV A,HOUR</p><p>  ADD A,#1</p><p><b>  DA A</b></p><p>  MOV

79、 HOUR,A</p><p><b>  CLR C</b></p><p>  SUBB A,#24H</p><p>  JC TIMEINT4</p><p>  MOV HOUR,#00H</p><p>  TIMEINT4: POP ACC</p&

80、gt;<p>  POP PSW</p><p><b>  RETI</b></p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>  ;CODECHA SUB ;</p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;

81、;;;</p><p>  CODECHA: MOV A,R0</p><p><b>  SWAP A</b></p><p>  ANL A,#0FH</p><p>  MOV DSPDAT1,A</p><p>  MOV A,R0</p>&l

82、t;p>  ANL A,#0FH</p><p>  MOV DSPDAT2,A</p><p>  MOV A,R1</p><p><b>  SWAP A</b></p><p>  ANL A,#0FH</p><p>  MOV DSPDAT3,A

83、</p><p>  MOV A,R1</p><p>  ANL A,#0FH</p><p>  MOV DSPDAT4,A</p><p>  MOV A,R2</p><p><b>  SWAP A</b></p><p>  ANL

84、 A,#0FH</p><p>  MOV DSPDAT5,A</p><p>  MOV A,R2</p><p>  ANL A,#0FH</p><p>  MOV DSPDAT6,A</p><p>  MOV C,P1.7</p><p>  JNC

85、 CODECHA2</p><p>  MOV DPTR,#TABDSP</p><p>  MOV R0,#DSPDAT1</p><p>  MOV R1,#6</p><p>  CODECHA1: MOV A,@R0</p><p>  MOVC A,@A+DPTR</p&

86、gt;<p>  MOV @R0,A</p><p><b>  INC R0</b></p><p>  DJNZ R1,CODECHA1</p><p>  CODECHA2: RET</p><p>  TABDSP: DB 88H,0BEH,0C4H,94H,0B2H&l

87、t;/p><p>  DB 91H,81H,0BCH,80H,90H,0FFH</p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>  ; DISP SUB ;</p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><

88、;p>  DISP: MOV R2,#6</p><p>  MOV R1,#0FEH</p><p>  MOV R0,#DSPDAT1</p><p>  DISP1: MOV C,P1.7</p><p>  JNC DISP2</p><p>  MOV

89、P2,@R0</p><p>  MOV C,P1.7</p><p>  JNC DISP2</p><p>  MOV P0,R1</p><p>  MOV C,P1.7</p><p>  JNC DISP2</p><p>  LCALL DEL1MS&

90、lt;/p><p>  MOV P2,#0FFH</p><p>  MOV P0,#0FFH</p><p>  MOV A,R1</p><p><b>  RL A</b></p><p>  MOV R1,A</p><p><b&

91、gt;  INC R0</b></p><p>  DJNZ R2,DISP1</p><p>  DISP2: MOV P2,#0FFH</p><p>  MOV P0,#0FFH</p><p><b>  RET</b></p><p>  ;;;;

92、;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>  ; DEL1MS SUB ;</p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>  DEL1MS: MOV C,P1.7</p><p>  JNC DEL1MS2</p>

93、<p>  MOV R6,#249</p><p>  DEL1MS1: MOV C,P1.7</p><p>  JNC DEL1MS2</p><p><b>  NOP</b></p><p>  DJNZ R6,DEL1MS1</p><p>  DEL1

94、MS2: RET</p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>  ; KEY SUB ;</p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>  KEY: LCALL DISP</p><

95、;p>  MOV A,P1</p><p>  ANL A,#1FH</p><p><b>  CLR C</b></p><p>  SUBB A,KEYREG</p><p>  JNZ KEY5</p><p>  MOV KEYFL,#0FFH&l

96、t;/p><p>  MOV A,KEYREG</p><p><b>  RRC A</b></p><p>  JC KEY1</p><p>  MOV C,P1.7</p><p>  JNC KEY5</p><p>  LCALL

97、SHKEY</p><p>  LJMP KEY5</p><p>  KEY1: RRC A</p><p>  JC KEY2</p><p>  MOV C,P1.7</p><p>  JNC KEY5</p><p>  LCALL SMKEY&

98、lt;/p><p>  LJMP KEY5</p><p>  KEY2: RRC A</p><p>  JC KEY3</p><p>  MOV C,P1.7</p><p>  JNC KEY5</p><p>  LCALL SSKEY</p&

99、gt;<p>  LJMP KEY5</p><p>  KEY3: RRC A</p><p>  JC KEY4</p><p>  MOV C,P1.7</p><p>  JNC KEY5</p><p>  LCALL INCKEY</p>

100、<p>  LJMP KEY5</p><p>  KEY4: RRC A</p><p>  JC KEY5</p><p>  MOV C,P1.7</p><p>  JNC KEY5</p><p>  LCALL ENTER</p><p&

101、gt;  KEY5: RET</p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>  ; SHKEY SUB ;</p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>  SHKEY: MOV IE,#00H<

102、;/p><p>  MOV TCON,#00H</p><p>  MOV SETFL,#0FFH</p><p>  MOV SHFL,#0FFH</p><p>  MOV SMFL,#00H</p><p>  MOV SSFL,#00H</p><p>  MO

103、V R0,HOUR</p><p>  MOV R1,#0AAH</p><p>  MOV R2,#0AAH</p><p>  LCALL CODECHA</p><p><b>  RET</b></p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;

104、;;;</p><p>  ; SMKEY SUB ;</p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>  SMKEY: MOV IE,#00H</p><p>  MOV TCON,#00H</p><p>  MOV SE

105、TFL,#0FFH</p><p>  MOV SMFL,#0FFH</p><p>  MOV SHFL,#00H</p><p>  MOV SSFL,#00H</p><p>  MOV R1,MIN</p><p>  MOV R0,#0AAH</p><p&g

106、t;  MOV R2,#0AAH</p><p>  LCALL CODECHA</p><p><b>  RET</b></p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>  ; SSKEY SUB ;</p><p>

107、;  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>  SSKEY: MOV IE,#00H</p><p>  MOV TCON,#00H</p><p>  MOV SETFL,#0FFH</p><p>  MOV SSFL,#0FFH</p><p>

108、;  MOV SHFL,#00H</p><p>  MOV SMFL,#00H</p><p>  MOV R2,SEC</p><p>  MOV R0,#0AAH</p><p>  MOV R1,#0AAH</p><p>  LCALL CODECHA</p>&

109、lt;p><b>  RET</b></p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>  ; INCKEY SUB ;</p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>  INCKEY: MOV

110、 A,SHFL</p><p>  JZ INCKEY1</p><p>  MOV A,HOUR</p><p>  ADD A,#1</p><p><b>  DA A</b></p><p>  MOV HOUR,A</p><p

111、><b>  CLR C</b></p><p>  SUBB A,#24H</p><p>  JC INCKEY1A</p><p>  MOV HOUR,#00H</p><p>  INCKEY1A: MOV R0,HOUR</p><p>  MOV

112、 R1,#0AAH</p><p>  MOV R2,#0AAH</p><p>  LCALL CODECHA</p><p>  LJMP INCKEY3</p><p>  INCKEY1: MOV A,SMFL</p><p>  JZ INCKEY2</p>&l

113、t;p>  MOV A,MIN</p><p>  ADD A,#1</p><p><b>  DA A</b></p><p>  MOV MIN,A</p><p><b>  CLR C</b></p><p>  SUBB

114、A,#60H </p><p>  JC INCKEY2A</p><p>  MOV MIN,#00H</p><p>  INCKEY2A: MOV R1,MIN</p><p>  MOV R0,#0AAH</p><p>  MOV R2

115、,#0AAH</p><p>  LCALL CODECHA</p><p>  LJMP INCKEY3</p><p>  INCKEY2: MOV A,SSFL</p><p>  JZ INCKEY3</p><p>  MOV A,SEC</p><p> 

116、 ADD A,#1</p><p><b>  DA A</b></p><p>  MOV SEC,A</p><p><b>  CLR C</b></p><p>  SUBB A,#60H</p><p>  JC INCKEY3

117、A</p><p>  MOV SEC,#00H</p><p>  INCKEY3A: MOV R2,SEC</p><p>  MOV R0,#0AAH</p><p>  MOV R1,#0AAH</p><p>  LCALL CODECHA</p><p> 

118、 INCKEY3: RET</p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>  ; ENTER SUB ;</p><p>  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p>  ENTER: MOV A,SETFL</p&

119、gt;<p>  JZ ENTER1</p><p>  MOV SEC01,#00H</p><p>  MOV SETFL,#00H</p><p>  MOV SHFL,#00H</p><p>  MOV SMFL,#00H</p><p>  MOV SSF

120、L,#00H</p><p>  MOV TCON,#00H</p><p>  MOV TH0,#3CH</p><p>  MOV TL0,#0BAH</p><p>  MOV IE,#82H</p><p>  MOV TCON,#10H</p><p> 

溫馨提示

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

評論

0/150

提交評論