📄 td_tt.asm
字号:
CHUONG_TRINH_PHAI_CP3:
;--GHI O 2 DIEM DOI PHUONG PHIA DOI PHUONG,CHONG RETRY
;--RA VUNG XUAT PHAT
CALL XUAT_PHAT_PHAI
;--CHAY THANG 7 VACH
CALL VAN_TOC_MAX
CALL CHAY_THANG_TIM_VACH_NGANG
MOV DEM_VACH,#5
CALL VAN_TOC_MAX
CALL CHAY_THANG
MOV DEM_VACH,#1
CALL VAN_TOC_CHAM
CALL CHAY_THANG
;--CUA PHAI
CALL CUA_PHAI_O_1_DIEM
CALL GHI_O_1_DIEM
CALL CUA_TRAI_90
;--CHAY THANG 3 VACH
CALL VAN_TOC_CHAM
CALL CHAY_THANG_TIM_VACH_NGANG
MOV DEM_VACH,#1
CALL VAN_TOC_MAX
CALL CHAY_THANG
MOV DEM_VACH,#1
CALL VAN_TOC_CHAM
CALL CHAY_THANG
;--CUA PHAI
CALL CUA_PHAI
;--CHAY THANG 4 VACH
CALL VAN_TOC_CHAM
CALL CHAY_THANG_TIM_VACH_NGANG
MOV DEM_VACH,#1
CALL VAN_TOC_TB
CALL CHAY_THANG
MOV DEM_VACH,#1
CALL VAN_TOC_MAX
CALL CHAY_THANG
MOV DEM_VACH,#1
CALL VAN_TOC_CHAM
CALL CHAY_THANG
;--CUA PHAI
CALL CUA_PHAI
;--CHAY THANG 9 VACH
CALL VAN_TOC_CHAM
CALL CHAY_THANG_TIM_VACH_NGANG
MOV DEM_VACH,#1
CALL VAN_TOC_TB
CALL CHAY_THANG
MOV DEM_VACH,#6
CALL VAN_TOC_MAX
CALL CHAY_THANG
MOV DEM_VACH,#1
CALL VAN_TOC_CHAM
CALL CHAY_THANG
;--CUA TRAI
CALL CUA_TRAI
;--CHAY THANG 6 VACH
CALL VAN_TOC_CHAM
CALL CHAY_THANG_TIM_VACH_NGANG
MOV DEM_VACH,#1
CALL VAN_TOC_TB
CALL CHAY_THANG
MOV DEM_VACH,#3
CALL VAN_TOC_MAX
CALL CHAY_THANG
MOV DEM_VACH,#1
CALL VAN_TOC_CHAM
CALL CHAY_THANG
;--CUA TRAI
CALL CUA_TRAI
;--CHAY THANG 2 VACH
CALL VAN_TOC_CHAM
CALL CHAY_THANG_TIM_VACH_NGANG
MOV DEM_VACH,#1
CALL VAN_TOC_CHAM
CALL CHAY_THANG
;--CUA TRAI
CALL CUA_TRAI
CALL PHA_DIEM
JB NUT_TT1,$
MOV BYTE_LED_THAP,#88
CALL DELAY1S
JMP START
;=========CHUONH TRINH 12=========
CHUONG_TRINH_PHAI_CP4:
;--PHA O 2 DIEM PHIA DOI DIEN DOI PHUONG
;--RA VUNG XUAT PHAT
CALL XUAT_PHAT_PHAI
;--CHAY THANG 7 VACH
CALL VAN_TOC_MAX
CALL CHAY_THANG_TIM_VACH_NGANG
MOV DEM_VACH,#5
CALL VAN_TOC_MAX
CALL CHAY_THANG
MOV DEM_VACH,#1
CALL VAN_TOC_CHAM
CALL CHAY_THANG
;--CUA PHAI
CALL CUA_PHAI_O_1_DIEM
CALL GHI_O_1_DIEM
CALL CUA_TRAI_90
;--CHAY THANG 3 VACH
CALL VAN_TOC_CHAM
CALL CHAY_THANG_TIM_VACH_NGANG
MOV DEM_VACH,#1
CALL VAN_TOC_MAX
CALL CHAY_THANG
MOV DEM_VACH,#1
CALL VAN_TOC_CHAM
CALL CHAY_THANG
;--CUA PHAI
CALL CUA_PHAI
;--CHAY THANG 4 VACH
CALL VAN_TOC_CHAM
CALL CHAY_THANG_TIM_VACH_NGANG
MOV DEM_VACH,#2
CALL VAN_TOC_MAX
CALL CHAY_THANG
MOV DEM_VACH,#1
CALL VAN_TOC_CHAM
CALL CHAY_THANG
;--CUA PHAI
CALL CUA_PHAI
;--CHAY THANG 7 VACH
CALL VAN_TOC_CHAM
CALL CHAY_THANG_TIM_VACH_NGANG
MOV DEM_VACH,#5
CALL VAN_TOC_MAX
CALL CHAY_THANG
MOV DEM_VACH,#1
CALL VAN_TOC_CHAM
CALL CHAY_THANG
;--CUA TRAI
CALL CUA_TRAI
;--CHAY THANG 2 VACH
CALL PHA_DIEM
JB NUT_TT1,$
MOV BYTE_LED_THAP,#88
CALL DELAY1S
JMP START
;=========CHUONH TRINH 1=========
CHUONG_TRINH_TRANG_CP1:
;---GHI O 2 DIEM , CHAY SAT VACH
CALL XUAT_PHAT_RETRY
CALL CUA_PHAI_MU
CALL VAN_TOC_CHAM
CALL CHAY_THANG_TIM_VACH_NGANG
MOV DEM_VACH,#1
CALL VAN_TOC_CHAM
CALL CHAY_THANG
MOV DEM_VACH,#5
CALL VAN_TOC_MAX
CALL CHAY_THANG
MOV ENCODER_THAP,#LOW(ENCODER_1_VACH*1)
MOV ENCODER_CAO,#HIGH(ENCODER_1_VACH*1)
CALL VAN_TOC_MAX
CALL CHAY_THANG_NUA_PHAI
MOV ENCODER_THAP,#LOW(ENCODER_1_VACH*202/100)
MOV ENCODER_CAO,#HIGH(ENCODER_1_VACH*202/100)
CALL VAN_TOC_CHAM
CALL CHAY_THANG_NUA_PHAI
CALL CUA_PHAI
CALL VAN_TOC_CHAM
CALL CHAY_THANG_TIM_VACH_NGANG
MOV DEM_VACH,#1
CALL VAN_TOC_CHAM
CALL CHAY_THANG
CALL GHI_DIEM
CALL GIU_DIEM
JB NUT_TT1,$
MOV BYTE_LED_THAP,#88
CALL DELAY1S
JMP START
;=========CHUONH TRINH 1=========
CHUONG_TRINH_TRANG_CP2:
;---GHI O 2 DIEM , CHAY SAT VACH
CALL XUAT_PHAT_RETRY
CALL CUA_PHAI_MU
CALL VAN_TOC_CHAM
CALL CHAY_THANG_TIM_VACH_NGANG
MOV DEM_VACH,#1
CALL VAN_TOC_CHAM
CALL CHAY_THANG
MOV DEM_VACH,#5
CALL VAN_TOC_MAX
CALL CHAY_THANG
MOV ENCODER_THAP,#LOW(ENCODER_1_VACH*1)
MOV ENCODER_CAO,#HIGH(ENCODER_1_VACH*1)
CALL VAN_TOC_MAX
CALL CHAY_THANG_NUA_PHAI
MOV ENCODER_THAP,#LOW(ENCODER_1_VACH*202/100)
MOV ENCODER_CAO,#HIGH(ENCODER_1_VACH*202/100)
CALL VAN_TOC_CHAM
CALL CHAY_THANG_NUA_PHAI
CALL CUA_PHAI
CALL VAN_TOC_CHAM
CALL CHAY_THANG_TIM_VACH_NGANG
MOV DEM_VACH,#1
CALL VAN_TOC_CHAM
CALL CHAY_THANG
CALL GHI_DIEM
CALL GIU_DIEM
JB NUT_TT1,$
MOV BYTE_LED_THAP,#88
CALL DELAY1S
JMP START
;======================= VAO VUNG BANG TAY ==========
CAN_BT:
;--BO CAN BT
MOV BANH_TRAI,#155
MOV BANH_PHAI,#255
MOV ENCODER_THAP,#LOW(ENCODER_1_VACH*8)
MOV ENCODER_CAO,#HIGH(ENCODER_1_VACH*8)
SETB ACT_ENCODER_PHAI
LOOP_BO_CAN_BT:
JNB ACT_ENCODER_PHAI,THOAT_LOOP_BO_CAN_BT
MOV BYTE_LED_THAP,ENCODER_THAP ;<---
MOV BYTE_LED_CAO,ENCODER_CAO
MOV C,CTHT_TRAI
ANL C,CTHT_PHAI
JC LOOP_BO_CAN_BT
SETB BIT_ERROR_CAN_BT
JMP LOOP_BO_CAN_BT
THOAT_LOOP_BO_CAN_BT:
;--CHAY THANG
MOV BANH_TRAI,#240
MOV BANH_PHAI,#255
MOV ENCODER_THAP,#LOW(ENCODER_1_VACH*32/10)
MOV ENCODER_CAO,#HIGH(ENCODER_1_VACH*32/10)
SETB ACT_ENCODER_PHAI
LOOP_CHAY_THANG_CAN_BT:
JNB ACT_ENCODER_PHAI,THOAT_LOOP_CHAY_THANG_CAN_BT
MOV BYTE_LED_THAP,ENCODER_THAP ;<---
MOV BYTE_LED_CAO,ENCODER_CAO
MOV C,CTHT_TRAI
ANL C,CTHT_PHAI
JC LOOP_CHAY_THANG_CAN_BT
SETB BIT_ERROR_CAN_BT
JMP LOOP_CHAY_THANG_CAN_BT
THOAT_LOOP_CHAY_THANG_CAN_BT:
;--
JNB BIT_ERROR_CAN_BT,CUA_PHAI_CAN_BT
MOV R2,#5
LOOP_ERROR_CAN_BT:
MOV BYTE_LED_THAP,#99 ;<----
MOV BANH_TRAI,#255
MOV BANH_PHAI,#255
MOV ENCODER_THAP,#LOW(ENCODER_1_VACH)
MOV ENCODER_CAO,#HIGH(ENCODER_1_VACH)
SETB ACT_ENCODER_PHAI
JB ACT_ENCODER_PHAI,$
CALL DUNG
MOV C,CTHT_TRAI
ANL C,CTHT_PHAI
JC THOAT_ERROR_CAN_BT
DJNZ R2,SUA_ERROR_CAN_BT
JMP THOAT_ERROR_CAN_BT
SUA_ERROR_CAN_BT:
MOV ENCODER_THAP,#LOW(ENCODER_1_VACH/8)
MOV ENCODER_CAO,#HIGH(ENCODER_1_VACH/8)
CALL CHAY_LUI_ENCODER
CALL DELAY1S
JMP LOOP_ERROR_CAN_BT
THOAT_ERROR_CAN_BT:
CALL CUA_PHAI_ENCODER
SJMP $
CUA_PHAI_CAN_BT:
;--CUA PHAI
CALL HAM_TOC
CALL DELAY200MS
CALL CUA_PHAI_ENCODER
THOAT_CAN_BT:
RET
;======================= GHI_O_1_DIEM ===============
GHI_O_1_DIEM:
SETB MOTOR_DAY_DAO1
SETB MOTOR_DAY_DAO2
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
CALL DELAY50MS
MOV BYTE_DELAY_THAP,#LOW(300)
MOV BYTE_DELAY_CAO,#HIGH(300)
INC BYTE_DELAY_CAO
SETB TR0
MOV MOTOR_DAY1,#255
MOV MOTOR_DAY2,#255
LOOP_TR0_CTHT_TRUOC_GHI_1_DIEM:
MOV C,TR0
ANL C,CTHT_TRUOC
JC LOOP_TR0_CTHT_TRUOC_GHI_1_DIEM
SETB BIT_GHI_DIEM
MOV MOTOR_DAY1,#0
MOV MOTOR_DAY2,#0
CLR MOTOR_DAY_DAO1
CLR MOTOR_DAY_DAO2
CALL DELAY200MS ;CHO QUA ON DINH
MOV MOTOR_DAY1,#255
MOV MOTOR_DAY2,#255
CALL DELAY2S
MOV MOTOR_DAY1,#100
MOV MOTOR_DAY2,#100
RET
;======================= GHI DIEM =============================
GHI_DIEM: ;DO DUONG CHO DEN KHI CHAM CTHT
MOV BYTE_DELAY_THAP,#LOW(200) ;TIME OUT 1S
MOV BYTE_DELAY_CAO,#HIGH(200)
INC BYTE_DELAY_CAO
SETB TR0
CALL VAN_TOC_HC
HIEU_CHINH_GHI_DIEM:
CALL KT_VUNG_DO_DUONG
CALL DK_DO_DUONG
MOV C,CTHT_TRAI
ANL C,CTHT_PHAI
JC KT_TIME_OUT_HC
CALL BD_GHI_DIEM
JMP THOAT_GHI_DIEM
KT_TIME_OUT_HC:
JB TR0,HIEU_CHINH_GHI_DIEM
CALL FIX_ERROR_SCORE
THOAT_GHI_DIEM:
RET
;---------------- ERROR SCORE POINT ------------------------------
FIX_ERROR_SCORE:
CALL GHI_DIEM_LAI
JB BIT_GHI_DIEM,THOAT_FIX_ERROR_SCORE
CALL DUNG
CALL DELAY30S ;TIME OUT
CALL BD_GHI_DIEM
CALL GIU_DIEM
THOAT_FIX_ERROR_SCORE:
RET
;-----------------------------------------------
BD_GHI_DIEM:
MOV BYTE_DELAY_THAP,#LOW(600)
MOV BYTE_DELAY_CAO,#HIGH(600)
INC BYTE_DELAY_CAO
SETB TR0
MOV MOTOR_DAY1,#255
MOV MOTOR_DAY2,#255
MOV BANH_TRAI,#30
MOV BANH_PHAI,#30
LOOP_TR0_CTHT_TRUOC_GHI_DIEM:
MOV C,TR0
ANL C,CTHT_TRUOC
JC LOOP_TR0_CTHT_TRUOC_GHI_DIEM
SETB BIT_GHI_DIEM
;GIU COT CHO QUA ON DINH
MOV MOTOR_DAY1,#0
MOV MOTOR_DAY2,#0
MOV BANH_TRAI,#30
MOV BANH_PHAI,#30
CALL DELAY500MS
HIEU_CHINH_DIEM:
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
CLR BANH_TRAI_DAO
CLR BANH_PHAI_DAO
CALL DELAY50MS
MOV BANH_TRAI,#70
MOV BANH_PHAI,#70
MOV ENCODER_CAO,#HIGH(ENCODER_1_VACH/10)
MOV ENCODER_THAP,#LOW(ENCODER_1_VACH/10)
SETB ACT_ENCODER_PHAI
JB ACT_ENCODER_PHAI,$
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
SETB BANH_TRAI_DAO
SETB BANH_PHAI_DAO
CALL DELAY50MS
MOV BANH_TRAI,#80
MOV BANH_PHAI,#80
CALL DELAY500MS
MOV BANH_TRAI,#30
MOV BANH_PHAI,#30
RET
;============== GHI DIEM LAI =============
GHI_DIEM_LAI:
MOV R2,#2
LOOP_HIEU_CHINH_GHI_DIEM_ERROR:
;LUI
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
CLR BANH_TRAI_DAO
CLR BANH_PHAI_DAO
CALL DELAY50MS
MOV BANH_TRAI,#90
MOV BANH_PHAI,#100
MOV ENCODER_CAO,#HIGH(ENCODER_1_VACH/2)
MOV ENCODER_THAP,#LOW(ENCODER_1_VACH/2)
SETB ACT_ENCODER_PHAI
JB ACT_ENCODER_PHAI,$
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
SETB BANH_TRAI_DAO
SETB BANH_PHAI_DAO
CALL DELAY50MS
;TOI
MOV BYTE_DELAY_THAP,#LOW(70) ;TIME OUT 0.7S
MOV BYTE_DELAY_CAO,#HIGH(70)
INC BYTE_DELAY_CAO
SETB TR0
CALL VAN_TOC_HC
HIEU_CHINH_GHI_DIEM_ERROR:
CALL KT_VUNG_DO_DUONG
CALL DK_DO_DUONG
MOV BYTE_LED_THAP,VUNG
MOV C,CTHT_TRAI
ANL C,CTHT_PHAI
JC KT_TIME_OUT_HC_ERROR
CALL BD_GHI_DIEM
JMP THOAT_GHI_DIEM_LAI
KT_TIME_OUT_HC_ERROR:
JB TR0,HIEU_CHINH_GHI_DIEM_ERROR
DJNZ R2,LOOP_HIEU_CHINH_GHI_DIEM_ERROR
THOAT_GHI_DIEM_LAI:
RET
;======================= GIU DIEM ==============================
GIU_DIEM:
CALL HIEU_CHINH_DIEM
;--RUT CANG
MOV MOTOR_DAY1,#0
MOV MOTOR_DAY2,#0
CLR MOTOR_DAY_DAO1
CLR MOTOR_DAY_DAO2
CALL DELAY50MS
MOV MOTOR_DAY1,#255 ;rut cang
MOV MOTOR_DAY2,#255
CALL DELAY3S
MOV MOTOR_DAY1,#0
MOV MOTOR_DAY2,#0
LOOP_GIU_DIEM:
;-- LUI
MOV ENCODER_THAP,#LOW(ENCODER_1_VACH/50) ;6 XUNG
MOV ENCODER_CAO,#HIGH(ENCODER_1_VACH/50)
CALL CHAY_LUI_ENCODER
CALL DELAY10S
;-- TOI
MOV BYTE_DELAY_THAP,#LOW(30) ;TIME OUT 0.3S
MOV BYTE_DELAY_CAO,#HIGH(30)
CALL VAN_TOC_HC
CALL CHAY_THANG_TIME_OUT
JMP LOOP_GIU_DIEM
RET
;======================= CHAY LUI DOC ENCODER ===================
CHAY_LUI_ENCODER: ;00011000
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
CLR BANH_TRAI_DAO
CLR BANH_PHAI_DAO
CALL DELAY50MS
;XD VUNG
MOV C,CAMBIEN4
ORL C,CAMBIEN5
JC LUI_VUNG_TT
MOV C,CAMBIEN1
ORL C,CAMBIEN2
ORL C,CAMBIEN3
JC LUI_TRAI
MOV C,CAMBIEN6
ORL C,CAMBIEN7
ORL C,CAMBIEN8
JC LUI_PHAI
LUI_VUNG_TT:
MOV BANH_TRAI,#70
MOV BANH_PHAI,#70
JMP START_LUI
LUI_TRAI:
MOV BANH_TRAI,#70
MOV BANH_PHAI,#70
JMP START_LUI
LUI_PHAI:
MOV BANH_TRAI,#70
MOV BANH_PHAI,#70
JMP START_LUI
START_LUI:
SETB ACT_ENCODER_PHAI
JB ACT_ENCODER_PHAI,$
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
SETB BANH_TRAI_DAO
SETB BANH_PHAI_DAO
CALL DELAY50MS
RET
;======================= LUI RUT CANG =====================
;INPUT :GIA TRI ENCODER
CHAY_LUI_RUT_CANG:
MOV MOTOR_DAY1,#0
MOV MOTOR_DAY2,#0
CLR MOTOR_DAY_DAO1
CLR MOTOR_DAY_DAO2
CALL DELAY50MS
JNB CTHT_SAU,MOTOR_DAY_0
MOV MOTOR_DAY1,#255 ;rut cang
MOV MOTOR_DAY2,#255
JMP CALL_CHAY_LUI_ENCODER
MOTOR_DAY_0:
MOV MOTOR_DAY1,#0
MOV MOTOR_DAY2,#0
CALL_CHAY_LUI_ENCODER:
CALL CHAY_LUI_ENCODER
RET
;======================= CHAY LUI DOC ENCODER ===================
;INPUT :GIA TRI ENCODER
CHAY_LUI:
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
CLR BANH_TRAI_DAO
CLR BANH_PHAI_DAO
CALL DELAY50MS
SETB ACT_ENCODER_PHAI
LOOP_CHAY_LUI:
JNB ACT_ENCODER_PHAI,THOAT_CHAY_LUI
CALL KT_VUNG_DO_DUONG
CALL DK_DO_DUONG
SJMP LOOP_CHAY_LUI
THOAT_CHAY_LUI:
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,#100
MOV BANH_PHAI,#100
CALL DELAY50MS
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
SETB BANH_TRAI_DAO
SETB BANH_PHAI_DAO
CALL DELAY50MS
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 DELAY150MS
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
SETB BANH_TRAI_DAO
SETB BANH_PHAI_DAO
CALL DELAY50MS
RET
;======================= CHAY THANG NUA TRAI DOC ENCODER ==================================================
;INPUT : ENCODER
CHAY_THANG_NUA_TRAI:
SETB ACT_ENCODER_PHAI
LOOP_CHAY_THANG_NUA_TRAI:
JNB ACT_ENCODER_PHAI,THOAT_CHAY_THANG_NUA_TRAI
MOV BYTE_LED_THAP,ENCODER_THAP ;<----
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -