Chương5: CH
ƯƠ
NG TRÌNH NHẬP SỐ BCD TỪ BÀN PHÍM
READ_BCD:;8 bit
READ_BCD_1:; DOC SO BCD THU 1
LCALL SCAN_KEYPAD
CJNE A,#0AH,NOT_EQUAL1
LJMP READ_BCD_1
NOT_EQUAL1:
JNC IS_ESC;CHI DOC NHUNG SO TU 0-9
MOV R7,A
LCALL WRITE_DIGIT
CLR BIT_ESC
LJMP READ_BCD_2
IS_ESC:
CJNE A,#27H,READ_BCD_1
LJMP NOT_READ_BCD
READ_BCD_2:;DOC SO BCD THU 2
LCALL SCAN_KEYPAD
CJNE A,#13H,RB1
LJMP READ_BCD_COMPLISH
RB1:
CJNE A,#27H,RB2
LJMP NOT_READ_BCD
RB2:
CJNE A,#0AH,NOT_EQUAL2
LJMP READ_BCD_2
NOT_EQUAL2:
JNC READ_BCD_2
CLR BIT_ESC
PUSH ACC
MOV A,R7
SWAP A
ANL A,#0F0H;LOAI BO 4 BIT THAP
MOV R7,A
POP ACC
ORL A,R7
MOV R7,A
LCALL WRITE_DIGIT
LJMP READ_BCD_2
NOT_READ_BCD:
SETB BIT_ESC
READ_BCD_COMPLISH:
MOV A,R7
RET
CH
ƯƠNG TRÌNH YEU CAU NHAP PHIM DIEU KHIEN
READ_CONTROL_KEY:
LCALL SCAN_KEYPAD
CJNE A,#13H,IS_CONTROL_KEY
IS_CONTROL_KEY:
JC READ_CONTROL_KEY
RET
CH
ƯƠNG TRÌNH LẤY GIỜ TỪ BÀN PHÍM VÀ CÀI GIỜ CHO
RTC
GET_CLOCK:
;GET_HOUR
CLR BIT_ESC
SETB GET_HOUR;CAC BIT NAY DE CHO CHUONG
TRINH GHI SO BIT
CLR GET_MINUTE
CLR GET_SECOND
LCALL READ_BCD
JB BIT_ESC,NO_SET_CLOCK
MOV HOUR,R7
;GET MINUTE
CLR GET_HOUR
SETB GET_MINUTE
CLR GET_SECOND
LCALL READ_BCD
JB BIT_ESC,NO_SET_CLOCK
MOV MINUTE,R7
;GET SECOND
CLR GET_HOUR
CLR GET_MINUTE
SETB GET_SECOND
LCALL READ_BCD
JB BIT_ESC,NO_SET_CLOCK
MOV SECOND,R7
CLR GET_HOUR
CLR GET_MINUTE
CLR GET_SECOND
LCALL READ_CONTROL_KEY
CJNE A,#13H,NO_SET_CLOCK
LCALL SET_CLOCK
RET
NO_SET_CLOCK:
SETB BIT_ESC
RET
CHƯƠNG TRÌNH GHI SO LÚC PHAM GIO BAN PHIM
WRITE_DIGIT:
JB GET_HOUR,WRITE_HOUR CH
ƯƠNG TRÌNH
NH
ẬP SỐ BCD TỪ BÀN PHÍM
READ_BCD:;8 bit
READ_BCD_1:; DOC SO BCD THU 1
LCALL SCAN_KEYPAD
CJNE A,#0AH,NOT_EQUAL1
LJMP READ_BCD_1
NOT_EQUAL1:
JNC IS_ESC;CHI DOC NHUNG SO TU 0-9
MOV R7,A
LCALL WRITE_DIGIT
CLR BIT_ESC
LJMP READ_BCD_2
IS_ESC:
CJNE A,#27H,READ_BCD_1