基于51單片機能實現(xiàn)任意時間倒計時_第1頁
基于51單片機能實現(xiàn)任意時間倒計時_第2頁
基于51單片機能實現(xiàn)任意時間倒計時_第3頁
基于51單片機能實現(xiàn)任意時間倒計時_第4頁
基于51單片機能實現(xiàn)任意時間倒計時_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、倒 計 時 器 只要修改此文檔15頁 源程序的(如下圖)的到計時初值即可實現(xiàn)想要的倒計時。比如30分鐘倒計時 修改分鐘十位和各位即可。一、 設計要求:由單片機接收小鍵盤陣列設定倒計時時間,倒計時的范圍最大為60分鐘,由LED 顯示模塊顯示剩余時間,顯示格式為 XX(分):XX(秒).X,精確到0.1s的整數(shù)倍。倒計時到,由蜂鳴器發(fā)出報警。繪制系統(tǒng)硬件接線圖,并進行系統(tǒng)仿真和實驗。畫出程序流程圖并編寫程序實現(xiàn)系統(tǒng)功能。二、 設計的作用目的:此次設計是我們更進一步了解基本電路的設計流程,提高自己的設計理念,豐富自己的理論知識,鞏固所學知識,使自己的動手動腦能力有更進一步提高,為自己今后的學習和工作

2、打好基礎,為自己的專業(yè)技能打好基礎。通過解決實際問題,鞏固和加深“單片機原理與應用”課程中所學的理論知識和實驗能力,基本掌握單片機應用電路的一般設計方法,提高電子電路的設計和實驗能力,加深對單片機軟硬知識的理解,獲得初步的應用經驗,為以后從事生產和科研工作打下一定的基礎。本次設計注重對單片機工作原理以及鍵盤控制及顯示原理的理解,以便今后自己在單片機領域的學習和開發(fā)打下基礎,提高自己的動手能力和設計能力,培養(yǎng)創(chuàng)新能力,豐富自己的理論知識,做到理論和實踐相結合。本次設計的重要意義還在于對單片機的內部結構和工作狀態(tài)做更進一步的了解,同時還對單片機的接口技術,中斷技術,存儲方式和控制方式作更深層次的了

3、解。三、 具體設計:1. 問題分析:在電子技術飛速發(fā)展的今天,電子產品的人性化和智能化已經非常成熟,其發(fā)展前景仍然不可估量。如今的人們需求的是一種能給自己帶來方便的電子產品,當然最好是人性化和智能化的,如何能做到智能化呢?單片機的引入就是一個很好的例子。單片機又稱單片微型計算機,也稱為微控制器,是微型計算機的一個重要分支,單片機是20世紀70年代中期發(fā)展起來的一種大規(guī)模集成電路芯片,是集CPU,RAM,ROM,I/O接口和中斷系統(tǒng)于同一硅片上的器件。單片機的誕生標志著計算機正式形成了通過計算機系統(tǒng)和嵌入式計算機系統(tǒng)兩個分支。目前單片機已滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的

4、蹤跡。單片機已在廣闊的計算機應用領域中表現(xiàn)得淋漓盡致電器因此,單片機已成為電子類工作者必須掌握的專業(yè)技術之一。單片機就是一個微型中央處理器,通過編程即能完成很多智能化的工作 ,因此它的出現(xiàn)給電子技術智能化和微型化起到了很大的推動作用。本設計將采用89C51單片機,89C51單片機是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。單片機自帶5個中斷,兩個16位定時器32個I/O口,可擦除只讀存儲器可以反復擦除多次,功能相當強大。該器件采用ATM

5、EL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的89C51是一種高效微控制器。89C單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。面對如此功能強大的單片機,結合本次設計要求,應該要用到單片機的內部時鐘電路以及外圍的顯示接口電路和報警電路。對與時鐘,它有兩方面的含義:一是指為保障系統(tǒng)正常工作的基準振蕩定時信號,主要由晶振和外圍電路組成,晶振頻率的大小決定了單片機系統(tǒng)工作的快慢;二是指系統(tǒng)的標準定時時鐘,即定時時間,它通常有兩種實現(xiàn)方法:一是用軟件實現(xiàn),即用單片機內部的可編程定時/計數(shù)器

6、來實現(xiàn),但誤差很大,主要用在對時間精度要求不高的場合;二是用專門的時鐘芯片實現(xiàn),在對時間精度要求很高的情況下,通常采用這種方法。在顯示方面,有著多種選擇,但是8段LED數(shù)碼管足以滿足此次設計的要求了。LED數(shù)碼顯示器是一種有LED發(fā)光二極管組合顯示字符的顯示器件。它使用了8個LED發(fā)光二極管,其中7個用于顯示字符,一個用于顯示小數(shù)點,故通常稱之為8段發(fā)光二極管數(shù)碼器。其內部結構如下圖(a)所示:LED數(shù)碼顯示器有如下兩種連接方法:共陽極接法:把發(fā)光二極管的陽極連在一起構成公共陽極,使用時公共陽極接+5V,每個發(fā)光二極管的陰極通過電阻與輸入端相連。 共陰極接法:把發(fā)光二極管的陰極連在一起構成公共

7、陰極,使用時公共陰極接地。每個發(fā)光二極管的陽極通過電阻與輸入端相連。蜂鳴器是一種一體化結構的電子訊響器,采用直流電壓供電,廣泛應用于計算機、打印機、復印機、報警器、電子玩具、汽車電子設備、電話機、定時器等電子產品中作發(fā)聲器件。在單片機應用的設計上,很多方案都會用到蜂鳴器,大部分都是使用蜂鳴器來做提示或報警,比如按鍵按下、開始工作、工作結束或是故障等等。由于蜂鳴器的工作電流一般比較大,以致于單片機的I/O 口無法直接驅動,所以要利用放大電路來驅動,一般使用三極管來放大電流。本設計采用p3.0口和三極管組成的電路來驅動蜂鳴器。2. 總體設計思想:本設計是基于AT89C51單片機的鍵盤控制及顯示電路

8、設計,從系統(tǒng)的設計功能上看,系統(tǒng)可分為兩大部分,即鍵盤輸入控制部分和顯示部分,對于每一個部分都有不同的設計方案,起初我對鍵盤和顯示每個都擬訂了下面兩種方案:鍵盤部分:第一種方案:采用掃描鍵盤,可以用普通按鍵構成44矩陣鍵盤,直接接到AT89C51單片機的P1口,高四位作為行,低四位作為列,通過軟件完成鍵盤的掃描和定位。這種方式相對下面的獨立式鍵盤節(jié)省了很多的I/O口。第二種方案:鍵盤控制采用獨立式按鍵,每個按鍵的一端均接地,另一端直接和P1口相連,在按鍵和P1口之間通過10K電阻與+5V電源相連。鍵盤通過檢測輸入線的電平狀態(tài)就可以很容易地判斷哪個鍵被按下了,這種方法操作速度高而且軟件結構很簡單

9、,比較適合按鍵較少或操作速度較高的場合,這種獨立式接口的應用很普遍。顯示部分:第一種方案:顯示部分采用靜態(tài)顯示方法,所謂靜態(tài)顯示,就是每一個顯示器都要占用一個獨立的具有鎖存功能的接口用于存儲字形碼。這樣單片機只要把要顯示的字形代碼發(fā)送到接口電路,從而輸送至各數(shù)碼管顯示。被顯示的數(shù)據只要輸出一次,直到要顯示新的數(shù)據時,再發(fā)送新的字形碼。靜態(tài)驅動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用I/O端口多,如驅動5個數(shù)碼管靜態(tài)顯示則需要5840根I/O端口來驅動,要知道一個89S51單片機可用的I/O端口才32個),實際應用時必須增加譯碼驅動器進行驅動,增加了硬件電路的復雜性。第二種方案:顯示部分采用動態(tài)

10、顯示。數(shù)碼管動態(tài)顯示接口是單片機中應用最為廣泛的一種顯示方式之一,動態(tài)驅動是將所有數(shù)碼管的8個顯示筆劃a,b,c,d,e,f,g,dp的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅動。動態(tài)顯示是利用人眼視覺暫留特性來實現(xiàn)顯示的。事實上,顯示器上任何時

11、刻只有一個數(shù)碼管有顯示。由于各數(shù)碼管輪流顯示的時間間隔短、節(jié)奏快,人的眼睛反應不過來,因此看到的是連續(xù)顯示的現(xiàn)象。為防止閃爍延時的時間在1ms左右,不能太長,也不能太短。本設計可采用P0口直接驅動七段數(shù)碼管顯示。此方案成本低,而且單片機的I/O口占用較少,可以節(jié)約單片機接口資源,而且功耗更低。由于本設計要求按鍵較少,且本次設計只是對所學知識的一次實踐,設計要求簡單,容易實現(xiàn),成本低廉。比較以上各種設計方案,采用獨立式鍵盤和動態(tài)顯示兩種方案配合,成本低,占用單片機資源少,且容易實現(xiàn),這樣的設計比較適合本次設計,故最終決定選用這樣的一種搭配設計方案。對于蜂鳴器,將采用p3.0口和三極管組成的外圍電

12、路驅動,根據定時時間報警。3.具體實現(xiàn)方法:根據設計任務與要求,可初步將系統(tǒng)分為五大功能模塊:主電路、按鍵電路、顯示電路、報警電路。進一步細說,主電路選用AT89C51作為中央處理器,系統(tǒng)采用12MHZ的晶振;按鍵停控制電路由四個按鍵(復位鍵、啟動/暫停鍵、設置鍵、+1調時鍵)組成,鍵盤采用軟件掃描的方式設計,低電平有效;顯示電路由六位七段共陰極數(shù)碼管和一個9位200歐姆上拉電阻組成,顯示內容有倒計時器的0.1秒位以及分秒的個、十位,數(shù)碼管通過P0口直接輸出數(shù)據;報警電路主要由蜂鳴器組成,通過電路與P3.0口相連。當P3.0口輸出高電平時,蜂鳴器響。對于本次單片機課程設計,根據設計要求可以將功

13、能分成如下4部分:(1) 由于單片機內部振蕩方式電路簡單,時鐘信號比較穩(wěn)定,是獨立的單片機應用系統(tǒng)的首選,故本設計采用內部振蕩方式,采用12MHZ的晶振。圖(1)晶振電路圖(2) 本設計電路采用定時器T0產生定時中斷,由于本設計需要0.1s的基本時間,故選擇其工作在定時方式1下。這時定時器T0是一個16位的計時器,由它產生50ms的基本定時中斷,兩次中斷后將得到0.1s的時間。(3) 鍵盤電路有獨立式鍵盤和矩陣式兩種。獨立式鍵盤占用I/O口線較多,適用于按鍵較少的情況。矩陣式鍵盤占用的I/O口相對較少,適用于按鍵很多的情況。圖(2)鍵盤電路圖(4) 報警電路將采用p3.0口驅動,當數(shù)碼管顯示0

14、0.00.0時p3.0口輸出高電平,驅動蜂鳴器達到報警的目的,只有當復位鍵按下后,蜂鳴器才會停止報警。圖(3)蜂鳴器報警電路圖(5) 對于顯示電路,本設計采用6位8段共陰極LED數(shù)碼管顯示。上電顯示最大倒計時時間60.00.00-。其中“-”位為系統(tǒng)狀態(tài)標志位,當顯示“-”時,表示系統(tǒng)處于等待狀態(tài),按下開始鍵后將開始計數(shù),開始計數(shù)后此數(shù)碼管將關閉顯示,以達到省電的目的 ,當顯示“E”時,表示系統(tǒng)正處于調時狀態(tài),此時只用兩個調時鍵有用,按下開始鍵或復位鍵將沒有用。圖(4)顯示電路圖系統(tǒng)的原理框圖如下圖:單片機控制器晶振電路鍵盤電路顯示電路報警電路圖(5)系統(tǒng)原理框圖NN等待按鍵釋放調時設置鍵按下

15、?圖(6)硬件連線圖硬件連接說明:本系統(tǒng)以AT89C51單片機為核心。單片機采用內部振蕩的方式。通過200歐姆電阻與一個6位8段LED數(shù)碼顯示管相連。從P0口輸出LED數(shù)碼管的字形碼,從P2口輸出LED數(shù)碼管的位選碼,高電平有效。4個功能按鍵和P1口相連,中間通過10K的電阻與+5V電源相連,按鍵另一端接地,P1口低電平時表示按鍵被按下。報警電路則與P3.0口相連,當P3.0口輸出高電平時,蜂鳴器響。在程序設計方面:將鍵盤掃描程序置于主程序中,采用掃描方式檢測鍵盤的按鍵情況,主程序流程圖見圖(7)。顯示部分做成一個子程序,方便調用。各個調時子程序由設置鍵引倒進入,調時子程序流程圖見圖(8)。計

16、時方面,利用定時器T0產生的0.5ms基準時間形成0.1s的最小倒計時時間單位并產生“-1”動作,T0中斷子程序流程圖見圖(9)。圖(7)主程序流程圖YNYNNYNYNNNYYYY開始關閉定時器、蜂鳴器復位鍵按下?標志位、顯示管查表碼初始化定時器設置初始化開中斷調用顯示子程序調時設置鍵按下?調用消抖延時子程序開始/暫停鍵按下?開始/暫停鍵按下?調用消抖延時子程序開始/暫停標志位取反等待按鍵釋放等待按鍵釋放調用調時子程序等待按鍵釋放20H.0=1?置位狀態(tài)顯示管標志位P3.0=0?置位P2.5復位鍵按下?調用消抖延時子程序調時設置鍵按下?啟動定時器T0NN圖(8)YNR0為#39H?YYYNNN

17、NNNNNNYYYYYYYYYY調用顯示子程序P1.3=0?開始調用消抖延時子程序P1.3=0?等待按鍵釋放R0=#44H?R0為#06H?MOV R0,#00HR0=#43H?3R0為#05H?R0為#09H?MOV R0,#00HMOV R0,#00HINC R0INC R0INC R0P1.2=0?P1.2=0?調用消抖延時子程序等待按鍵釋放DEC R044H=#06H?R0=#42H?3子程序返回調時子程序流程圖N圖(9)T0中斷子程序流程圖NNYYYYNN開始40H=0?41H=0?42H=0?43H=0?44H=0?DEC 40HSETB P3.0DEC 40H啟動T0中斷返回NN

18、NNNYYYY將40H置940H=0?41H=0?42H=0?43H=0?44H=0?DEC 42HDEC 40HDEC 40HDEC 41H將40H置9將41H置9將40H、41H、43H置9,42H置5將40H、41H置9,42H置5N四、Proteus調試過程及現(xiàn)象:上電后LED數(shù)碼管顯示最大倒計時值60.00.0-,程序處于等待狀態(tài)。圖(10)上電或者復位鍵被按下時此時,主程序不斷調用顯示子程序以及掃描鍵盤按鍵情況,當檢測到有鍵按下后,轉到相應的程序執(zhí)行。1. 開始/暫停鍵按下后程序開始減1計數(shù)直到0,同時狀態(tài)顯示管熄滅,計數(shù)值到0后報警器響。若中途遇到開始/暫停鍵按下則,暫停倒計時。

19、若中途遇到復位鍵按下則將倒計時器的倒計時值設置為最大值,并處于等待狀態(tài)。圖(11)計數(shù)值到0時圖(12)開始/暫停鍵按下后3. 復位鍵按下后,程序復位,系統(tǒng)處于等待狀態(tài),狀態(tài)顯示管顯示“-”。 4. 當設置鍵被按下后,程序進入調時設置狀態(tài),同時狀態(tài)顯示管顯示“E”。設置狀態(tài)的初始值位00.00.0E,按下+1調整鍵,可以將當前的計數(shù)單位值加1,再次按下設置鍵后,即進入了下個計數(shù)單位的調時狀態(tài),當按下5次設置鍵后將退出調時狀態(tài),若分鐘十位被設置為6并再次按下設置鍵后程序直接退出調時狀態(tài)。設置狀態(tài)時開始/暫停鍵和復位鍵無效,等退出調時狀態(tài)后,設置狀態(tài)時開始/暫停鍵和復位鍵恢復功能。圖(13)調時狀

20、態(tài)時五、調試問題及解決方法:開始在主程序的循環(huán)中沒有添加調用顯示子程序的語句,導致在沒有按鍵按下的情況下LED數(shù)碼管沒有顯示。當在主程序循環(huán)檢測按鍵的過程中添加了調用顯示子程序的語句后就解決了這一問題。由于鍵盤需要消抖延時和等待按鍵釋放,所以相似的情況又出現(xiàn)了按下按鍵后有一段時間LED數(shù)碼管斷續(xù)顯示或者按下按鍵后不釋放按鍵時LED數(shù)碼管沒有顯示。仔細分析后發(fā)現(xiàn),問題出現(xiàn)的原因還是一樣的,由于本設計的LED數(shù)碼管采用了動態(tài)顯示,故需要不斷調用顯示子程序,否則會導致LED數(shù)碼管沒有顯示。所以最終做了以下改進:1.按鍵的消抖延時選擇調用兩次顯示子程序(每次顯示子程序大約用時5ms,兩次即為10ms左

21、右)來取代原來的10ms軟件延時。2.在等待按鍵釋放時,使用循環(huán)調用顯示子程序來替代原來的循環(huán)等待。經過上述兩點的改進后,LED數(shù)碼管無顯示或者斷續(xù)顯示的問題就得到了徹底的解決。六、設計的優(yōu)缺點分析:本設計是一個采用了由內部振蕩的時鐘方式、程控掃描方式的獨立式鍵盤、動態(tài)顯示LED數(shù)碼管和蜂鳴器式報警器組成的系統(tǒng)。因此該系統(tǒng)使用的電子器件少、外圍電路簡單,定時精準,使用的I/O少,系統(tǒng)消耗的功耗小,剩余的I/O口多便于擴展其他功能。但是另一方面,本系統(tǒng)由于使用了程控式的鍵盤和動態(tài)顯示的LED數(shù)碼管,所以對CPU的使用率相對較高。七、心得體會:初次看到本次的課程設計的題目時,感覺設計的難度不大,但

22、是由于是第一次運用單片機設計,在設計過程中又遇到了種種困難,又感覺到要完成此次設計還需要花費很大的時間和精力。但是經過本組同學的共同努力,運用科學的分析方法,最終順利完成了本次單片機課程設計。經過兩個星期的實習,過程曲折可謂一語難盡。在此期間我也失落過,也曾一度熱情高漲。從開始時滿富盛激情到最后汗水背后的復雜心情,點點滴滴無不令我回味無長。生活也是這樣,汗水預示著結果也見證著收獲。勞動是人類生存生活永恒不變的話題。通過實習,我才真正領略到“艱苦奮斗”這一詞的真正含義,我才意識到老一輩設計員為我們的社會付出。我想說,設計確實有些辛苦,但苦中也有樂,在如今物欲很流的世界,很少有機會能與大自然親密接

23、觸,但我們可以,而且設計也是一個團隊的任務,一起的工作可以讓我們有說有笑,相互幫助,配合默契,多少人間歡樂在這里灑下,大學里一年的相處還趕不上這十來天的實習,我感覺我和同學們之間的距離更加近了;我想說,設計確實很累,但當我們的設計出現(xiàn)成果時,心中也不免產生興奮,正所謂“三百六十行,行行出狀元”我認為無論干什么,只要人生活的有意義就可以。同時我認為我們的工作是一個團隊的工作,團隊需要個人,個人也離不開團隊,必須發(fā)揚團結協(xié)作的精神。某個人的離群都可能導致導致整項工作的失敗。實習中只有一個人知道原理是遠遠不夠的,必須讓每個人都知道,否則一個人的錯誤,就有可能導致整個工作失敗。團結協(xié)作是我們實習成功的

24、一項非常重要的保證。而這次實習也正好鍛煉我們這一點,這也是非常寶貴的。另外,課堂上也有部分知識不太清楚,于是我又不得不邊學邊用,時刻鞏固所學知識,這也是我作本次課程設計的第二大收獲。整個設計我基本上還滿意,由于水平有限,難免會有錯誤,還望老師批評指正。八、參考文獻:1 曾屹.單片機原理與應用.湖南:中南大學出版社,20092 丁元杰.單片微機原理及應用.3版.北京:機械工業(yè)出版社,20063 嚴天峰.單片機應用系統(tǒng)設計與仿真調試.北京:北京航空航天大學出版社,20054 楊振江.流行單片實用子程序及應用實例.西安:電子科技大學出版社,2002附:實驗源程序 ;倒計時器設計源程序ORG 0000

25、H AJMP MAIN ORG 000BH ;T0中斷程序入口地址 AJMP T0ZD ORG 00100HMAIN:CLR TR0 ;主程序開始 CLR P3.0 ;關閉蜂鳴器 SETB 20H.1 ;使顯示管狀態(tài)標志位有效 CLR 20H.0 ;開始/暫停標志位,使程序處于等待開始|暫停鍵按下 MOV 40H,#00H ;0.1S位查表碼 MOV 41H,#00H ;秒鐘個位位查表碼 MOV 42H,#00H ;秒鐘十位位查表碼 MOV 43H,#00H ;分鐘個位位查表碼 MOV 44H,#06H ;分鐘十位位查表碼 MOV 45H,#00H ;狀態(tài)顯示管查表碼 MOV 46H,#02H

26、 ;定時器定時次數(shù) SETB EA ;開總中斷 SETB ET0 ;開定時器T0中斷 MOV TMOD,#01H ;定時器工作方式0 MOV TL0,#0B0H ;定時初值,采用50MS定時 MOV TH0,#3CHJPJC:LCALL XSCX ;顯示倒計時初值60.00.0(XSCX),進入鍵盤檢測程序 MOV P1,#0FFH ;判斷復位鍵是否按下 JB P1.0,JC12 LCALL XDYS ;調用消抖延時程序(XDYS) JB P1.0,JC12PP10:JNB P1.0,DP10 ;等待按鍵按下 AJMP MAIN ;復位鍵按下后轉到主程序(MAIN)重新開始JC12:MOV P

27、1,#0FFH ;判斷設置鍵是否按下 JB P1.2,JC11 LCALL XDYS JB P1.2,JC11PP12:JNB P1.2,DP12 ;調整設置鍵按下后轉到調時子程序(TSCX) ACALL TSCXJC11:MOV P1,#0FFH ;判斷開始/暫停鍵是否按下 JB P1.1,JPJC LCALL XDYS JB P1.1,JPJCPP11:JNB P1.1,DP11 CPL 20H.0 ;將標志位取反 JB 20H.0,KSJS ;開始/暫停標志為1則開始計數(shù)(KSJS) CLR TR0 SETB 20H.1 AJMP JPJC ;繼續(xù)檢測鍵盤按鍵情況(JPJC)DP10:L

28、CALL XSCX ;等待按鍵按下時,調用顯示程序,防止顯示管沒顯示 AJMP PP10DP11:LCALL XSCX AJMP PP11DP12:LCALL XSCX AJMP PP12KSJS:CLR 20H.1 ;清除狀態(tài)顯示管 SETB P2.5 JB P3.0,JPJC ;若蜂鳴器響,則不啟動計時器 SETB TR0 ;啟動計時器TO (KSJS) AJMP JPJC; 顯示子程序XSCX:MOV DPTR,#TAB ;顯示子程序(XSCX) MOV A,40H MOVC A,A+DPTR MOV P2, #0FFH ;關閉顯示. MOV P0, A ;輸出0.1S位的顯示段碼. C

29、LR P2.0 ;P2.0=0 ACALL XSYS MOV DPTR,#TAB1 ; MOV A,41H MOVC A,A+DPTR MOV P2, #0FFH ;關閉顯示. MOV P0, A ;輸出秒鐘個位的顯示碼. CLR P2.1 ;P2.1=0 ACALL XSYS MOV DPTR,#TAB MOV A,42H MOVC A,A+DPTR MOV P2, #0FFH ;關閉顯示. MOV P0, A ;輸出秒鐘十位位的顯示段碼. CLR P2.2 ;P2.2=0 ACALL XSYS MOV DPTR,#TAB1 MOV A,43H MOVC A,A+DPTR MOV P2, #

30、0FFH ;關閉顯示. MOV P0, A ;輸出分鐘個位的顯示段碼. CLR P2.3 ;P2.3=0 ACALL XSYS MOV DPTR,#TAB MOV A,44H MOVC A,A+DPTR MOV P2, #0FFH ;關閉顯示. MOV P0, A ;輸出分鐘十位的顯示段碼. CLR P2.4 ;P2.4=0 ACALL XSYS JNB 20H.1,ZBTC ;20H.1為1則顯示計時器狀態(tài) MOV DPTR,#TAB2 MOV A,45H MOVC A,A+DPTR MOV P2, #0FFH ;關閉顯示. MOV P0, A ;輸出段碼. CLR P2.5 ;P2.5=0

31、 ACALL XSYSZBTC:RET; 調時子程序TSCX:CLR TR0 ;調時子程序(TSCX) CLR 20H.0 ;使時間調整時處于暫停狀態(tài) MOV 40H,#00H MOV 41H,#00H MOV 42H,#00H MOV 43H,#00H MOV 44H,#00H SETB 20H.1 ;使狀態(tài)顯示管的位選碼有效 MOV 45H,#01H ;將狀態(tài)顯示碼更改為E(調時狀態(tài)) MOV R0,#44HJCTZ:ACALL XSCX ;先調用顯示程序,掃描時間調整鍵 MOV P1,#0FFH JB P1.3,NEXT ;+1鍵盤沒有按下 ACALL XDYS ;鍵盤按下,消抖延時 J

32、B P1.3,NEXTDEN0:JNB P1.3,DEN1 ;等待按鍵釋放 AJMP JYCX ;+1鍵按下后,跳轉到+1程序NEXT:MOV P1,#0FFH JB P1.2,JCTZ ACALL XDYS ;鍵盤按下,消抖延時 JB P1.2,JCTZDEN2:JNB P1.2,DEN3 ;等待按鍵釋放 MOV A,44H CJNE A,#06H,DEC4 ;設置鍵再次按下,將調整指針指向下一位 AJMP TCTSDEC4:DEC R0 CJNE R0,#3FH,JCTZ ;若R0為3FH則退出調時程序 AJMP TCTS ;若R0不為#06H,但R0為#3FH,則跳出調時程序JYCX:C

33、JNE R0,#44H,XIA1 ;加1調時部分 CJNE R0,#06H,INCR ;調整分鐘十位 AJMP SET0XIA1:CJNE R0,#43H,XIA2 AJMP TZ09 ;調整分鐘個位XIA2:CJNE R0,#42H,XIA3 CJNE R0,#05H,INCR ;調整秒鐘十位 AJMP SET0XIA3:CJNE R0,#41H,XIA4 AJMP TZ09 ;調整秒鐘個位XIA4:CJNE R0,#40H,TCTSTZ09:CJNE R0,#09H,INCR ;調整0.1秒位SET0:MOV R0,#00H AJMP JCTZINCR:INC R0 AJMP JCTZDEN1:ACALL XSCX AJMP DEN0DEN3:ACALL XSCX AJMP DEN2TCTS:MOV TH0,#3CH ;退出調時程序 MOV TL0,#0B0H MOV 45H,#00H ;將狀態(tài)顯示碼更

溫馨提示

  • 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

提交評論