基于-51單片機(jī)的數(shù)字鐘設(shè)計

上傳人:仙*** 文檔編號:84794223 上傳時間:2022-05-04 格式:DOC 頁數(shù):35 大?。?40KB
收藏 版權(quán)申訴 舉報 下載
基于-51單片機(jī)的數(shù)字鐘設(shè)計_第1頁
第1頁 / 共35頁
基于-51單片機(jī)的數(shù)字鐘設(shè)計_第2頁
第2頁 / 共35頁
基于-51單片機(jī)的數(shù)字鐘設(shè)計_第3頁
第3頁 / 共35頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《基于-51單片機(jī)的數(shù)字鐘設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《基于-51單片機(jī)的數(shù)字鐘設(shè)計(35頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、 畢業(yè)論文設(shè)計 基于51單片機(jī)的數(shù)字鐘設(shè)計 總計 畢業(yè)設(shè)計 〔論文〕 23 頁 表 格 3 個 插 圖 12 個 Abstract The application of multi-function digital clock very general, by single chip microp

2、uter as the core controller, digital clock through its clock signal timing function, will realize its time data SCM outputs, using monitors displayed. This design has the timing, reset function of digital clock, using the microputer digital clock with programming flexible, facilitate function expans

3、ion, etc. Keywords: multi-function, AT89C51, LCD 31 / 35 目錄 摘要I AbstractII 第一章緒論1 1.1任務(wù)要求1 1.2 設(shè)計意義1 1.3 設(shè)計方案1 第二章硬件設(shè)計3 2.1單片機(jī)的選擇3 2.2 顯示方案3 2.3 時鐘電路6 2.4 復(fù)位電路6 2.5按鍵電路7 第三章軟件設(shè)計8 3.1主程序8 3.2定時器T0中斷效勞程序8 3.3顯示子程序9 3.4定時器T1中斷效勞程序10 3

4、.5 調(diào)時功能程序10 3.6 延時程序10 第四章仿真結(jié)果分析11 4.1 Proteus ISIS的介紹11 4.2 仿真結(jié)果11 第五章系統(tǒng)測試13 5.1 硬件測試13 5.2 軟件測試13 總結(jié)14 參考文獻(xiàn)15 附錄16 序完整代碼16 第一章 緒論 1.1任務(wù)要求 ⑴ 通過單片機(jī)定時器控制走時,準(zhǔn)確持續(xù)走時,調(diào)時不影響走時。 ⑵ 在LCD液晶顯示屏上顯示時、分、秒及兩個小數(shù)點(diǎn)。 ⑶能對時間進(jìn)展校準(zhǔn)。 1.2 設(shè)計意義 用單片及制作數(shù)字鐘是單片機(jī)的一個典型應(yīng)用。數(shù)字鐘是采用數(shù)字電路實(shí)現(xiàn)對“時、分、秒〞數(shù)字

5、顯示的計時裝置,廣泛應(yīng)用于個人家庭、車站、碼頭、辦公室等公共場所,已成為人們?nèi)粘I钪胁豢扇鄙俚谋匦杵?。由于?shù)字集成電路的開展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度遠(yuǎn)遠(yuǎn)超過老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便。利用單片機(jī)設(shè)計一個時鐘,單片機(jī)擴(kuò)展的LCD 顯示器用來顯示秒、分、時計數(shù)單元中的值,可以非常準(zhǔn)確地顯示標(biāo)準(zhǔn)時間。 1.3 設(shè)計方案 采用AT89C51芯片作為硬件核心,其部采用Flash ROM,具有4KB ROM 存儲空間,能于3V的超低壓工作,本系統(tǒng)的計時方案是利用單片機(jī)部的定時/計數(shù)器進(jìn)展中斷定時,配合軟件延時實(shí)現(xiàn)對時、分、秒的計時。 整個系統(tǒng)的控制方案

6、是:上電后系統(tǒng)自動進(jìn)入時間顯示,從00:00:00 開場計時。按下功能鍵,當(dāng)安下身時間小于1s時,進(jìn)入省電狀態(tài),大于1s時,進(jìn)入調(diào)分狀態(tài),等待操作,此時計數(shù)器停頓走動。當(dāng)再次按下按鍵時,假設(shè)按鍵時間小于0.5s,那么時間加1min;假設(shè)按鍵時間大于0.5s,那么進(jìn)入小時調(diào)整狀態(tài)。在小時調(diào)整狀態(tài)下,假設(shè)按鍵時間小于0.5s時,那么小時加1h,假設(shè)按鍵時間大于0.5s,那么退出調(diào)整狀態(tài),時鐘繼續(xù)走動。 整個系統(tǒng)的硬件原理框圖如圖1.1,它采用的是AT89C51單片機(jī),只用了P1口和P2口。為了簡化硬件電路,LED顯示采用了動態(tài)掃描的方式實(shí)現(xiàn),P1口輸出段碼數(shù)據(jù),P2.0-P2.5 段作掃描輸出控

7、制端,P2.7作功能轉(zhuǎn)換按鍵輸入端。LED采用共陽極數(shù)碼管,驅(qū)動電流由三極管9012提供。為了提高計數(shù)精度,所采用的晶振頻率為12MHz。 六位數(shù)碼顯示電路 89C51 驅(qū) 動 電源 時鐘電路 復(fù)位電路 按鍵 位選 圖 1.1 硬件原理框圖 第二章 硬件設(shè)計 2.1單片機(jī)的選擇 本課程選用AT89C51型號的單片機(jī)。 AT89C51 是美國ATMEL 公司生產(chǎn)的低電壓,高性能CMOS8 位單片機(jī),片含4k bytes

8、的可反復(fù)擦寫的只讀程序存 儲器〔PEROM〕和128 bytes 的隨機(jī)存取數(shù)據(jù)存儲器〔RAM 〕,器件采用ATMEL 公司的高密度、非易失性存儲技術(shù)生產(chǎn), 兼容標(biāo)準(zhǔn)MCS-51 指令系統(tǒng),片置通用8 位 央處理器〔CPU〕和Flash 存儲單元,功能強(qiáng)大AT89C51 單片機(jī)可為您提供許多高性價比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域。 主要性能參數(shù): ·與MCS-51 產(chǎn) 指令系統(tǒng)完全兼容 ·4k 字節(jié)可重擦寫Flash 閃速存儲器 ·1000 次擦寫周期 ·全靜態(tài)操作:0Hz-24MHz ·三級加密程序存儲器 ·128×8 字節(jié)部RAM ·32 個可編程I /O

9、 口線 ·2 個16 位定時/計數(shù)器 2.2 顯示方案 由于系統(tǒng)要顯示的容較簡單,顯示量不多,所以選用數(shù)碼管既方便又經(jīng)濟(jì)。LED有共陰極和共陽極兩種。如圖2.2所示。 二極管的陰極連接在一起,通常此公共陰極接地,而共陽極那么將發(fā)光二極管的陽極連接在一起,接入+5V的電壓。一位顯示器由8個發(fā)光二極管組成,其中7個發(fā)光二極管構(gòu)成字型“8〞的各個筆劃〔段〕a~g,另一個小數(shù)點(diǎn)為dp發(fā)光二極管。當(dāng)在某段發(fā)光二極管施加一定的正向電壓時,該段筆劃即亮;不加電壓那么暗。為了保護(hù)各段LED不被損壞,需外加限流電阻。 圖2.2 LED數(shù)碼管構(gòu)造原理圖 眾所周知,LED顯示數(shù)碼管通常由

10、硬件7段譯碼集成電路,完成從數(shù)字到顯示碼的譯碼驅(qū)動。本系統(tǒng)采用軟件譯碼,以減小體積,降低本錢和功耗,軟件譯碼的另一優(yōu)勢還在于比硬件譯碼有更大的靈活性。所謂軟件譯碼,即由單片機(jī)軟件完成從數(shù)字到顯示碼的轉(zhuǎn)換。從LED數(shù)碼管構(gòu)造原理可知,為了顯示字符,要為LED顯示數(shù)碼管提供顯示段碼,組成一個“8〞字形字符的7段,再加上1個小數(shù)點(diǎn)位,共計8段,因此提供應(yīng)LED數(shù)碼管的顯示段碼為1個字節(jié)。各段碼位與顯示段的對應(yīng)關(guān)系如表2.2。 表2.2 各段碼位的對應(yīng)關(guān)系〔放在表的上面〕 段碼位 D7 D6 D5 D4 D3 D2 D1 D0 顯示段 dp g f e d c

11、b a 需說明的是當(dāng)用數(shù)據(jù)口連接LED數(shù)碼管a~dp引腳時,不同的連接方法,各段碼位與顯示段有不同的對應(yīng)關(guān)系。通常數(shù)據(jù)口的D0位與a段連接,D1位與b段連接,……D7位與dp段連接,如表1所示,表2.3為用于LED數(shù)碼管顯示的十六進(jìn)制數(shù)和空白字符與P的顯示段碼。 根據(jù)AT89C2051單片機(jī)灌電流能力強(qiáng),拉電流能力弱的特點(diǎn),我們選用共陽數(shù)碼管。將AT89C2051的P1.0~P1.7分別與共陽數(shù)碼管的a~g及dp相連,高電平的位對應(yīng)的LED 數(shù)碼管的段暗,低電平的位對應(yīng)的LED數(shù)碼管的段亮,這樣,當(dāng)P0口輸出不同的段碼,就可以控制數(shù)碼管顯示不同的字符。例如:當(dāng)P0口輸出的段碼為11

12、00 0000,數(shù)碼管顯示的字符為0。 表2.3 LED顯示段碼 字型 共陽極段碼 共陰極段碼 字型 共陽極段碼 共陰極段碼 0 C0H 3FH 9 90H 6FH 1 F9H 06H A 88H 77H 2 A4H 5BH B 83H 7CH 3 BOH 4FH C C6H 39H 4 99H 66H D A1H 5EH 5 92H 6DH E 86H 79H 6 82H 7DH F 84H 71H 7 F8H 07H 空白 FFH 00H 8 80H 7FH P 8CH

13、 73H 注:〔1〕本表所列各字符的顯示段碼均為小數(shù)點(diǎn)不亮的情況。 〔2〕“空白〞字符即沒有任何顯示。 數(shù)碼管顯示器有二種工作方式,即靜態(tài)顯示方式和動態(tài)掃描顯示方式。 為節(jié)省端口及降低功耗,本系統(tǒng)采用動態(tài)掃描顯示方式。動態(tài)掃描顯示方式需解決多位LED數(shù)碼管的“段控〞和“位控〞問題,本電路的“段控〞〔即要顯示的段碼的控制〕通過P0口實(shí)現(xiàn);而每一位的公共端,即LED數(shù)碼管的“位控〞,那么由P3口控制。這種連接方式由于多位字段線連在一起,因此,要想顯示不同的容,必然要采取輪流顯示的方式,即在某一瞬間,只讓其中的某一位的字位線處于選通狀態(tài),其它各位的字位線處于斷開狀態(tài),同時字段線上輸

14、出這一位相應(yīng)要顯示字符的字段碼。在這一瞬時,只有這一位在顯示,其他幾位那么暗。在本系統(tǒng)中,字位線的選通與否是通過PNP三極管的導(dǎo)通與截止來控制,即三極管處于“開關(guān)〞狀態(tài)。 2.3 時鐘電路 晶體振蕩器電路給數(shù)字鐘提供一個頻率穩(wěn)定準(zhǔn)確的方波信號,可保證數(shù)字鐘的走時準(zhǔn)確及穩(wěn)定.不管是指針式的電子鐘還是數(shù)字顯示的電子鐘都使用了晶體振蕩器電路。如圖2.3所示。 圖2.3 時鐘電路 2.4 復(fù)位電路 當(dāng)上電時,電源對電容充電,對單片機(jī)復(fù)位,使單片機(jī)從00H開場執(zhí)行程序。如圖2.4所示。 圖2.4 復(fù)位電路 2.5按鍵電路 按鍵的開關(guān)狀態(tài)通過一定的電路轉(zhuǎn)換為高、低電平狀

15、態(tài)。按鍵閉合過程在相應(yīng)的I/O端口形成一個負(fù)脈沖。閉合和釋放過程都要經(jīng)過一定的過程才能到達(dá)穩(wěn)定,這一過程是處于高、低電平之間的一種不穩(wěn)定狀態(tài),稱為抖動。抖動持續(xù)時間的常長短與開關(guān)的機(jī)械特性有關(guān),一般在5-10ms之間。為了防止CPU屢次處理按鍵的一次閉合,應(yīng)采用措施消除抖動。本文采用的是獨(dú)立式按鍵,直接用I/O口線構(gòu)成單個按鍵電路,按鍵占用一條I/O口線。如圖2.5所示。 圖2.5按鍵電路 第三章 軟件設(shè)計 3.1主程序 主程序功能主要是初始化、正?,F(xiàn)實(shí)時間和判斷功能轉(zhuǎn)換鍵。顯示時間調(diào)用顯示子程序。當(dāng)p2.7端口按鍵按下時,轉(zhuǎn)入調(diào)時功

16、能程序。主程序的流程圖3.1。 內(nèi)存單元清零 調(diào)用顯示子程序 調(diào)時程序 T0,T1為16位計數(shù)器 允許T0中斷 開場 P2.7=0 ? N Y 圖3.1 主程序 3.2定時器T0中斷效勞程序 時鐘的最小計時單位是秒,60s進(jìn)為1min,60min進(jìn)位1h。定時器T0用于產(chǎn)生最小計時單位1s,定時時間為50ms,中斷累計20次為1計數(shù)單元中的十進(jìn)制BCD數(shù)每逢60進(jìn)位。程序流程圖如圖3.2所示。 分單位清0,時單位加1 中斷返回 60min?到? 開場 保護(hù)現(xiàn)場 恢復(fù)現(xiàn)場 秒單

17、位清0,分單位加1 秒單位加1 60s到 ? 1s到否? 24h到 ? 時單位清0 Y N N N N N N Y Y Y N 圖3.2 定時器T0中斷效勞程序 3.3顯示子程序 數(shù)碼管顯示的數(shù)據(jù)存放在40H~55H存單元中,其中50H、51H單元存放秒數(shù)據(jù),52H、 53H單元存放分?jǐn)?shù)據(jù),54H、55H單元存放時數(shù)據(jù)。時間的數(shù)據(jù)采用BCD碼表示,對應(yīng)的顯示代碼存放在ROM中。顯示時,先取出50H~55H某一地址的數(shù)據(jù),然后從段碼表中查出對應(yīng)的顯示用段

18、碼并從P1口中輸出,同時P2口將對應(yīng)的數(shù)碼管選中,就可以顯示出相應(yīng)的時間值。 3.4定時器T1中斷效勞程序 進(jìn)展時間調(diào)整是,正在被調(diào)整的時間以閃爍的形式表現(xiàn),定時器T1用于產(chǎn)生閃爍的時間間隔,每隔0.3s閃爍一次。 3.5 調(diào)時功能程序 調(diào)整時間程序的方法是:按下功能鍵,當(dāng)安下身時間小于1s時,進(jìn)入省電狀態(tài),大于1s時,進(jìn)入調(diào)分狀態(tài),等待操作,此時計數(shù)器停頓走動。當(dāng)再次按下按鍵時,假設(shè)按鍵時間小于0.5s,那么時間加1min;假設(shè)按鍵時間大于0.5s,那么進(jìn)入小時調(diào)整狀態(tài)。在小時調(diào)整狀態(tài)下,假設(shè)按鍵時間小于0.5s時,那么小時加1h,假設(shè)按鍵時間大于0.5s,那么退出調(diào)整狀態(tài),時鐘繼續(xù)

19、走動。 3.6 延時程序 系統(tǒng)使用三個延時程序。因?yàn)橄到y(tǒng)是動態(tài)顯示,為了確保系統(tǒng)在有效顯示時間圍〔約50ms〕必須執(zhí)行顯示程序,所以0.5s的延時程序是通過執(zhí)行顯示程序約81遍實(shí)現(xiàn)的。 第四章 仿真結(jié)果分析 4.1 Proteus ISIS 的介紹 Proteus ISIS是英國Labcenter公司開發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點(diǎn)是:①實(shí)現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合。具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、

20、RS232動態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。②支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。③提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點(diǎn)等調(diào)試功能,同時可以觀察各個變量、存放器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時支持第三方的軟件編譯和調(diào)試環(huán)境,如Keil C51 uVision2等軟件。④具有強(qiáng)大的原理圖繪制功能。總之,該軟件是一款集單

21、片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大。 4.2 仿真結(jié)果 根據(jù)設(shè)計圖在Proteus ISIS軟件中畫出原理圖,如圖4.3。 圖4.3 原理圖 在PROTEUS繪制好原理圖后,調(diào)入已編譯好的目標(biāo)代碼文件:*.HEX,可以在PROTEUS的原理圖中看到模擬的實(shí)物運(yùn)行狀態(tài)和過程 圖4.4 運(yùn)行圖 第五章 系統(tǒng)測試 5.1 硬件測試 該數(shù)字鐘的電路系統(tǒng)較大,對于焊接方面更是不可輕視,龐大的電路系統(tǒng)中只要出于一處的錯誤,那么會對檢測造成很大的不便,而且電路的交線較多,對于各種

22、鋒利的引腳要注意處理,否那么會刺破帶有封皮的導(dǎo)線,使電路造成短路現(xiàn)象。 另外,買來的元器件要先進(jìn)展檢測,如果有壞的器件要進(jìn)展更換,還有就是要注間元器件的正確放置與安裝以及布線的合理,便于成品電路的檢測與維護(hù)。 在本數(shù)字鐘的設(shè)計調(diào)試中遇到了很多的問題?;叵脒@些問題,其實(shí)只要認(rèn)真思考很多功能都是可以防止的,電路做成后,LCD有顯示,但是不能正常計時走鐘通過檢測,查出單片機(jī)AT89S51的31腳EA 引腳 沒有接5V的電源作為高電平〔因?yàn)樵撓到y(tǒng)中沒有擴(kuò)展外部程序存儲器,故電路通電工作后,其部程序執(zhí)行應(yīng)該從部程序存儲單元開場,也即EA引腳要接高電平。 通常引腳懸空也可看成是接高電平,但是本次設(shè)計

23、中選的用芯片AT89S51部采用的是CMOS構(gòu)造,不能將懸空等同為接高電平,而必須接5V的電源作為高電平才能正常工作〕,用導(dǎo)線將31腳接到電源,問題就得到解決了。 5.2 軟件測試 數(shù)字鐘的功能雖然比擬少,但是程序也較為復(fù)雜,特別對于初學(xué)者的我來說更是如此,所以在編寫程序和調(diào)試時出現(xiàn)了相對較多的問題。最后經(jīng)過屢次的模塊子程序的修改,一步一步的完成,最終解決了軟件。 在軟件的調(diào)試過程中主要遇到的問題是燒入程序后,LCD管能顯示,也能走鐘,但時間明顯跳動很快,是由于從“秒〞、“時〞、“分〞的循環(huán)次數(shù)太少,加大其循環(huán)次數(shù)能解決抖動問題。 參考文獻(xiàn) [1]東生.勇

24、,許四毛. Protell99SE電路設(shè)計技術(shù)入門與應(yīng)用[M].:電子工業(yè),2002; [2]揚(yáng)剛主.電子系統(tǒng)設(shè)計與實(shí)踐.電子工業(yè)[M] 2004 [3] 盧結(jié)成. 電子電路實(shí)驗(yàn)及應(yīng)用課題設(shè)計[M].中國科學(xué)技術(shù)大學(xué),2002年 [4]廣弟,朱月秀,王秀山.單片機(jī)根底[M].航空航天,2001.7 [5]維成,加國.單片機(jī)原理與應(yīng)用及C51程序設(shè)計[M].清華大學(xué),2007.2 [6] 關(guān)宗安,仲叢久.基于單片機(jī)實(shí)現(xiàn)的多路定時控制器的設(shè)計.航空工業(yè)學(xué)院學(xué)報.2004年6月.第21卷第3期68頁 [7]何希慶,高偉.MCS-51單片機(jī)原理、實(shí)驗(yàn)、實(shí)例[M].:大學(xué).1989 [8]

25、 飛等,兩種數(shù)字鐘電路設(shè)計比擬[J] 師學(xué)院學(xué)報 .2003,2(23):40-43 [9] 胥筱門,單片機(jī)系統(tǒng)的試驗(yàn)及應(yīng)用[J] 電子制作.1999,〔6〕:20-30 [10]房小翠,王金鳳.單片微型計算機(jī)與機(jī)電接口技術(shù)[M].國防工業(yè).2002 [11]Maxim公司.Newreleases Data Book 1996 [12] ATMEL.Microcontroller Data book.2002 [13] Mark1.Montrose.PRINTED Circuit Board Design Techniques for EMC pliance. IEE Press se

26、ries.2000 附錄 序完整代碼 ORG 0000H AJMP MAINT ;轉(zhuǎn)主程序 NOP ORG 000BH AJMP INT01 ;轉(zhuǎn)定時器T0中斷程序 NOP ORG 001BH AJMP INT11 ;轉(zhuǎn)定時器T1中斷程序 NOP MAINT: MOV R0,#7FH ;00H~7FH單元清零 CLR A WZ1:

27、 MOV R0,A DJNZ R0,WZ1 MOV SP,#30H ;置堆棧指針 MOV 5AH,#0AH ;放入“熄滅符〞數(shù)據(jù) MOV TMOD,#11H ;設(shè)T0,T1為16位定時器 MOV TL0,#0B0H ;置50 ms定時初值 MOVTH0,#3CH MOV TL1,#0B0H MOVTH1,#3CH SETB EA ;開中斷 SETBET0 ;允許T0中斷 SETB TR0 ;啟動T0 MOV R4,#14H

28、 ;用于產(chǎn)生1 s定時 MAINT1: LCALL XSZCX ;調(diào)用顯示子程序 JNB P2.7,SJTZ0 ;功能鍵按下,進(jìn)入調(diào)時程序 SJMP MAINT1 SJTZ0: LCALL XSZCX ;通過調(diào)用顯示時間程序延時消抖動 JNB P2.7,SJTZ1 SJMP MAINT1 ;功能鍵沒有按下,顯示時間 SJTZ1: CLR ET0 ;關(guān)閉T0中斷 CLR TR0 ;關(guān)閉T0 LCALL YS1S

29、 ;調(diào)用1 s延時程序 P2.7,KMTES ;按鍵時間小于1 s,進(jìn)入省電狀態(tài) MOV R2,#06H ;進(jìn)入調(diào)時狀態(tài),置閃爍定時初值 SETB ET1 ;允許T1中斷 SETB TR1 ;啟動T1 XYZ2: JNB P2.7,XYZ1 ;P2.7端為0,等待 CLR 01H ;置調(diào)分標(biāo)志位為1 XYZ4: P2.7,XYZ3 ;等待鍵按下 LCALL YS05S ;延時0.

30、5 s JNB P2.7,XYZHH ;按鍵時間大于0.5 s,轉(zhuǎn)調(diào)小時狀態(tài) MOV R0,#53H ;按鍵時間小于0.5 s,進(jìn)入調(diào)分狀態(tài) LCALL ADD1 ;調(diào)時間加1子程序 MOV A,R3 ;取要調(diào)整的單元數(shù)據(jù) CLR C CJNE A,#60H,QWE ;調(diào)整單元數(shù)據(jù)與60比擬 QWE: JC XYZ4 ;小于60轉(zhuǎn)到XYZ4循環(huán) CLR A ;大于或等于60,清零 MOV R0,A DEC R0 MOV R0

31、,A CLR C AJMP XYZ4 ;轉(zhuǎn)到XYZ4循環(huán) KMTES: SETB ET0 ;省電狀態(tài),開T0中斷 SETB TR0 ;啟動T0(開時鐘) KMA: P2.7,$ ;無按鍵按下,等待 LCALL XSZCX ;通過調(diào)用顯示時間程序延時消抖動 P2.7,KMA ;是干擾返回等待 KMA1: JNB P2.7,$ ;等待鍵釋放 LJMP MAINT1 ;返回主程序,顯示時間 X

32、YZHH: JNB P2.7,XYZ5 ;等待鍵釋放 SETB 01H ;置調(diào)小時標(biāo)志位 XYZ6: P2.7,XYZ7 ;等待鍵按下 LCALL YS05S ;有鍵按下,延時0.5 s JNB P2.7,XYZOUT ;按下時間大于0.5 s,退出調(diào)整狀態(tài) MOV R0,#55H ;小于0.5 s,調(diào)整小時 LCALL ADD1 ;調(diào)加1子程序 MOV A,R3 CLR C CJNE A,#24H,KMB1 ;計時

33、單元與24比擬 KMB1: JC XYZ6, ;小于24轉(zhuǎn)XYZ6循環(huán) CLR A ;大于或等于24,那么清零 MOV R0,A DEC R0 MOV R0,A AJMP XYZ6 ;轉(zhuǎn)XYZ6循環(huán) XYZOUT: JNB P2.7,XYZOUT1;退出調(diào)時狀態(tài),等待鍵釋放 LCALL XSZCX ;通過調(diào)用顯示程序延時消抖動 JNB P2.7,XYZOUT ;是抖動,返回XYZOUT等待 MOV 20H,#00H ;清調(diào)時標(biāo)志位 CLR

34、 TR1 ;關(guān)閉T1 CLR ET1 ;關(guān)T1中斷 SETB TR0 ;啟動T0 SETB ET0 ;開T0中斷 LJMP MAINT1 ;返回主程序 XYZ1: LCALL XSZCX ;鍵釋放等待時,調(diào)用顯示子程序 AJMP XYZ2 ;防止此時無時鐘顯示XYZ3: LCALL XSZCX AJMP XYZ4 XYZ5: LCALL XSZCX AJMP

35、 XYZHH XYZ7: LCALL XSZCX AJMP XYZ6 XYZOUT1:LCALL XSZCX AJMP XYZOUT ;******顯示子程序****** XSZCX: MOV R1,#50H ;顯示數(shù)據(jù)首址 MOV R5,#0FEH ;掃描控制字初值 MAXY: MOV A,R5 ;掃描控制字送A MOV P2,A ;輸出掃描控制字 MOV A,R1 ;取顯示數(shù)據(jù) MOV DPTR

36、,#ABC ;取段碼表首地址 MOVC A,A+DPTR ;取對應(yīng)段碼 MOV P1,A ;P1口輸出段碼 LCALL YS1MS ;延時1 ms INC R1 ;顯示地址增1 MOV A,R5 ;掃描控制字送A JNB ACC.5,ENDOUT;ACC.5為0時一次顯示完畢 RL A ;控制字左移 MOVR5,A ;制字送回R5中 AJMP MAXY ;

37、循環(huán)顯示下一個數(shù)據(jù) ENDOUT:MOV P2,#0FFH ;一次顯示完畢,P2口復(fù)位 MOV P1,#0FFH ;P1口復(fù)位 RET ;子程序返回 ******T0中斷效勞程序****** INT01: PUSH ACC ;保護(hù)現(xiàn)場 PUSH PSW CLR ET0 ;關(guān)T0中斷 CLR TR0 ;關(guān)定時器T0 MOV A,#0B7H ;修正中斷響應(yīng)時間

38、 ADD A,TL0 MOV TL0,A MOV A,#3CH ADDC A,TH0 SETB TR0 ;啟動定時器T0 DJNZ R4,INT0U ;20次中斷未到退出中斷 AD1: MOV R4,#14H ;R4重新賦值 MOV R0,#51H ;指向秒計時單元(50H,51H) LCALL ADD1 ;調(diào)用加1 s程序 MOV A,R3 ;秒數(shù)據(jù)放入A CLR C ;清進(jìn)位標(biāo)志 CJNE

39、A,#60H,AD2 ;小于60 s嗎 AD2:JC INT0U ;小于60 s退出中斷 CLR A ;大于或等于60 s,清秒計數(shù)單元 MOV R0,A DEC R0 MOV R0,A MOV R0,#57H ;指向分計時單元 (56H,57H) ACALL ADD1 ;調(diào)用加1 min程序 MOV A,R3 ;分?jǐn)?shù)據(jù)放

40、入A CLR C CJNE A,#60H,AD3 ;小于60 min嗎 AD3: JC INT0U ;小于60 min退出中斷 CLR A ;大于或等于60 min,清分計數(shù)單元 MOV R0,A DEC R0 MOV R0,A MOV R0,#59H ;指向小時計時單元 (58H,59H) ACALL ADD1 ;調(diào)用加1 h程序

41、 MOV A,R3 ;小時數(shù)據(jù)放入A CLR C CJNE A,#24H,AD4 ;小于24 h嗎 AD4: JC INT0U ;小于24 h退出中斷 CLR A ;大于或等于24 h清小時計數(shù)單元 MOV R0,A DEC R0 MOV R0,A INT0U:MOV 52H,56H ;中斷退出時將分、時計時單元數(shù) MOV

42、 53H,57H ;據(jù)移入對應(yīng)顯示單元 MOV 54H,58H MOV 55H,59H POP PSW ;恢復(fù)現(xiàn)場 POP ACC SETB ET0 ;開放T0中斷 RETI ;中斷返回 ****** T1中斷效勞程序****** INT11: PUSH ACC ;保護(hù)現(xiàn)場 PUSH PSW MOV TL1,#0B0H ;裝定時器T1初值

43、 MOV TH1,#3CH DJNZ R2,INT1U ;0.3 s未到退出中斷 MOV R2,#06H ;重裝0.3 s定時用初值 CPL 02H ;0.3 s定時到,對閃爍標(biāo)志取反 02H,CCC1 ;02H位為1時顯示單元“熄滅〞 MOV 52H,56H ;02H位為0時顯示正常 MOV 53H,57H MOV 54H,58H MOV 55H,59H INT1U: POP PSW ;

44、恢復(fù)現(xiàn)場 POP ACC RETI ;退出中斷 CCC1: 01H,CCC2 ;01H位為1時轉(zhuǎn)小時熄滅控制 MOV 52H,5AH ;01H位為0時“熄滅符〞放入分計時單元 MOV 53H,5AH MOV 54H,58H MOV 55H,59H AJMP INT1U ;轉(zhuǎn)中斷退出 CCC2: MOV 52H,56H ; 01H位為1時“熄滅符〞放入小時計時單元 MOV 5

45、3H,57H MOV 54H,5AH MOV 55H,5AH AJMP INT1U ;轉(zhuǎn)中斷退出 ADD1: MOV A,R0;取出現(xiàn)計時數(shù)據(jù)放入A DEC R0 ;指向前一單元 SWAP A ;A中高4位與低4位互換 ORL A,R0 ;前一單元中數(shù)據(jù)放入A中低4位 ADD A,#01H ;A加1 DA A ;十進(jìn)制調(diào)整 MOV R3,A ;移入R3存放器 ANL A,#0FH ;高4位變0 MOV R0,A

46、 ;放回前一地址單元 MOV A,R3 ;取回R3中暫存數(shù)據(jù) INC R0 ;指向當(dāng)前地址單元 SWAP A ;A中高4位與低4位互換 ANL A,#0FH ;高4位變0 MOV R0, A ;數(shù)據(jù)存入當(dāng)前地址單元 RET ;子程序返回 ******延時子程序****** YS1MS:MOV R6,#14H ;延時1 ms子程序 YS1: MOV R7,#19H YS2:

47、 DJNZ R7,YS2 DJNZ R6,YS1 RET YS1S:LCALL YS05S ;延時1 s子程序 LCALL YS05S RET YS05S: MOV R3,#51H ;延時0.5 s子程序 YS05S1:LCALL XSZCX DJNZ R3,YS05S1 RET ABC:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH END

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!