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

RET

;****************************************************

KEYPRESSED:

;CTC XU LY CAC NUT CHUC NANG

PUSH

00H

ACALL DELAYCHONGDOI

;CHONG DOI KHI NHAN NUT MODE

JNB

MODE_KEY,KEYPRESSED

;KIEM TRA NUT MODE DA DUOC NHA? - CHUA -> KIEM TRA LAI

ACALL DELAYCHONGDOI

;CHONG DOI KHI NHA NUT MODE

MOV

R0,#04H

;DUA GAI TRI CUA LED SECOND (R4) VAO DE XU LY

ACALL PROCESS_KEYPRESSED

;XU LY TANG/GIAM GIA TRI LED SECOND

MOV

R0,#05H

;DUA GAI TRI CUA LED MINUTE (R5) VAO DE XU LY

ACALL PROCESS_KEYPRESSED

;XU LY TANG/GIAM GIA TRI LED MINUTE

MOV

R0,#06H

;DUA GAI TRI CUA LED HOUR (R6) VAO DE XU LY

ACALL PROCESS_KEYPRESSED

;XU LY TANG/GIAM GIA TRI LED HOUR

POP

00H

PROCESS_KEYPRESSED: ;CTC XU LY KHI NHAN NUT - R0: DIA CHI THANH GHI CHUA GIA TRI THOI GIAN (R4,R5,R6)

PUSH

07H

;BIEN CHUA THOI GIAN TINH CUA SANG VA TAT LED DUOC CHON

PUSH

06H

;BIEN CHUA SO LAN SANG TAT CUA LED DUOC CHON

PUSH

50H

;O NHO TAM THOI

MOV

R7,#200

;GIA TRI LAP LAI (THOI GIAN) TRANG THAI TINH (SANG HOAC TAT) CUA LED

MOV

R6,#10

;GIA TRI LAP LAI QUA TRINH SANG - TAT CAC LED DUOC CHON

LOOP_ONOFF:

;VONG LAP CUA 1 TRANG THAI SANG - TAT

MOV

50H,@R0

;CAT TAM GIA TRI THOI GIAN CAN DIEU CHINH

MOV

@R0,#12H

;NAP MA LAM TAT LED VAO O NHO CHUA GIA TRI THOI GIAN DANG XU LY

LOOP_OFF:

;VONG LAP CUA THOI GIAN LAM TAT LED DANG DIEU CHINH

ACALL BCD8TO7SEG_CLOCK

;GIAI MA BCD SANG MA 7 DOAN (DUNG CHO DONG HO)

ACALL DISP7SEGMUL8

;QUET HIEN THI

DJNZ

R7,LOOP_OFF

;GIAM THOI GIAN TINH CUA LED DANG TAT

MOV

R7,#200

;GIA TRI LAP LAI (THOI GIAN) TRANG THAI TINH (SANG HOAC TAT)CUA LED

MOV

@R0,50H

;TRA VE GIA TRI THOI GIAN DA CAT TAM

LOOP_ON:

;VONG LAP CUA THOI GIAN LAM SANG LED DANG DIEU CHINH

JNB

INC_KEY,INC_PRESS

;KIEM TRA NUT INC DUOC NHAN? - NHAN -> TOI CHUONG TRINH XU LY

JNB

DEC_KEY,DEC_PRESS

;KIEM TRA NUT DEC DUOC NHAN? - NHAN -> TOI CHUONG TRINH XU LY

JNB

MODE_KEY,MODE_PRESS ;KIEM TRA NUT MODE DUOC NHAN? - NHAN -> TOI CHUONG TRINH XU LY

SJMP

NO_KEY

;NHAY KIEM TRA LAP LAI KHI KHONG CO NUT NAO DUOC NHAN

INC_PRESS:

INC

@R0

;TANG GIA TRI THOI GIAN

CHONGDOI_INC:

ACALL DELAYCHONGDOI

;CHONG DOI KHI NHAN NUT INC

JNB

INC_KEY,CHONGDOI_INC ;CHO CHO DEN KHI NUT INC DUOC NHA RA

ACALL DELAYCHONGDOI

;CHONG DOI KHI NHA NUT INC

MOV

R7,#200

;NAP LAI THOI GIAN TINH CUA LED DANG SANG VI CO NHAN NUT INC

MOV

R6,#10

;NAP LAI SO LAN SANG - TAT CUA LED VI CO NHAN NUT INC

SJMP

LOOP_ON

;NHAY KIEM TRA LAP LAI SAU KHI DA XU LY NUT INC

DEC_PRESS:

DEC

@R0

;GIAM GIA TRI THOI GIAN

CHONGDOI_DEC:

ACALL DELAYCHONGDOI

;CHONG DOI KHI NHAN NUT DEC

JNB

DEC_KEY,CHONGDOI_DEC ;CHO CHO DEN KHI NUT DEC DUOC NHA RA

ACALL DELAYCHONGDOI

;CHONG DOI KHI NHA NUT DEC

MOV

R7,#200

;NAP LAI THOI GIAN TINH CUA LED DANG SANG VI CO NHAN NUT DEC

MOV

R6,#10

;NAP LAI SO LAN SANG - TAT CUA LED VI CO NHAN NUT DEC

SJMP

LOOP_ON

;NHAY KIEM TRA LAP LAI SAU KHI DA XU LY NUT DEC

MODE_PRESS:

ACALL DELAYCHONGDOI

;CHONG DOI KHI NHAN NUT MODE

JNB

MODE_KEY,MODE_PRESS ;CHO CHO DEN KHI NUT MODE DUOC NHA RA

SJMP

EXIT_PROCESS

;NHAY THOAT RA KHI NUT MODE DUOC NHAN LAN NUA

NO_KEY:

DJNZ

R7,LOOP_ON

;GIAM THOI GIAN TINH CUA LED DANG SANG

DJNZ

R6,LOOP_ONOFF

;GIAM SO LAN LED DA SANG - TAT

EXIT_PROCESS:

;THOAT XU LY NUT NHAN

POP

50H

POP

06H