⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 retry.asm

📁 Robot control assembly program.
💻 ASM
📖 第 1 页 / 共 4 页
字号:
;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 + -