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).