版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 畢業(yè)設計(論文)</b></p><p> 基于單片機的電子時鐘設計</p><p> 學生姓名: </p><p> 學 號: </p><p> 所在系部: </p><p> 專
2、業(yè)班級: </p><p> 指導老師: </p><p> 日 期: </p><p> Based on single-chip electronic clock design</p><p><b> By</b></p>&
3、lt;p><b> May 2012</b></p><p><b> 學位論文原創(chuàng)性聲明</b></p><p> 本人鄭重聲明:所呈交的學位論文是本人在導師的指導下獨立進行研究所取得 研究成果。除了文中特別加以標注引用的內容外,本論文不包含任何其他個人或集體已經發(fā)表或撰寫的成果作品。本人完全意識到本聲明的法律后果由本人承擔。<
4、;/p><p> 二〇一二年五月二十八日</p><p> 學位論文版權使用授權書</p><p> 本學位論文作者完全了解學員有關保管和使用學位論文的規(guī)定,同意學院保留并向有關學位論文管理部門或機構送交論文的復印和電子版,允許論文被查閱和借閱。本人授權省級優(yōu)秀學士學位輪本評選機構將本學位論文的全部或部分內容編入有關數據庫進行檢索,可以采用影印或縮印掃描等復制手段
5、保存和匯入本學位論文。</p><p> 二〇一二年五月二十八日</p><p><b> 摘 要</b></p><p> 20 世紀末,電子技術獲得了飛速的發(fā)展,在其推動下,現代電子產品幾乎滲透了社 會的各個領域, 有力地推動了社會生產力的發(fā)展和社會信息化程度的提高, 同時也使現代 電子產品性能進一步提高,產品更新換代的節(jié)奏也越
6、來越快. 現代生活的人們越來越重視起了時間觀念, 可以說是時間和金錢劃上了等號. 對于那 些對時間把握非常嚴格和準確的人或事來說, 時間的不準確會帶來非常大的麻煩, 所以以 數碼管為顯示器的時鐘比指針式的時鐘表現出了很大的優(yōu)勢. 數碼管顯示的時間簡單明了 而且讀數快,時間準確顯示到秒.而機械式的依賴于晶體震蕩器,可能會導致誤差. 數字鐘是采用數字電路實現對"時""分""秒"數字
7、顯示的計時裝置.數字鐘的精度,穩(wěn)定度遠遠超過老式機械鐘.</p><p> 在這次設計中,我們采用 LED 數碼管顯示時,分,秒, 以 24 小時計時方式,根據數碼管動態(tài)顯示原理來進行顯示,用 12MHz 的晶振產生振蕩脈 沖,定時器計數.在此次設計中,電路具有顯示時間的其本功能,還可以實現對時間的調 整.數字鐘是其小巧,價格低廉,走時精度高,使用方便,功能多,便于集成化而受廣大 消費的喜愛,因此得到了廣泛的使
8、用. </p><p> 關鍵字:數字電子鐘 單片機</p><p><b> Abstract</b></p><p> At the end of the 20th century, electronic technology has experienced rapid growth, the modern electronic pr
9、oducts, almost permeated the various sectors of society, and promoted the development of social productive forces and the social informatization level, but also improve the modern electronic products to further improve t
10、he performance, product update rhythm also more and more quickly. Modern life of people pay more and more attention to the concept of time, money and time on the hospital. </p><p> In this design, we adopt
11、LED digital display tube, minutes and seconds, when in 24 hours time, according to the principle of dynamic display of digital tube to show, with the crystals 12MHz produce oscillation pulses, timer count. In this design
12、, the circuit has its time, still can realize the function of the time. A digital clock is its small, inexpensive, high precision, easy to use and when, the function is much, facilitate integration by vast consumption, s
13、o it has been widely used.</p><p> Key words: digital electric clock microcontroller.</p><p><b> 目 錄</b></p><p><b> 摘 要I</b></p><p> A
14、bstractII</p><p><b> 第一章引言7</b></p><p> 第二章方案論證與比較8</p><p> 2.1數字時鐘方案8</p><p> 2.2數碼管顯示方案8</p><p> 第三章系統設計9</p><p>&
15、lt;b> 3.1總體設計9</b></p><p> 3.1.1系統說明9</p><p> 3.1.2系統框圖9</p><p> 3.2模塊設計10</p><p> 3.2.1電源部分10</p><p> 3.2.2復位電路10</p><p>
16、; 3.2.3程序下載接口11</p><p> 3.2.4位選部分11</p><p> 3.2.5數碼管的連接電路12</p><p> 3.2.6控制部分13</p><p> 第四章原理圖與PCB圖15</p><p> 第五章軟件設計16</p><p>
17、 5.1程序流程圖17</p><p><b> 5.2源程序19</b></p><p><b> 第六章總結25</b></p><p> 6.1物品清單與元件特性25</p><p> 6.2設計總結26</p><p><b> 參考文
18、獻28</b></p><p><b> 致 謝30</b></p><p><b> 引 言</b></p><p> 1.1 電子時鐘的研究背景及國內外發(fā)展現狀</p><p> 時鐘,自從它發(fā)明的那天起,就成為人類的朋友,但隨著時間的推移,科學技術的不斷發(fā)展,人們對
19、時間計量的精度要求越來越高,應用越來越廣。怎樣讓時鐘更好的為人民服務,怎樣讓我們的老朋友煥發(fā)青春呢?這就要求人們不斷設計出新型時鐘。</p><p> 現今,高精度的計時工具大多數都使用了石英晶體振蕩器,由于電子鐘,石英表,石英鐘都采用了石英技術,因此走時精度高,穩(wěn)定性好,使用方便,不需要經常調校,數字式電子鐘用集成電路計時時,譯碼代替機械式傳動,用LED顯示器代替顯示器代替指針顯示進而顯示時間,減小了計時誤差
20、,這種表具有時,分,秒顯示時間的功能,還可以進行時和分的校對,片選的靈活性好。</p><p> 時鐘電路在計算機系統中起著非常重要的作用,是保證系統正常工作的基礎。在一個單片機應用系統中,時鐘有兩方面的含義:一是指為保障系統正常工作的基準振蕩定時信號,主要由晶振和外圍電路組成,晶振頻率的大小決定了單片機系統工作的快慢;二是指系統的標準定時時鐘,即定時時間,它通常有兩種實現方法:一是用軟件實現,即用單片機內部的
21、可編程定時/計數器來實現,但誤差很大,主要用在對時間精度要求不高的場合;二是用專門的時鐘芯片實現,在對時間精度要求很高的情況下,通常采用這種方法,典型的時鐘芯片有:DS1302,DS12887,X1203等都可以滿足高精度的要求。</p><p> 本文主要介紹用單片機內部的定時/計數器來實現電子時鐘的方法,本設計由單片機AT89S51芯片和LED數碼管為核心,輔以必要的電路,構成了一個單片機電子時鐘。<
22、/p><p> 第二章 方案論證與比較</p><p><b> 2.1數字時鐘方案</b></p><p> 數字時鐘是本設計的最主要的部分。根據需要,可利用兩種方案實現。</p><p> 方案一:本方案采用Dallas公司的專用時鐘芯片DS12887A。該芯片內部采用石英晶體振蕩器,其芯片精度不大于10ms/年
23、,且具有完備的時鐘鬧鐘功能,因此,可直接對其以用于顯示或設置,使得軟件編程相對簡單。為保證時鐘在電網電壓不足或突然掉電等突發(fā)情況下仍能正常工作,芯片內部包含鋰電池。當電網電壓不足或突然掉電時,系統自動轉換到內部鋰電池供電系統。而且即使系統不上電,程序不執(zhí)行時,鋰電池也能保證芯片的正常運行,以備隨時提供正確的時間。</p><p> 方案二:本方案完全用軟件實現數字時鐘。原理為:在單片機內部存儲器設三個字節(jié)分別存
24、放時鐘的時、分、秒信息。利用定時器與軟件結合實現1秒定時中斷,每產生一次中斷,存儲器內相應的秒值加1;若秒值達到60,則將其清零,并將相應的分字節(jié)值加1;若分值達到60,則清零分字節(jié),并將時字節(jié)值加1;若時值達到24,則將十字節(jié)清零。該方案具有硬件電路簡單的特點。但由于每次執(zhí)行程序時,定時器都要重新賦初值,所以該時鐘精度不高。而且,由于是軟件實現,當單片機不上電,程序不執(zhí)行時,時鐘將不工作。</p><p>
25、基于硬件電路的考慮,本設計采用方案二完成數字時鐘的功能。</p><p> 2.2數碼管顯示方案</p><p> 方案一:靜態(tài)顯示。所謂靜態(tài)顯示,就是當顯示器顯示某一字符時,相應的發(fā)光二極管恒定的導通或截止。該方式每一位都需要一個8 位輸出口控制。靜態(tài)顯示時較小的電流能獲得較高的亮度,且字符不閃爍。但當所顯示的位數較多時,靜態(tài)顯示所需的I/O口太多,造成了資源的浪費。</p&g
26、t;<p> 方案二:動態(tài)顯示。所謂動態(tài)顯示就是一位一位的輪流點亮各個位,對于顯示器的每一位來說,每隔一段時間點亮一次。利用人的視覺暫留功能可以看到整個顯示,但必須保證掃描速度足夠快,字符才不閃爍。顯示器的亮度既與導通電流有關,也于點亮時間與間隔時間的比例有關。調整參數可以實現較高穩(wěn)定度的顯示。動態(tài)顯示節(jié)省了I/O口,降低了能耗。</p><p> 從節(jié)省I/O口和降低能耗出發(fā),本設計采用方案二
27、。</p><p><b> 第三章 系統設計</b></p><p><b> 3.1總體設計</b></p><p><b> 3.1.1系統說明</b></p><p> 利用單片機(AT89S51)制作簡易電子時鐘,由六個LED數碼管分別顯示小時十位、小時個位
28、、分鐘十位、分鐘個位、秒鐘十位、秒鐘個位。6個PNP管(9012)分別控制六個數碼管的亮滅,一個按鍵用于時間調整。</p><p><b> 3.1.2系統框圖</b></p><p><b> 圖3-1</b></p><p><b> 3.2模塊設計</b></p><p
29、><b> 3.2.1電源部分</b></p><p><b> 圖3-2</b></p><p> 如圖3-2所示,從外部引入4.5V的直流電,為單片機、復位電路提供電源。</p><p><b> 3.2.2復位電路</b></p><p><b>
30、 圖3-3</b></p><p> 如圖3-3所示,復位電路主要由型號為1N4148的二極管,型號為10UF/16V的電解電容,型號為104的瓷片電容,10K的電阻以及按鍵S1構成,S1接芯片的相應引腳RST,當開關按下時引腳RST為高電平1,斷開時引腳為低電平0。</p><p> 3.2.3程序下載接口</p><p><b>
31、圖3-4</b></p><p> 如圖3-4所示,由AT89S ISP構成的兩排十針下載口,板圖上有一個小方框,為1號引角;下載線的凸口為正方向,凸口的右側邊的第一個插孔為1號引角。</p><p><b> 3.2.4位選部分</b></p><p><b> 圖3-5</b></p>
32、<p> 圖3-5為位選電路,三極管的集電極接數碼管的公共端,當P2口對應的引腳輸出高電平時三極管導通,對應的數碼管顯示數據。這樣,在同一時刻,6位LED中只有選通的那1位顯示出字符,而其他5位則是熄滅的。同樣,在下一時刻,只讓下一位的位選線處于選通狀態(tài),而其他個位的位選線處于關閉狀態(tài),在段碼線上輸出將要顯示字符的段碼,則同一時刻,只有選通位顯示出相應的字符,而其他各位則是熄滅的。如此循環(huán)下去,就可以使各位顯示出將要顯示的字
33、符。雖然這些字符是在不同時刻出現的,而在同一時刻,只有一位顯示,其他各位熄滅,但由于LED的余輝和人眼的視覺暫留作用,只要每位顯示間隔足夠短,則可以造成多位同時亮的假象,達到同時顯示的效果。</p><p> 3.2.5數碼管的連接電路</p><p><b> 圖3-6</b></p><p> 圖3-6為數碼管的引腳圖,每位的段碼線(
34、a,b,c,d,e,f,g,dp)分別與1個8位的鎖存器輸出相連,由AT89S51控制組合0-9十個數據,如令其顯示1則b,c引腳(即2,3引腳)送高電平,此時數碼管顯示1。由于各位的段碼線并聯,8位I/O口輸出段碼對各個顯示位來說都是相同的。</p><p><b> 3.2.6控制部分</b></p><p><b> 圖3-7</b>&
35、lt;/p><p> AT89S51是美國ATMEL公司生產的低功耗,高性能CMOS 8位單片機,片內含4K bytes的可系統編程的Flash只讀程序存儲器,器件采用ATMEL公司的高密度,非易失性存儲技術生產,兼容標準8051指令系統及引腳。AT89S51提供以下標準功能:4K字節(jié)Flash閃速存儲器,128字節(jié)內部RAM,32I/O口線,看門狗(WDT),兩個數據指針,兩個16位定時/計數器,一個5向量兩級中
36、斷結構,一個全雙工串行通信口,片內振蕩器及時鐘電路。</p><p> 如圖3-7所示,AT89S51有40引腳,雙列直插(DIP)封裝,所用引腳功能如下:</p><p> VCC ——運行時加+4.5V</p><p> GND ——接地</p><p> XTAL1 ——振蕩器反相放大器及內部時鐘發(fā)生器的輸入
37、端</p><p> XTAL2 ——振蕩器反相放大器的輸出端</p><p> RST ——復位輸入,高電平有效,在晶振工作時,在RST引腳上作用2個機器周期以上的高電平,將使單片機復位。WDT溢出將使該引腳輸出高電平,設置SFT AUXR的DISRTO位(地址8EH)可打開或關閉該功能。DISRTO位缺省為RESET輸出高電平打開狀態(tài)。</p><
38、p> EA/VPP ——片外程序存儲器訪問允許信號。欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地),如果EA端為高電平(接Vcc端),CPU則執(zhí)行內部程序存儲器中的指令。</p><p> P1口,P2口——P1,P2是一組帶內部上拉電阻的8位雙向I/O口。運行時通過P1口控制驅動電路的工作,將數據送到數碼管,顯示相應的段碼,為了達到減少功耗或滿足端口對
39、最大電流的限制,應加上一限流電阻。P2.0——P2.5口控制數碼管的位選,使六個數碼管輪流顯示數據,等于1時位選三極管導通,等于0 時位選三極管截止。</p><p> 無自鎖開關——(S2-P3.7)開關接相應引腳P3.7,當開關按下時,相應引腳為低電平0,斷開時引腳為高電平1。</p><p> 第四章 原理圖與PCB圖</p><p><b>
40、 圖4-1</b></p><p><b> 第五章 軟件設計</b></p><p><b> 5.1程序流程圖</b></p><p><b> 5.2源程序</b></p><p> 表5-1 P1口對應段碼及數值:</p><p
41、> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ;; 中斷入口程序;;</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b> ;</b></p><p> ORG
42、0000H;程序執(zhí)行開始地址</p><p> LJMP START;跳到標號START執(zhí)行</p><p> ORG 0003H;外中斷0中斷程序入口</p><p> RETI;外中斷0中斷返回</p><p> ORG 000BH;定時器T0中斷程序入口</p><p
43、> LJMP INTT0;跳至INTTO執(zhí)行</p><p> ORG 0013H;外中斷1中斷程序入口</p><p> RETI ;外中斷1中斷返回</p><p> ORG 001BH;定時器T1中斷程序入口</p><p> LJMP INTT1;跳至INTT
44、1執(zhí)行</p><p> ORG 0023H;串行中斷程序入口地址</p><p> RETI;串行中斷程序返回</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ;; 主 程 序 ;;</p><p>
45、 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b> ;</b></p><p> START: MOV R0,#70H ;清70H-7AH共11個內存單元</p><p> MOV R7,#0BH </p><p> ;clr
46、 P3.7;</p><p> CLEARDISP: MOV @R0,#00H ;</p><p> INC R0 ;</p><p> DJNZ R7,CLEARDISP ;</p><p> MOV 20H,#00H ;清20H(標志用)<
47、;/p><p> MOV 7AH,#0AH ;放入"熄滅符"數據</p><p> MOV TMOD,#11H ;設T0、T1為16位定時器</p><p> MOV TL0,#0B0H ;50MS定時初值(T0計時用)</p><p> MOV TH0,#3CH
48、 ;50MS定時初值</p><p> MOV TL1,#0B0H ;50MS定時初值(T1閃爍定時用)</p><p> MOV TH1,#3CH ;50MS定時初值</p><p> SETB EA ;總中斷開放</p><p> SETB E
49、T0 ;允許T0中斷</p><p> SETB TR0 ;開啟T0定時器</p><p> MOV R4,#14H ;1秒定時用初值(50MS×20)</p><p> START1: LCALL DISPLAY ;調用顯示子程序</p>&l
50、t;p> JNB P3.7,SETMM1 ;P3.7口為0時轉時間調整程序 </p><p> SJMP START1 ;P3.7口為1時跳回START1</p><p> SETMM1: LJMP SETMM ;轉到時間調整程序SETMM</p><p><b> ;</
51、b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ;; 1秒計時程序;;</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b> ;T0中斷服務程序<
52、/b></p><p> INTT0: PUSH ACC ;累加器入棧保護</p><p> PUSH PSW ;狀態(tài)字入棧保護</p><p> CLR ET0 ;關T0中斷允許</p><p> CLR TR0 ;關閉定
53、時器T0</p><p> MOV A,#0B7H ;中斷響應時間同步修正</p><p> ADD A,TL0 ;低8位初值修正</p><p> MOV TL0,A ;重裝初值(低8位修正值)</p><p> MOV A,#3CH ;高8位初值修
54、正</p><p> ADDC A,TH0 ;</p><p> MOV TH0,A ;重裝初值(高8位修正值)</p><p> SETB TR0 ;開啟定時器T0</p><p> DJNZ R4, OUTT0 ;20次中斷未到中斷退出<
55、/p><p> ADDSS: MOV R4,#14H ;20次中斷到(1秒)重賦初值</p><p> MOV R0,#71H ;指向秒計時單元(71H-72H)</p><p> ACALL ADD1 ;調用加1程序(加1秒操作)</p><p> MOV A,
56、R3 ;秒數據放入A(R3為2位十進制數組合)</p><p> CLR C ;清進位標志</p><p> CJNE A,#60H,ADDMM ;</p><p> ADDMM: JC OUTT0 ;小于60秒時中斷退出</p><p&
57、gt; ACALL CLR0 ;大于或等于60秒時對秒計時單元清0</p><p> MOV R0,#77H ;指向分計時單元(76H-77H)</p><p> ACALL ADD1 ;分計時單元加1分鐘</p><p> MOV A,R3 ;分數據
58、放入A</p><p> CLR C ;清進位標志</p><p> CJNE A,#60H,ADDHH ;</p><p> ADDHH: JC OUTT0 ;小于60分時中斷退出</p><p> ACALL CLR0 ;大
59、于或等于60分時分計時單元清0</p><p> MOV R0,#79H ;指向小時計時單(78H-79H)</p><p> ACALL ADD1 ;小時計時單元加1小時</p><p> MOV A,R3 ;時數據放入A</p><p> CLR
60、 C ;清進位標志</p><p> CJNE A,#24H,HOUR ;</p><p> HOUR: JC OUTT0 ;小于24小時中斷退出</p><p> ACALL CLR0 ;大于或等于24小時小時計時單元清0</p>&
61、lt;p> OUTT0: MOV 72H,76H ;中斷退出時將分、時計時單元數據移</p><p> MOV 73H,77H ;入對應顯示單元</p><p> MOV 74H,78H ;</p><p> MOV 75H,79H ;</p>
62、<p> POP PSW ;恢復狀態(tài)字(出棧)</p><p> POP ACC ;恢復累加器</p><p> SETB ET0 ;開放T0中斷</p><p> RETI ;中斷返回</p>
63、<p><b> ;</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ;; 閃動調時 程 序 ;;</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p&
64、gt; ;T1中斷服務程序,用作時間調整時調整單元閃爍指示</p><p> INTT1: PUSH ACC ;中斷現場保護</p><p> PUSH PSW ;</p><p> MOV TL1, #0B0H ;裝定時器T1定時初值</
65、p><p> MOV TH1, #3CH ;</p><p> DJNZ R2,INTT1OUT ;0.3秒未到退出中斷(50MS中斷6次)</p><p> MOV R2,#06H ;重裝0.3秒定時用初值</p><p> CPL 02H
66、 ;0.3秒定時到對閃爍標志取反</p><p> JB 02H,FLASH1 ;02H位為1時顯示單元"熄滅"</p><p> MOV 72H,76H ;02H位為0時正常顯示</p><p> MOV 73H,77H
67、 ;</p><p> MOV 74H,78H ;</p><p> MOV 75H,79H ;</p><p> INTT1OUT: POP PSW ;恢復現場</p><p> POP ACC
68、 ;</p><p> RETI ;中斷退出</p><p> FLASH1: JB 01H,FLASH2 ;01H位為1時,轉小時熄滅控制</p><p> MOV 72H,7AH ;01H位為0時,"熄滅符
69、"數據放入分</p><p> MOV 73H,7AH ;顯示單元(72H-73H),將不顯示分數據</p><p> MOV 74H,78H ;</p><p> MOV 75H,79H ;</p><p> AJMP IN
70、TT1OUT ;轉中斷退出</p><p> FLASH2: MOV 72H,76H ;01H位為1時,"熄滅符"數據放入小時</p><p> MOV 73H,77H ;顯示單元(74H-75H),小時數據將不顯示</p><p> MOV
71、 74H,7AH ;</p><p> MOV 75H,7AH ;</p><p> AJMP INTT1OUT ;轉中斷退出</p><p><b> ;</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
72、;;;</p><p> ;; 加1子 程 序 ;;</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b> ;</b></p><p> ADD1: MOV A,@R0 ;取當前計時單元數據到A</p&g
73、t;<p> DEC R0 ;指向前一地址</p><p> SWAP A ;A中數據高四位與低四位交換</p><p> ORL A,@R0 ;前一地址中數據放入A中低四位</p><p> ADD A,#01H ;A加1操作</p><p>
74、; DA A ;十進制調整</p><p> MOV R3,A ;移入R3寄存器</p><p> ANL A,#0FH ;高四位變0</p><p> MOV @R0,A ;放回前一地址單元</p><p> MOV A,R3 ;取回R3
75、中暫存數據</p><p> INC R0 ;指向當前地址單元</p><p> SWAP A ;A中數據高四位與低四位交換</p><p> ANL A,#0FH ;高四位變0</p><p> MOV @R0,A ;數據放入當削地址單元中</p&
76、gt;<p> RET ;子程序返回</p><p><b> ;</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ;; 清零程序 ;;</p><p> ;;;;;
77、;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><b> ;對計時單元復零用</b></p><p> CLR0: CLR A ;清累加器</p><p> MOV @R0,A ;清當前地址單元</p><p> DEC
78、 R0 ;指向前一地址</p><p> MOV @R0,A ;前一地址單元清0</p><p> RET ;子程序返回</p><p><b> ;</b></p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
79、;;;;;;;;</p><p> ;; 時鐘調整程序;;</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ;當調時按鍵按下時進入此程序</p><p> SETMM: cLR ET0 ;關定時器T0中斷</p
80、><p> CLR TR0 ;關閉定時器T0</p><p> LCALL DL1S ;調用1秒延時程序</p><p> JB P3.7,CLOSEDIS ;鍵按下時間小于1秒,關閉顯示(省電)</p><p> MOV R2,#06H ;進入調時狀
81、態(tài),賦閃爍定時初值</p><p> SETB ET1 ;允許T1中斷</p><p> SETB TR1 ;開啟定時器T1</p><p> SET2: JNB P3.7,SET1 ;P3.7口為0(鍵未釋放),等待</p><p> SETB 0
82、0H ;鍵釋放,分調整閃爍標志置1</p><p> SET4: JB P3.7,SET3 ;等待鍵按下</p><p> LCALL DL05S ;有鍵按下,延時0.5秒</p><p> JNB P3.7,SETHH ;按下時間大于0.5秒轉調小時狀態(tài)</p>
83、;<p> MOV R0,#77H ;按下時間小于0.5秒加1分鐘操作</p><p> LCALL ADD1 ;調用加1子程序</p><p> MOV A,R3 ;取調整單元數據</p><p> CLR C ;清進位標志</p&g
84、t;<p> CJNE A,#60H,HHH ;調整單元數據與60比較</p><p> HHH: JC SET4 ;調整單元數據小于60轉SET4循環(huán)</p><p> LCALL CLR0 ;調整單元數據大于或等于60時清0</p><p> CLR C
85、 ;清進位標志</p><p> AJMP SET4 ;跳轉到SET4循環(huán)</p><p> CLOSEDIS: SETB ET0 ;省電(LED不顯示)狀態(tài)。開T0中斷</p><p> SETB TR0 ;開啟T0定時器(開時鐘)</p><
86、p> CLOSE: JB P3.7,CLOSE ;無按鍵按下,等待。</p><p> LCALL DISPLAY ;有鍵按下,調顯示子程序延時削抖</p><p> JB P3.7,CLOSE ;是干擾返回CLOSE等待</p><p> WAITH: JNB P3.7,W
87、AITH ;等待鍵釋放</p><p> LJMP START1 ;返回主程序(LED數據顯示亮)</p><p> SETHH: CLR 00H ;分閃爍標志清除(進入調小時狀態(tài))</p><p> SETHH1: JNB P3.7,SET5 ;等待鍵釋放</p>
88、<p> SETB 01H ;小時調整標志置1</p><p> SET6: JB P3.7,SET7 ;等待按鍵按下</p><p> LCALL DL05S ;有鍵按下延時0.5秒</p><p> JNB P3.7,SETOUT ;按下時間大于0.5秒
89、退出時間調整</p><p> MOV R0,#79H ;按下時間小于0.5秒加1小時操作</p><p> LCALL ADD1 ;調加1子程序</p><p> MOV A,R3 ;</p><p> CLR C ;</
90、p><p> CJNE A,#24H,HOUU ;計時單元數據與24比較</p><p> HOUU: JC SET6 ;小于24轉SET6循環(huán)</p><p> LCALL CLR0 ;大于或等于24時清0操作</p><p> AJMP SET6
91、 ;跳轉到SET6循環(huán)</p><p> SETOUT: JNB P3.7,SETOUT1 ;調時退出程序。等待鍵釋放</p><p> LCALL DISPLAY ;延時削抖</p><p> JNB P3.7,SETOUT ;是抖動,返回SETOUT再等待</p><
92、;p> CLR 01H ;清調小時標志</p><p> CLR 00H ;清調分標志</p><p> CLR 02H ;清閃爍標志</p><p> CLR TR1 ;關閉定時器T1</p><
93、p> CLR ET1 ;關定時器T1中斷</p><p> SETB TR0 ;開啟定時器T0</p><p> SETB ET0 ;開定時器T0中斷(計時開始)</p><p> LJMP START1 ;跳回主程序<
94、;/p><p> SET1: LCALL DISPLAY ;鍵釋放等待時調用顯示程序(調分)</p><p> AJMP SET2 ;防止鍵按下時無時鐘顯示</p><p> SET3: LCALL DISPLAY ;等待調分按鍵時時鐘顯示用</p><p>
95、 AJMP SET4</p><p> SET5: LCALL DISPLAY ;鍵釋放等待時調用顯示程序(調小時)</p><p> AJMP SETHH1 ;防止鍵按下時無時鐘顯示</p><p> SET7: LCALL DISPLAY ;等待調小時按鍵時時鐘顯示用&
96、lt;/p><p> AJMP SET6</p><p> SETOUT1: LCALL DISPLAY ;退出時鐘調整時鍵釋放等待</p><p> AJMP SETOUT ;防止鍵按下時無時鐘顯示</p><p><b> ;</b></p>
97、<p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ;; 顯示程序 ;;</p><p> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p> ; 顯示數據在70H-75H單元內,用六位LED共陽數碼管顯示,P0口輸
98、出段碼數據,P3口作</p><p> ; 掃描控制,每個LED數碼管亮1MS時間再逐位循環(huán)。</p><p> DISPLAY: MOV R1,#70H ;指向顯示數據首址</p><p> MOV R5,#0FEH ;掃描控制字初值</p><p> PLAY: MOV
99、A,R5 ;掃描字放入A</p><p> MOV P2,A ;從P2口輸出</p><p> MOV A,@R1 ;取顯示數據到A</p><p> MOV DPTR,#TAB ;取段碼表地址</p><p> MOVC
100、 A,@A+DPTR ;查顯示數據對應段碼</p><p> MOV P1,A ;段碼放入P0口</p><p> LCALL DL1MS ;顯示1MS</p><p> INC R1 ;指向下一地址</p><p> M
101、OV A,R5 ;掃描控制字放入A</p><p> JNB ACC.5,ENDOUT ;ACC.5=0時一次顯示結束</p><p> RL A ;A中數據循環(huán)左移</p><p> MOV R5,A ;放回R5內</p&g
102、t;<p> AJMP PLAY ;跳回PLAY循環(huán)</p><p> ENDOUT: SETB P2.5 ;一次顯示結束,P2口復位</p><p> MOV P1,#0FFH ;P0口復位</p><p> RET
103、 ;子程序返回</p><p> TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH</p><p> ;1MS延時程序,LED顯示程序用</p><p> DL1MS: MOV R6,#14H</p><p> DL1: MOV R7,#19H</p>
104、<p> DL2: DJNZ R7,DL2</p><p> DJNZ R6,DL1</p><p><b> RET</b></p><p> ;20MS延時程序,采用調用顯示子程序以改善LED的顯示閃爍現象</p><p> DS20MS: ACALL DISPLAY&l
105、t;/p><p> ACALL DISPLAY</p><p> ACALL DISPLAY</p><p><b> RET</b></p><p> ;延時程序,用作按鍵時間的長短判斷</p><p> DL1S: LCALL DL05S</p>
106、<p> LCALL DL05S</p><p><b> RET</b></p><p> DL05S: MOV R3,#20H ;8毫秒*32=0.196秒</p><p> DL05S1: LCALL DISPLAY</p>&
107、lt;p> DJNZ R3,DL05S1</p><p><b> RET</b></p><p> END ;程序結束</p><p><b> 第六章 總結</b></p><p> 6.1物品清單與元件特性
108、</p><p> 表6-1 物品清單:</p><p> 表6-2 AT89S51功能特性:</p><p><b> 6.2設計總結</b></p><p> 本設計能夠很準確的走時,并能夠通過硬件對時鐘進行時間調整。</p><p><b> 功能介紹:</b&g
109、t;</p><p> 顯示XX:XX:XX時間</p><p> 時間可調:調整鍵(S2)按下時間小于1秒(t<1s),關閉顯示(省電)。調整鍵(S2)按下(t>0.5s)分鐘位閃亮,此時按下S2鍵(t<0.5s)該個位數值加1,當加到9時,再按下S2鍵則該個位顯示0,分鐘十位加1。繼續(xù)按下調整鍵(S2)(t>0.5s)時鐘位閃亮,此時按下S2鍵(t<0
110、.5s)該個位數值加1,當加到9時再按下加S2鍵則該個位顯示0,時鐘十位加1。繼續(xù)按下調整鍵(S2)(t>0.5s),返回到正常顯示狀態(tài)。</p><p> 下載線和電源線插接說明:1.下載線插接說明:兩排十針下載口,板圖上都有一個小方框,為1號引角;下載線的凸口為正方向,凸口的右側邊的第一個插孔為1號引角,這一點一定要切記,不然的話程序下載不進去。2.電源線插接說明:電池盒的紅線為正,黑線為負。板子所留
111、出來的電源插口用VCC(表示電源正)和GND(表示電源負)標明。</p><p><b> 設計心得與總結</b></p><p> ?。?)通過完成數字鐘的設計與制作調試,掌握單片機應用系統的設計過程。單品機應用系統開發(fā)的一般工作流程包括:項目任務的需求分析,制定系統軟件、硬件方案,系統硬件設計與制作,系統軟件模塊劃分與設計,系統軟、硬件聯調,程序固化,脫機運行等
112、。</p><p> ?。?)學習自頂向下的模塊化程序設計方法,構建出程序設計的整體框架,包括主程序流程和子模塊流程的設計、各功能模塊之間的調用關系。在細化流程圖的基礎上,合理分配系統變量資源,即可輕松編寫程序代碼。</p><p> ?。?)在調試程序之前,一定要預先將源程序分析透徹,這有助于在系統調試過程中,通過現象分析判斷產生故障的原因及故障可能存在的大致范圍,快速有效地排查和縮小故
113、障范圍。</p><p><b> 參考文獻</b></p><p> [1] 于海生.微型計算機控制技術[M] .清華大學出版社</p><p> [2] 孫涵芳.MCS-51 系列單片機原理及應用[M] .北京航空航天大學出版社</p><p> [3] 黃正謹.綜合電子設計與實踐[M] .東南大學出版社&l
114、t;/p><p> [4] 楊欣等.電子設計從零開始[M] .清華大學出版社</p><p> [5] 謝嘉奎.電子線路[M] .高等教育出版社</p><p> [6] 王毓銀.數字電路邏輯設計[M] .高等教育出版社</p><p> [7] 邱關源.電路[M] .高等教育出版社</p><p> [9] 譚
115、浩強. C 語音程序設計. 北京航空航天出版社</p><p> [10] 劉華東. 單片機原理與應用. 北京電子工業(yè)出版社</p><p> [11] 焦輜厚. 子工藝實習教程.哈爾濱:哈爾濱工業(yè)大學出版社</p><p> [12] 謝自美. 電子系統設計. 武漢華中科技大學出版社</p><p> [13] 李 軍. 51 系列
116、單片機高級實例開發(fā)指南. 北京航空航天大學出版社</p><p> [14] 李光飛. 單片機設計實例指導.北京航空航天大學出版社</p><p> [15] 林晶.Protel DXP 設計與實踐 .電子工業(yè)出版社</p><p> [16] The Mathworks,Inc.MATLAB user’S guide</p><p>
117、 [17] The Mathworks,Inc.MATLAB Referrence guide</p><p> [18] The Mathworks,Inc.Signal Processing Toolbox Referrence guide</p><p> [19] TMS320C54x DSP Assembly Language Tools User’S Guide Texa
118、s Instruments</p><p> [20] [美]M.Morris Mano.Digital Design.北京:高等教育出版社</p><p><b> 致 謝</b></p><p> 本設計的完成是在我們的導師xx老師的細心指導下進行的。在每次設計遇到問題時xx老師都會不辭辛苦幫助我們才使得我的設計順利的進行。從設計
119、的選題到資料的搜集直至最后設計的修改的整個過程中,花費了xx老師很多的寶貴時間和精力,在此向導師表示衷心地感謝!導師嚴謹的治學態(tài)度,開拓進取的精神和高度的責任心都將使學生受益終生!</p><p> 還要感謝和我同一設計小組的幾位同學,是你們在我平時設計中和我一起探討問題,并指出我設計上的誤區(qū),使我能及時的發(fā)現問題把設計順利的進行下去,沒有你們的幫助我不可能這樣順利地結稿,在此表示深深的謝意。 </p&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文---基于單片機的電子時鐘設計
- 畢業(yè)論文--基于單片機的電子時鐘設計
- 畢業(yè)論文基于單片機的電子時鐘設計
- 基于單片機的電子時鐘設計畢業(yè)論文
- 單片機的電子時鐘設計畢業(yè)論文
- 基于單片機的電子時鐘的設計-畢業(yè)論文
- 基于單片機的數字電子時鐘設計-畢業(yè)論文
- 基于51單片機的電子時鐘設計-畢業(yè)論文
- 畢業(yè)論文--基于單片機電子時鐘的設計
- 單片機畢業(yè)設計--基于單片機的電子時鐘
- 單片機電子時鐘畢業(yè)論文設計
- 單片機電子時鐘畢業(yè)論文設計
- 單片機電子時鐘畢業(yè)論文設計
- 單片機電子時鐘畢業(yè)論文設計
- 單片機電子時鐘畢業(yè)論文設計
- 單片機電子時鐘畢業(yè)論文設計
- 單片機電子時鐘畢業(yè)論文
- 單片機電子時鐘畢業(yè)論文
- 單片機電子時鐘畢業(yè)論文
- 單片機電子時鐘畢業(yè)論文
評論
0/150
提交評論