0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用單片機(jī)實現(xiàn)時鐘設(shè)計的資料詳細(xì)概述

Wildesbeast ? 來源:單片機(jī)教程網(wǎng) ? 作者:單片機(jī)教程網(wǎng) ? 2020-06-13 11:13 ? 次閱讀

X1226具有時鐘和日歷的功能,時鐘依賴時、分、秒寄存器來跟蹤,日歷依賴日期、星期、月和年寄存器來跟蹤,日歷可正確顯示至2099年,并具有自動閏年修正功能。擁有強(qiáng)大的雙報警功能,能夠被設(shè)置到任何時鐘/日歷值上,精確度可到1秒??捎密浖O(shè)置1Hz、4096Hz或32768Hz中任意一個頻率輸出。

X1226提供一個備份電源輸入腳VBACK,允許器件用電池或大容量電容進(jìn)行備份供電。采用電容供電時,用一個硅或肖特基二極管連接到Vcc和充電電容的兩端,充電電容連接到Vback管腳,注意不能使用二極管對電池充電(特別是鋰離子電池)。切換到電池供電的條件是Vcc=Vback-0.1V,正常操作期間,供電電壓Vcc必須高于電池電壓,否則電池電量將逐步耗盡。振蕩器采用外接32.768kH的晶體,產(chǎn)生的振蕩誤差可通過軟件對數(shù)字微調(diào)寄存器、模擬微調(diào)寄存器的數(shù)值進(jìn)行調(diào)節(jié)加以修正,避免了外接電阻和電容的離散性對精度的影響。4Kb的EEPROM可用于存儲戶數(shù)據(jù)。

電路組成及工作原理

X1226可與各種類型的的微控制器微處理器接口,接口方式為串行的I2C接口。其中數(shù)據(jù)總線SDA是一個雙向引腳,用于輸入或輸出數(shù)據(jù)。其漏極開路輸出在使用過程中需要添加4.7~10kΩ的上拉電阻。本文介紹89C51單片機(jī)與X1226的接口方法,由于89C51單片機(jī)沒有標(biāo)準(zhǔn)的I2C接口,只能用軟件進(jìn)行模擬。

圖1

為了更直觀地看到時間的變化,采用8位LED數(shù)碼管顯示年、月、日或時、分、秒,用PS7219A驅(qū)動LED數(shù)碼管數(shù)碼管選擇0.5英寸共陰極紅色或綠色LED數(shù)碼管。由于PS7219A器件內(nèi)含IMP810單片機(jī)監(jiān)控器件,復(fù)位輸出高電平有效,因此在使用51系統(tǒng)時,無須添加監(jiān)控器件,使用PS7219A的復(fù)位輸出給51單片機(jī)復(fù)位即可,監(jiān)控電壓為4.63V。硬件設(shè)計原理圖如圖1所示。

在硬件通電調(diào)試過程中,不能用手去觸摸X1226的晶體振蕩器,否則可能會導(dǎo)致振蕩器停振,恢復(fù)振蕩器起振的方法是關(guān)閉電源(包括備份電源)后重新上電。另外需要說明的是,測量振蕩器時,不要用示波器的探頭去測量X2的振蕩輸出,應(yīng)該用探頭測量PHZ/IRQ的振蕩輸出,以確定是否起振和振蕩頻率是否準(zhǔn)確,測量時建議在該腳加一個5.1kΩ的上拉電阻。

軟件設(shè)計

X1226內(nèi)含實時時鐘寄存器(RTC)、狀態(tài)寄存器(SR)、控制寄存器(CONTROL)、報警寄存器(Alarm0、Alarm1)和客戶存儲數(shù)據(jù)的存儲器。由于實時時鐘寄存器和狀態(tài)寄存器需要進(jìn)行頻繁的寫操作,因此其存儲結(jié)構(gòu)為易失性SRAM結(jié)構(gòu)。其他寄存器均為EEPROM結(jié)構(gòu),寫操作次數(shù)通常在10萬次以上。X1226初始化程序框圖如圖2所示,子程序YS4的作用是延時4μs。

圖2

● 寫操作

X1226初始化之后,單片機(jī)對X1226進(jìn)行開始條件的設(shè)置,在寫CCR或EEPROM之前,主機(jī)必須先向狀態(tài)寄存器寫02H,確認(rèn)應(yīng)答信號,確認(rèn)后寫入06H,再確認(rèn)應(yīng)答信號。確認(rèn)后啟動了寫操作,首先發(fā)送高位地

址,然后發(fā)送低位地址。X1226每收到一個地址字節(jié)后,均會產(chǎn)生一個應(yīng)答信號。在兩個地址字節(jié)都收到之后,X1226等待8位數(shù)據(jù)。在收到8位數(shù)據(jù)之后,X1226再產(chǎn)生一個應(yīng)答,然后單片機(jī)產(chǎn)生一個停止條件來終止傳送。

X1226具有連續(xù)寫入的功能,每收到1字節(jié)后,響應(yīng)一個應(yīng)答,其內(nèi)部將地址加一。當(dāng)計數(shù)器達(dá)到該頁的末尾時,就自動返回到該頁的首地址。這意味著單片機(jī)可從某一頁的任何位置開始向存儲器陣列連續(xù)寫入64字節(jié),或向CCR連續(xù)寫入8字節(jié)的數(shù)據(jù)。寫入X1226數(shù)據(jù)子程序:

● 讀操作

在上電時,16位地址的默認(rèn)值為0000H。X1226初始化操作之后,單片機(jī)對X1226進(jìn)行開始條件的設(shè)置,在寫CCR或EEPROM之前,主機(jī)必須先向狀態(tài)寄存器寫02H,確認(rèn)應(yīng)答信號,確認(rèn)后寫入06H,再確認(rèn)應(yīng)答信號。確認(rèn)后啟動了寫操作,首先發(fā)送高位地址,然后發(fā)送低位地址。X1226每收到一個地址字節(jié)后,均會產(chǎn)生一個應(yīng)答信號。單片機(jī)發(fā)送另一個開始條件,將R/W位設(shè)置為1,接著接受8位數(shù)據(jù)。單片機(jī)終止讀操作時,無需等待X1226的應(yīng)答信號,單片機(jī)即可設(shè)置停止條件。讀出X1226數(shù)據(jù)子程序:

● 振蕩器頻率在線補(bǔ)償調(diào)節(jié)

X1226集成了振蕩器補(bǔ)償電路,用戶可通過軟件在線對振蕩器頻率進(jìn)行微調(diào),這種微調(diào)通常針對兩種情況。一種情況是在25℃常溫下,對振蕩器因器件初始精度帶來的頻率偏差進(jìn)行補(bǔ)償;第二種情況是對因溫度引起的頻率漂移進(jìn)行補(bǔ)償。X1226內(nèi)部設(shè)有數(shù)字微調(diào)寄存器(DTR)和模擬微調(diào)寄存器(ATR),兩個寄存器均為非易失性寄存器。數(shù)字微調(diào)寄存器具有3位數(shù)字微調(diào)位,調(diào)節(jié)范圍為-30~+30×10-6。模擬微調(diào)寄存器具有6個模擬微調(diào)位,調(diào)節(jié)范圍為-37~+116×10-6。

對于因外界環(huán)境溫度變化引起的溫漂補(bǔ)償,要依據(jù)晶體的溫度系數(shù),在存儲器中建立補(bǔ)償參數(shù)表,不同廠家晶體的溫度系數(shù)是不一樣的,應(yīng)根據(jù)產(chǎn)品數(shù)據(jù)手冊進(jìn)行選擇。

為了能夠?qū)仄M(jìn)行補(bǔ)償,要求系統(tǒng)中設(shè)置一個溫度傳感器,并盡量讓它靠近X1226,這樣可以真實地反映振蕩器的溫度,原理圖如圖3所示。單片機(jī)首先通過系統(tǒng)溫度傳感器獲取環(huán)境溫度,并在補(bǔ)償參數(shù)表中獲取對應(yīng)的補(bǔ)償值,然后將補(bǔ)償數(shù)據(jù)填寫到相應(yīng)的微調(diào)寄存器中,就能實現(xiàn)溫漂補(bǔ)償?shù)哪康摹?/p>

圖3

由于X1226具有精密的振蕩器補(bǔ)償功能,因此非常適合于環(huán)境溫度變化較大的應(yīng)用場合,同時也降低了對晶體性能參數(shù)的要求

下面還為廣大讀者介紹一個程序:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; AT89C2051時鐘程序 ;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;

; 定時器T0、T1溢出周期為50MS,T0為秒計數(shù)用, T1為調(diào)整時閃爍用,

; P3.7為調(diào)整按鈕,P1口 為字符輸出口,采用共陽顯示管。

;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; 中斷入口程序 ;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;

ORG 0000H ;程序執(zhí)行開始地址

LJMP START ;跳到標(biāo)號START執(zhí)行

ORG 0003H ;外中斷0中斷程序入口

RETI ;外中斷0中斷返回

ORG 000BH ;定時器T0中斷程序入口

LJMP INTT0 ;跳至INTTO執(zhí)行

ORG 0013H ;外中斷1中斷程序入口

RETI ;外中斷1中斷返回

ORG 001BH ;定時器T1中斷程序入口

LJMP INTT1 ;跳至INTT1執(zhí)行

ORG 0023H ;串行中斷程序入口地址

RETI ;串行中斷程序返回

;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; 主 程 序 ;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;

START: MOV R0,#70H ;清70H-7AH共11個內(nèi)存單元

MOV R7,#0BH ;

CLEARDISP: MOV @R0,#00H ;

INC R0 ;

DJNZ R7,CLEARDISP ;

MOV 20H,#00H ;清20H(標(biāo)志用)

MOV 7AH,#0AH ;放入“熄滅符”數(shù)據(jù)

MOV TMOD,#11H ;設(shè)T0、T1為16位定時器

MOV TL0,#0B0H ;50MS定時初值(T0計時用)

MOV TH0,#3CH ;50MS定時初值

MOV TL1,#0B0H ;50MS定時初值(T1閃爍定時用)

MOV TH1,#3CH ;50MS定時初值

SETB EA ;總中斷開放

SETB ET0 ;允許T0中斷

SETB TR0 ;開啟T0定時器

MOV R4,#14H ;1秒定時用初值(50MS×20)

START1: LCALL DISPLAY ;調(diào)用顯示子程序

JNB P3.7,SETMM1 ;P3.7口為0時轉(zhuǎn)時間調(diào)整程序

SJMP START1 ;P3.7口為1時跳回START1

SETMM1: LJMP SETMM ;轉(zhuǎn)到時間調(diào)整程序SETMM

;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; 1秒計時程序 ;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;T0中斷服務(wù)程序

INTT0: PUSH ACC ;累加器入棧保護(hù)

PUSH PSW ;狀態(tài)字入棧保護(hù)

CLR ET0 ;關(guān)T0中斷允許

CLR TR0 ;關(guān)閉定時器T0

MOV A,#0B7H ;中斷響應(yīng)時間同步修正

ADD A,TL0 ;低8位初值修正

MOV TL0,A ;重裝初值(低8位修正值)

MOV A,#3CH ;高8位初值修正

ADDC A,TH0 ;

MOV TH0,A ;重裝初值(高8位修正值)

SETB TR0 ;開啟定時器T0

DJNZ R4, OUTT0 ;20次中斷未到中斷退出

ADDSS: MOV R4,#14H ;20次中斷到(1秒)重賦初值

MOV R0,#71H ;指向秒計時單元(71H-72H)

ACALL ADD1 ;調(diào)用加1程序(加1秒操作)

MOV A,R3 ;秒數(shù)據(jù)放入A(R3為2位十進(jìn)制數(shù)組合)

CLR C ;清進(jìn)位標(biāo)志

CJNE A,#60H,ADDMM ;

ADDMM: JC OUTT0 ;小于60秒時中斷退出

ACALL CLR0 ;大于或等于60秒時對秒計時單元清0

MOV R0,#77H ;指向分計時單元(76H-77H)

ACALL ADD1 ;分計時單元加1分鐘

MOV A,R3 ;分?jǐn)?shù)據(jù)放入A

CLR C ;清進(jìn)位標(biāo)志

CJNE A,#60H,ADDHH ;

ADDHH: JC OUTT0 ;小于60分時中斷退出

ACALL CLR0 ;大于或等于60分時分計時單元清0

MOV R0,#79H ;指向小時計時單元(78H-79H)

ACALL ADD1 ;小時計時單元加1小時

MOV A,R3 ;時數(shù)據(jù)放入A

CLR C ;清進(jìn)位標(biāo)志

CJNE A,#24H,HOUR ;

HOUR: JC OUTT0 ;小于24小時中斷退出

ACALL CLR0 ;大于或等于24小時小時計時單元清0

OUTT0: MOV 72H,76H ;中斷退出時將分、時計時單元數(shù)據(jù)移

MOV 73H,77H ;入對應(yīng)顯示單元

MOV 74H,78H ;

MOV 75H,79H ;

POP PSW ;恢復(fù)狀態(tài)字(出棧)

POP ACC ;恢復(fù)累加器

SETB ET0 ;開放T0中斷

RETI ;中斷返回

;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; 閃動調(diào)時 程 序 ;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;T1中斷服務(wù)程序,用作時間調(diào)整時調(diào)整單元閃爍指示

INTT1: PUSH ACC ;中斷現(xiàn)場保護(hù)

PUSH PSW ;

MOV TL1, #0B0H ;裝定時器T1定時初值

MOV TH1, #3CH ;

DJNZ R2,INTT1OUT ;0.3秒未到退出中斷(50MS中斷6次)

MOV R2,#06H ;重裝0.3秒定時用初值

CPL 02H ;0.3秒定時到對閃爍標(biāo)志取反

JB 02H,F(xiàn)LASH1 ;02H位為1時顯示單元“熄滅”

MOV 72H,76H ;02H位為0時正常顯示

MOV 73H,77H ;

MOV 74H,78H ;

MOV 75H,79H ;

INTT1OUT:

POP PSW ;恢復(fù)現(xiàn)場

POP ACC ;

RETI ;中斷退出

FLASH1: JB 01H,F(xiàn)LASH2 ;01H位為1時,轉(zhuǎn)小時熄滅控制

MOV 72H,7AH ;01H位為0時,“熄滅符”數(shù)據(jù)放入分

MOV 73H,7AH ;顯示單元(72H-73H),將不顯示分?jǐn)?shù)據(jù)

MOV 74H,78H ;

MOV 75H,79H ;

AJMP INTT1OUT ;轉(zhuǎn)中斷退出

FLASH2: MOV 72H,76H ;01H位為1時,“熄滅符”數(shù)據(jù)放入小時

MOV 73H,77H ;顯示單元(74H-75H),小時數(shù)據(jù)將不顯示

MOV 74H,7AH ;

MOV 75H,7AH ;

AJMP INTT1OUT ;轉(zhuǎn)中斷退出

;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; 加1子 程 序 ;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;

ADD1: MOV A,@R0 ;取當(dāng)前計時單元數(shù)據(jù)到A

DEC R0 ;指向前一地址

SWAP A ;A中數(shù)據(jù)高四位與低四位交換

ORL A,@R0 ;前一地址中數(shù)據(jù)放入A中低四位

ADD A,#01H ;A加1操作

DA A ;十進(jìn)制調(diào)整

MOV R3,A ;移入R3寄存器

ANL A,#0FH ;高四位變0

MOV @R0,A ;放回前一地址單元

MOV A,R3 ;取回R3中暫存數(shù)據(jù)

INC R0 ;指向當(dāng)前地址單元

SWAP A ;A中數(shù)據(jù)高四位與低四位交換

ANL A,#0FH ;高四位變0

MOV @R0,A ;數(shù)據(jù)放入當(dāng)削地址單元中

RET ;子程序返回

;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; 清零程序 ;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;對計時單元復(fù)零用

CLR0: CLR A ;清累加器

MOV @R0,A ;清當(dāng)前地址單元

DEC R0 ;指向前一地址

MOV @R0,A ;前一地址單元清0

RET ;子程序返回

;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; 時鐘調(diào)整程序 ;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;當(dāng)調(diào)時按鍵按下時進(jìn)入此程序

SETMM: cLR ET0 ;關(guān)定時器T0中斷

CLR TR0 ;關(guān)閉定時器T0

LCALL DL1S ;調(diào)用1秒延時程序

JB P3.7,CLOSEDIS ;鍵按下時間小于1秒,關(guān)閉顯示(省電)

MOV R2,#06H ;進(jìn)入調(diào)時狀態(tài),賦閃爍定時初值

SETB ET1 ;允許T1中斷

SETB TR1 ;開啟定時器T1

SET2: JNB P3.7,SET1 ;P3.7口為0(鍵未釋放),等待

SETB 00H ;鍵釋放,分調(diào)整閃爍標(biāo)志置1

SET4: JB P3.7,SET3 ;等待鍵按下

LCALL DL05S ;有鍵按下,延時0.5秒

JNB P3.7,SETHH ;按下時間大于0.5秒轉(zhuǎn)調(diào)小時狀態(tài)

MOV R0,#77H ;按下時間小于0.5秒加1分鐘操作

LCALL ADD1 ;調(diào)用加1子程序

MOV A,R3 ;取調(diào)整單元數(shù)據(jù)

CLR C ;清進(jìn)位標(biāo)志

CJNE A,#60H,HHH ;調(diào)整單元數(shù)據(jù)與60比較

HHH: JC SET4 ;調(diào)整單元數(shù)據(jù)小于60轉(zhuǎn)SET4循環(huán)

LCALL CLR0 ;調(diào)整單元數(shù)據(jù)大于或等于60時清0

CLR C ;清進(jìn)位標(biāo)志

AJMP SET4 ;跳轉(zhuǎn)到SET4循環(huán)

CLOSEDIS:SETB ET0 ;省電(LED不顯示)狀態(tài)。開T0中斷

SETB TR0 ;開啟T0定時器(開時鐘)

CLOSE: JB P3.7,CLOSE ;無按鍵按下,等待。

LCALL DISPLAY ;有鍵按下,調(diào)顯示子程序延時削抖

JB P3.7,CLOSE ;是干擾返回CLOSE等待

WAITH: JNB P3.7,WAITH ;等待鍵釋放

LJMP START1 ;返回主程序(LED數(shù)據(jù)顯示亮)

SETHH: CLR 00H ;分閃爍標(biāo)志清除(進(jìn)入調(diào)小時狀態(tài))

SETHH1: JNB P3.7,SET5 ;等待鍵釋放

SETB 01H ;小時調(diào)整標(biāo)志置1

SET6: JB P3.7,SET7 ;等待按鍵按下

LCALL DL05S ;有鍵按下延時0.5秒

JNB P3.7,SETOUT ;按下時間大于0.5秒退出時間調(diào)整

MOV R0,#79H ;按下時間小于0.5秒加1小時操作

LCALL ADD1 ;調(diào)加1子程序

MOV A,R3 ;

CLR C ;

CJNE A,#24H,HOUU ;計時單元數(shù)據(jù)與24比較

HOUU: JC SET6 ;小于24轉(zhuǎn)SET6循環(huán)

LCALL CLR0 ;大于或等于24時清0操作

AJMP SET6 ;跳轉(zhuǎn)到SET6循環(huán)

SETOUT: JNB P3.7,SETOUT1 ;調(diào)時退出程序。等待鍵釋放

LCALL DISPLAY ;延時削抖

JNB P3.7,SETOUT ;是抖動,返回SETOUT再等待

CLR 01H ;清調(diào)小時標(biāo)志

CLR 00H ;清調(diào)分標(biāo)志

CLR 02H ;清閃爍標(biāo)志

CLR TR1 ;關(guān)閉定時器T1

CLR ET1 ;關(guān)定時器T1中斷

SETB TR0 ;開啟定時器T0

SETB ET0 ;開定時器T0中斷(計時開始)

LJMP START1 ;跳回主程序

SET1: LCALL DISPLAY ;鍵釋放等待時調(diào)用顯示程序(調(diào)分)

AJMP SET2 ;防止鍵按下時無時鐘顯示

SET3: LCALL DISPLAY ;等待調(diào)分按鍵時時鐘顯示用

AJMP SET4

SET5: LCALL DISPLAY ;鍵釋放等待時調(diào)用顯示程序(調(diào)小時)

AJMP SETHH1 ;防止鍵按下時無時鐘顯示

SET7: LCALL DISPLAY ;等待調(diào)小時按鍵時時鐘顯示用

AJMP SET6

SETOUT1: LCALL DISPLAY ;退出時鐘調(diào)整時鍵釋放等待

AJMP SETOUT ;防止鍵按下時無時鐘顯示

;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; 顯示程序 ;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; 顯示數(shù)據(jù)在70H-75H單元內(nèi),用六位LED共陽數(shù)碼管顯示,P1口輸出段碼數(shù)據(jù),P3口作

; 掃描控制,每個LED數(shù)碼管亮1MS時間再逐位循環(huán)。

DISPLAY: MOV R1,#70H ;指向顯示數(shù)據(jù)首址

MOV R5,#0FEH ;掃描控制字初值

PLAY: MOV A,R5 ;掃描字放入A

MOV P3,A ;從P3口輸出

MOV A,@R1 ;取顯示數(shù)據(jù)到A

MOV DPTR,#TAB ;取段碼表地址

MOVC A,@A+DPTR ;查顯示數(shù)據(jù)對應(yīng)段碼

MOV P1,A ;段碼放入P1口

LCALL DL1MS ;顯示1MS

INC R1 ;指向下一地址

MOV A,R5 ;掃描控制字放入A

JNB ACC.5,ENDOUT ;ACC.5=0時一次顯示結(jié)束

RL A ;A中數(shù)據(jù)循環(huán)左移

MOV R5,A ;放回R5內(nèi)

AJMP PLAY ;跳回PLAY循環(huán)

ENDOUT: SETB P3.5 ;一次顯示結(jié)束,P3口復(fù)位

MOV P1,#0FFH ;P1口復(fù)位

RET ;子程序返回

TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH

;共陽段碼表 “0”“1”“2” “3”“4”“5”“6”“7” “8”“9”“不亮”

;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; 延時程序 ;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;

;1MS延時程序,LED顯示程序用

DL1MS: MOV R6,#14H

DL1: MOV R7,#19H

DL2: DJNZ R7,DL2

DJNZ R6,DL1

RET

;20MS延時程序,采用調(diào)用顯示子程序以改善LED的顯示閃爍現(xiàn)象

DS20MS: ACALL DISPLAY

ACALL DISPLAY

ACALL DISPLAY

RET

;延時程序,用作按鍵時間的長短判斷

DL1S: LCALL DL05S

LCALL DL05S

RET

DL05S: MOV R3,#20H ;8毫秒*32=0.196秒

DL05S1: LCALL DISPLAY

DJNZ R3,DL05S1

RET

;

END

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • led
    led
    +關(guān)注

    關(guān)注

    242

    文章

    23277

    瀏覽量

    660895
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6037

    文章

    44558

    瀏覽量

    635355
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5343

    瀏覽量

    120377
收藏 人收藏

    評論

    相關(guān)推薦

    如何通過單片機(jī)實現(xiàn)調(diào)整時鐘詳細(xì)資料合集包括了程序免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何通過單片機(jī)實現(xiàn)調(diào)整時鐘,分鐘,秒鐘的詳細(xì)資料合集包括了程序免費下載。
    發(fā)表于 07-30 08:00 ?2次下載
    如何通過<b class='flag-5'>單片機(jī)</b><b class='flag-5'>實現(xiàn)</b>調(diào)整<b class='flag-5'>時鐘</b>的<b class='flag-5'>詳細(xì)資料</b>合集包括了程序免費下載

    什么叫單片機(jī)?單片機(jī)原理及接口技術(shù)的詳細(xì)資料概述免費下載

    本文檔的主要主要內(nèi)容詳細(xì)介紹的是什么叫單片機(jī)?單片機(jī)原理及接口技術(shù)的詳細(xì)資料概述免費下載。包括了:1.什么叫
    發(fā)表于 10-19 16:51 ?42次下載
    什么叫<b class='flag-5'>單片機(jī)</b>?<b class='flag-5'>單片機(jī)</b>原理及接口技術(shù)的<b class='flag-5'>詳細(xì)資料</b><b class='flag-5'>概述</b>免費下載

    單片機(jī)的結(jié)構(gòu)與原理是怎樣的和單片機(jī)的簡單應(yīng)用概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是單片機(jī)的結(jié)構(gòu)與原理是怎樣的和單片機(jī)的簡單應(yīng)用概述目的是:了解單片機(jī)的內(nèi)部結(jié)構(gòu)與主要型號。掌握
    發(fā)表于 10-19 17:18 ?33次下載
    <b class='flag-5'>單片機(jī)</b>的結(jié)構(gòu)與原理是怎樣的和<b class='flag-5'>單片機(jī)</b>的簡單應(yīng)用<b class='flag-5'>概述</b>

    AVR單片機(jī)入門教程之AVR單片機(jī)詳細(xì)資料概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是AVR單片機(jī)入門教程之AVR單片機(jī)詳細(xì)資料概述內(nèi)容包括了:1.AVR單片機(jī)
    發(fā)表于 10-22 17:15 ?67次下載
    AVR<b class='flag-5'>單片機(jī)</b>入門教程之AVR<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>詳細(xì)資料</b><b class='flag-5'>概述</b>

    單片機(jī)學(xué)習(xí)入門之單片機(jī)基礎(chǔ)知識詳細(xì)資料概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是單片機(jī)學(xué)習(xí)入門之單片機(jī)基礎(chǔ)知識詳細(xì)資料概述主要內(nèi)容包括了:1 MCS-51
    發(fā)表于 10-24 11:50 ?77次下載
    <b class='flag-5'>單片機(jī)</b>學(xué)習(xí)入門之<b class='flag-5'>單片機(jī)</b>基礎(chǔ)知識<b class='flag-5'>詳細(xì)資料</b><b class='flag-5'>概述</b>

    51單片機(jī)教程之51單片機(jī)中斷系統(tǒng)的詳細(xì)資料概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是51單片機(jī)教程之51單片機(jī)中斷系統(tǒng)的詳細(xì)資料概述主要內(nèi)容介紹的是中斷概念響應(yīng)條件處理原則中斷服務(wù)和中斷的使用方法
    發(fā)表于 11-19 09:56 ?17次下載
    51<b class='flag-5'>單片機(jī)</b>教程之51<b class='flag-5'>單片機(jī)</b>中斷系統(tǒng)的<b class='flag-5'>詳細(xì)資料</b><b class='flag-5'>概述</b>

    什么是單片機(jī)51單片機(jī)教程之單片機(jī)詳細(xì)資料概述免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是51單片機(jī)教程之單片機(jī)詳細(xì)資料概述免費下載主要內(nèi)容包括了:一,什么是單片機(jī)
    發(fā)表于 11-21 08:00 ?85次下載
    什么是<b class='flag-5'>單片機(jī)</b>51<b class='flag-5'>單片機(jī)</b>教程之<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>詳細(xì)資料</b><b class='flag-5'>概述</b>免費下載

    使用51單片機(jī)實現(xiàn)時間和鬧鐘的作用程序免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機(jī)實現(xiàn)時間和鬧鐘的作用程序免費下載。
    發(fā)表于 09-03 17:27 ?33次下載
    使用51<b class='flag-5'>單片機(jī)</b><b class='flag-5'>實現(xiàn)時</b>間和鬧鐘的作用程序免費下載

    使用單片機(jī)的中斷及定時器實現(xiàn)時鐘功能的程序和資料免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)的中斷及定時器實現(xiàn)時鐘功能的程序和資料免費下載。
    發(fā)表于 07-16 17:39 ?2次下載
    使用<b class='flag-5'>單片機(jī)</b>的中斷及定時器<b class='flag-5'>實現(xiàn)時鐘</b>功能的程序和<b class='flag-5'>資料</b>免費下載

    使用單片機(jī)和DS1302實現(xiàn)時鐘LCD1602顯示的程序和仿真資料免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)和DS1302實現(xiàn)時鐘LCD1602顯示的程序和仿真資料免費下載。
    發(fā)表于 06-30 17:35 ?53次下載
    使用<b class='flag-5'>單片機(jī)</b>和DS1302<b class='flag-5'>實現(xiàn)時鐘</b>LCD1602顯示的程序和仿真<b class='flag-5'>資料</b>免費下載

    單片機(jī)入門學(xué)習(xí)教程單片機(jī)詳細(xì)概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是單片機(jī)入門學(xué)習(xí)教程單片機(jī)詳細(xì)概述包括了:什么是單片機(jī)
    發(fā)表于 12-10 08:00 ?90次下載
    <b class='flag-5'>單片機(jī)</b>入門學(xué)習(xí)教程<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>詳細(xì)</b><b class='flag-5'>概述</b>

    使用單片機(jī)實現(xiàn)時鐘測溫和驅(qū)動電機(jī)的仿真文件免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)實現(xiàn)時鐘測溫和驅(qū)動電機(jī)的仿真文件免費下載。
    發(fā)表于 03-23 15:13 ?10次下載

    使用單片機(jī)STM32實現(xiàn)配置時鐘詳細(xì)資料說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)STM32實現(xiàn)配置時鐘詳細(xì)資料說明。
    發(fā)表于 03-24 15:07 ?25次下載
    使用<b class='flag-5'>單片機(jī)</b>STM32<b class='flag-5'>實現(xiàn)</b>配置<b class='flag-5'>時鐘</b>的<b class='flag-5'>詳細(xì)資料</b>說明

    使用單片機(jī)實現(xiàn)時鐘日歷芯片PCF8583應(yīng)用的C語言程序免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)實現(xiàn)時鐘日歷芯片PCF8583應(yīng)用的C語言程序免費下載。
    發(fā)表于 03-26 11:40 ?33次下載

    AN2821_在STM32F10xx單片機(jī)的RTC來實現(xiàn)時鐘日歷

    AN2821_在STM32F10xx單片機(jī)的RTC來實現(xiàn)時鐘日歷
    發(fā)表于 11-21 08:11 ?1次下載
    AN2821_在STM32F10xx<b class='flag-5'>單片機(jī)</b>的RTC來<b class='flag-5'>實現(xiàn)時鐘</b>日歷