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