![單片機數(shù)碼鐘設(shè)計實例課件_第1頁](http://file4.renrendoc.com/view/fa57fbacfac390fb3486cf3f850a43e6/fa57fbacfac390fb3486cf3f850a43e61.gif)
![單片機數(shù)碼鐘設(shè)計實例課件_第2頁](http://file4.renrendoc.com/view/fa57fbacfac390fb3486cf3f850a43e6/fa57fbacfac390fb3486cf3f850a43e62.gif)
![單片機數(shù)碼鐘設(shè)計實例課件_第3頁](http://file4.renrendoc.com/view/fa57fbacfac390fb3486cf3f850a43e6/fa57fbacfac390fb3486cf3f850a43e63.gif)
![單片機數(shù)碼鐘設(shè)計實例課件_第4頁](http://file4.renrendoc.com/view/fa57fbacfac390fb3486cf3f850a43e6/fa57fbacfac390fb3486cf3f850a43e64.gif)
![單片機數(shù)碼鐘設(shè)計實例課件_第5頁](http://file4.renrendoc.com/view/fa57fbacfac390fb3486cf3f850a43e6/fa57fbacfac390fb3486cf3f850a43e65.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
單片機原理及應(yīng)用
課程教案第六章:單片機應(yīng)用實例單片機原理及應(yīng)用主要內(nèi)容6.1單片機應(yīng)用系統(tǒng)設(shè)計的基本準(zhǔn)則6.2單片機應(yīng)用系統(tǒng)的設(shè)計方法6.3數(shù)碼管時鐘電路的設(shè)計主要內(nèi)容6.1單片機應(yīng)用系統(tǒng)設(shè)計的基本準(zhǔn)則6.1.1可靠性
高可靠性是單片機系統(tǒng)應(yīng)用的前提,在系統(tǒng)設(shè)計的每一個環(huán)節(jié),都應(yīng)該將可靠性作為首要的設(shè)計準(zhǔn)則。提高系統(tǒng)的可靠性通常從以下幾個方面考慮:1.使用可靠性高的元器件2.采用雙機系統(tǒng)3.設(shè)計電路板時布線和接地要合理,嚴(yán)格安裝硬件設(shè)備及電路6.1單片機應(yīng)用系統(tǒng)設(shè)計的基本準(zhǔn)則6.1.1可靠性6.1單片機應(yīng)用系統(tǒng)設(shè)計的基本準(zhǔn)則4.對供電電源采用抗干擾措施5.輸入輸出通道抗干擾措施6.進行軟硬件濾波7.系統(tǒng)自診斷功能6.1.2操作維護方便6.1.3性價比6.1.4設(shè)計周期短。4.對供電電源采用抗干擾措施6.2.1系統(tǒng)總體設(shè)計
系統(tǒng)總體設(shè)計是單片機系統(tǒng)設(shè)計的前提,合理的總體設(shè)計是系統(tǒng)成敗的關(guān)鍵??傮w設(shè)計關(guān)鍵在于對系統(tǒng)功能和性能的認識和合理分析,系統(tǒng)單片機及關(guān)鍵芯片的選型,系統(tǒng)基本結(jié)構(gòu)的確立和軟、硬件功能的劃分
6.2單片機應(yīng)用系統(tǒng)的設(shè)計方法6.2.1系統(tǒng)總體設(shè)計6.2單片機應(yīng)用系統(tǒng)的設(shè)計方法單片機系統(tǒng)的研制過程圖單片機系統(tǒng)的研制過程圖明確系統(tǒng)的功能與性能系統(tǒng)單片機選型劃分系統(tǒng)軟、硬件功能4.確定系統(tǒng)結(jié)構(gòu)組成
明確系統(tǒng)的功能與性能1.程序存儲器2.數(shù)據(jù)存儲器3.I/O接口4.譯碼電路5.總線驅(qū)動器6.抗干擾電路
6.2.2硬件設(shè)計1.程序存儲器6.2.2硬件設(shè)計
6.2.3軟件設(shè)計
軟件設(shè)計流程
6.2.3軟件設(shè)計
軟件設(shè)計流程
軟件設(shè)計通常分作系統(tǒng)定義、軟件結(jié)構(gòu)設(shè)計和程序設(shè)計等三個步驟(見上圖)。1.系統(tǒng)定義①定義說明各輸入/輸出口的功能,確定信息交換的方式、與系統(tǒng)接口方式、所占口地址、讀取和輸出方式等。②在程序存儲器和數(shù)據(jù)存儲器區(qū)域中,合理分配存儲空間,其中包括系統(tǒng)主程序、常數(shù)表格、數(shù)據(jù)暫存區(qū)域、堆棧區(qū)域和入口地址等。③對面板控制開關(guān)、按鍵等輸入量以及顯示、打印等輸出量也必須給予定義,以此作為編程依據(jù)。④針對可能出現(xiàn)的由干擾引起的錯誤進行容錯設(shè)計,給出錯誤處理方案,以達到提高軟件可靠性的目的。⑤明確所設(shè)計的用戶程序應(yīng)達到的精度、速度指標(biāo)。
軟件設(shè)計通常分作系統(tǒng)定義、軟件結(jié)構(gòu)設(shè)計和程序2.軟件結(jié)構(gòu)設(shè)計3.程序設(shè)計圖6.42.軟件結(jié)構(gòu)設(shè)計圖6.4
系統(tǒng)調(diào)試包括硬件調(diào)試、軟件調(diào)試和軟、硬件聯(lián)調(diào)。根據(jù)調(diào)試環(huán)境不同,系統(tǒng)調(diào)試又分為模擬調(diào)試與現(xiàn)場調(diào)試。各種調(diào)試所起的作用是不同的,它們所處的時間段也不一樣,不過它們的目的都是為了查出用戶系統(tǒng)中存在的錯誤或缺陷。系統(tǒng)調(diào)試的一般過程如圖6.5。
6.2.4系統(tǒng)總體調(diào)試
系統(tǒng)調(diào)試包括硬件調(diào)試、軟件調(diào)試和軟、硬件聯(lián)調(diào)。根據(jù)調(diào)試圖6.5圖6.51.單片機應(yīng)用系統(tǒng)調(diào)試工具(1)單片機開發(fā)系統(tǒng)(2)萬用表(3)邏輯筆(4)邏輯脈沖發(fā)生器與模擬信號發(fā)生器(5)示波器(6)邏輯分析儀
1.單片機應(yīng)用系統(tǒng)調(diào)試工具2.單片機應(yīng)用系統(tǒng)的一般調(diào)試方法(1)硬件調(diào)試
①靜態(tài)調(diào)試
②動態(tài)調(diào)試
(2)軟件調(diào)試
①先獨立后聯(lián)機
②先分塊后組合
③先單步后連續(xù)
2.單片機應(yīng)用系統(tǒng)的一般調(diào)試方法(3)系統(tǒng)聯(lián)調(diào)①
軟、硬件能否按預(yù)定要求配合工作。②系統(tǒng)運行中是否有潛在的設(shè)計時難以預(yù)料的錯誤。
③系統(tǒng)的動態(tài)性能指標(biāo)(包括精度、速度參數(shù))是否滿足設(shè)計要求。(4)現(xiàn)場調(diào)試(3)系統(tǒng)聯(lián)調(diào)
6.3數(shù)碼管時鐘電路的設(shè)計6.3.1系統(tǒng)設(shè)計引言
LED數(shù)碼管時鐘電路采用24h計時方式,時、分、秒用六位數(shù)碼管顯示。該電路采用AT89C2051單片機,使用3V電池供電。
6.3.2系統(tǒng)設(shè)計原理以AT89C2051單片機來實現(xiàn)時鐘計時顯示有如下幾個要點:1.計算計數(shù)初值時鐘計時的關(guān)鍵問題是秒的產(chǎn)生,因為秒是最小時鐘單位,但使用MCS-51的定時器/計數(shù)器進行定時,即使按工作方式1,其最大定時時間也只能達到131ms,離1s還差很遠。為此,我們把秒計時用硬件定時和軟件計數(shù)相結(jié)合的方法實現(xiàn),即:把定時器的定時時間定為125ms,這樣計數(shù)溢出8次就可得到1s,而8次計數(shù)可用軟件方法實現(xiàn)。
6.3數(shù)碼管時鐘電路的設(shè)計
為得到125ms定時,我們可使用定時器/計數(shù)器0,以工作方式1進行,假定單片機為6MHZ晶振,設(shè)計數(shù)初值為X,則有如下等式:(216–X)×2=125000
計算得計數(shù)初值X=3036,二進制表示為110011011100B,十六進制表示為0CDCH。2.設(shè)定定時器定時方式定時器采用中斷定時方式完成,以便于通過中斷服務(wù)程序進行溢出次數(shù)(每次125ms)的累計,計滿8次即得到秒計時。為得到125ms定時,我們可使用定時器/計數(shù)器3.實現(xiàn)方法通過在程序中的數(shù)值累加和數(shù)值比較來實現(xiàn)從秒到分和從分到時的計時。4.設(shè)置時鐘顯示及顯示緩沖區(qū)假定時鐘時間在6位LED數(shù)碼管上進行顯示(時、分、秒各占兩位)。為此,要在內(nèi)部RAM中設(shè)置顯示緩沖區(qū),共6個單元,與數(shù)碼管對應(yīng)關(guān)系如圖6.12所示。顯示緩沖區(qū)從左向右依次存放時、分、秒的數(shù)值。
LED5LED4LED3LED2LED1LED07EH7DH7CH7BH7AH79H圖6.12LED顯示器的緩沖單位
3.實現(xiàn)方法LED5LED4LED3LED2LED6.3.3系統(tǒng)硬件設(shè)計
數(shù)碼管時鐘電路如圖6.13所示,其采用AT89C2051單片機最小化應(yīng)用設(shè)計,LED顯示用動態(tài)掃描方式實現(xiàn),P1口輸出段碼數(shù)據(jù),P3.0~P3.5口作掃描輸出,P3.7接按鈕開關(guān)。了提供LED數(shù)碼管的驅(qū)動電流,用三極管9012作電源驅(qū)動輸出。為了提高秒計時的精確度,本設(shè)計中的計時采用定時器T0中斷完成,其余狀態(tài)循環(huán)調(diào)用顯示子程序,當(dāng)P3.7端口開關(guān)按下時,轉(zhuǎn)入調(diào)時功能程序。
6.3.3系統(tǒng)硬件設(shè)計圖6.13采用AT89C2051的六位時鐘電路
供陽低電平有效低電平導(dǎo)通圖6.13采用AT89C2051的六位時鐘電路供陽低電6.3.4系統(tǒng)軟件設(shè)計1.主程序(MAIN)
主程序的主要功能是進行定時器/計數(shù)器的初始化編程,然后通過反復(fù)調(diào)用顯示子程序的方法,等待125ms定時中斷的到來。系統(tǒng)主程序流程圖如圖6.14所示。
6.3.4系統(tǒng)軟件設(shè)計調(diào)用顯示子程序設(shè)置循環(huán)次數(shù)開中斷定時開始計數(shù)初值定時器0工作方式1顯示緩沖區(qū)單元清0定義堆棧區(qū)MAIN等待定時中斷請求圖6.14主程序流程調(diào)用顯示子程序設(shè)置循環(huán)次數(shù)開中斷定時開始計數(shù)初值定時器0工作
ORG0000H;程序執(zhí)行開始地址
LJMPSTART;跳到標(biāo)號START執(zhí)行
ORG000BH;定時器0中斷程序入口
LJMPINTTO;跳到標(biāo)號INTTO執(zhí)行
ORG0030H
START:MOVSP,#60H;確立堆棧區(qū)
MOVR0,#79H;顯示緩沖區(qū)首地址
MOVR7,#06H;顯示位數(shù)ML1:MOV@R0,#00H;顯示緩沖單元清0
INCR0
DJNZR7,ML1
主程序清單如下:
ORG0000H;程序執(zhí)行開始地址
LJMPSTART;跳
MOVTMOD,#01H;設(shè)置定時器0為方式1
MOVTL0,#0DCH;裝計數(shù)器初值
MOVTH0,#0CH
SETBEA;總中斷開放
SETBET0;允許T0中斷
SETBTR0;開啟T0定時器
MOV30H,#08H;計數(shù)溢出次數(shù)ML0:LCALLDISPLAY;調(diào)用顯示子程序
JNBP3.7SETMM1;調(diào)整程序
SJMPML0
SETMM1:LJMPSETMM;轉(zhuǎn)到調(diào)整程序
MOVTMOD,#01H;設(shè)置定時器0為方式1
MOV2.加1子程序(DAADl)
加1子程序用于完成對秒、分和時的加1操作,中斷服務(wù)程序中在秒、分、時加1時共有三處調(diào)用此子程序。加l操作共包括以下三項內(nèi)容:加1子程序清單:
DAA1:MOVA,@R0;加1子程序,十位送A
DECR0
SWAPA;十位數(shù)占高4位
ORLA,@R0;個位數(shù)占低4位
ADDA,#01H;加12.加1子程序(DAADl)DAA1:MOVA
DAA;十進制調(diào)整
MOVR2,A;全值暫存R2中
ANLA,#0FH;屏蔽十位數(shù),取個位數(shù)
MOV@R0,A;個位值送顯示緩沖單元
MOVA,R2
INCR0
ANLA,#0F0H;屏蔽個位數(shù)取出十位數(shù)
SWAPA;使十位數(shù)占低4位
MOV@R0,A;十位數(shù)送顯示緩沖單元
RET
;返回
DAA;十進制調(diào)整
MOVR2,A;全值暫存R2中
ANL十位數(shù)送緩沖單元把十位數(shù)交換到低半字節(jié)個位數(shù)送緩沖單元十進制調(diào)整加1取個位數(shù),并占A低半字節(jié)使十位數(shù)占A高半字節(jié)取十位數(shù)DISPLAY圖6.5加1子程序流程十位數(shù)送緩沖單元把十位數(shù)交換到低半字節(jié)個位數(shù)送緩沖單元十進制3.中斷服務(wù)程序(PITO)
中斷服務(wù)程序的主要功能是進行計時操作。程序開始先判斷計數(shù)溢出是否滿了8次,不滿8次表明還沒達到最小計時單位秒,中斷返回;如滿8次則表明已達到最小計時單位秒,程序繼續(xù)向下執(zhí)行,進行計時操作。中斷服務(wù)程序流程如圖11.16所示。中斷子程序清單:
INTT0:PUSHACC;現(xiàn)場保護
PUSHPSW
SETBPSW.3;選1組通用寄存器
MOVTL0,#0DCH;計數(shù)器重新加載
MOVTH0,#0CH
3.中斷服務(wù)程序(PITO)INTT0:PUS
MOVA,30H;循環(huán)次數(shù)減1
DECA
MOV30H,A
JNZRET0;不滿8次轉(zhuǎn)移
MOV30H,#08H;滿8次開始計時
MOVR0,#7AH;秒顯示緩沖單元
ACALLDAAD1;秒加1
MOVA,R2;加1后秒值在R2
XRLA,#60H;判是否到60秒
JNZRET0;不到轉(zhuǎn)移
ACALLCLR0;到60S顯示單元清0
MOVR0,#7CH;分顯示緩沖單元地址
ACALLDAAD1;分加1
MOVA,R2
MOVA,30H;循環(huán)次數(shù)減1
DECA
MOV3
XRLA,#60H;判是否到60分
JNZRET0
ACALLCLR0;到60分顯示單元清0
MOVR0,#7EH;時顯示緩沖單元地址
ACALLDAAD1;時加1
MOVA,R2
XRLA,#24H;判是否24小時
JNZRET0
ACALLCLR0;到24小時清緩沖單元RET0:POPACC;現(xiàn)場恢復(fù)
POPPSW
RET1
;中斷返回
XRLA,#60H;判是否到60分
JNZRET0
ACCLR0:CLRA;清緩沖單元子程序
MOV@R0,A;十位數(shù)緩沖單元清0
DECR0
MOV@R0,A;個位數(shù)緩沖單元清0
RET
;返回4、清緩沖單元子程序:CLR0:CLRA;清緩沖單元子程序
MOV@R0,A;十
秒顯示緩沖單元清0秒加1循環(huán)次數(shù)減1計數(shù)器重新加載現(xiàn)場保護PITO是否滿8次是否60秒時顯示緩沖單元清0是否24小時是否60分分值加1現(xiàn)場恢復(fù)時值加1分顯示緩沖單元清0返回圖11.16中斷服務(wù)程序流程 秒顯示緩沖單元清0秒加1循環(huán)次數(shù)減1計數(shù)器重新加載現(xiàn)場保5.顯示子程序
數(shù)碼管顯示的數(shù)據(jù)存放在內(nèi)存單元79H一7EH中,其中79H~7AH存放秒數(shù)據(jù),7BH~7CH存放分數(shù)據(jù),7DH~7EH存放時數(shù)據(jù),每一地址單元內(nèi)均為十進制BCD碼。由于采用軟件動態(tài)掃描實現(xiàn)數(shù)據(jù)顯示功能,顯示用十進制BCD碼數(shù)據(jù)的對應(yīng)段碼存放在ROM表中。顯示時,先取出79H~7EH某一地址中的數(shù)據(jù),然后查得對應(yīng)的顯示用段碼從P1口輸出。P3口將對應(yīng)的數(shù)碼管選中,就能顯示該地址單元的數(shù)據(jù)值。
5.顯示子程序DISPLAY:MOVR0,#79H;建立顯示緩沖區(qū)首址
MOVR3,#FEH;從右數(shù)第一位顯示
MOVA,R3;掃描字放入ALD0:MOVP3,A;從P3口輸出
MOVA,@R0;取顯示數(shù)據(jù)到A
MOVDPTR,#TAB;取段碼表地址
MOVCA,@A+DPTR;查顯示數(shù)據(jù)對應(yīng)段碼
MOVP1,A;段碼放P1口
ACALLDL1MS;延時1ms
INCR0;指向下一地址DISPLAY:MOVR0,#79H;建立顯示緩沖區(qū)首址
MOVA,R3
JBACC.5LD1;ACC.5=0一次顯示結(jié)束
RLA;A中數(shù)據(jù)循環(huán)左移
MOVR3,A;將位控碼送R3保存
AJMPLD0;繼續(xù)掃描LD1:RET
TAB:DBC0H;字形代碼表0
DBF9H;1
DBA4H;2
DBB0H;3
DB99H;4
MOVA,R3
JBACC.5LD1;ACC.5=0ThankYou!ThankYou!單片機原理及應(yīng)用
課程教案第六章:單片機應(yīng)用實例單片機原理及應(yīng)用主要內(nèi)容6.1單片機應(yīng)用系統(tǒng)設(shè)計的基本準(zhǔn)則6.2單片機應(yīng)用系統(tǒng)的設(shè)計方法6.3數(shù)碼管時鐘電路的設(shè)計主要內(nèi)容6.1單片機應(yīng)用系統(tǒng)設(shè)計的基本準(zhǔn)則6.1.1可靠性
高可靠性是單片機系統(tǒng)應(yīng)用的前提,在系統(tǒng)設(shè)計的每一個環(huán)節(jié),都應(yīng)該將可靠性作為首要的設(shè)計準(zhǔn)則。提高系統(tǒng)的可靠性通常從以下幾個方面考慮:1.使用可靠性高的元器件2.采用雙機系統(tǒng)3.設(shè)計電路板時布線和接地要合理,嚴(yán)格安裝硬件設(shè)備及電路6.1單片機應(yīng)用系統(tǒng)設(shè)計的基本準(zhǔn)則6.1.1可靠性6.1單片機應(yīng)用系統(tǒng)設(shè)計的基本準(zhǔn)則4.對供電電源采用抗干擾措施5.輸入輸出通道抗干擾措施6.進行軟硬件濾波7.系統(tǒng)自診斷功能6.1.2操作維護方便6.1.3性價比6.1.4設(shè)計周期短。4.對供電電源采用抗干擾措施6.2.1系統(tǒng)總體設(shè)計
系統(tǒng)總體設(shè)計是單片機系統(tǒng)設(shè)計的前提,合理的總體設(shè)計是系統(tǒng)成敗的關(guān)鍵。總體設(shè)計關(guān)鍵在于對系統(tǒng)功能和性能的認識和合理分析,系統(tǒng)單片機及關(guān)鍵芯片的選型,系統(tǒng)基本結(jié)構(gòu)的確立和軟、硬件功能的劃分
6.2單片機應(yīng)用系統(tǒng)的設(shè)計方法6.2.1系統(tǒng)總體設(shè)計6.2單片機應(yīng)用系統(tǒng)的設(shè)計方法單片機系統(tǒng)的研制過程圖單片機系統(tǒng)的研制過程圖明確系統(tǒng)的功能與性能系統(tǒng)單片機選型劃分系統(tǒng)軟、硬件功能4.確定系統(tǒng)結(jié)構(gòu)組成
明確系統(tǒng)的功能與性能1.程序存儲器2.數(shù)據(jù)存儲器3.I/O接口4.譯碼電路5.總線驅(qū)動器6.抗干擾電路
6.2.2硬件設(shè)計1.程序存儲器6.2.2硬件設(shè)計
6.2.3軟件設(shè)計
軟件設(shè)計流程
6.2.3軟件設(shè)計
軟件設(shè)計流程
軟件設(shè)計通常分作系統(tǒng)定義、軟件結(jié)構(gòu)設(shè)計和程序設(shè)計等三個步驟(見上圖)。1.系統(tǒng)定義①定義說明各輸入/輸出口的功能,確定信息交換的方式、與系統(tǒng)接口方式、所占口地址、讀取和輸出方式等。②在程序存儲器和數(shù)據(jù)存儲器區(qū)域中,合理分配存儲空間,其中包括系統(tǒng)主程序、常數(shù)表格、數(shù)據(jù)暫存區(qū)域、堆棧區(qū)域和入口地址等。③對面板控制開關(guān)、按鍵等輸入量以及顯示、打印等輸出量也必須給予定義,以此作為編程依據(jù)。④針對可能出現(xiàn)的由干擾引起的錯誤進行容錯設(shè)計,給出錯誤處理方案,以達到提高軟件可靠性的目的。⑤明確所設(shè)計的用戶程序應(yīng)達到的精度、速度指標(biāo)。
軟件設(shè)計通常分作系統(tǒng)定義、軟件結(jié)構(gòu)設(shè)計和程序2.軟件結(jié)構(gòu)設(shè)計3.程序設(shè)計圖6.42.軟件結(jié)構(gòu)設(shè)計圖6.4
系統(tǒng)調(diào)試包括硬件調(diào)試、軟件調(diào)試和軟、硬件聯(lián)調(diào)。根據(jù)調(diào)試環(huán)境不同,系統(tǒng)調(diào)試又分為模擬調(diào)試與現(xiàn)場調(diào)試。各種調(diào)試所起的作用是不同的,它們所處的時間段也不一樣,不過它們的目的都是為了查出用戶系統(tǒng)中存在的錯誤或缺陷。系統(tǒng)調(diào)試的一般過程如圖6.5。
6.2.4系統(tǒng)總體調(diào)試
系統(tǒng)調(diào)試包括硬件調(diào)試、軟件調(diào)試和軟、硬件聯(lián)調(diào)。根據(jù)調(diào)試圖6.5圖6.51.單片機應(yīng)用系統(tǒng)調(diào)試工具(1)單片機開發(fā)系統(tǒng)(2)萬用表(3)邏輯筆(4)邏輯脈沖發(fā)生器與模擬信號發(fā)生器(5)示波器(6)邏輯分析儀
1.單片機應(yīng)用系統(tǒng)調(diào)試工具2.單片機應(yīng)用系統(tǒng)的一般調(diào)試方法(1)硬件調(diào)試
①靜態(tài)調(diào)試
②動態(tài)調(diào)試
(2)軟件調(diào)試
①先獨立后聯(lián)機
②先分塊后組合
③先單步后連續(xù)
2.單片機應(yīng)用系統(tǒng)的一般調(diào)試方法(3)系統(tǒng)聯(lián)調(diào)①
軟、硬件能否按預(yù)定要求配合工作。②系統(tǒng)運行中是否有潛在的設(shè)計時難以預(yù)料的錯誤。
③系統(tǒng)的動態(tài)性能指標(biāo)(包括精度、速度參數(shù))是否滿足設(shè)計要求。(4)現(xiàn)場調(diào)試(3)系統(tǒng)聯(lián)調(diào)
6.3數(shù)碼管時鐘電路的設(shè)計6.3.1系統(tǒng)設(shè)計引言
LED數(shù)碼管時鐘電路采用24h計時方式,時、分、秒用六位數(shù)碼管顯示。該電路采用AT89C2051單片機,使用3V電池供電。
6.3.2系統(tǒng)設(shè)計原理以AT89C2051單片機來實現(xiàn)時鐘計時顯示有如下幾個要點:1.計算計數(shù)初值時鐘計時的關(guān)鍵問題是秒的產(chǎn)生,因為秒是最小時鐘單位,但使用MCS-51的定時器/計數(shù)器進行定時,即使按工作方式1,其最大定時時間也只能達到131ms,離1s還差很遠。為此,我們把秒計時用硬件定時和軟件計數(shù)相結(jié)合的方法實現(xiàn),即:把定時器的定時時間定為125ms,這樣計數(shù)溢出8次就可得到1s,而8次計數(shù)可用軟件方法實現(xiàn)。
6.3數(shù)碼管時鐘電路的設(shè)計
為得到125ms定時,我們可使用定時器/計數(shù)器0,以工作方式1進行,假定單片機為6MHZ晶振,設(shè)計數(shù)初值為X,則有如下等式:(216–X)×2=125000
計算得計數(shù)初值X=3036,二進制表示為110011011100B,十六進制表示為0CDCH。2.設(shè)定定時器定時方式定時器采用中斷定時方式完成,以便于通過中斷服務(wù)程序進行溢出次數(shù)(每次125ms)的累計,計滿8次即得到秒計時。為得到125ms定時,我們可使用定時器/計數(shù)器3.實現(xiàn)方法通過在程序中的數(shù)值累加和數(shù)值比較來實現(xiàn)從秒到分和從分到時的計時。4.設(shè)置時鐘顯示及顯示緩沖區(qū)假定時鐘時間在6位LED數(shù)碼管上進行顯示(時、分、秒各占兩位)。為此,要在內(nèi)部RAM中設(shè)置顯示緩沖區(qū),共6個單元,與數(shù)碼管對應(yīng)關(guān)系如圖6.12所示。顯示緩沖區(qū)從左向右依次存放時、分、秒的數(shù)值。
LED5LED4LED3LED2LED1LED07EH7DH7CH7BH7AH79H圖6.12LED顯示器的緩沖單位
3.實現(xiàn)方法LED5LED4LED3LED2LED6.3.3系統(tǒng)硬件設(shè)計
數(shù)碼管時鐘電路如圖6.13所示,其采用AT89C2051單片機最小化應(yīng)用設(shè)計,LED顯示用動態(tài)掃描方式實現(xiàn),P1口輸出段碼數(shù)據(jù),P3.0~P3.5口作掃描輸出,P3.7接按鈕開關(guān)。了提供LED數(shù)碼管的驅(qū)動電流,用三極管9012作電源驅(qū)動輸出。為了提高秒計時的精確度,本設(shè)計中的計時采用定時器T0中斷完成,其余狀態(tài)循環(huán)調(diào)用顯示子程序,當(dāng)P3.7端口開關(guān)按下時,轉(zhuǎn)入調(diào)時功能程序。
6.3.3系統(tǒng)硬件設(shè)計圖6.13采用AT89C2051的六位時鐘電路
供陽低電平有效低電平導(dǎo)通圖6.13采用AT89C2051的六位時鐘電路供陽低電6.3.4系統(tǒng)軟件設(shè)計1.主程序(MAIN)
主程序的主要功能是進行定時器/計數(shù)器的初始化編程,然后通過反復(fù)調(diào)用顯示子程序的方法,等待125ms定時中斷的到來。系統(tǒng)主程序流程圖如圖6.14所示。
6.3.4系統(tǒng)軟件設(shè)計調(diào)用顯示子程序設(shè)置循環(huán)次數(shù)開中斷定時開始計數(shù)初值定時器0工作方式1顯示緩沖區(qū)單元清0定義堆棧區(qū)MAIN等待定時中斷請求圖6.14主程序流程調(diào)用顯示子程序設(shè)置循環(huán)次數(shù)開中斷定時開始計數(shù)初值定時器0工作
ORG0000H;程序執(zhí)行開始地址
LJMPSTART;跳到標(biāo)號START執(zhí)行
ORG000BH;定時器0中斷程序入口
LJMPINTTO;跳到標(biāo)號INTTO執(zhí)行
ORG0030H
START:MOVSP,#60H;確立堆棧區(qū)
MOVR0,#79H;顯示緩沖區(qū)首地址
MOVR7,#06H;顯示位數(shù)ML1:MOV@R0,#00H;顯示緩沖單元清0
INCR0
DJNZR7,ML1
主程序清單如下:
ORG0000H;程序執(zhí)行開始地址
LJMPSTART;跳
MOVTMOD,#01H;設(shè)置定時器0為方式1
MOVTL0,#0DCH;裝計數(shù)器初值
MOVTH0,#0CH
SETBEA;總中斷開放
SETBET0;允許T0中斷
SETBTR0;開啟T0定時器
MOV30H,#08H;計數(shù)溢出次數(shù)ML0:LCALLDISPLAY;調(diào)用顯示子程序
JNBP3.7SETMM1;調(diào)整程序
SJMPML0
SETMM1:LJMPSETMM;轉(zhuǎn)到調(diào)整程序
MOVTMOD,#01H;設(shè)置定時器0為方式1
MOV2.加1子程序(DAADl)
加1子程序用于完成對秒、分和時的加1操作,中斷服務(wù)程序中在秒、分、時加1時共有三處調(diào)用此子程序。加l操作共包括以下三項內(nèi)容:加1子程序清單:
DAA1:MOVA,@R0;加1子程序,十位送A
DECR0
SWAPA;十位數(shù)占高4位
ORLA,@R0;個位數(shù)占低4位
ADDA,#01H;加12.加1子程序(DAADl)DAA1:MOVA
DAA;十進制調(diào)整
MOVR2,A;全值暫存R2中
ANLA,#0FH;屏蔽十位數(shù),取個位數(shù)
MOV@R0,A;個位值送顯示緩沖單元
MOVA,R2
INCR0
ANLA,#0F0H;屏蔽個位數(shù)取出十位數(shù)
SWAPA;使十位數(shù)占低4位
MOV@R0,A;十位數(shù)送顯示緩沖單元
RET
;返回
DAA;十進制調(diào)整
MOVR2,A;全值暫存R2中
ANL十位數(shù)送緩沖單元把十位數(shù)交換到低半字節(jié)個位數(shù)送緩沖單元十進制調(diào)整加1取個位數(shù),并占A低半字節(jié)使十位數(shù)占A高半字節(jié)取十位數(shù)DISPLAY圖6.5加1子程序流程十位數(shù)送緩沖單元把十位數(shù)交換到低半字節(jié)個位數(shù)送緩沖單元十進制3.中斷服務(wù)程序(PITO)
中斷服務(wù)程序的主要功能是進行計時操作。程序開始先判斷計數(shù)溢出是否滿了8次,不滿8次表明還沒達到最小計時單位秒,中斷返回;如滿8次則表明已達到最小計時單位秒,程序繼續(xù)向下執(zhí)行,進行計時操作。中斷服務(wù)程序流程如圖11.16所示。中斷子程序清單:
INTT0:PUSHACC;現(xiàn)場保護
PUSHPSW
SETBPSW.3;選1組通用寄存器
MOVTL0,#0DCH;計數(shù)器重新加載
MOVTH0,#0CH
3.中斷服務(wù)程序(PITO)INTT0:PUS
MOVA,30H;循環(huán)次數(shù)減1
DECA
MOV30H,A
JNZRET0;不滿8次轉(zhuǎn)移
MOV30H,#08H;滿8次開始計時
MOVR0,#7AH;秒顯示緩沖單元
ACALLDAAD1;秒加1
MOVA,R2;加1后秒值在R2
XRLA,#60H;判是否到60秒
JNZRET0;不到轉(zhuǎn)移
ACALLCLR0;到60S顯示單元清0
MOVR0,#7CH;分顯示緩沖單元地址
ACALLDAAD1;分加1
MOVA,R2
MOVA,30H;循環(huán)次數(shù)減1
DECA
MOV3
XRLA,#60H;判
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 部編版道德與法治九年級下冊第二單元第三課《與世界緊相連第2框與世界深度互動》聽課評課記錄
- 2022版新課標(biāo)七年級上冊道德與法治第五課交友的智慧2課時聽課評課記錄
- 人教版數(shù)學(xué)九年級上冊《直接開平方法解方程》聽評課記錄3
- 人教版地理八年級下冊7.1《自然特征與農(nóng)業(yè)》聽課評課記錄
- 環(huán)境評估服務(wù)合同(2篇)
- 湘教版數(shù)學(xué)八年級上冊2.2《命題的證明》聽評課記錄2
- 北師大版道德與法治九年級上冊6.2《弘揚法治精神》聽課評課記錄
- 北京課改版歷史八年級上冊第10課《辛亥革命與中華民國建立》聽課評課記錄
- 湘教版數(shù)學(xué)七年級上冊《2.5整式的加法和減法(1)》聽評課記錄2
- 部編版八年級歷史上冊《第1課 鴉片戰(zhàn)爭》聽課評課記錄
- 2024年臨床醫(yī)師定期考核試題中醫(yī)知識題庫及答案(共330題) (二)
- 2025-2030年中國反滲透膜行業(yè)市場發(fā)展趨勢展望與投資策略分析報告
- 湖北省十堰市城區(qū)2024-2025學(xué)年九年級上學(xué)期期末質(zhì)量檢測道德與法治試題 (含答案)
- 山東省濰坊市2024-2025學(xué)年高三上學(xué)期1月期末 英語試題
- 春節(jié)節(jié)后收心會
- 《榜樣9》觀后感心得體會四
- 七年級下冊英語單詞表(人教版)-418個
- 2025年山東省濟寧高新區(qū)管委會“優(yōu)才”招聘20人歷年高頻重點提升(共500題)附帶答案詳解
- 2025年中國社會科學(xué)評價研究院第一批專業(yè)技術(shù)人員招聘2人歷年高頻重點提升(共500題)附帶答案詳解
- 交警安全進校園課件
- (2024年高考真題)2024年普通高等學(xué)校招生全國統(tǒng)一考試數(shù)學(xué)試卷-新課標(biāo)Ⅰ卷(含部分解析)
評論
0/150
提交評論