用單片機實現(xiàn)電子時鐘(匯編)
部接口芯片,它與外部RAM的操作方法一樣。即:
MOV DPTR , # addr16
MOV A , # 03H
MOVX @DPTR ,A
鍵盤設置子程序
這里主要介紹秒設置子程序的部分代碼。
KEY:JB KEY- S ,M- SET;秒設置鍵按下嗎?
;如沒按下則判斷分設
;置鍵是否壓下
LCALL DELAY
JB KEY- S ,M- SET
INC DATA - S;如秒設置鍵壓下,則秒單
;元加1
MOV A ,DATA - S
CJNE A , # 60 ,DATA - S;秒單元= 60 ,
;則清0
MOV DATA - S , # 00H
S - DIS:MOV A ,DATA - S
LCALL HEX- BCD;調用BCD 碼轉換
;子程序
MOV 69H,A
MOV 6AH,B
S - REP :LCALL DIS
JNB KEY- S ,S - REP ;待秒設置鍵釋放
M- SET: ??;分設置鍵判斷程序略
其中KEY- S ,DATA - S 需在主程序中用偽指令定
義后,才能使用。
顯示子程序
采用動態(tài)掃描的方式和查表程序可實現(xiàn)實時時間
的顯示。
控制子程序
作用是判斷時間是否與設置的鬧鐘時間是否相等,
如相等則開啟鬧鐘。
中斷定時子程序
是電子時鐘的核心,在這里主要介紹一下秒單元的
定時過程,其中5FH 存放100ms 單元的數(shù)值。
CLOCK:PUSH ACC;參數(shù)入棧保護
PUSH PSW
CLR TR0
MOV TL0 , # 0B0H;定時參數(shù)重
;新設置
MOV TH0 , # 03CH
SETB TR0
INC 5FH
MOV A ,5FH
CJNE A , # 10 ,FK;100ms 單元
;內容= 10 ,則
;秒單元加1
MOV 5FH, # 00H;100ms 單元內
;容清0
MOV A ,DATA - S
ADD A , # 01H;秒單元加1
MOV DATA - S ,A
CJNE A , # 60 ,FK;秒單元內容
; = 60 ,則秒單
;元清0
MOV DATA - S , # 00H
3 3 3 3 3 3 3 3 3 3 3
(分、時單元定時過程略)
FK:POP PSW;出棧,退出中斷子
;程序
POP ACC
RETI
結束語
由于時鐘電路的重要性,時鐘電路在很多應用系統(tǒng)
中必不可少,用軟件方法可以實現(xiàn),但誤差很大,主要用
在對時間精度要求不高的場合,在對時間精度要求很高
的情況下,通常采用時鐘芯片來實現(xiàn)。典型的時鐘芯片
有:DS1302 ,DS12887 ,X1203 等都可以滿足精度要求。
評論