mcs51_list_10_9.asm

来自「source code from Starcki book」· 汇编 代码 · 共 43 行

ASM
43
字号
;==================================================================
;
;        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 + =
减小字号Ctrl + -
显示快捷键?