CHƯƠNG TRÌNH ĐIỀU KHIỂN RTC DS12C887 HIỂN THỊ THỜI GIAN HH-MM-SS TRÊN...
Bài 3: Chương trình điều khiển RTC DS12C887 hiển thị thời gian HH-MM-SS trên bộ hiển thị LED 7 đoạn, có
thể điều chỉnh thời gian bằng các nút nhấn MODE, INC và DEC (RTC giao tiếp với vi điều khiển theo
kiếu RAM ngoài).
POP
07H
RET
;****************************************************
;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).
;OUTPUT:
67H,66H = MA 7 DOAN (CHUC GIO - GIO / CHUC NGAY - NGAY).
;
65H = MA DAU CACH THOI GIAN.
;
64H,63H = MA 7 DOAN (CHUC PHUT - PHUT / CHUC THANG - THANG).
;
62H = MA DAU CACH THOI GIAN.
;
61H,60H = MA 7 DOAN (CHUC GIAY - GIAY / CHUC NAM - NAM).
BCD8TO7SEG_CLOCK:
PUSH
DPH
;CAT TAM THOI GIA TRI CAC THANH GHI
PUSH
DPL
PUSH
ACC
MOV
DPTR,#CODE7SEG
;DIA CHI VUNG MA 7 DOAN
MOV
R7,#0AAH
;VI TRI MA CUA HAI DAU CACH THOI GIAN TRONG BANG MA
MOV
A,R4
;LAY SO BCD CAN GIAI MA
ANL
A,#0FH
;XOA 4 BIT CAO
MOVC
A,@A+DPTR
;LAY MA 7 DOAN TUONG UNG
MOV
60H,A
;CAT BCD HANG GIAY / NAM VAO O NHO
ANL
A,#0F0H
;XOA 4 BIT THAP
SWAP
A
;HOAN CHUYEN CAO - THAP
MOV
61H,A
;CAT BCD HANG CHUC GIAY / CHUC NAM VAO O NHO
MOV
A,R5
;LAY SO BCD CAN GIAI MA
MOV
63H,A
;CAT BCD HANG PHUT / THANG VAO O NHO
MOV
64H,A
;CAT BCD HANG CHUC PHUT / CHUC THANG VAO O NHO
MOV
A,R6
;LAY SO BCD CAN GIAI MA
MOV
66H,A
;CAT BCD HANG GIO / NGAY VAO O NHO
MOV
67H,A
;CAT BCD HANG CHUC GIO / CHUC NGAY VAO O NHO
MOV
A,R7
;LAY SO BCD CAN GIAI MA
MOV
62H,A
;CAT DAU CACH HANG PHUT VA GIAY VAO O NHO
MOV
65H,A
;CAT DAU CACH HANG GIO VA PHUT VAO O NHO
POP
ACC
;PHUC HOI GIA TRI CHO CAC THANH GHI
POP
DPL
POP
DPH