Xem mẫu
- 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
- 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
JB GET_HOUR,WRITE_MINUTE
JB GET_HOUR,WRITE_SECOND
LJMP EXIT_WRITE_DIGIT
WRITE_HOUR:
MOV A,HOUR
ANL A,#0F0H
SWAP A
CLR EN2
MOV P1,A
- SETB EN2;CHOT DU LIEU
MOV A,HOUR
ANL A,#0FH
CLR EN3
MOV P1,A
SETB EN3
LJMP EXIT_WRITE_DIGIT
WRITE_MINUTE:
MOV A,MINUTE
ANL A,#0F0H
SWAP A
CLR EN4
MOV P1,A
SETB EN4;CHOT DU LIEU
MOV A,MINUTE
ANL A,#0FH
CLR EN5
MOV P1,A
SETB EN5;CHOT DU LIEU
- LJMP EXIT_WRITE_DIGIT
WRITE_SECOND:
MOV A,SECOND
ANL A,#0F0H
SWAP A
CLR EN6
MOV P1,A
SETB EN6;CHOT DU LIEU
MOV A,SECOND
ANL A,#0FH
CLR EN7
MOV P1,A
SETB EN7;CHOT DU LIEU
EXIT_WRITE_DIGIT:
RET
nguon tai.lieu . vn