CHƯƠNG TRÌNH ĐIỀU KHIỂN RTC DS12C887 HIỂN THỊ THỜI GIAN HH-MM-SS (GIÁ...
Bài 2: 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) và
DD-MM-YY (giá trị ban đầu là 28-02-06) 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).
ACALL READ_HMS
;DOC GIA TRI THOI GIAN HH-MM-SS TU RTC
ACALL BCD8TO7SEG_CLOCK
;GIAI MA BCD SANG MA 7 DOAN (DUNG CHO DONG HO)
ACALL DISP7SEGMUL8
;GOI CTC QUET HIEN THI
JNB
TF0,SCAN_HMS
CLR
TR0
CLR
TF0
DJNZ
R0,LOOP_HMS
POP
00H
RET
;***************************************************
DELAY_SCAN_DMY:
;CTC TAO THOI GIAN TRE >> 6S CO GOI CTC DOC - GIAI MA - QUET HIEN THI
PUSH
00H
MOV
R0,#200
MOV
TMOD,#01H
LOOP_DMY:
MOV
TH0,#HIGH(-30000)
MOV
TL0,#LOW(-30000)
SETB
TR0
SCAN_DMY:
;LIEN TUC GOI CTC DOC - GIAI MA - QUET HIEN THI TRONG LUC TIMER DANG CHAY
ACALL READ_DMY
;DOC GIA TRI THOI GIAN DD-MM-YY TU RTC
JNB
TF0,SCAN_DMY
CLR
TR0
CLR
TF0
DJNZ
R0,LOOP_DMY
;CTC QUET HIEN THI LED 7 DOAN (8 LED 7 DOAN).
;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB)
;DU LIEU HIEN THI CHUA TRONG O NHO CUA RAM.
;NAME:
DISP7SEGMUL8.
;INPUT:
67H,66H = MA 7 DOAN (CH TRIEU - TRIEU).
;
65H,64H = MA 7 DOAN (TR NGAN - CH NGAN).
;
63H,62H = MA 7 DOAN (NGAN - TRAM).
;
61H,60H = MA 7 DOAN (CHUC - DON VI).
;OUTPUT:
P1 = 7 DOAN LED - DP (MSB) -> A (LSB).
;
P2 = CHON LED - LEFT (MSD) -> RIGHT (LSD).
DISP7SEGMUL8:
PUSH
ACC
;CAT TAM THOI GIA TRI CAC THANH GHI
MOV
A,#7FH
;MA QUET
MOV
R0,#67H ;DIA CHI VUNG MA HIEN THI
DISP:
MOV
P1,@R0
;XUAT MA HIEN THI
MOV
P2,A
;XUAT MA QUET
LCALL DELAYLED
MOV
P2,#0FFH
;CHONG LEM
DEC
R0
;LAY MA HIEN THI KE TIEP
RR
A
;CHUYEN SANG LED KE TIEP
CJNE
R0,#5FH,DISP
;KIEM TRA DA QUET XONG CHUA
POP
00H
;PHUC HOI GIA TRI CHO CAC THANH GHI
POP
ACC
RET
;****************************************************
DELAYLED:
;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS
PUSH
01H
MOV
R1,#5
DEL:
MOV
R0,#250
DJNZ
R0,$
DJNZ
R1,DEL