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