CHƯƠNG TRÌNH ĐIỀU KHIỂN RTC DS12C887 HIỂN THỊ THỜI GIAN HH-MM-SS (GIÁ...
Bài 1: Chương trình điều khiển RTC DS12C887 hiển thị thời gian HH-MM-SS (giá trị ban đầu là 23-59-00)
trên bộ hiển thị LED 7 đoạn (RTC giao tiếp với vi điều khiển theo kiếu RAM ngoài).
;***************************************************
ORG
00H
SJMP
MAIN
ORG
30H
MAIN:
MOV
SP,#6FH
;VUNG NHO NGAN XEP 70H -> 7FH
ACALL SET_RTC
;KHOI DONG RTC
ACALL WRITE_HMS
;NAP THOI GIAN BAN DAU HH-MM-SS
MP1:
ACALL READ_HMS
;DOC GIA TRI THOI GIAN TU RTC
ACALL BCD8TO7SEG_CLOCK
;GIAI MA BCD SANG MA 7 DOAN (DUNG CHO DONG HO)
ACALL DISP7SEGMUL8
;QUET HIEN THI
SJMP
MP1
SET_RTC:
;CTC THIET LAP CHE DO BAN DAU CHO RTC
PUSH
00H
PUSH
ACC
MOV
R0,#REGA
;DIA CHI THANH GHI A
MOV
A,#0A0H
;OSC = ON, SQW OUT = OFF
MOVX
@R0,A
;GHI VAO RTC
MOV
R0,#REGB
;DIA CHI THANH GHI B
MOV
A,#02H
;24H/12H = 24H, MODE = BCD
POP
ACC
POP
00H
RET
WRITE_HMS:
;CTC NAP GIA TRI THOI GIAN BAN DAU VAO RTC -> 23:59:00 (TU QUI DINH)
MOV
R0,#REGSEC
;DIA CHI THANH GHI GIAY
MOV
A,#SEC
;LAY GIA TRI DA QUI DINH
MOV
R0,#REGMIN
;DIA CHI THANH GHI PHUT
MOV
A,#MIN
;LAY GIA TRI DA QUI DINH
MOV
R0,#REGHOUR
;DIA CHI THANH GHI GI0
MOV
A,#HOUR
;LAY GIA TRI DA QUI DINH
READ_HMS:
;CTC DOC GIA TRI THOI GIAN TU RTC
MOVX
A,@R0
;DOC TU RTC
MOV
R4,A
;CAT VAO VUNG NHO (R4) DUNG DE HIEN THI LEN MAN HINH LED
MOV
R5,A
;CAT VAO VUNG NHO (R5) DUNG DE HIEN THI LEN MAN HINH LED
MOV
R0,#REGHOUR
;DIA CHI THANH GHI GIO
MOV
R6,A
;CAT VAO VUNG NHO (R6) DUNG DE HIEN THI LEN MAN HINH LED
;****************************************************
;CTC GIAI MA TU SO BCD NEN SANG MA 7 DOAN (4 SO BCD NEN) DUNG CHO HIEN THI DONG HO.
;LED: ANODE CHUNG, 7 DOAN: DP (MSB) -> A (LSB)
;GIA TRI GIAI MA: 0 -> 9
;NAME:
BCD8TO7SEG_CLOCK.
;INPUT:
R7 = DAU CACH THOI GIAN (NAP SAN TRONG CTC)
;
R6 = SO BCD NEN (CHUC GIO - GIO / CHUC NGAY - NGAY).
;
R5 = SO BCD NEN (CHUC PHUT - PHUT / CHUC THANG - THANG).
;
R4 = SO BCD NEN (CHUC GIAY - GIAY / CHUC NAM - NAM).