版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> XX學院課程設(shè)計論文</p><p> 論文題目: 數(shù)字電子鐘的設(shè)計 </p><p> 姓 名: </p><p> 所在院系: 電信學院 </p><p> 班 級: <
2、;/p><p> 學 號: </p><p> 指導教師: </p><p><b> XX學院</b></p><p><b> 二〇一三年一月六日</b></p><p>&
3、lt;b> 摘 要</b></p><p> 單片機又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把一個計算機系統(tǒng)集成到一個芯片上。概括的講,一塊芯片就成了一臺計算機。單片機具有體積小、功能強、應用面廣等優(yōu)點,為學習、應用和開發(fā)提供了便利條件?,F(xiàn)在,這種單片機的使用領(lǐng)域已十分廣泛。彩電、冰箱、空調(diào)、錄像機、VCD、遙控器、游戲機、電飯煲等無處不見單片機的影子,單片機早已深深地融入我們
4、每個人的生活之中。單片機能大大地提高這些產(chǎn)品的智能性,易用性及節(jié)能性等主要性能指標,給我們的生活帶來舒適和方便的同時,在工農(nóng)業(yè)生產(chǎn)上也極大地提高了生產(chǎn)效率和產(chǎn)品質(zhì)量。 此外,單片機在工商、金融、科研、教育、國防航空等領(lǐng)域都有著十分廣泛的用途。</p><p> 數(shù)字鐘是采用數(shù)字電路實現(xiàn)對“時”、“分”、“秒”數(shù)字顯示的計時裝置。該課程設(shè)計為數(shù)字電子鐘的設(shè)計。以AT89C51為核心,配合LED數(shù)碼管顯示器和按鍵
5、為用戶提供長期、連續(xù)、可靠、穩(wěn)定的工作環(huán)境。該數(shù)字電子鐘有時分秒顯示和日期顯示以及時間和日期調(diào)整的功能。系統(tǒng)軟件設(shè)計包括單片機計算機兩部分的編程。計算機軟件編程主要實現(xiàn)參數(shù)設(shè)置、串行口數(shù)據(jù)接收、指令發(fā)送以及數(shù)據(jù)的顯示和存儲。單片機軟件編程主要實現(xiàn)鍵盤、LED顯示等各模塊的功能,采用匯編語言編程。數(shù)字鐘是其小巧,價格低廉,走時精度高,使用方便,功能多,便于集成化而受廣大消費的喜愛,</p><p> 因此得到了廣
6、泛的使用。</p><p> 關(guān)鍵詞 數(shù)字電子鐘;單片機;LED顯示</p><p> 第一章 設(shè)計目的和方案4</p><p><b> 1.1設(shè)計任務(wù)4</b></p><p> 1.1.1 設(shè)計題目:數(shù)字電子鐘4</p><p> 1.1.2 設(shè)計目的與任務(wù)4<
7、;/p><p> 1.2功能要求說明4</p><p> 1.3設(shè)計總體方案及工作原理4</p><p> 第二章 數(shù)字電子鐘的硬件系統(tǒng)的設(shè)計5</p><p> 2.1 硬件系統(tǒng)各模塊功能設(shè)計5</p><p> 2.1.1 單片機最小系統(tǒng)6</p><p> 2.1.
8、2 鍵盤模塊6</p><p> 2.1.3 LED顯示電路6</p><p> 2.1.4 接口電路6</p><p> 2.2 電路原理圖、PCB圖和元器件布局6</p><p> 2.3 元器件清單7</p><p> 第三章 數(shù)字電子鐘的軟件系統(tǒng)的設(shè)計7</p>
9、<p> 3.1 使用的單片機資源的情況7</p><p> 3.2 各模塊功能簡要介紹8</p><p> 3.3 程序的流程圖8</p><p> 3.4 程序清單12</p><p> 第四章 設(shè)計仿真和結(jié)果分析13</p><p> 4.1 設(shè)計結(jié)論和功能使用說明1
10、3</p><p> 4.1.1 設(shè)計結(jié)論13</p><p> 4.1.2 功能及使用說明13</p><p> 4.2 仿真結(jié)果14</p><p> 4.3 設(shè)計系統(tǒng)誤差分析15</p><p> 第五章 設(shè)計小結(jié)16</p><p><b> 致
11、 謝16</b></p><p><b> 參考文獻17</b></p><p><b> 附 錄19</b></p><p> 第一章 設(shè)計目的和方案</p><p><b> 1.1設(shè)計任務(wù)</b></p><p>
12、 1.1.1 設(shè)計題目:數(shù)字電子鐘</p><p> 1.1.2 設(shè)計目的與任務(wù)</p><p> 通過理論設(shè)計和實物制作解決相應的實際問題,鞏固和運用在《單片機原理及接口技術(shù)》中所學的理論知識和實驗技能,掌握單片機應用系統(tǒng)的一般設(shè)計方法,提高設(shè)計能力和實踐動手能力,為以后從事電子電路設(shè)計、研發(fā)電子產(chǎn)品打下良好的基礎(chǔ)。</p><p><b>
13、1.2功能要求說明</b></p><p> 1、顯示準確的北京時間(時、分、秒),可用24小時制式; 2、隨時可以調(diào)校時間。 3、增加公歷日期顯示功能(年、月、日),年號只顯示最后兩位; 4、隨時可以調(diào)校年、月、日; 5、允許通過轉(zhuǎn)換功能鍵轉(zhuǎn)換顯示時間或日期。 硬件方案: ⑴ 顯示器采用6位LED數(shù)碼管(共陽),可分別顯示時間或日期;(通過KB 鍵可切換) ⑵ 顯示
14、器的驅(qū)動采用動態(tài)掃描電路形式,以達到簡化電路的目的。但要注意所需的驅(qū)動電流比靜態(tài)驅(qū)動時要大,因此要增加驅(qū)動電路??刹捎?4LS244或者晶體管;其中74ls244是用來驅(qū)動段選碼,晶體管是驅(qū)動位選碼</p><p> 1.3設(shè)計總體方案及工作原理</p><p> 設(shè)計中采用AT89C51芯片及LED顯示器,一些獨立式按鍵構(gòu)成一個簡單的數(shù)字電子鐘。設(shè)計中是采用單片機的內(nèi)部定時器進行定時
15、,程序框圖如圖所示。</p><p> 整個電子鐘的工作原理是:在正常的供電狀態(tài)下,首先利用單片機定時,到了相應的時間由單片機將所需要顯示的數(shù)據(jù)送到LED顯示器的輸入口,當有鍵按下時則進入相應的按鍵顯示和調(diào)整狀態(tài),進行按鍵調(diào)整。</p><p> 總體硬件原理圖如圖所示</p><p> 第二章 數(shù)字電子鐘的硬件系統(tǒng)的設(shè)計</p><p&
16、gt; 2.1 硬件系統(tǒng)各模塊功能設(shè)計</p><p> 該數(shù)字電子鐘由單片機最小系統(tǒng)、鍵盤模塊、LED顯示電路模塊、接口電路模塊組成。各模塊的功能如下:</p><p> 2.1.1 單片機最小系統(tǒng)</p><p> 由AT89C51單片機、時鐘電路和復位電路構(gòu)成。AT89C51是一種帶8K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Falsh Pr
17、ogrammable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。時鐘電路由一個12MHZ的石英晶體振蕩器和兩個22pF的的電容組成振蕩電路和分頻電路,為單片機提供內(nèi)部時鐘。復位電路采用上電復位和按鍵復位結(jié)合的方式對電路進行復位,主要是通過RST引腳送入單片機。</p><p> 2.1.2 鍵盤模塊</p><p>
18、 采用獨立式鍵盤接法,共有四個按鍵來對電路進行控制。分別接在單片機的P1口線上。一個鍵控制開和關(guān),一個鍵負責調(diào)整,另外兩個鍵輔助調(diào)整。</p><p> 2.1.3 LED顯示電路</p><p> 采用六個共陽的數(shù)碼管顯示器進行顯示,加上一個74LS244作為驅(qū)動和8個220Ω的電阻起限流的作用。將段控口接在P0口上,位控口接在P3口上,實現(xiàn)對顯示的控制。</p>&
19、lt;p> 2.1.4 接口電路</p><p> 接上一個電容組成的濾波電路和電源顯示燈組成一個電源接口,為單片機工作供電。</p><p> 2.2 電路原理圖、PCB圖和元器件布局</p><p> 采用Protel軟件,Protel99SE是Protel公司近10年來致力于Windows平臺開發(fā)的最新結(jié)晶,能實現(xiàn)從電學概念設(shè)計到輸出物理生產(chǎn)
20、數(shù)據(jù),能夠和形象的畫出我們所要設(shè)計的產(chǎn)品。電路原理圖和PCB圖及元器件布局見附錄。</p><p><b> 各模塊拼接圖</b></p><p> 2.3 元器件清單</p><p><b> 見附錄。</b></p><p> 第三章 數(shù)字電子鐘的軟件系統(tǒng)的設(shè)計</p>
21、<p> 3.1 使用的單片機資源的情況</p><p> 該數(shù)字電子鐘用到了單片機的定時器的功能,此外用到了單片機的中斷功能,在數(shù)據(jù)的顯示時所采用的是查表的方法,因此需要將表格、數(shù)據(jù)存到單片機的程序存儲器中去。</p><p> 由于電子鐘需要可以進行調(diào)節(jié),因此,需要在單片機的P口上加上按鍵,本設(shè)計采用獨立式鍵盤,直接接在P1口上且按鍵的結(jié)果存貯在單片機的內(nèi)部數(shù)據(jù)存儲
22、器里面。用到的LED顯示器接到了單片機的P0口線上和P3口線上。 </p><p> 3.2 各模塊功能簡要介紹</p><p> 該數(shù)字電子鐘所用的軟件模塊有定時器模塊、按鍵模塊、LED顯示模塊。</p><p><b> ?。?)定時器模塊</b></p><p> 選擇定時器0,設(shè)置定時方式為方式1,設(shè)置定
23、時時間為50mS。</p><p><b> ?。?)按鍵模塊</b></p><p> 采用獨立式鍵盤,共用四個按鍵對電路進行控制和操作,分別為K0、K1、K2、K3來控制電子鐘的開/關(guān)和調(diào)整。</p><p> ?。?)LED顯示模塊</p><p> 該電子鐘一通電即讓它顯示P.,按開啟鍵即可顯示時分秒,再按切
24、換鍵即可顯示年月日,然后結(jié)合鍵盤操作還可以對時間進行調(diào)整。</p><p> 3.3 程序的流程圖</p><p> ?。?)整體設(shè)計流程圖</p><p> ?。?)鍵盤設(shè)計流程圖</p><p> 圖3.2 鍵盤設(shè)計流程圖</p><p> (3)顯示設(shè)計流程圖</p><p>
25、 圖3.3 顯示時分秒設(shè)計流程圖</p><p> 圖3.4 顯示年月日設(shè)計流程圖</p><p><b> 3.4 程序清單</b></p><p><b> 見附錄。</b></p><p> 第四章 設(shè)計仿真和結(jié)果分析</p><p> 4.1
26、設(shè)計結(jié)論和功能使用說明</p><p> 4.1.1 設(shè)計結(jié)論</p><p> 通過對單片機進行外接鍵盤和LED數(shù)碼管的操作以及加上硬件電路和軟件的結(jié)合,實現(xiàn)了該數(shù)字電鐘顯示P.以及時分秒和年月日的顯示,同時還可實現(xiàn)對該電子鐘進行調(diào)整的功能。通過測試和仿真以及修改,該電子鐘最終能正常的工作。</p><p> 4.1.2 功能及使用說明</p>
27、;<p> 該數(shù)字電子鐘采用八位數(shù)碼管能實現(xiàn)年月日和時分秒的顯示。當電子鐘一上電即可顯示P.,設(shè)置數(shù)字鐘的初始日期和時間為12年02月23日00時00分00秒.用四個按鍵實現(xiàn)電子鐘的顯示和調(diào)整的功能,分別為K0,K1,K2,K3,其中K0鍵為開啟鍵,且顯示的是時分秒,開啟之后K2鍵可實現(xiàn)切換的功能,即可實現(xiàn)年月日和時分秒的切換顯示;按K3鍵可實現(xiàn)年月日和時分秒的調(diào)整,按一下可以對當前顯示的進行調(diào)整,再按一下即可切換到一個
28、界面進行調(diào)整,調(diào)整的時候數(shù)字鐘停止計時,當進行時分秒的調(diào)整時, K0鍵可實現(xiàn)對秒進行增大的調(diào)整,每按一下秒的值就加一,當秒增加到59時就重新從0開始繼續(xù)增大, K1鍵可實現(xiàn)對分進行增大的調(diào)整,每按一下分的值就加一,當分增加到59的時候就重新從0開始繼續(xù)增大,K2鍵可實現(xiàn)對時進行增大的調(diào)整,每按一下時的值就加一,當時的值增大到23的時候就重新從0開始繼續(xù)增大.當進行年月日的調(diào)整時, K0鍵可實現(xiàn)對日進行增大的調(diào)整,每按一下秒的值就加一,當
29、日增加到28或者30或者31(看不同的年份和月份)時就重新從0開始繼續(xù)增大, K1鍵可實現(xiàn)對月進行增大的調(diào)整,每按一下月的值就加一,當月增加到12的</p><p><b> 4.2 仿真結(jié)果</b></p><p> 在仿真時用到了兩個軟件,第一個是Keil,第二個是Protues,本次仿真是將兩個軟件結(jié)合起來進行的。</p><p>
30、 用Protues軟件進行仿真,其仿真的電路圖如圖4.1所示</p><p> 圖4.1 Protues仿真電路圖</p><p> 數(shù)字電子鐘正常工作時,仿真的LED顯示器顯示如圖4.2所示,當按下切換鍵時,數(shù)字電子鐘進入日期顯示界面,此時LED數(shù)碼管顯示器的顯示如圖4.3和4.4所示,當按下調(diào)整鍵時,數(shù)字電子鐘進入調(diào)整界面,此時LED數(shù)碼管顯示器的顯示如圖4.5和4.5所示。&l
31、t;/p><p> 圖4.2 數(shù)字電子鐘正常工作時的顯示圖</p><p><b> P.</b></p><p> 圖4.3 數(shù)字電子鐘顯示時分秒的顯示圖</p><p><b> 000000.</b></p><p> 圖4.4 數(shù)字電子鐘顯示日期的顯示圖<
32、/p><p><b> 120223.</b></p><p> 4.3 設(shè)計系統(tǒng)誤差分析</p><p> 本數(shù)字電子鐘在跟標準的電子鐘比較時,時間稍微慢一點,產(chǎn)生此種情況的原因有:其一是在執(zhí)行程序指令時,由于需要耗費一定的時間,因此會比標準的電子鐘要慢一點。其二是晶振不夠標準,使得定時器定時時不夠精準。</p><p
33、><b> 第五章 設(shè)計小結(jié)</b></p><p> 從硬件電路的設(shè)計到軟件電路的設(shè)計,整個過程當中我學到了很多的東西,在繪制原理圖時我查找了相關(guān)軟件的使用方法,并悉心向老師和同學請教,學會對PROTEL和PROTEUS的使用;在軟件系統(tǒng)的設(shè)計中,我遇到了很多的問題,不能把一些小模塊系統(tǒng)聯(lián)系起來,但通過不斷的探索,最終把整個程序完整的編出來了,并能進行仿真使用;</p&g
34、t;<p> 本次的設(shè)計使我學到如何從理論轉(zhuǎn)化為實踐,怎樣將我所學到的知識運用到我以后的工作中。通過單片機硬件電路的調(diào)試,實現(xiàn)了預先設(shè)定的功能,設(shè)計主要用到的元件不多,最主要的是程序也比較長比較麻煩,同時也遇到了不少困難,尤其是關(guān)于校時模塊的設(shè)計實現(xiàn)。雖然過程中遇到了一些困難,但是在解決這些問題的過程無疑也是對自己自身專業(yè)素質(zhì)的一種提高。此次的電子時鐘設(shè)計給我奠定了一個實踐基礎(chǔ),同時在查找資料的過程中我也學到了許多新的知
35、識,在和同學協(xié)作過程中增進同學間的友誼,使我對團隊精神的積極性和重要性有了更加充分的認識和理解。</p><p><b> 致 謝</b></p><p> 首先衷心感謝在此次課程設(shè)計中給予我?guī)椭睦蠋熂巴瑢W們,幫助我分析和解決問題。在開始設(shè)計的時候,經(jīng)過老師悉心的指導和講解,讓我漸漸有自己的方案和選擇方向,在每一步的進展當中,我都碰到了很多的問題,畫原理圖的時
36、候和分析電子鐘工作的原理以及怎么確定和修改,都是經(jīng)過一步步修改而成的。設(shè)計軟件的時候,因為是設(shè)計一個系統(tǒng)的程序,所以開始還沒形成系統(tǒng)的思維,但在老師的講解和同學的教導下,漸漸的將一個個子程序聯(lián)系起來調(diào)試運行。在此,謹向給予我?guī)椭睦蠋熀屯瑢W深表言謝。</p><p><b> 參考文獻</b></p><p> ?。?]彭勇,葉曉勇,王萬剛 單片機技術(shù) 北京
37、 電子工業(yè)出版社 2009</p><p> ?。?]李廣弟,朱月秀,冷祖祁 單片機基礎(chǔ)[M].北京:北京航空航天大學出版社,2007</p><p> ?。?]劉湘濤.江世明.單片機原理與應用[M]. 北京:電子工業(yè)出版社,2006.</p><p> ?。?]李光飛.單片機課程設(shè)計實例指導[M].北京:北京航空航天大學出版社,2004.9</p>
38、<p> ?。?]朱定華.單片機原理及接口技術(shù)實驗[M].北京:北方交通大學出版社2002.11</p><p> ?。?]張洪潤,蘭清華.單片機應用技術(shù)教程[M].北京:清華大學出版社,1997.11</p><p><b> 附 錄</b></p><p> ********************************
39、***********************************************</p><p> ***;按鍵接P1.0~P1.3分別為K0、K1、K2、K3;**************************</p><p> ***;數(shù)碼管顯示器段控口接單片機的P0口,位控口接單片機的P3口;*****</p><p> ********
40、************************************************************</p><p> **********;存儲單元定義;*******************************************************</p><p> YEAR EQU 40H</p><p>
41、 MONTHEQU 41H </p><p> DAY EQU 42H</p><p> HOUR EQU 43H</p><p> MINUTE EQU 44H</p><p> SECONDEQU 45H</p><p> TIME EQU 46H </p&g
42、t;<p> ORG 0000H</p><p> AJMP START</p><p> ORG 000BH</p><p> AJMP ET_0 </p><p> START:LCALL LING</p><p> MOV TIME, #
43、00H</p><p> MOV TMOD, #01H ;設(shè)置定時器的工作方式為方式一</p><p> MOV TH0, #(65536-50000)/256 ;定時50毫秒</p><p> MOV TL0, #(65536-50000)MOD 256</p><p> M
44、OV IE, #82H</p><p> LOOP: LCALL DISPLAY0 ;顯示P.</p><p> JNB P1.0, MAIN1</p><p> JMP LOOP</p><p> MAIN1: LCALL DISPLAY0</p>&
45、lt;p> JNB P1.0, MAIN1</p><p> SETB TR0 ;開啟定時器</p><p> *****************;主函數(shù);******************************************************</p><p> MAIN: LCALL
46、 KEY</p><p> JB 20H.3, SET1 </p><p> JB 20H.0, GUAN</p><p> JB 20H.2, RIQI</p><p> LCALL DISPLAY2 ;顯示時分秒</p><p&g
47、t; AJMP MAIN </p><p> *********************;顯示日期;************************************************</p><p> RIQI:LCALL DISPLAY1</p><p> LCALL KEY</p><p&
48、gt; JB 20H.2, MAIN</p><p> JMP RIQI</p><p> GUAN: MOV P2, #0FFH ;關(guān)顯示</p><p> LCALL KEY </p><p> JB 20H.0, MAIN</p><
49、;p> JMP GUAN </p><p> ***************;進入時分秒的調(diào)整界面;****************************************** </p><p> SET1: CLR TR0 ;時分秒的調(diào)整</p><p>
50、 LCALL DISPLAY2</p><p> LCALL KEY</p><p> JB 20H.3, SET2</p><p> JB 20H.2, TS</p><p> JB 20H.1, TF</p><p> JB 20H.0, TM
51、</p><p> JMP SET1</p><p> TS: INC HOUR ;時的調(diào)整</p><p> MOV A, HOUR ;是否達到了24小時到了就清零</p><p> CJNE A,#24, SET1</p><
52、;p> AJMP LL1</p><p> LL1: MOV HOUR, #0</p><p> JMP SET1</p><p> TF: INC MINUTE ;分的調(diào)整</p><p> MOV A, MINUTE ;是否達到了60分
53、到了就清零</p><p> CJNE A, #60, SET1</p><p> AJMP LL2</p><p> LL2: MOV MINUTE, #0</p><p> JMP SET1</p><p> TM: INC SECOND ;秒的
54、調(diào)整</p><p> MOV A, SECOND ;是否達到了60秒到了就清零</p><p> CJNE A,#60, SET1</p><p> AJMP LL3</p><p> LL3: MOV SECOND, #0</p><p> JMP
55、 SET1 </p><p> SET2: LCALL KEY ;進入年月日的調(diào)整界面</p><p> LCALL DISPLAY1 ;顯示年月日</p><p> JB 20H.3, EXIT</p><p> JB 20H.2
56、, TN</p><p> JB 20H.1, TY</p><p> JB 20H.0, TR</p><p> JMP SET2</p><p> EXIT: SETB TR0 ;關(guān)定時器</p><p> JMP
57、 MAIN </p><p> TN: INC YEAR ;年的調(diào)整</p><p> MOV A, YEAR ;是否達到了99年到了就清零</p><p> CJNE A,#99, SET2</p><p>
58、 AJMP LL4</p><p> LL4: MOV YEAR, #0</p><p> JMP SET2</p><p> TY: INC MONTH ;月的調(diào)整</p><p> MOV A, MONTH
59、 ;是否達到了12月到了就清零</p><p> CJNE A,#13, SET2</p><p> AJMP LL5</p><p> LL5: MOV MONTH, #0</p><p> JMP SET2</p><p> TR: INC DAY
60、 ;日的調(diào)整</p><p> MOV A, YEAR ;看是閏年還是非閏年</p><p> MOV B, #4</p><p><b> DIV AB</b></p><p> MOV A, B</p><p>
61、 JZ WW1 ;閏年則轉(zhuǎn)WW1</p><p> JMP WW2 ;非閏年則轉(zhuǎn)WW2</p><p> WW1: MOV A, MONTH ;看是閏年的哪一月份</p><p> CJNE A,#2, LL6
62、 ;是閏年中的2月則為29天 MOV A, DAY 到29就清零</p><p> CJNE A,#29, SET2</p><p> MOV DAY, #0</p><p> AJMP SET2</p><p> LL6: CJNE
63、A,#4, LL7 ;閏年中的4、6、9、11為30天</p><p> MOV A, DAY 到30就清零</p><p> CJNE A,#30, SET2</p><p> MOV DAY, #0</p><p>
64、 AJMP SET2</p><p> LL7: MOV A, MONTH</p><p> CJNE A,#6, LL8</p><p> MOV A, DAY</p><p> CJNE A,#30, SET2</p><p> MOV DAY,
65、 #0</p><p> AJMP SET2</p><p> LL8: MOV A, MONTH</p><p> CJNE A,#9, LL9</p><p> MOV A, DAY</p><p> CJNE A,#30, SET2</p&g
66、t;<p> MOV DAY, #0</p><p> AJMP SET2</p><p> LL9: MOV A, MONTH</p><p> CJNE A,#11, LLA</p><p> MOV A, DAY</p><p>
67、CJNE A,#30, ZHUAN</p><p> MOV DAY, #0</p><p> AJMP SET2</p><p> LLA: AJMP WW6 </p><p> WW6: MOV A, DAY ;閏年中的1、3、5、7、8、10、
68、12月</p><p> CJNE A,#31, ZHUAN </p><p> MOV DAY, #0</p><p> ZHUAN:AJMP SET2</p><p> WW2: MOV A, MONTH ;看是閏年中的哪一月</p><p&
69、gt; CJNE A,#2, LL6 ;非閏年中的2月為28天,到28則清零</p><p> MOV A, DAY ;非潤年中的4、6、9、11月為30天其他</p><p> CJNE A,#28,ZHUAN 31天</p><p> MOV DAY
70、, #0</p><p> AJMP SET2</p><p> *********************;中斷子程序和時間的增一;**********************************</p><p> ET_0: MOV TH0,#(65536-50000)/256 </p><p> MOV
71、 TL0,#(65536-50000)MOD 256</p><p> INC TIME</p><p> MOV A, TIME </p><p> CJNE A,#20, DIAN</p><p><b> AJMP ZM</b></
72、p><p> ZM: INC SECOND </p><p> MOV TIME, #0 ;TIME為20時SECOND加一同時對TIME </p><p> MOV A, SECOND 清零</p><p> CJNE A,#60, DIAN&l
73、t;/p><p> ZF : INC MINUTE</p><p> MOV SECOND,#0 ;SECOND為60時MINUTE加一同時SECOND </p><p> MOV A, MINUTE 清零</p><p> CJNE A,#60,
74、DIAN</p><p> ZS: INC HOUR ;MINUTE為60時HOUR加一同時MINUTE </p><p> MOV MINUTE,#0 清零</p><p> MOV A, HOUR</p><p> CJNE A,
75、#24, DIAN</p><p> AJMP ZR ;HOUR為23時DAY加一同時HOUR清零</p><p> ZR: INC DAY</p><p> MOV HOUR, #0</p><p> MOV A, YEAR</p><p>
76、; MOV B, #4</p><p><b> DIV AB</b></p><p> JZ RUN ;閏年則轉(zhuǎn)RUN</p><p> AJMP NRUN ;非閏年則轉(zhuǎn)NRUN</p><p> DIAN: RETI
77、 ;是否為閏年中的2月,是則到了29就</p><p> RUN: MOV A, MONTH MONTH加一同時DAY清零</p><p> CJNE A,#3 ,NEXT1 ;是否為閏年中的4、6、9、11月,是則到</p><p
78、> 了 30MONTH就加一同時DAY清零</p><p> AJMP BB1 ;閏年中的1、3、5、7、8、10、12月為31 </p><p> 天到了31則MONTH加一DAY清零</p><p> NEXT1:MOV A, MONTH</p><p>
79、 CJNE A,#5, NEXT2</p><p><b> AJMP BB2</b></p><p> NEXT2:MOV A, MONTH</p><p> CJNE A,#7, NEXT3</p><p> AJMP BB2</p><p> NE
80、XT3:MOV A, MONTH</p><p> CJNE A,#10, NEXT4</p><p> AJMP BB2</p><p> NEXT4:MOV A, MONTH</p><p> CJNE A,#12, NEXT5</p><p> AJMP BB
81、2</p><p> NEXT5:AJMP BB3</p><p> BB1: MOV A, DAY</p><p> CJNE A,#30, DIAN</p><p><b> AJMP ZY</b></p><p> BB2: MOV A,
82、 DAY</p><p> CJNE A,#31, DIAN</p><p><b> AJMP ZY</b></p><p> BB3: MOV A, DAY</p><p> CJNE A,#32, DIAN</p><p><b> AJMP
83、 ZY</b></p><p> BB4: MOV A, DAY</p><p> CJNE A,#29, DIAN</p><p><b> AJMP ZY</b></p><p> NRUN: MOV A, MONTH</p><p>
84、; CJNE A,#3, NEXT6 ;非閏年中的2月到了28就MONTH</p><p><b> 加一同時DAY清零</b></p><p> AJMP BB4 ;非閏年中的4、6、9、11月到了30天 </p><p> NEX
85、T6:MOV A, MONTH 則MONTH加一同時DAY清零 CJNE A,#5, NEXT7 ;非閏年中的1、3、5、7、8、10、12</p><p> AJMP BB2 月為31天到了則MONTH加一同時DAY清零</p><p> NEX
86、T7:MOV A, MONTH </p><p> CJNE A,#7, NEXT8</p><p> AJMP BB2</p><p> NEXT8:MOV A, MONTH</p><p> CJNE A,#10, NEXT9</p><p> AJMP BB
87、2</p><p> NEXT9:MOV A, MONTH</p><p> CJNE A,#12, NEXT5</p><p> AJMP BB2</p><p> ZY: INC MONTH</p><p> MOV DAY, #0</p><
88、p> MOV A, MONTH</p><p> CJNE A,#14, DIAN</p><p><b> AJMP ZN</b></p><p> ZN: INC YEAR</p><p> MOV MONTH, #0</p><p>
89、MOV A, YEAR</p><p> CJNE A,#100, DIAN</p><p> AJMP LING</p><p> *********************;初始顯示值;**********************************************</p><p> LING:
90、 MOV YEAR, #12 ;顯示器顯示的初始值為日期12-02-23, </p><p> MOV MONTH, #02 時間 00-00-00</p><p> MOV DAY, #23</p><p> MOV HOUR,
91、#00</p><p> MOV MINUTE, #00</p><p> MOV SECOND, #00</p><p><b> RET</b></p><p> *********************;鍵掃子程序;************************************
92、**********</p><p> KEY: LCALL KEYCH ; 鍵掃程序,按鍵結(jié)果存入20H單元</p><p> JZ EXIT1</p><p> LCALL DELAY1</p><p> LCALL KEYCH</p><p&g
93、t; JZ EXIT1 </p><p> KEYSF: MOV B, #20H</p><p> LCALL KEYCH</p><p> JZ KEY1</p><p> LCALL DELAY1</p><p> LJMP KEYSF</p>
94、<p> KEY1: MOV 20H, B</p><p> EXIT1: RET</p><p> KEYCH: PUSH PSW</p><p> CLR RS1</p><p> SETB RS0</p><p> MOV P1, #0FFH<
95、/p><p> MOV A, P1</p><p><b> CPL A;</b></p><p> ANL A, #0FH</p><p> MOV 20H, A</p><p> CLR RS1</p><p>
96、 CLR RS0</p><p> POP PSW</p><p><b> RET</b></p><p> ******************;進入顯示P.界面;********************************************</p><p> DISPLAY0:CLR
97、 P3.7 ;顯示P.</p><p> MOV P0, #0F3H </p><p> LCALL DELAY1</p><p> SETB P3.7</p><p><b> RET</b></p><p> **********
98、***********;年月日顯示界面;*****************************************</p><p> DISPLAY1:MOV DPTR, #TAB1 ;顯示日期 </p><p> MOV A, DAY</p><p> MOV
99、 B,#10</p><p><b> DIV AB</b></p><p> CLR P3.6</p><p> MOVCA,@A+DPTR</p><p> MOV P0,A</p><p> LCALLDELAY1</p><p>
100、SETB P3.6</p><p><b> MOV A,B</b></p><p><b> CLR P3.7</b></p><p> MOVCA,@A+DPTR</p><p> MOV P0,A</p><p> LCALL DELAY1&
101、lt;/p><p> SETB P3.7</p><p><b> CLR P3.5</b></p><p> LCALL DELAY1</p><p> SETB P3.5</p><p> MOV A,MONTH</p><p> MOV B,#
102、10</p><p><b> DIV AB</b></p><p><b> CLR P3.3</b></p><p> MOVC A,@A+DPTR</p><p> MOV P0,A</p><p> LCALL DELAY1</p>
103、<p> SETB P3.3</p><p><b> MOV A,B</b></p><p><b> CLR P3.4</b></p><p> MOVC A,@A+DPTR</p><p> MOV P0,A</p><p>
104、LCALL DELAY1</p><p> SETB P3.4</p><p><b> CLR P3.2</b></p><p> LCALL DELAY1</p><p> SETB P3.2</p><p> MOV A,YEAR</p><p&g
105、t; MOV B,#10</p><p><b> DIV AB</b></p><p><b> CLR P3.0</b></p><p> MOVC A,@A+DPTR</p><p><b> MOVP0,A</b></p><
106、;p> LCALL DELAY1</p><p> SETB P3.0</p><p><b> MOV A,B</b></p><p><b> CLRP3.1</b></p><p> MOVC A,@A+DPTR</p><p> MOV
107、 P0,A </p><p> LCALL DELAY1</p><p> SETB P3.1</p><p><b> RET</b></p><p> DISPLAY2:MOV DPTR,#TAB1 ;顯示時間</p><p> MOV A, SEC
108、OND </p><p> MOV B, #10</p><p><b> DIV AB</b></p><p><b> CLR P3.6</b></p><p> MOVC A,@A+DPTR</p><p> MOV P0,A <
109、;/p><p> LCALL DELAY1</p><p> SETB P3.6</p><p><b> MOV A,B</b></p><p><b> CLR P3.7</b></p><p> MOVC A,@A+DPTR</p>&
110、lt;p> MOV P0,A</p><p> LCALL DELAY1</p><p> SETB P3.7</p><p><b> CLR P3.5</b></p><p> LCALL DELAY1</p><p> SETB P3.5</p>
111、<p> MOV A,MINUTE</p><p> MOV B,#10</p><p><b> DIV AB</b></p><p><b> CLR P3.3</b></p><p> MOVCA,@A+DPTR</p><p>
112、 MOV P0,A</p><p> LCALL DELAY1</p><p> SETB P3.3</p><p><b> MOV A,B</b></p><p><b> CLR P3.4</b></p><p> MOVC A,@A+DPT
113、R</p><p> MOV P0,A</p><p> LCALL DELAY1</p><p> SETB P3.4</p><p><b> CLR P3.2</b></p><p> LCALL DELAY1</p><p> SETB P
114、3.2</p><p> MOV A,HOUR</p><p> MOV B,#10</p><p><b> DIV AB</b></p><p><b> CLR P3.0</b></p><p> MOVC A,@A+DPTR</p&
115、gt;<p> MOV P0,A</p><p> LCALL DELAY1</p><p> SETB P3.0</p><p><b> MOV A,B</b></p><p><b> CLR P3.1</b></p><p>
116、MOVC A,@A+DPTR</p><p> MOV P0,A</p><p> LCALL DELAY1</p><p> SETB P3.1</p><p><b> RET</b></p><p> ****************;延時程序;************
117、*****************************************</p><p> DELAY1: MOV R0,#10 ;延時5ms</p><p> AA: MOV R7,#250 </p><p> DJNZ R7,$</p><p> DJNZ R0,AA
118、</p><p><b> RET</b></p><p> ****************;數(shù)據(jù)表格;**************************************************</p><p> TAB1: DB 03FH;0 ;顯示代碼數(shù)據(jù)
119、表</p><p> DB 006H;1</p><p> DB 05BH;2</p><p> DB 04FH;3</p><p> DB 066H;4</p><p> DB 06DH;5</p><p> D
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子鐘課程設(shè)計----數(shù)字電子鐘的設(shè)計
- 數(shù)字電子鐘課程設(shè)計
- 數(shù)字電子鐘課程設(shè)計
- 課程設(shè)計---數(shù)字電子鐘
- 數(shù)字電子鐘課程設(shè)計
- 數(shù)字電子鐘課程設(shè)計
- 數(shù)字電子鐘課程設(shè)計
- 單片機電子鐘課程設(shè)計---數(shù)字電子鐘
- 數(shù)字電子鐘課程設(shè)計 (2)
- 數(shù)字電子鐘課程設(shè)計 (3)
- 數(shù)字電子鐘課程設(shè)計--電子數(shù)字時鐘
- 數(shù)字電子鐘課程設(shè)計 (4)
- 數(shù)字電子鐘課程設(shè)計報告
- eda課程設(shè)計--數(shù)字電子鐘課程設(shè)計
- 數(shù)字電子鐘課程設(shè)計--數(shù)字電子鐘邏輯電路設(shè)計
- 數(shù)字電子鐘課程設(shè)計報告
- 數(shù)字電子鐘課程設(shè)計報告
- 數(shù)字電子鐘課程設(shè)計報告
- 數(shù)字電子鐘課程設(shè)計 (3)
- 電子技術(shù)課程設(shè)計論文--數(shù)字電子鐘
評論
0/150
提交評論