單片機課程設(shè)計---數(shù)字電子鐘的設(shè)計_第1頁
已閱讀1頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  單片機技術(shù)課程設(shè)計說明書</p><p><b>  題 目</b></p><p><b>  數(shù)字電子鐘的設(shè)計</b></p><p><b>  前 言</b></p><p>  該課程設(shè)計為數(shù)字電子鐘的設(shè)計。以AT89S52為核心,配合L

2、ED數(shù)碼管顯示器和按鍵為用戶提供長期、連續(xù)、可靠、穩(wěn)定的工作環(huán)境。該數(shù)字電子鐘有時分秒顯示和學號顯示以及時間調(diào)整的功能。系統(tǒng)軟件設(shè)計包括單片機、計算機兩部分的編程。計算機軟件編程主要實現(xiàn)參數(shù)設(shè)置、串行口數(shù)據(jù)接收、指令發(fā)送以及數(shù)據(jù)的顯示和存儲。單片機軟件編程主要實現(xiàn)鍵盤、LED顯示等各模塊的功能,采用匯編語言編程。</p><p><b>  目 錄</b></p><p

3、>  第一章 設(shè)計任務(wù)和方案1</p><p>  1.1 設(shè)計任務(wù)1</p><p>  1.2 功能要求說明1</p><p>  1.3 設(shè)計課題總體方案及工作原理說明1</p><p>  第二章 數(shù)字電子鐘的硬件系統(tǒng)的設(shè)計3</p><p>  2.1硬件系統(tǒng)各模塊功能設(shè)計3</p&

4、gt;<p>  2.2 設(shè)計課題電路原理圖、PCB圖、元器件布局圖3</p><p>  2.3元器件清單4</p><p>  第三章 數(shù)字電子鐘的軟件系統(tǒng)的設(shè)計5</p><p>  3.1 使用的單片機資源的情況5</p><p>  3.2 各模塊功能簡要介紹5</p><p> 

5、 3.3 程序的流程圖5</p><p>  3.4 程序清單8</p><p>  第四章 系統(tǒng)仿真與分析9</p><p>  4.1 設(shè)計結(jié)論和使用說明9</p><p>  4.2 仿真結(jié)果9</p><p>  4.3 誤差分析10</p><p>  4.4

6、設(shè)計難點和體會11</p><p><b>  參考文獻13</b></p><p>  附錄A 系統(tǒng)原理圖與PCB圖14</p><p>  附錄B 元器件清單15</p><p>  附錄C 程序清單16</p><p>  第一章 設(shè)計任務(wù)和方案</p><p

7、><b>  1.1 設(shè)計任務(wù)</b></p><p> ?。ㄒ唬┰O(shè)計題目:數(shù)字電子鐘</p><p> ?。ǘ┰O(shè)計目的與任務(wù):</p><p>  學生通過理論設(shè)計和實物制作解決相應(yīng)的實際問題,鞏固和運用在《單片機技術(shù)》中所學的理論知識和實驗技能,掌握單片機應(yīng)用系統(tǒng)的一般設(shè)計方法,提高設(shè)計能力和實踐動手能力,為以后從事電子電路設(shè)計、研

8、發(fā)電子產(chǎn)品打下良好的基礎(chǔ)。</p><p>  1.2 功能要求說明</p><p>  設(shè)計一個具有特定功能的電子鐘。該電子鐘按鍵復位后能自動顯示設(shè)計者的學號;第一次按電子鐘啟動/調(diào)整鍵,電子鐘從0時0分0秒開始運行計時,進入時鐘運行狀態(tài);再次按電子鐘啟動/調(diào)整鍵,則電子鐘進入時鐘調(diào)整狀態(tài),此時可利用各調(diào)整鍵調(diào)整時間,當按下鍵2,秒鐘加一,按下鍵3分鐘加一,按下鍵四時鐘加一,調(diào)整結(jié)束后可

9、按啟動/調(diào)整鍵再次進入時鐘運行狀態(tài)。</p><p>  1.3 設(shè)計課題總體方案及工作原理說明</p><p>  設(shè)計中采用AT89S52芯片及LED顯示器,獨立式按鍵構(gòu)成一個簡單的數(shù)字電子鐘。設(shè)計中是采用單片機的內(nèi)部定時器進行定時,程序框圖如圖1-1所示 </p><p>  整個電子鐘的工作原理是:在正常的供電狀態(tài)下,首先利用單片機定時,到了相應(yīng)的時間由單片

10、機將所需要顯示的數(shù)據(jù)送到LED顯示器的輸入口,當有鍵按下時則進入相應(yīng)的按鍵顯示和調(diào)整狀態(tài),進行按鍵調(diào)整。</p><p>  圖1-1 總的設(shè)計的框圖</p><p>  第二章 數(shù)字電子鐘的硬件系統(tǒng)的設(shè)計</p><p>  2.1硬件系統(tǒng)各模塊功能設(shè)計</p><p>  該數(shù)字電子鐘以單片機最小系統(tǒng)為核心,其他主要電路有鍵盤電路、L

11、ED數(shù)碼管顯示電路、USB接口電路模塊、蜂鳴電路。主要模塊的功能:</p><p> ?。?)單片機最小系統(tǒng)的組成以及功能介紹</p><p>  由AT89S52單片機、時鐘電路和復位電路構(gòu)成。AT89S52是一種帶8K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8

12、位微處理器,俗稱單片機。時鐘電路由一個12MHZ的石英晶體振蕩器和兩個33pF的的電容組成振蕩電路和分頻電路,為單片機提供內(nèi)部時鐘。復位電路采用上電復位和按鍵復位結(jié)合的方式對電路進行復位,主要是通過RST引腳送入單片機。</p><p><b> ?。?)鍵盤模塊</b></p><p>  采用獨立式鍵盤接法,共有八個按鍵來對電路進行控制。分別接在單片機的P1.0-

13、P1.7口線上。電子鐘只使用其中的4個按鍵,一個控制啟動與調(diào)整,其余三個分別為調(diào)時、調(diào)分、調(diào)秒。</p><p>  (3)LED顯示電路</p><p>  采用2個八位一體的共陽數(shù)碼管顯示器進行顯示,由于單片機可以直接驅(qū)動數(shù)碼管,所以不必設(shè)置數(shù)碼管的驅(qū)動電路,16個470Ω的電阻起限流的作用。將段控口接在P0口上,位控口接在P2口上,實現(xiàn)對顯示的控制(設(shè)計為動態(tài)顯示)。</p&g

14、t;<p> ?。?)USB接口電路</p><p>  接上一個可以連接電腦的USB電源接口,該電源電壓很穩(wěn)定,為單片機工作供電。</p><p>  2.2 設(shè)計課題電路原理圖、PCB圖、元器件布局圖</p><p>  采用Protel軟件,Protel99SE是Protel公司近10年來致力于Windows平臺開發(fā)的最新結(jié)晶,能實現(xiàn)從電學概念設(shè)

15、計到輸出物理生產(chǎn)數(shù)據(jù),能夠和形象的畫出我們所要設(shè)計的產(chǎn)品。電路原理圖和PCB圖及元器件布局見附錄A。 </p><p><b>  2.3元器件清單</b></p><p><b>  見附錄B。</b></p><p>  第三章 數(shù)字電子鐘的軟件系統(tǒng)的設(shè)計</p><p>  3.1 使用的

16、單片機資源的情況</p><p>  該數(shù)字電子鐘用到了單片機的定時器的功能,此外用到了單片機的中斷功能,在數(shù)據(jù)的顯示時所采用的是直接送段控碼和位控碼的方法,因此需要將數(shù)據(jù)存到單片機的程序存儲器中去。</p><p>  由于電子鐘要求可以進行調(diào)節(jié),因此,需要在單片機的P1口上加上按鍵,本設(shè)計采用獨立式鍵盤,直接接在P1口上且按鍵的結(jié)果存貯在單片機的內(nèi)部數(shù)據(jù)存儲器里面。用到的LED數(shù)碼管接

17、到了單片機的P0口線上和P2口線上,以實現(xiàn)動態(tài)顯示。 </p><p>  3.2 各模塊功能簡要介紹</p><p>  該數(shù)字電子鐘所用的軟件模塊有定時器模塊、按鍵模塊、LED顯示模塊。</p><p><b> ?。?)定時器模塊</b></p><p>  選擇定時器1,設(shè)置定時方式為方式1,設(shè)置定時時間為50

18、mS。</p><p>  選擇定時器0,設(shè)置定時方式為方式1,設(shè)置定時時間為1mS。</p><p><b> ?。?)按鍵模塊</b></p><p>  采用獨立式鍵盤,共用四個按鍵對電路進行控制和操作,分別為K0、K1、K2、K3來控制電子鐘的啟動和調(diào)整。</p><p> ?。?)LED顯示模塊</p&g

19、t;<p>  該電子鐘一通電即讓它顯示 “Z0903--46”,按開啟鍵(K1)即可顯示時分秒(0-0-0-)并開始計時,再按開始/暫停鍵就可以對電子鐘進行調(diào)整:調(diào)時(K4)、調(diào)分(K3)、調(diào)秒(K2)。</p><p>  3.3 程序的流程圖</p><p> ?。?)整體設(shè)計流程圖</p><p>  圖3-1 整體功能流程圖</p&g

20、t;<p>  (2) 延時1毫秒程序設(shè)計流程圖</p><p>  圖3-2 延時1毫秒程序流程</p><p>  (3) 檢查按鍵程序設(shè)計流程圖</p><p>  圖3-3 調(diào)時檢查按鍵程序流程</p><p>  (4) 檢查按鍵程序設(shè)計流程圖</p><p>  圖3-4 調(diào)時檢查按鍵程序流程

21、</p><p><b>  3.4 程序清單</b></p><p><b>  見附錄C。</b></p><p>  第四章 系統(tǒng)仿真與分析</p><p>  4.1 設(shè)計結(jié)論和使用說明</p><p><b> ?。?)設(shè)計結(jié)論</b>&l

22、t;/p><p>  通過對單片機進行外接按鍵和LED數(shù)碼管的操作以及加上硬件電路和軟件的結(jié)合,實現(xiàn)了該數(shù)字電鐘顯示“Z0903--46”以及時、分、秒,同時還可實現(xiàn)對該電子鐘進行調(diào)整的功能。通過測試、仿真以及修改,該電子鐘最終能正常的工作。</p><p><b> ?。?)使用說明</b></p><p>  該數(shù)字電子鐘采用兩個四位一體數(shù)碼管

23、能實現(xiàn)時分秒的顯示。當電子鐘一上電即可顯示“Z0903—46”,設(shè)置數(shù)字鐘的初始時間為00時00分00秒,用四個按鍵實現(xiàn)電子鐘的顯示和調(diào)整的功能,分別為K0,K1,K2,K3,其中K0鍵為開啟/調(diào)整鍵,開啟之后再按K0鍵可實現(xiàn)暫進入調(diào)整狀態(tài),進入調(diào)整狀態(tài)后按K1、K2、K3可分別對秒、分、時的調(diào)整, 每按一下對應(yīng)的按鍵可以對當前顯示的位進行調(diào)整,其進制都為60進制,即時、分、秒的變化范圍是0—59,每按下一次,相應(yīng)的時鐘位加一,在調(diào)整到

24、需要的時刻后,再按一下開始/暫停鍵即可從該時刻起運行電子鐘。在正常運行時,只有暫停/開始鍵起作用,其他按鍵不影響電子鐘的工作狀態(tài)。</p><p><b>  4.2 仿真結(jié)果</b></p><p>  在仿真時用到了兩個軟件,第一個是Keil,第二個是Protues,本次仿真是將兩個軟件結(jié)合起來進行的。</p><p>  Proteus

25、 軟件所提供了30多個元件庫,數(shù)千種元件。元件涉及到數(shù)字和模擬、交流和直流等。在Proteus軟件包中,不存在同類儀表使用數(shù)量的問題。Proteus還提供了一個圖形顯示功能,可以將線路上變化的信號,以圖形的方式實時地顯示出來,其作用與示波器相似但功能更多。</p><p>  用Protues軟件進行仿真,其仿真的電路圖如圖4.1所示</p><p>  圖4-1 Protues仿真電路圖

26、</p><p>  當按下開始/暫停鍵時,數(shù)字電子鐘進入工作狀態(tài),當按下調(diào)整鍵時,數(shù)字電子鐘進入調(diào)整界面,此時LED數(shù)碼管顯示器的顯示如圖4-3所示。</p><p>  圖4-2 數(shù)字電子鐘顯示時分秒的顯示</p><p><b>  4.3 誤差分析</b></p><p>  本數(shù)字電子鐘在跟標準的電子鐘比較時

27、,時間稍微慢一點,產(chǎn)生此種情況的原因有:其一是在執(zhí)行程序指令時,由于需要耗費一定的時間,因此會比標準的電子鐘要慢一點。其二是晶振不夠標準,使得定時器定時時不夠精準。</p><p>  4.4 設(shè)計難點和體會</p><p><b> ?。?) 設(shè)計難點</b></p><p>  從選題到硬件電路的設(shè)計,再到軟件電路的設(shè)計,整個過程當中我學

28、到了很多的東西,在老師的細心指導,耐心分析下,我把整個思路理清,并開始了設(shè)計的規(guī)劃,在原理圖的繪制時我查找了相關(guān)軟件的使用方法,并悉心向老師和同學請教,學會對PROTEL和PROTEUS的使用。在軟件系統(tǒng)的設(shè)計當中,我遇到了很多的問題,不能把一些小模塊系統(tǒng)的聯(lián)系起來,但通過不斷的學習,最終花了四天的時間把整個程序完整的編出來了,并能進行仿真使用。到最后做板子的時候,因為是第一次做板子,很多細節(jié)的地方都沒注意,比如封裝元器件時,要看清楚所

29、買元器件的引腳、尺寸和功能以及質(zhì)量,我做的第一塊板子不怎么的好,結(jié)果在用熨斗熨的時候出現(xiàn)暴起的現(xiàn)象,只能再重新做一塊,而且買的數(shù)碼管跟實際所畫的PCB板尺寸大小不一樣,而且引腳搞錯了,只能另想辦法,很影響實驗進度,所以在封裝元器件時一定要做好充分的準備。在做板子的時候因為熨的時候沒把握好,結(jié)果出現(xiàn)了很多的斷點,只能一個一個查,一個一個補,麻煩很大,工作量也很大,而且很容易疏忽,所以將圖紙熨到板子上時一定要熨的均勻,把握好時間和力度。打孔

30、時一定要對準,不要太急,慢慢來。插元器件的時候一定要把每個元</p><p><b>  (2) 設(shè)計體會</b></p><p>  吳老師的教學方式我挺贊同,你能夠讓我們把實際和理論結(jié)合起來,我覺得這很好,而且對現(xiàn)在的我們來說很重要,大學三年來,學的東西可以說很多,但是我們一直都不知道,手中的這些知識到底有什么作用,而且很多的老師都只顧著講自己的課程,就像是完成一

31、項別人交給他的任務(wù)一樣,從不關(guān)心學生學的到底是怎么樣,所以我覺得適當?shù)慕o學生一些將理論聯(lián)系實際的作業(yè)和任務(wù),能夠讓我們更明白和理解自己學的東西,也讓我們學的不再那么迷茫和渺茫了。</p><p>  其次老師和同學的關(guān)系我覺得對同學能否學習好這門課程很重要,課堂上老師應(yīng)該要嚴肅認真,下課后老師可以多和同學們接觸和聊天,培養(yǎng)和同學們的關(guān)系,和同學們做朋友,對同學們提出的問題要認真對待。</p><

32、;p>  還有就是,老師的責任不僅僅是傳授知識,更重要的是給我們傳授學習經(jīng)驗和方法,培養(yǎng)學生的發(fā)散思考方式,以及多傳授點社會經(jīng)驗和教訓,教我們不要走不必要的彎路以及在社會上你所必備的生存工具。</p><p><b>  參考文獻</b></p><p>  [1] 李朝青. 單片機原理及接口技術(shù)[M].北京:北京航空航天大學出版社,1998.</p>

33、;<p>  [2] 王幸之等.單片機應(yīng)用系統(tǒng)抗干擾技術(shù)[M].北京:北京航空航天大學出版社, 1999. </p><p>  [3] 何為民.低功耗單片微機系統(tǒng)設(shè)計[M].北京:北京航空航天大學出版社,1994.</p><p>  [4] 李華.MCS-51系列單片機實用接口技術(shù)[M].北京:北京航空航天大學出版社, 1996.<

34、;/p><p>  [5] 何立民.單片機高級教程[M].北京:北京航空航天大學出版社,2000.</p><p>  [6] 馬忠梅.單片機應(yīng)用程序設(shè)計(第四版)[M].北京:北京航空航天大學出版社,2006.</p><p>  附錄A 系統(tǒng)原理圖與PCB圖</p><p><b>  (原理圖)</b></p&g

35、t;<p><b>  (PCB圖)</b></p><p><b>  附錄B 元器件清單</b></p><p><b>  附錄C 程序清單</b></p><p><b>  ORG 0000H</b></p><p>  MOV

36、70H,#0C0H ;70H到7AH存放的是0到9、一的段控碼</p><p>  MOV R2,#70H ;R2和R3控制秒鐘的段控碼</p><p>  MOV R3,#70H</p><p>  MOV R4,#70H ;R4和R5控制分鐘的段控碼</p><p>  MOV R5,#70H</p><p&

37、gt;  MOV R6,#70H ;R6和R7控制時鐘的段控碼</p><p>  MOV R7,#70H</p><p>  MOV 71H,#0F9H</p><p>  MOV 72H,#0A4H</p><p>  MOV 73H,#0B0H</p><p>  MOV 74H,#99H

38、</p><p>  MOV 75H,#92H</p><p>  MOV 76H,#82H</p><p>  MOV 77H,#0F8H</p><p>  MOV 78H,#80H</p><p>  MOV 79H,#90H</p><p>  MOV 7AH,#0BFH</p&g

39、t;<p>  MOV 6FH,#00H;6FH存放1秒鐘由50ms循環(huán)20次的次數(shù)</p><p>  MOV 6EH,#00H;6EH存放控制定時器循環(huán)的次數(shù)</p><p>  MOV SP,#30H</p><p>  ;以上程序為:1、將段控碼存放到70H到7AH中。2、開辟堆棧</p><p>  ;以下程序

40、為顯示顯示和判斷開始計時鍵是否按下JC0:LCALL XSXH;調(diào)兩次用顯示學號的子程序 </p><p>  LCALL XSXH</p><p>  LCALL JCAJ;檢查開啟案件有沒有按下,如果按下,則在A中的相應(yīng)為會置一 </p><p>  JB ACC.0,JC0;對A中的ACC.0進行判斷,如果為為高電平,則沒有按下<

41、/p><p>  LCALL XSXH</p><p>  LCALL XSXH</p><p>  ZL1:LCALL JCAJ ;判斷按鍵是否松開</p><p>  JB ACC.0,JSKS ;如果松開則跳轉(zhuǎn)到JSKS的程序中,</p><p>  LCALL XSXH ;如果沒有松開則2次顯

42、示學號(同時也起延時6秒的作用)</p><p>  LCALL XSXH </p><p>  SJMP ZL1 JSKS:MOV IE,#00H ;時鐘開始運行,讓定時計數(shù)器1,以工作方式1工作,并置初值 </p><p>  MOV TMOD,#11H;定時計數(shù)

43、器1以工作方式1計時50ms,循環(huán)20次MOV TH1,#3CH;定時時間是50MS</p><p>  MOV TL1,#0B0H</p><p><b>  SETB TR1</b></p><p>  ;以查詢方式判斷計時是否已到,如果沒有到則進行跳轉(zhuǎn)到LOOP5 </p><p>  KS:JBC

44、TF1,LOOPS </p><p>  SJMP LOOP5;如果到達則進行電子時鐘的進位操作</p><p>  ;此段程序為電子時鐘的各個數(shù)碼管的段控碼的進位判斷 LOOPS:MOV TH1,#3CH </p><p>  MOV TL1,#0B0H</p><p>  MOV R0,#6FH;

45、6F控制循環(huán)20次,當達到一秒鐘,控制各個數(shù)碼管的段控碼的改變</p><p><b>  INC @R0</b></p><p>  CJNE @R0,#14H,LOOP5 ;達到一秒鐘則執(zhí)行下面的程序</p><p>  MOV @R0,#00H</p><p><b>  INC R2<

46、;/b></p><p>  CJNE R2,#7AH,LOOP</p><p>  MOV R2,#70H</p><p><b>  INC R3</b></p><p>  LOOP:CJNE R3,#76H,LOOP1</p><p>  MOV R3,#70H</p>

47、<p><b>  INC R4</b></p><p>  LOOP1:CJNE R4,#7AH,LOOP2</p><p>  MOV R4,#70H</p><p><b>  INC R5</b></p><p>  LOOP2:CJNE R5,#76H,LOOP3</p&

48、gt;<p>  MOV R5,#70H</p><p><b>  INC R6</b></p><p>  LOOP3:CJNE R6,#7AH,LOOP4</p><p>  MOV R6,#70H</p><p><b>  INC R7</b></p><

49、p>  LOOP4:CJNE R7,#72H,LOOP5</p><p>  CJNE R6,#74H,LOOP5</p><p>  MOV R6,#70H</p><p>  MOV R7,#70H</p><p>  ;此段程序為顯示數(shù)碼管的值,并判斷調(diào)整開關(guān)是否按下 </p><p>  LOO

50、P5: LCALL XSSMG</p><p>  LCALL XSSMG</p><p>  LCALL JCAJ ;檢查開啟按鍵有沒有按下 </p><p>  JB ACC.0,KS;沒有按下就繼續(xù)計時,按下就跳轉(zhuǎn)到調(diào)時狀態(tài)</p><p>  LCALL XSSMG;次語句既可以顯示數(shù)碼管,又可以達到延時的效果

51、</p><p>  LCALL XSSMG</p><p>  ZCJC:LCALL JCAJ;檢查開關(guān)有沒有松開,如果松開就跳轉(zhuǎn)到調(diào)時程序</p><p>  JB ACC.0,TIAOSHI</p><p>  LCALL XSSMG</p><p>  LCALL XSSMG</p><p

52、>  SJMPZCJC;如果沒有松開就繼續(xù),就繼續(xù)顯示數(shù)碼管并檢查 </p><p>  ;此段程序是將調(diào)整按鍵的變化的值放到數(shù)碼管顯示,并判斷調(diào)時結(jié)束按鍵是否按下</p><p>  TIAOSHI:LCALL XSSMG </p><p>  LCALL TSJCAJ

53、;判斷調(diào)時的哪個鍵按下,并就其控制的值加一</p><p>  LCALL XSSMG </p><p>  LCALL JCAJ;檢查結(jié)束調(diào)整按鍵有沒有按下</p><p>  JB ACC.0,TIAOSHI;沒有按下就繼續(xù)調(diào)時,</p><p>  LCALL XSSMG</p>&l

54、t;p>  LCALL XSSMG</p><p>  JXJC2:LCALL JCAJ</p><p>  JB ACC.0,KS;判斷調(diào)時鍵是否松開松開,則跳轉(zhuǎn)到計時狀態(tài) </p><p>  LCALL XSSMG</p><p>  LCALL XSSMG</p><p>  LJMP JXJC2&l

55、t;/p><p>  ;此段程序為定時器0,工作方式1,定時1msDELAY1MS:MOV TH0,#0FCH ;延時1MS的程序</p><p>  MOV TL0,#18H</p><p><b>  SETB TR0</b></p><p>  LOOOP:JBC TF0,TCDS1MS&l

56、t;/p><p>  SJMP LOOOP</p><p>  TCDS1MS:RET </p><p>  ;此段程序為判斷有沒有按鍵按下,按下就置一,并將其值放在A中</p><p>  JCAJ:MOV A,P1;檢查開啟案件有沒有按下</p><p>  JB ACC.0,JCAJJS;ACC.

57、0=1,沒有鍵按下</p><p>  LCALL XSSMG</p><p>  MOV A,P1;如果有鍵按下,則ACC.0為0 JCAJJS:RET</p><p>  ;此段程序是判斷調(diào)時按鍵是否按下,按下就使相應(yīng)的段控碼加一 </p><p>  TSJCAJ:MOV A,P1;調(diào)時

58、檢查按鍵(首寫字母:TSXSAJ)</p><p>  JB ACC.1,JC2 ;ACC.1控制秒鐘的調(diào)時,ACC.1為低電平表示按下</p><p>  LCALL XSSMG</p><p>  LCALL XSSMG</p><p>  TSJC1: MOV A,P1</p><p>  JB A

59、CC.1,ZX1 ;ACC.1的鍵是否松開</p><p>  LCALL XSSMG</p><p>  LCALL XSSMG</p><p>  SJMP TSJC1</p><p>  ZX1:INC R2 ;松開則加一</p><p>  CJNE R2,#7AH,JC2 ;判斷有沒有進位&

60、lt;/p><p>  MOV R2,#70H</p><p><b>  INC R3</b></p><p>  CJNE R3,#76H,JC2</p><p>  MOV R3,#70H</p><p><b>  LJMP JC2</b></p><

61、p>  JC2:MOV A,P1;判斷分鐘的調(diào)整按鍵有沒有按下</p><p>  JB ACC.2,JC3 ;ACC.2控制分鐘的調(diào)時,ACC.2為低電平表示按下</p><p>  LCALL XSSMG</p><p>  LCALL XSSMG</p><p>  TSJC2:MOV A,P1 ;判斷分

62、鐘調(diào)整鍵有沒有松開</p><p>  JB ACC.2,ZX2</p><p>  LCALL XSSMG</p><p>  LCALL XSSMG</p><p>  SJMP TSJC2</p><p>  ZX2:INC R4;松開則加一</p><p>  CJNE R4,#

63、7AH,JC3 ;判斷有沒有進位</p><p>  MOV R4,#70H</p><p><b>  INC R5</b></p><p>  CJNE R5,#76H,JC3</p><p>  MOV R5,#70H</p><p><b>  LJMP JC3</b&

64、gt;</p><p>  JC3:MOV A,P1 ;判斷時鐘的調(diào)整按鍵有沒有按下</p><p>  JB ACC.3,JSTS ;ACC.3控制分鐘的調(diào)時,ACC.3為低電平表示按下</p><p>  LCALL XSSMG</p><p>  LCALL XSSMG</p><p> 

65、 TSJC3:MOV A,P1 ;判斷時鐘的調(diào)整按鍵有沒有松開</p><p>  JB ACC.3,ZX3</p><p>  LCALL XSSMG</p><p>  LCALL XSSMG</p><p>  SJMP TSJC3</p><p>  ZX3:INC R6;松開則加一

66、</p><p>  CJNE R7,#72H,JXZX;判斷有沒有進位</p><p>  CJNE R6,#74H,JXZX</p><p>  MOV R6,#70H</p><p>  MOV R7,#70H</p><p><b>  SJMP JSTS</b></p>

67、<p>  JXZX:CJNE R6,#7AH,JSTS</p><p>  MOV R6,#70H</p><p>  INC R7 </p><p><b>  JSTS:RET</b></p><p>  ;顯示各個數(shù)碼管中的值,每顯示一個延時1秒</p>&l

68、t;p>  XSSMG:MOV A,#0FEH;顯示數(shù)碼管各個的值,每顯示顯示一個數(shù)碼管延時1秒,然后控制為左移 </p><p>  MOV 7DH,R2;7DH是為將R2的地址放到R0中</p><p>  MOV R0,7DH</p><p>  MOV P0,@R0;將R2的段控碼送到P0口</p><

69、;p><b>  MOV P2,A</b></p><p>  LCALL DELAY1MS</p><p>  MOV 7DH,R3 ;</p><p>  MOV R0,7DH</p><p><b>  RL A</b></p><p>  MOV P0,@R

70、0</p><p><b>  MOV P2,A</b></p><p>  LCALL DELAY1MS </p><p><b>  RL A</b></p><p>  MOV P0,#0BFH ;0BFH為一的共陽段控碼</p><p><b>  

71、MOV P2,A</b></p><p>  LCALL DELAY1MS </p><p><b>  RL A</b></p><p>  MOV 7DH,R4</p><p>  MOV R0,7DH</p><p>  MOV P0,@R0</p><p&g

72、t;<b>  MOV P2,A</b></p><p>  LCALL DELAY1MS</p><p><b>  RL A</b></p><p>  MOV 7DH,R5</p><p>  MOV R0,7DH</p><p>  MOV P0,@R0</p&

73、gt;<p><b>  MOV P2,A</b></p><p>  LCALL DELAY1MS</p><p><b>  RL A</b></p><p>  MOV P0,#0BFH ;0BFH為一的共陽段控碼</p><p><b>  MOV P2,A&

74、lt;/b></p><p>  LCALL DELAY1MS</p><p><b>  RL A</b></p><p>  MOV 7DH,R6</p><p>  MOV R0,7DH</p><p>  MOV P0,@R0</p><p><b>

75、;  MOV P2,A</b></p><p>  LCALL DELAY1MS</p><p><b>  RL A</b></p><p>  MOV 7DH,R7</p><p>  MOV R0,7DH</p><p>  MOV P0,@R0</p><p

76、><b>  MOV P2,A</b></p><p>  LCALL DELAY1MS</p><p><b>  RET</b></p><p>  ;以上這段程序是將R2到R7中控制的段控碼分別送到秒、分、時的數(shù)碼管中顯示并延時每個數(shù)碼管顯示后延時1秒</p><p>  XSXH:MO

77、V A,#0FEH ;顯示學號(首寫字母)的的子程序</p><p><b>  MOV P2,A</b></p><p>  MOV P0,#82H</p><p>  LCALL DELAY1MS ;顯示6并延時1ms</p><p><b>  RL A</b></p&g

78、t;<p><b>  MOV P2,A</b></p><p>  MOV P0,#99H</p><p>  LCALL DELAY1MS ;顯示4并延時1ms</p><p><b>  RL A</b></p><p><b>  MOV P2,A</b&

79、gt;</p><p>  MOV P0,#0BFH</p><p>  LCALL DELAY1MS ;顯示一并延時1ms</p><p><b>  RL A</b></p><p><b>  MOV P2,A</b></p><p>  MOV P0,#0B0

80、H</p><p>  LCALL DELAY1MS ;顯示3并延時1ms</p><p><b>  RL A</b></p><p><b>  MOV P2,A</b></p><p>  MOV P0,#0C0H</p><p>  LCALL DELAY1M

81、S ;顯示0并延時1ms</p><p><b>  RL A</b></p><p><b>  MOV P2,A</b></p><p>  MOV P0,#90H</p><p>  LCALL DELAY1MS ;顯示9并延時1ms</p><p&g

82、t;<b>  RL A</b></p><p><b>  MOV P2,A</b></p><p>  MOV P0,#0C0H</p><p>  LCALL DELAY1MS ;顯示0并延時1ms</p><p><b>  RL A</b></p&g

83、t;<p><b>  MOV P2,A</b></p><p>  MOV P0,#0A4H</p><p>  LCALL DELAY1MS ;顯示Z并延時1ms</p><p><b>  RET</b></p><p><b>  END</b>

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論