📄 retry.asm
字号:
CALL DELAY300MS
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
CALL DUNG_MOTOR
JB NUT_TRAI1,$
MOV BYTE_LED_THAP,#88
CALL DELAY1S
JMP START
;=========CHUONH TRINH 5=========
CHUONG_TRINH_PHAI5:
;---NEM QUA CAN BT GHI DIEM
CALL XUAT_PHAT_TRAI
CALL CHAY_THANG_MU_HAM_TOC
;--CUA PHAI
CALL CUA_PHAI_MU
;---CHAY THANG 7 VACH
CALL VAN_TOC_TB
CALL CHAY_THANG_TIM_VACH_NGANG
MOV DEM_VACH,#4
CALL VAN_TOC_MAX
CALL CHAY_THANG
CALL CHAY_THANG_HAM_TOC
CALL CHAY_THANG_HAM_TOC
CALL CUA_PHAI
;---CHAY THANG 8 VACH
CALL VAN_TOC_TB
CALL CHAY_THANG_TIM_VACH_NGANG
MOV DEM_VACH,#5
CALL VAN_TOC_MAX
CALL CHAY_THANG
CALL CHAY_THANG_HAM_TOC
CALL CHAY_THANG_HAM_TOC
CALL CUA_TRAI
;---CHAY THANG 7 VACH
CALL VAN_TOC_TB
CALL CHAY_THANG_TIM_VACH_NGANG
MOV DEM_VACH,#4
CALL VAN_TOC_MAX
CALL CHAY_THANG
CALL CHAY_THANG_HAM_TOC
CALL CHAY_THANG_HAM_TOC
CALL CUA_PHAI
;---CHAY THANG 4 VACH
CALL VAN_TOC_TB
CALL CHAY_THANG_TIM_VACH_NGANG
MOV DEM_VACH,#2
CALL VAN_TOC_TB
CALL CHAY_THANG
CALL HAM_TOC
CALL VAN_TOC_RAT_CHAM
CALL CHAY_THANG_TIM_VACH_NGANG
CALL CUA_TRAI
;GHI DIEM
MOV MOTOR_GHI_DIEM,#255
CALL VAN_TOC_RAT_CHAM
CALL CHAY_THANG_TIM_VACH_NGANG
MOV MOTOR_GHI_DIEM,#0
;--
CALL CUA_TRAI
MOV DEM_VACH,#1
CALL VAN_TOC_CHAM
CALL CHAY_THANG
;BO PHAI
MOV BANH_TRAI,#255
MOV BANH_PHAI,#10
MOV ENCODER_CAO,#HIGH(ENCODER_1_VACH*3)
MOV ENCODER_THAP,#LOW(ENCODER_1_VACH*3)
SETB ACT_ENCODER
JB ACT_ENCODER,$
MOV MOTOR_NHA_CANG,#255
MOV ENCODER_CAO,#HIGH(ENCODER_1_VACH*3)
MOV ENCODER_THAP,#LOW(ENCODER_1_VACH*3)
SETB ACT_ENCODER
JB ACT_ENCODER,$
CALL HAM_TOC_MAX
;-CUA TRAI
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
CLR BANH_TRAI_DAO
SETB BANH_PHAI_DAO
CALL DELAY50MS
MOV BANH_TRAI,#255
MOV BANH_PHAI,#255
CALL DELAY400MS
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
CALL DUNG_MOTOR
JB NUT_TRAI1,$
MOV BYTE_LED_THAP,#88
CALL DELAY1S
JMP START
;======================= HAM_TOC 1 VACH ==============================
HAM_TOC_ENCODER_1VACH:
CLR BANH_TRAI_DAO
CLR BANH_PHAI_DAO
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
CALL DELAY50MS
MOV BYTE_DELAY_CAO,#HIGH(30) ;TGIAN HAM
MOV BYTE_DELAY_THAP,#LOW(30)
INC BYTE_DELAY_CAO
SETB TR0
MOV ENCODER_THAP,#LOW(ENCODER_1_VACH*45/50)
MOV ENCODER_CAO,#HIGH(ENCODER_1_VACH*45/50)
SETB ACT_ENCODER
MOV BANH_TRAI,#50
MOV BANH_PHAI,#50
LOOP_HAM_TOC_ENCODER_1VACH: ;TIMEOUT : ROBOT KO VUOT QUA DC DOAN HAM TOC
JNB ACT_ENCODER,SETB_DAO_BANH_ENCODER_1VACH ; --> TU TANG TOC VUOT QUA
JB TR0,LOOP_HAM_TOC_ENCODER_1VACH ;KT_TIME OUT : TIME OUT -> DO DUONG DOAN CON LAI
SETB BANH_TRAI_DAO
SETB BANH_PHAI_DAO
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
CALL DELAY50MS
CALL VAN_TOC_CHAM
CALL CHAY_THANG_ENCODER
SJMP THOAT_HAM_TOC_ENCODER_1VACH
SETB_DAO_BANH_ENCODER_1VACH:
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
SETB BANH_TRAI_DAO
SETB BANH_PHAI_DAO
CALL DELAY50MS
THOAT_HAM_TOC_ENCODER_1VACH:
RET
;======================= HAM_TOC 2 VACH ==============================
HAM_TOC_ENCODER_2VACH: ;2 VACH
CLR BANH_TRAI_DAO
CLR BANH_PHAI_DAO
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
CALL DELAY50MS
;--------
MOV BYTE_LED_THAP,#11 ;<---
MOV BANH_TRAI,#100
MOV BANH_PHAI,#100
MOV ENCODER_THAP,#LOW(ENCODER_1_VACH*2/5)
MOV ENCODER_CAO,#HIGH(ENCODER_1_VACH*2/5)
SETB ACT_ENCODER
LOOP_HAM_TOC_ENCODER_2VACH_1:
JB ACT_ENCODER,LOOP_HAM_TOC_ENCODER_2VACH_1
;--------
MOV BYTE_LED_THAP,#12 ;<---
MOV BANH_TRAI,#150
MOV BANH_PHAI,#150
MOV ENCODER_THAP,#LOW(ENCODER_1_VACH*2/5)
MOV ENCODER_CAO,#HIGH(ENCODER_1_VACH*2/5)
SETB ACT_ENCODER
LOOP_HAM_TOC_ENCODER_2VACH_2:
JB ACT_ENCODER,LOOP_HAM_TOC_ENCODER_2VACH_2
;-----
MOV BYTE_LED_THAP,#13 ;<---
HAM_TOC_ENCODER_2VACH_TIME_OUT:
MOV BYTE_DELAY_CAO,#HIGH(50) ;0.5S
MOV BYTE_DELAY_THAP,#LOW(50)
INC BYTE_DELAY_CAO
SETB TR0
MOV ENCODER_THAP,#LOW(ENCODER_1_VACH*45/50)
MOV ENCODER_CAO,#HIGH(ENCODER_1_VACH*45/50)
SETB ACT_ENCODER
MOV BANH_TRAI,#50
MOV BANH_PHAI,#50
LOOP_HAM_TOC_ENCODER_2VACH_TIME_OUT: ;TIMEOUT : ROBOT KO VUOT QUA DC DOAN HAM TOC
JNB ACT_ENCODER,SETB_DAO_BANH_ENCODER_2VACH_TIME_OUT ; --> TU TANG TOC VUOT QUA
JB TR0,LOOP_HAM_TOC_ENCODER_2VACH_TIME_OUT ;KT_TIME OUT : TIME OUT -> DO DUONG DOAN CON LAI
SETB BANH_TRAI_DAO
SETB BANH_PHAI_DAO
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
CALL DELAY50MS
CALL VAN_TOC_CHAM
CALL CHAY_THANG_ENCODER
SJMP THOAT_HAM_TOC_ENCODER_2VACH_TIME_OUT
SETB_DAO_BANH_ENCODER_2VACH_TIME_OUT:
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
SETB BANH_TRAI_DAO
SETB BANH_PHAI_DAO
CALL DELAY50MS
THOAT_HAM_TOC_ENCODER_2VACH_TIME_OUT:
RET
;======================= HAM_TOC ==============================
HAM_TOC_MAX:
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
CLR BANH_TRAI_DAO
CLR BANH_PHAI_DAO
CALL DELAY50MS
MOV BANH_TRAI,#255
MOV BANH_PHAI,#255
CALL DELAY100MS
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
SETB BANH_TRAI_DAO
SETB BANH_PHAI_DAO
CALL DELAY50MS
RET
;======================= HAM_TOC ==============================
HAM_TOC:
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
CLR BANH_TRAI_DAO
CLR BANH_PHAI_DAO
CALL DELAY50MS
MOV BANH_TRAI,#150
MOV BANH_PHAI,#150
CALL DELAY50MS
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
SETB BANH_TRAI_DAO
SETB BANH_PHAI_DAO
CALL DELAY50MS
RET
;======================= CHAY THANG DOC ENCODER ==================================================
;INPUT : ENCODER
CHAY_THANG_ENCODER:
;KT GT ENCODER
MOV A,ENCODER_THAP
CJNE A,#0,BD_CHAY_THANG_ENCODER
MOV A,ENCODER_CAO
CJNE A,#0,BD_CHAY_THANG_ENCODER
JMP THOAT_CHAY_THANG_ENCODER
;-
BD_CHAY_THANG_ENCODER:
SETB ACT_ENCODER
LOOP_CHAY_THANG_ENCODER:
JNB ACT_ENCODER,THOAT_CHAY_THANG_ENCODER
MOV BYTE_LED_THAP,ENCODER_THAP ;<----
MOV BYTE_LED_CAO,ENCODER_CAO
CALL KT_VUNG_DO_DUONG
CALL DK_DO_DUONG
JMP LOOP_CHAY_THANG_ENCODER
THOAT_CHAY_THANG_ENCODER:
RET
;======================= CHAY THANG DO DUONG 1 VACH HAM TOC ==================================================
CHAY_THANG_HAM_TOC:
MOV ENCODER_CAO,#HIGH(ENCODER_1_VACH)
MOV ENCODER_THAP,#LOW(ENCODER_1_VACH)
SETB ACT_ENCODER
;--HAM TOC
CALL HAM_TOC
CALL VAN_TOC_RAT_CHAM
LOOP_CHAY_THANG_HAM_TOC:
JNB ACT_ENCODER,THOAT_LOOP_CHAY_THANG_HAM_TOC
CALL KT_VUNG_DO_DUONG
CALL DK_DO_DUONG
JMP LOOP_CHAY_THANG_HAM_TOC
THOAT_LOOP_CHAY_THANG_HAM_TOC:
RET
;======================= CHAY THANG DO DUONG 1 VACH HAM TOC ==================================================
CHAY_THANG_HAM_TOC_ENCODER:
SETB ACT_ENCODER
;--HAM TOC
CALL HAM_TOC
LOOP_CHAY_THANG_HAM_TOC_ENCODER:
JNB ACT_ENCODER,THOAT_LOOP_CHAY_THANG_HAM_TOC_ENCODER
CALL KT_VUNG_DO_DUONG
CALL DK_DO_DUONG
JMP LOOP_CHAY_THANG_HAM_TOC_ENCODER
THOAT_LOOP_CHAY_THANG_HAM_TOC_ENCODER:
RET
;======================= CHAY THANG KHONG DO DUONG 1 VACH HAM TOC ==================================================
CHAY_THANG_MU_HAM_TOC:
MOV ENCODER_CAO,#HIGH(ENCODER_1_VACH)
MOV ENCODER_THAP,#LOW(ENCODER_1_VACH)
SETB ACT_ENCODER
;--HAM TOC
CALL HAM_TOC_MAX
MOV BANH_TRAI,#50
MOV BANH_PHAI,#50
JB ACT_ENCODER,$
;--TIM VACH NGANG
CALL CHO_QUA_VACH_NGANG
RET
;======================= CHAY THANG TIM VACH NGANG ============================
CHAY_THANG_TIM_VACH_NGANG:
CALL KT_QUA_VACH_NGANG
JB BIT_QUA_VACH_NGANG,THOAT_CHAY_THANG_TIM_VACH_NGANG
MOV BYTE_LED_THAP,#51 ;------
CALL KT_VUNG_DO_DUONG
CALL DK_DO_DUONG
SJMP CHAY_THANG_TIM_VACH_NGANG
THOAT_CHAY_THANG_TIM_VACH_NGANG:
RET
;======================= HAM DO DUONG DEM VACH =========================================================
CHAY_THANG:
; << ... >> : SU KIEN
; DOAN 1: BIT_TIM_VACH=0,ACT_ENCODER=1 ; <<BIT_TIM_VACH=0,ACT_ENCODER=0>>
; DOAN 2: BIT_TIM_VACH=1,ACT_ENCODER=1,BIT_QUA_VACH_NGANG=0 ; <<BIT_TIM_VACH=1,BIT_QUA_VACH_NGANG=1,ACT_ENCODER=1>> ; <<BIT_TIM_VACH=1,ACT_ENCODER=0>>
CALL KT_QUA_VACH_NGANG ;CHONG NHAN LAM VACH NGANG
CLR BIT_QUA_VACH_NGANG
CLR BIT_TIM_VACH
MOV ENCODER_THAP,#LOW(GT_ENCODER_DOAN1)
MOV ENCODER_CAO,#HIGH(GT_ENCODER_DOAN1)
SETB ACT_ENCODER
LOOP_CHAY_THANG:
;-------- DOAN1: CHAY KO NHAN VACH NGANG (BIT_TIM_VACH=0 , ACT_ENCODER=1) -----------
CHAY_KO_NHAN_VACH:
JB BIT_TIM_VACH,TIM_VACH_NGANG
JNB ACT_ENCODER,SETB_BIT_TIM_VACH
CALL KT_VUNG_DO_DUONG
CALL DK_DO_DUONG
MOV BYTE_LED_THAP,DEM_VACH ;<----
MOV BYTE_LED_CAO,#0
JMP CHAY_KO_NHAN_VACH ; TT CHAY THANG QUA DOAN 1
;------- <<BIT_TIM_VACH=0,ACT_ENCODER=0>> ------------------------------------------
SETB_BIT_TIM_VACH: ; KHOI TAO DOAN 2 :TIM VACH
SETB BIT_TIM_VACH
MOV ENCODER_THAP,#LOW(GT_ENCODER_DOAN2)
MOV ENCODER_CAO,#HIGH(GT_ENCODER_DOAN2)
SETB ACT_ENCODER
;-------- DOAN2: CHAY TIM VACH NGANG (BIT_TIM_VACH=1,ACT_ENCODER=1,BIT_QUA_VACH_NGANG=0) -------------
TIM_VACH_NGANG:
CALL KT_QUA_VACH_NGANG
JB BIT_QUA_VACH_NGANG,DEC_DEM_VACH ; KT QUA_VACH_NGANG ->DEC_DEM_VACH
JNB ACT_ENCODER,DEC_DEM_VACH_ERROR ; KT ERROR_NHAN_VACH ->DEC_DEM_VACH_ERROR
CALL KT_VUNG_DO_DUONG
CALL DK_DO_DUONG
MOV BYTE_LED_THAP,DEM_VACH ;<----
MOV BYTE_LED_CAO,#0
JMP TIM_VACH_NGANG ; TT CHAY THANG QUA DOAN 2
;-------- <<BIT_TIM_VACH=1,BIT_QUA_VACH_NGANG=1,ACT_ENCODER=1>> -------------------
DEC_DEM_VACH:
DEC DEM_VACH
MOV A,DEM_VACH
CJNE A,#0,TT_DEM_VACH ;DEM_VACH > 0
CLR ACT_ENCODER
JMP THOAT_CHAY_THANG
TT_DEM_VACH:
CLR BIT_TIM_VACH ; KHOI TAO CHAY THANG DOAN 1
MOV ENCODER_THAP,#LOW(GT_ENCODER_DOAN1)
MOV ENCODER_CAO,#HIGH(GT_ENCODER_DOAN1)
SETB ACT_ENCODER
JMP LOOP_CHAY_THANG
;-------- <<BIT_TIM_VACH=1,BIT_QUA_VACH_NGANG=0,ACT_ENCODER=0>> ---------------------
DEC_DEM_VACH_ERROR:
DEC DEM_VACH
MOV A,DEM_VACH
CJNE A,#0,TT_DEM_VACH_ERROR ;DEM_VACH > 0
JMP THOAT_CHAY_THANG
TT_DEM_VACH_ERROR: ; KHOI TAO LAI CHAY THANG DOAN 1 KHI MAC LOI DEM VACH
CLR BIT_TIM_VACH
MOV ENCODER_THAP,#LOW(GT_ENCODER_DOAN1_ERROR)
MOV ENCODER_CAO,#HIGH(GT_ENCODER_DOAN1_ERROR)
SETB ACT_ENCODER
JMP LOOP_CHAY_THANG
THOAT_CHAY_THANG:
RET
;======================= CAC HAM CON DO DUONG ==================================================
;******** KT DI QUA VACH NGANG -> BIT_QUA_VACH_NGANG *********************
KT_QUA_VACH_NGANG:
CLR BIT_QUA_VACH_NGANG ;KHOI DONG BIT KTRA VACH NGANG
LOOP_KT_QUA_VACH_NGANG:
MOV TONG_CAM_BIEN,#0
JNB CAMBIEN1,KIEMTRA_CAMBIEN2
INC TONG_CAM_BIEN
KIEMTRA_CAMBIEN2:
JNB CAMBIEN2,KIEMTRA_CAMBIEN3
INC TONG_CAM_BIEN
KIEMTRA_CAMBIEN3:
JNB CAMBIEN3,KIEMTRA_CAMBIEN4
INC TONG_CAM_BIEN
KIEMTRA_CAMBIEN4:
JNB CAMBIEN4,KIEMTRA_CAMBIEN5
INC TONG_CAM_BIEN
KIEMTRA_CAMBIEN5:
JNB CAMBIEN5,KIEMTRA_CAMBIEN6
INC TONG_CAM_BIEN
KIEMTRA_CAMBIEN6:
JNB CAMBIEN6,KIEMTRA_CAMBIEN7
INC TONG_CAM_BIEN
KIEMTRA_CAMBIEN7:
JNB CAMBIEN7,KIEMTRA_CAMBIEN8
INC TONG_CAM_BIEN
KIEMTRA_CAMBIEN8:
JNB CAMBIEN8,KIEMTRA_VACHNGANG
INC TONG_CAM_BIEN
;KIEM TRA CO DI QUA VACH TRANG KHONG
KIEMTRA_VACHNGANG:
MOV A,TONG_CAM_BIEN
CJNE A,#5,LAYCO_C ;1 VACH NGANG >=5 CAM BIEN
LAYCO_C:
JC THOAT_KT_QUA_VACH_NGANG
SETB BIT_QUA_VACH_NGANG ;BAO DA QUA VACH NGANG
JMP LOOP_KT_QUA_VACH_NGANG ;CHO DEN KHI QUA VACH NGANG
THOAT_KT_QUA_VACH_NGANG:
RET
;******** KT VUNG CAM BIEN *************************************************************
KT_VUNG_DO_DUONG:
;*** SETB BIT NHO BEN TRAI/PHAI
KT_LECH_TRAI_PHAI:
MOV C,CAMBIEN8 ;0 0 0 0 0 0 1 1
ORL C,CAMBIEN7
ANL C,/CAMBIEN1
ANL C,/CAMBIEN2
ANL C,/CAMBIEN3
ANL C,/CAMBIEN4
ANL C,/CAMBIEN5
ANL C,/CAMBIEN6
JNC KT_SETB_BIT_NHO_TRAI
SETB BIT_NHO_PHAI
SJMP TRUNG_TAM
KT_SETB_BIT_NHO_TRAI:
MOV C,CAMBIEN1 ;1 1 0 0 0 0 0 0
ORL C,CAMBIEN2
ANL C,/CAMBIEN7
ANL C,/CAMBIEN8
ANL C,/CAMBIEN3
ANL C,/CAMBIEN4
ANL C,/CAMBIEN5
ANL C,/CAMBIEN6
JNC TRUNG_TAM
SETB BIT_NHO_TRAI
;--------BIT NHO VUNG TRUNG TAM
TRUNG_TAM: ;1 2 3 4 5 6 7 8
MOV C,CAMBIEN4 ;0 0 0 1 1 0 0 0
ANL C,CAMBIEN5
JNC VUNG_PHAI1
MOV VUNG,#00H
CLR BIT_NHO_TRAI ;XOA NHO LECH TRAI/PHAI
CLR BIT_NHO_PHAI
JMP THOAT_KT_VUNG_DO_DUONG
;--------BIT NHO VUNG PHAI
VUNG_PHAI1: ;1 2 3 4 5 6 7 8
MOV C,CAMBIEN5 ;0 0 0 0 1 0 0 0
ANL C,/CAMBIEN4
ANL C,/CAMBIEN6
JNC VUNG_PHAI2
MOV VUNG,#01H
CLR BIT_NHO_TRAI ;XOA NHO LECH TRAI/PHAI
CLR BIT_NHO_PHAI
JMP THOAT_KT_VUNG_DO_DUONG
VUNG_PHAI2: ;1 2 3 4 5 6 7 8
MOV C,CAMBIEN5 ;0 0 0 0 1 1 0 0
ANL C,CAMBIEN6
JNC VUNG_PHAI3
MOV VUNG,#02H
CLR BIT_NHO_TRAI ;XOA NHO LECH TRAI/PHAI
CLR BIT_NHO_PHAI
JMP THOAT_KT_VUNG_DO_DUONG
VUNG_PHAI3: ;1 2 3 4 5 6 7 8
MOV C,CAMBIEN6 ;0 0 0 0 0 1 0 0
ANL C,/CAMBIEN5
ANL C,/CAMBIEN7
JNC VUNG_PHAI4
MOV VUNG,#03H
CLR BIT_NHO_TRAI ;XOA NHO LECH TRAI/PHAI
CLR BIT_NHO_PHAI
JMP THOAT_KT_VUNG_DO_DUONG
VUNG_PHAI4: ;1 2 3 4 5 6 7 8
MOV C,CAMBIEN6 ;0 0 0 0 0 1 1 0
ANL C,CAMBIEN7
JNC VUNG_PHAI5
MOV VUNG,#04H
CLR BIT_NHO_TRAI ;XOA NHO LECH TRAI/PHAI
CLR BIT_NHO_PHAI
JMP THOAT_KT_VUNG_DO_DUONG
VUNG_PHAI5: ;1 2 3 4 5 6 7 8
MOV C,CAMBIEN7 ;0 0 0 0 0 0 1 0
ANL C,/CAMBIEN6
ANL C,/CAMBIEN8
JNC VUNG_PHAI6
MOV VUNG,#05H
JMP THOAT_KT_VUNG_DO_DUONG
VUNG_PHAI6: ;1 2 3 4 5 6 7 8
MOV C,CAMBIEN7 ;0 0 0 0 0 0 1 1
ANL C,CAMBIEN8
JNC VUNG_PHAI7
MOV VUNG,#06H
JMP THOAT_KT_VUNG_DO_DUONG
VUNG_PHAI7: ;1 2 3 4 5 6 7 8
MOV C,CAMBIEN8 ;0 0 0 0 0 0 0 1
ANL C,/CAMBIEN7
JNC VUNG_PHAI8
MOV VUNG,#07H
JMP THOAT_KT_VUNG_DO_DUONG
VUNG_PHAI8: ;1 2 3 4 5 6 7 8
MOV C,BIT_NHO_PHAI ;0 0 0 0 0 0 0 0 BIT_NHO_PHAI
ANL C,/CAMBIEN1
ANL C,/CAMBIEN2
ANL C,/CAMBIEN3
ANL C,/CAMBIEN4
ANL C,/CAMBIEN5
ANL C,/CAMBIEN6
ANL C,/CAMBIEN7
ANL C,/CAMBIEN8
JNC VUNG_TRAI1
MOV VUNG,#08H
JMP THOAT_KT_VUNG_DO_DUONG
;--------BIT NHO VUNG TRAI
VUNG_TRAI1: ;1 2 3 4 5 6 7 8
MOV C,CAMBIEN4 ;0 0 0 1 0 0 0 0
ANL C,/CAMBIEN3
ANL C,/CAMBIEN5
JNC VUNG_TRAI2
MOV VUNG,#11H
CLR BIT_NHO_TRAI ;XOA NHO LECH TRAI/PHAI
CLR BIT_NHO_PHAI
JMP THOAT_KT_VUNG_DO_DUONG
VUNG_TRAI2: ;1 2 3 4 5 6 7 8
MOV C,CAMBIEN3 ;0 0 1 1 0 0 0 0
ANL C,CAMBIEN4
JNC VUNG_TRAI3
MOV VUNG,#12H
CLR BIT_NHO_TRAI ;XOA NHO LECH TRAI/PHAI
CLR BIT_NHO_PHAI
JMP THOAT_KT_VUNG_DO_DUONG
VUNG_TRAI3: ;1 2 3 4 5 6 7 8
MOV C,CAMBIEN3 ;0 0 1 0 0 0 0 0
ANL C,/CAMBIEN2
ANL C,/CAMBIEN4
JNC VUNG_TRAI4
MOV VUNG,#13H
CLR BIT_NHO_TRAI ;XOA NHO LECH TRAI/PHAI
CLR BIT_NHO_PHAI
JMP THOAT_KT_VUNG_DO_DUONG
VUNG_TRAI4: ;1 2 3 4 5 6 7 8
MOV C,CAMBIEN2 ;0 1 1 0 0 0 0 0
ANL C,CAMBIEN3
JNC VUNG_TRAI5
MOV VUNG,#14H
CLR BIT_NHO_TRAI ;XOA NHO LECH TRAI/PHAI
CLR BIT_NHO_PHAI
JMP THOAT_KT_VUNG_DO_DUONG
VUNG_TRAI5: ;1 2 3 4 5 6 7 8
MOV C,CAMBIEN2 ;0 1 0 0 0 0 0 0
ANL C,/CAMBIEN1
ANL C,/CAMBIEN3
JNC VUNG_TRAI6
MOV VUNG,#15H
JMP THOAT_KT_VUNG_DO_DUONG
VUNG_TRAI6: ;1 2 3 4 5 6 7 8
MOV C,CAMBIEN1 ;1 1 0 0 0 0 0 0
ANL C,CAMBIEN2
JNC VUNG_TRAI7
MOV VUNG,#16H
JMP THOAT_KT_VUNG_DO_DUONG
VUNG_TRAI7: ;1 2 3 4 5 6 7 8
MOV C,CAMBIEN1 ;1 0 0 0 0 0 0 0
ANL C,/CAMBIEN2
JNC VUNG_TRAI8
MOV VUNG,#17H
JMP THOAT_KT_VUNG_DO_DUONG
VUNG_TRAI8: ; 1 2 3 4 5 6 7 8
MOV C,BIT_NHO_TRAI ; BIT_NHO_TRAI 0 0 0 0 0 0 0 0
ANL C,/CAMBIEN1
ANL C,/CAMBIEN2
ANL C,/CAMBIEN3
ANL C,/CAMBIEN4
ANL C,/CAMBIEN5
ANL C,/CAMBIEN6
ANL C,/CAMBIEN7
ANL C,/CAMBIEN8
JNC VUNG_ERROR
MOV VUNG,#18H
JMP THOAT_KT_VUNG_DO_DUONG
VUNG_ERROR:
MOV VUNG,#20H
THOAT_KT_VUNG_DO_DUONG:
RET
;******** DIEU KHIEN DO DUONG ********************************************************
DK_DO_DUONG:
MOV A,VUNG
CJNE A,#00H,DK_VUNG_PHAI1 ;DK VUNG TRUNG TAM
SETB BANH_TRAI_DAO ;1 2 3 4 5 6 7 8
SETB BANH_PHAI_DAO ;0 0 0 1 1 0 0 0
MOV BANH_TRAI,BANH_TRAI_TD1
MOV BANH_PHAI,BANH_PHAI_TD1
JMP THOAT_DK_VUNG
DK_VUNG_PHAI1:
CJNE A,#01H,DK_VUNG_PHAI2 ;DK VUNG PHAI1
SETB BANH_TRAI_DAO ;1 2 3 4 5 6 7 8
SETB BANH_PHAI_DAO ;0 0 0 0 1 0 0 0
MOV BANH_TRAI,BANH_TRAI_TD2
MOV BANH_PHAI,BANH_PHAI_TD1
JMP THOAT_DK_VUNG
DK_VUNG_PHAI2:
CJNE A,#02H,DK_VUNG_PHAI3 ;DK VUNG PHAI2
SETB BANH_TRAI_DAO ;1 2 3 4 5 6 7 8
SETB BANH_PHAI_DAO ;0 0 0 0 1 1 0 0
MOV BANH_TRAI,BANH_TRAI_TD3
MOV BANH_PHAI,BANH_PHAI_TD1
JMP THOAT_DK_VUNG
DK_VUNG_PHAI3:
CJNE A,#03H,DK_VUNG_PHAI4 ;DK VUNG PHAI3
SETB BANH_TRAI_DAO ;1 2 3 4 5 6 7 8
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -