Xem mẫu

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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