📄 mcs51_list_10_9.asm
字号:
;==================================================================
;
; Tomasz Starecki: "Mikrokontrolery 8051 w praktyce"
; Wydawnictwo BTC - http://www.btc.pl
;
;==================================================================
; procedura obslugi zegara czasu rzeczywistego
; przy wywolaniu w R0 musi byc wskaznik do nastepujacej struktury:
; TICK, SEC, MIN, HOUR
; nalezy zatem odpowiednio zdefiniowac polozenie tych zmiennych
; w module glownym i pamietac o odpowiednim przypisaniu wartosci
; do R0 przed kazdym wywolaniem tej procedury!!!
; niszczy CY
;==================================================================
PUBLIC zegar_RTC
EXTERN f_tick ; czestotliwosc wywolywania procedury zegara (Hz) BAJT!
EXTERN marker_sekundy ; znacznik ustawiany kazdorazowo po odliczeniu sekundy
ORG 1600H ; relokacja przykladowa
zegar_RTC:
DEC @R0
CJNE @R0, #0, return
MOV @R0, #f_tick
SETB marker_sekundy ; wlasnie minela sekunda
INC R0 ; wskaznik w R0 na SEC
INC @R0
CJNE @R0, #60, return ; jesli SEC <> 60 to powrot
MOV @R0, #0
INC R0 ; MIN
INC @R0
CJNE @R0, #60, return ; powrot jesli nie 60 minut
MOV @R0, #0
INC R0 ; HOUR
INC @R0
CJNE @R0, #24, return ; jesli HOUR <> 24 to powrot
MOV @R0, #0
; mozliwa dalsza latwa rozbudowa o dni tygodnia itp.
return:
RET
END ; koniec modulu
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -