📄 retry.asm
字号:
;ROBOT TRUOC GHI BIEN,XUAT PHAT DAT PHAI
;ENCODER CHI DEM GIAM -> CLR ACT_ENCODER
;ENCODER 100 XUNG
;CAM BIEN : 1 2 3 4 5 6 7 8
$MOD51fx
;======================= DEFINE GT ENCODER ================
ENCODER_1_VACH EQU 320
GT_ENCODER_DOAN1 EQU ENCODER_1_VACH*8/10
GT_ENCODER_DOAN1_ERROR EQU ENCODER_1_VACH*4/10
GT_ENCODER_DOAN2 EQU ENCODER_1_VACH*6/10
GT_ENCODER_CUA_PHAI EQU ENCODER_1_VACH*80/380
GT_ENCODER_CUA_TRAI EQU ENCODER_1_VACH*80/380
GT_BANH_TRAI_BO_TRAI EQU 200
GT_BANH_PHAI_BO_TRAI EQU 255
;======================= DEFINE BIT =======================
;******** HIEN THI LED ********
BYTE_LED_CAO DATA 2FH
BYTE_LED_THAP DATA 2EH
BIEN0 DATA 2DH
BIEN1 DATA 2CH
;******** TOC DO DONG CO ********
;***********-BANH TRAI****************
BANH_PHAI_TD1 DATA 30H
BANH_PHAI_TD2 DATA 31H
BANH_PHAI_TD3 DATA 32H
BANH_PHAI_TD4 DATA 33H
BANH_PHAI_TD5 DATA 34H
BANH_PHAI_TD6 DATA 35H
BANH_PHAI_TD7 DATA 36H
BANH_PHAI_TD8 DATA 37H
;*********BANH PHAI**************
BANH_TRAI_TD1 DATA 38H
BANH_TRAI_TD2 DATA 39H
BANH_TRAI_TD3 DATA 3AH
BANH_TRAI_TD4 DATA 3BH
BANH_TRAI_TD5 DATA 3CH
BANH_TRAI_TD6 DATA 3DH
BANH_TRAI_TD7 DATA 3EH
BANH_TRAI_TD8 DATA 3FH
;****** DEM SO VACH NGANG********
DEM_VACH DATA 40H
TONG_CAM_BIEN DATA 41H
;****** LED ***********************
LED DATA 42H
;****** ENCODER *********************
ENCODER_THAP DATA 43H
ENCODER_CAO DATA 44H
;****** VUNG DO DUONG *************
VUNG DATA 45H
;****** DELAY TIME OUT ************
BYTE_DELAY_THAP DATA 46H
BYTE_DELAY_CAO DATA 47H
;****** LUU GIA TRI ENCODER *******
NHO_ENCODER_THAP DATA 48H
NHO_ENCODER_CAO DATA 49H
;****** LOC NHIEU *****************
BYTE_LOC DATA 4AH
;****** NHO ACC *******************
NHO_A0 DATA 50H
NHO_A1 DATA 51H
NHO_A2 DATA 52H
;********* BIT NHO CAM BIEN *************
BIT_NHO_PHAI BIT 30H
BIT_NHO_TRAI BIT 31H
;******* BIT_QUA_VACH_NGANG *************
BIT_QUA_VACH_NGANG BIT 32H
;******* BIT CHO PHEP DEM VACH **********
BIT_TIM_VACH BIT 33H
;******* BIT CHO PHEP ENCODER HOAT DONG *
ACT_ENCODER BIT EX0
;******** NHO C *******************
NHO_C2 BIT 34H
NHO_C1 BIT 35H
NHO_C0 BIT 36H
;******** BIT NUT NHAN CTHT*******
NUT_TRAI1 BIT 37H
NUT_TRAI2 BIT 38H
NUT_TRAI4 BIT 39H
NUT_TRAI5 BIT 3AH
NUT_3 BIT 3BH
NUT_4 BIT 3CH
NUT_5 BIT 3DH
NUT_6 BIT 3EH
NUT_7 BIT 3FH
NUT_8 BIT 40H
NUT_PHAI1 BIT 41H
NUT_PHAI2 BIT 42H
NUT_PHAI3 BIT 43H
NUT_PHAI4 BIT 44H
NUT_PHAI5 BIT 45H
NUT_TRAI3 BIT 46H
;--------
BIT_ERROR_CAN_BT BIT 50H
BIT_GHI_DIEM BIT 51H
BIT_CHUYEN_DONG BIT 52H
;******** BIT NUT NHAN CTHT (TT)*******
CTHT_TRAI BIT P3.7
CTHT_PHAI BIT P3.6
;******** CAM BIEN *********
CAMBIEN1 BIT P0.7
CAMBIEN2 BIT P0.6
CAMBIEN3 BIT P0.5
CAMBIEN4 BIT P0.4
CAMBIEN5 BIT P0.3
CAMBIEN6 BIT P0.2
CAMBIEN7 BIT P0.1
CAMBIEN8 BIT P0.0
;
BIT_MODE BIT P2.7
;--------DONG CO
MOTOR_GHI_DIEM DATA CCAP3H
MOTOR_GHI_DIEM_DAO BIT P1.2
MOTOR_NHA_CANG DATA CCAP4H
MOTOR_NHA_CANG_DAO BIT P1.3
BANH_TRAI DATA CCAP1H
BANH_TRAI_DAO BIT P1.0
BANH_PHAI DATA CCAP2H
BANH_PHAI_DAO BIT P1.1
;========================== MAIN =========================
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP NGAT_EX0
ORG 000BH
LJMP NGAT_T0_DELAY
ORG 001BH
LJMP NGATT1
;-------------------
ORG 0030H
MAIN:
MOV CMOD,#0
SETB CR
MOV CCAPM1,#01000010B
MOV CCAPM2,#01000010B
MOV CCAPM3,#01000010B
MOV CCAPM4,#01000010B
MOV SCON,#12H
MOV TMOD,#11H
SETB PX0
SETB PT0
SETB IT0
SETB IT1
MOV IE,#10001010B ;INT T1 ; INT TO:TIME OUT ; DOC ENCODER : ACT_ENCODER=EX0
SETB TF0
SETB TF1
;==================== CHUONG TRINH CHINH ==================
START:
CALL RESETROBOT
MOV BYTE_LED_CAO,#0
MOV BYTE_LED_THAP,#123
;---
CHON_CHUONG_TRINH:
JB NUT_TRAI1,KT_CHUONG_TRINH_TRAI2
JMP CHUONG_TRINH_TRAI1
KT_CHUONG_TRINH_TRAI2:
JB NUT_TRAI2,KT_CHUONG_TRINH_TRAI3
JMP CHUONG_TRINH_TRAI2
KT_CHUONG_TRINH_TRAI3:
JB NUT_TRAI3,KT_CHUONG_TRINH_TRAI4
JMP CHUONG_TRINH_TRAI3
KT_CHUONG_TRINH_TRAI4:
JB NUT_TRAI4,KT_CHUONG_TRINH_TRAI5
JMP CHUONG_TRINH_TRAI4
KT_CHUONG_TRINH_TRAI5:
JB NUT_TRAI5,KT_CHUONG_TRINH_PHAI1
JMP CHUONG_TRINH_TRAI5
KT_CHUONG_TRINH_PHAI1:
JB NUT_PHAI1,KT_CHUONG_TRINH_PHAI2
JMP CHUONG_TRINH_PHAI1
KT_CHUONG_TRINH_PHAI2:
JB NUT_PHAI2,KT_CHUONG_TRINH_PHAI3
JMP CHUONG_TRINH_PHAI2
KT_CHUONG_TRINH_PHAI3:
JB NUT_PHAI3,KT_CHUONG_TRINH_PHAI4
JMP CHUONG_TRINH_PHAI3
KT_CHUONG_TRINH_PHAI4:
JB NUT_PHAI4,KT_CHUONG_TRINH_PHAI5
JMP CHUONG_TRINH_PHAI4
KT_CHUONG_TRINH_PHAI5:
JB NUT_PHAI5,CHON_CHUONG_TRINH
JMP CHUONG_TRINH_PHAI5
;=========CHUONH TRINH 1=========
CHUONG_TRINH_TRAI1:
;NHA CANG
MOV BYTE_LED_THAP,#1
MOV MOTOR_NHA_CANG,#0
SETB MOTOR_NHA_CANG_DAO
CALL DELAY50MS
MOV MOTOR_NHA_CANG,#70
JNB NUT_PHAI1,$
MOV MOTOR_NHA_CANG,#0
JMP START
;=========CHUONH TRINH 2=========
CHUONG_TRINH_TRAI2:
;GHI DIEM
MOV BYTE_LED_THAP,#2
MOV MOTOR_GHI_DIEM,#0
SETB MOTOR_GHI_DIEM_DAO
CALL DELAY50MS
MOV MOTOR_GHI_DIEM,#50
JNB NUT_PHAI2,$
MOV MOTOR_NHA_CANG,#0
JMP START
;=========CHUONH TRINH 3=========
CHUONG_TRINH_TRAI3:
;DAO GHI DIEM
MOV BYTE_LED_THAP,#3
MOV MOTOR_GHI_DIEM,#0
CLR MOTOR_GHI_DIEM_DAO
CALL DELAY50MS
MOV MOTOR_GHI_DIEM,#50
JNB NUT_PHAI3,$
MOV MOTOR_NHA_CANG,#0
JMP START
;=========CHUONH TRINH 4=========
CHUONG_TRINH_TRAI4:
;---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,#1
CALL VAN_TOC_MAX
CALL CHAY_THANG
;GHI DIEM
MOV MOTOR_GHI_DIEM,#255
MOV DEM_VACH,#3
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 MOTOR_GHI_DIEM,#0
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 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_PHAI
;---CHAY THANG 4 VACH
CALL VAN_TOC_TB
CALL CHAY_THANG_TIM_VACH_NGANG
MOV DEM_VACH,#2
CALL VAN_TOC_MAX
CALL CHAY_THANG
CALL CHAY_THANG_HAM_TOC
CALL CUA_PHAI
;---CHAY THANG LUI VACH
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
CLR BANH_TRAI_DAO
CLR BANH_PHAI_DAO
CALL DELAY50MS
MOV BANH_TRAI,#0
MOV BANH_PHAI,#180
CALL DELAY1S
;--CUA TRAI
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
CLR BANH_TRAI_DAO
SETB BANH_PHAI_DAO
CALL DELAY50MS
MOV BANH_TRAI,#100
MOV BANH_PHAI,#200
CALL DELAY1S
MOV MOTOR_NHA_CANG,#255
CALL DUNG
;---CHAY LUI
CALL DUNG_MOTOR
JB NUT_TRAI1,$
MOV BYTE_LED_THAP,#88
CALL DELAY1S
JMP START
;========= CHUONH TRINH 5 =========
CHUONG_TRINH_TRAI5:
;---CHIA CAT VUNG BT
CALL XUAT_PHAT_TRAI
CALL CHAY_THANG_MU_HAM_TOC
;--CUA PHAI
CALL CUA_PHAI_MU
;---CHAY THANG 7 VACH
CALL VAN_TOC_CHAM
CALL CHAY_THANG_TIM_VACH_NGANG
MOV DEM_VACH,#2
CALL VAN_TOC_MAX
CALL CHAY_THANG
;GHI DIEM
MOV MOTOR_GHI_DIEM,#255
MOV DEM_VACH,#2
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_CHAM
CALL CHAY_THANG_TIM_VACH_NGANG
MOV MOTOR_GHI_DIEM,#0
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 12 VACH
CALL VAN_TOC_CHAM
CALL CHAY_THANG_TIM_VACH_NGANG
MOV DEM_VACH,#9
CALL VAN_TOC_MAX
CALL CHAY_THANG
CALL CHAY_THANG_HAM_TOC
CALL CHAY_THANG_HAM_TOC
CALL CUA_PHAI
;---CHAY 2 VACH
MOV BANH_TRAI,#20
MOV BANH_PHAI,#100
CALL CHO_QUA_VACH_NGANG
;--NHA_CANG
MOV MOTOR_NHA_CANG,#255
CALL DELAY2S
CALL DUNG_MOTOR
JB NUT_TRAI1,$
MOV BYTE_LED_THAP,#88
CALL DELAY1S
JMP START
;=========CHUONH TRINH 1=========
CHUONG_TRINH_PHAI1:
;--- SIAP
CALL XUAT_PHAT_TRAI
CALL CHAY_THANG_MU_HAM_TOC
CALL CUA_PHAI_MU
;---CHAY THANG 1 VACH
CALL VAN_TOC_CHAM
CALL CHAY_THANG_TIM_VACH_NGANG
CALL CUA_PHAI
;--NHA QUA ,LUI
MOV MOTOR_GHI_DIEM,#255
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
CLR BANH_TRAI_DAO
CLR BANH_PHAI_DAO
CALL DELAY50MS
MOV BANH_PHAI,#130
MOV BANH_TRAI,#100
CALL DELAY1S
MOV BANH_PHAI,#0
MOV BANH_TRAI,#0
MOV MOTOR_GHI_DIEM,#0
MOV BANH_PHAI,#45
MOV BANH_TRAI,#35
CALL DELAY5S
MOV BANH_PHAI,#0
MOV BANH_TRAI,#0
JB NUT_TRAI1,$
MOV BYTE_LED_THAP,#88
CALL DELAY1S
JMP START
;=========CHUONH TRINH 2=========
CHUONG_TRINH_PHAI2:
;--BAO VE O 2 DIEM
CALL XUAT_PHAT_TRAI
CALL CHAY_THANG_MU_HAM_TOC
;--CUA PHAI
CALL CUA_PHAI_MU
;---CHAY THANG 10 VACH
CALL VAN_TOC_TB
CALL CHAY_THANG_TIM_VACH_NGANG
MOV DEM_VACH,#1
CALL VAN_TOC_MAX
CALL CHAY_THANG
;GHI DIEM
MOV MOTOR_GHI_DIEM,#255
MOV DEM_VACH,#4
CALL VAN_TOC_MAX
CALL CHAY_THANG
;
MOV MOTOR_GHI_DIEM,#0
MOV DEM_VACH,#4
CALL VAN_TOC_MAX
CALL CHAY_THANG
CALL HAM_TOC
CALL CUA_TRAI_ENCODER
CALL HAM_TOC_MAX
JB NUT_TRAI1,$
MOV BYTE_LED_THAP,#88
CALL DELAY1S
JMP START
;=========CHUONH TRINH 3=========
CHUONG_TRINH_PHAI3:
;---CHONG DOI PHUONG RETRY
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,#1
CALL VAN_TOC_MAX
CALL CHAY_THANG
;GHI DIEM
MOV MOTOR_GHI_DIEM,#255
MOV DEM_VACH,#3
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 MOTOR_GHI_DIEM,#0
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 8 VACH
CALL VAN_TOC_TB
CALL CHAY_THANG_TIM_VACH_NGANG
MOV DEM_VACH,#6
CALL VAN_TOC_MAX
CALL CHAY_THANG
;--BO TRAI
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
CLR BANH_TRAI_DAO
SETB BANH_PHAI_DAO
CALL DELAY50MS
MOV BANH_TRAI,#50
MOV BANH_PHAI,#250
MOV ENCODER_CAO,#HIGH(ENCODER_1_VACH*70/100)
MOV ENCODER_THAP,#LOW(ENCODER_1_VACH*70/100)
SETB ACT_ENCODER
JB ACT_ENCODER,$
MOV MOTOR_NHA_CANG,#255
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
SETB BANH_TRAI_DAO
SETB BANH_PHAI_DAO
CALL DELAY50MS
MOV BANH_TRAI,#50
MOV BANH_PHAI,#255
MOV ENCODER_CAO,#HIGH(ENCODER_1_VACH*4)
MOV ENCODER_THAP,#LOW(ENCODER_1_VACH*4)
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
;=========CHUONH TRINH 4=========
CHUONG_TRINH_PHAI4:
;---GHI 2 DIEM DOI PHUONG CHONG DOI PHUONG RETRY
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 6 VACH
CALL VAN_TOC_TB
CALL CHAY_THANG_TIM_VACH_NGANG
MOV DEM_VACH,#3
CALL VAN_TOC_MAX
CALL CHAY_THANG
CALL CHAY_THANG_HAM_TOC
CALL CHAY_THANG_HAM_TOC
CALL CUA_TRAI
;---CHAY THANG 3 VACH
CALL VAN_TOC_MAX
CALL CHAY_THANG_TIM_VACH_NGANG
MOV DEM_VACH,#1
CALL VAN_TOC_MAX
CALL CHAY_THANG
CALL HAM_TOC_MAX
CALL VAN_TOC_RAT_CHAM
CALL CHAY_THANG_TIM_VACH_NGANG
CALL HAM_TOC_MAX
;GHI DIEM
MOV MOTOR_GHI_DIEM,#255
CALL DELAY1S
MOV MOTOR_GHI_DIEM,#0
;BO PHAI 2 VACH
MOV BANH_TRAI,#255
MOV BANH_PHAI,#70
MOV ENCODER_THAP,#LOW(ENCODER_1_VACH*20/10)
MOV ENCODER_CAO,#HIGH(ENCODER_1_VACH*20/10)
SETB ACT_ENCODER
JB ACT_ENCODER,$
CALL HAM_TOC
;BO TRAI 4 VACH
MOV MOTOR_NHA_CANG,#255
MOV BANH_TRAI,#50
MOV BANH_PHAI,#255
MOV ENCODER_THAP,#LOW(ENCODER_1_VACH*5)
MOV ENCODER_CAO,#HIGH(ENCODER_1_VACH*5)
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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -