📄 retry.asm
字号:
SETB MOTOR_NHA_CANG_DAO
SETB MOTOR_GHI_DIEM_DAO
CALL DELAY50MS
CLR C
RET
;====================== DUNG ROBOT =======================
DUNG:
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 DELAY10MS
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
SETB BANH_TRAI_DAO
SETB BANH_PHAI_DAO
CALL DELAY50MS
RET
;====================== DUNG ROBOT =======================
DUNG_MOTOR:
MOV BANH_TRAI,#0
MOV BANH_PHAI,#0
MOV MOTOR_GHI_DIEM,#0
SETB BANH_TRAI_DAO
SETB BANH_PHAI_DAO
SETB MOTOR_GHI_DIEM_DAO
MOV R2,#2
LOOP_NHA_CANG:
MOV MOTOR_NHA_CANG,#0
CLR MOTOR_NHA_CANG_DAO
CALL DELAY200MS
MOV MOTOR_NHA_CANG,#255
CALL DELAY100MS
MOV MOTOR_NHA_CANG,#0
SETB MOTOR_NHA_CANG_DAO
CALL DELAY200MS
MOV MOTOR_NHA_CANG,#255
CALL DELAY100MS
DJNZ R2,LOOP_NHA_CANG
MOV MOTOR_NHA_CANG,#0
SETB MOTOR_NHA_CANG_DAO
RET
;================== HAM VAN TOC DO DUONG ==================
VAN_TOC_MAX:
MOV BANH_PHAI_TD1,#255
MOV BANH_PHAI_TD2,#180
MOV BANH_PHAI_TD3,#30
MOV BANH_PHAI_TD4,#0
MOV BANH_PHAI_TD5,#0
MOV BANH_PHAI_TD6,#0
MOV BANH_PHAI_TD7,#0
MOV BANH_PHAI_TD8,#0
MOV BANH_TRAI_TD1,#255
MOV BANH_TRAI_TD2,#180
MOV BANH_TRAI_TD3,#30
MOV BANH_TRAI_TD4,#0
MOV BANH_TRAI_TD5,#0
MOV BANH_TRAI_TD6,#0
MOV BANH_TRAI_TD7,#0
MOV BANH_TRAI_TD8,#0
MOV BANH_TRAI,#50
MOV BANH_PHAI,#50
RET
;---------HAM VAN TOC TRUNG BINH
VAN_TOC_TB:
MOV BANH_PHAI_TD1,#180
MOV BANH_PHAI_TD2,#0
MOV BANH_PHAI_TD3,#0
MOV BANH_PHAI_TD4,#0
MOV BANH_PHAI_TD5,#0
MOV BANH_PHAI_TD6,#0
MOV BANH_PHAI_TD7,#0
MOV BANH_PHAI_TD8,#0
MOV BANH_TRAI_TD1,#180
MOV BANH_TRAI_TD2,#0
MOV BANH_TRAI_TD3,#0
MOV BANH_TRAI_TD4,#0
MOV BANH_TRAI_TD5,#0
MOV BANH_TRAI_TD6,#0
MOV BANH_TRAI_TD7,#0
MOV BANH_TRAI_TD8,#0
MOV BANH_TRAI,#50
MOV BANH_PHAI,#50
RET
;---------HAM VAN TOC CHAM
VAN_TOC_CHAM:
MOV BANH_PHAI_TD1,#80
MOV BANH_PHAI_TD2,#0
MOV BANH_PHAI_TD3,#0
MOV BANH_PHAI_TD4,#0
MOV BANH_PHAI_TD5,#0
MOV BANH_PHAI_TD6,#0
MOV BANH_PHAI_TD7,#0
MOV BANH_PHAI_TD8,#0
MOV BANH_TRAI_TD1,#80
MOV BANH_TRAI_TD2,#0
MOV BANH_TRAI_TD3,#0
MOV BANH_TRAI_TD4,#0
MOV BANH_TRAI_TD5,#0
MOV BANH_TRAI_TD6,#0
MOV BANH_TRAI_TD7,#0
MOV BANH_TRAI_TD8,#0
MOV BANH_TRAI,#50
MOV BANH_PHAI,#50
RET
;---------HAM VAN TOC RAT CHAM
VAN_TOC_RAT_CHAM:
MOV BANH_PHAI_TD1,#65
MOV BANH_PHAI_TD2,#0
MOV BANH_PHAI_TD3,#0
MOV BANH_PHAI_TD4,#0
MOV BANH_PHAI_TD5,#0
MOV BANH_PHAI_TD6,#0
MOV BANH_PHAI_TD7,#0
MOV BANH_PHAI_TD8,#0
MOV BANH_TRAI_TD1,#65
MOV BANH_TRAI_TD2,#0
MOV BANH_TRAI_TD3,#0
MOV BANH_TRAI_TD4,#0
MOV BANH_TRAI_TD5,#0
MOV BANH_TRAI_TD6,#0
MOV BANH_TRAI_TD7,#0
MOV BANH_TRAI_TD8,#0
MOV BANH_TRAI,#50
MOV BANH_PHAI,#50
RET
;----------
VAN_TOC_TEST:
MOV BANH_PHAI_TD1,#255
MOV BANH_PHAI_TD2,#230
MOV BANH_PHAI_TD3,#200
MOV BANH_PHAI_TD4,#70
MOV BANH_PHAI_TD5,#50
MOV BANH_PHAI_TD6,#30
MOV BANH_PHAI_TD7,#0
MOV BANH_PHAI_TD8,#0
MOV BANH_TRAI_TD1,#255
MOV BANH_TRAI_TD2,#230
MOV BANH_TRAI_TD3,#200
MOV BANH_TRAI_TD4,#70
MOV BANH_TRAI_TD5,#50
MOV BANH_TRAI_TD6,#30
MOV BANH_TRAI_TD7,#0
MOV BANH_TRAI_TD8,#0
RET
;================== NHAP CTHT,NUT NHAN========
NHAP_CTHT:
MOV P2,#11100011B ;CS0
MOV C,P2.0
MOV NUT_TRAI3,C ;CHUA SU DUNG
MOV C,P2.1
MOV NUT_8,C
MOV P2,#11100111B ;CS1
MOV C,P2.0
MOV NUT_TRAI2,C
MOV C,P2.1
MOV NUT_7,C
MOV P2,#11101011B ;CS2
MOV C,P2.0
MOV NUT_TRAI1,C
MOV C,P2.1
MOV NUT_6,C
MOV P2,#11101111B ;CS3
MOV C,P2.0
MOV NUT_PHAI5,C
MOV C,P2.1
MOV NUT_5,C
MOV P2,#11110011B ;CS4
MOV C,P2.0
MOV NUT_PHAI4,C
MOV C,P2.1
MOV NUT_4,C
MOV P2,#11110111B ;CS5
MOV C,P2.0
MOV NUT_PHAI3,C
MOV C,P2.1
MOV NUT_3,C
MOV P2,#11111011B ;CS6
MOV C,P2.0
MOV NUT_PHAI2,C
MOV C,P2.1
MOV NUT_TRAI5,C
MOV P2,#11111111B ;CS7
MOV C,P2.0
MOV NUT_PHAI1,C
MOV C,P2.1
MOV NUT_TRAI4,C
RET
;================== DAO BIT ==================
DAO_BIT:
MOV BIEN0,R7
MOV C,BIEN0.0
MOV BIEN1.7,C
MOV C,BIEN0.1
MOV BIEN1.6,C
MOV C,BIEN0.2
MOV BIEN1.5,C
MOV C,BIEN0.3
MOV BIEN1.4,C
MOV C,BIEN0.4
MOV BIEN1.3,C
MOV C,BIEN0.5
MOV BIEN1.2,C
MOV C,BIEN0.6
MOV BIEN1.1,C
MOV C,BIEN0.7
MOV BIEN1.0,C
MOV R7,BIEN1
MOV BIEN0,R6
MOV C,BIEN0.0
MOV BIEN1.7,C
MOV C,BIEN0.1
MOV BIEN1.6,C
MOV C,BIEN0.2
MOV BIEN1.5,C
MOV C,BIEN0.3
MOV BIEN1.4,C
MOV C,BIEN0.4
MOV BIEN1.3,C
MOV C,BIEN0.5
MOV BIEN1.2,C
MOV C,BIEN0.6
MOV BIEN1.1,C
MOV C,BIEN0.7
MOV BIEN1.0,C
MOV R6,BIEN1
RET
;================== DOI BCD ==================
DOIBCD:
PUSH ACC
PUSH B
MOV B,#10
LCALL DIV168
PUSH B
MOV B,#10
LCALL DIV168
PUSH B
MOV B,#10
MOV A,R6
DIV AB
PUSH B
SWAP A
POP B
ORL A,B
MOV R7,A
POP ACC
SWAP A
POP B
ORL A,B
MOV R6,A
POP B
POP ACC
RET
DIV168:
PUSH 02H
PUSH ACC
MOV R5,#16
CLR A
DIVIDE:
XCH A,R6
CLR C
RLC A
XCH A,R6
XCH A,R7
RLC A
XCH A,R7
RLC A
CJNE A,B,NOTEQ
SJMP AEQB
NOTEQ:
JC BELOW
AEQB:
SUBB A,B
XCH A,R6
ORL A,#1
XCH A,R6
BELOW:
DJNZ R5,DIVIDE
XCH A,B
POP ACC
POP 02H
RET
;=================== TIME 0 DELAY TIME OUT ==================
NGAT_T0_DELAY:
MOV NHO_C0,C
MOV NHO_A0,A
CLR TR0
MOV TH0,#HIGH(-10000)
MOV TL0,#LOW(-10000)
SETB TR0
DJNZ BYTE_DELAY_THAP,THOAT_T0
DJNZ BYTE_DELAY_CAO,THOAT_T0
CLR TR0
THOAT_T0:
MOV C,NHO_C0
MOV A,NHO_A0
RETI
;========= NGAT TIMER 1 : HIEN THI LED v LAM VIEC ========
NGATT1:
MOV NHO_C1,C
MOV NHO_A1,A
CLR TR1
MOV TH1,#HIGH(-5000)
MOV TL1,#LOW(-5000)
SETB TR1
CALL_NHAP_CTHT:
CALL NHAP_CTHT ;NHAP CTHT
;******** HIEN THI LED ********
HIEN_LED:
MOV R6,BYTE_LED_THAP
MOV R7,BYTE_LED_CAO
LCALL DOIBCD
LCALL DAO_BIT
INC LED
MOV A,LED
CJNE A,#1,HIEN_LED2
MOV A,R7
ANL A,#0FH
SWAP A
ORL A,#00001000B
MOV SBUF,A
JMP THOAT_T1
HIEN_LED2:
MOV A,LED
CJNE A,#2,HIEN_LED3
MOV A,R7
ANL A,#0F0H
ORL A,#0000100B
MOV SBUF,A
JMP THOAT_T1
HIEN_LED3:
MOV A,LED
CJNE A,#3,HIEN_LED4
MOV A,R6
ANL A,#0FH
SWAP A
ORL A,#00000010B
MOV SBUF,A
JMP THOAT_T1
HIEN_LED4:
MOV LED,#0
MOV A,R6
ANL A,#0F0H
ORL A,#00000001B
MOV SBUF,A
;******** THOAT T1 ********
THOAT_T1:
MOV A,NHO_A1
MOV C,NHO_C1
RETI
;======================= NGAT_EX0 ========================
NGAT_EX0:
MOV NHO_C2,C
MOV NHO_A2,A
MOV A,ENCODER_THAP
CJNE A,#0,DEC_ENCODER_THAP
MOV A,ENCODER_CAO
CJNE A,#0,DEC_ENCODER_CAO
CLR ACT_ENCODER ;ENCODER HOAT DONG = FALSE,BAO TRAN ENCODER
SJMP THOAT_EX0
DEC_ENCODER_THAP:
DEC ENCODER_THAP
SJMP THOAT_EX0
DEC_ENCODER_CAO:
DEC ENCODER_CAO
MOV ENCODER_THAP,#255
THOAT_EX0:
MOV A,NHO_A2
MOV C,NHO_C2
RETI
;================== CAC HAM DELAY ==================
DELAY3MS:
MOV R0,#6
LOOPDELAY3:
MOV R1,#250
DJNZ R1,$
DJNZ R0,LOOPDELAY3
RET
;---------
DELAY5MS:
MOV R0,#10
LOOPDELAY5:
MOV R1,#250
DJNZ R1,$
DJNZ R0,LOOPDELAY5
RET
;---------
DELAY10MS:
MOV R0,#20
LOOPDELAY10:
MOV R1,#250
DJNZ R1,$
DJNZ R0,LOOPDELAY10
RET
;---------
DELAY20MS:
MOV BYTE_DELAY_THAP,#LOW(2)
MOV BYTE_DELAY_CAO,#HIGH(2)
INC BYTE_DELAY_CAO
SETB TR0
JB TR0,$
RET
;---------
DELAY50MS:
MOV BYTE_DELAY_THAP,#LOW(5)
MOV BYTE_DELAY_CAO,#HIGH(5)
INC BYTE_DELAY_CAO
SETB TR0
JB TR0,$
RET
;---------
DELAY100MS:
MOV BYTE_DELAY_THAP,#LOW(10)
MOV BYTE_DELAY_CAO,#HIGH(10)
INC BYTE_DELAY_CAO
SETB TR0
JB TR0,$
RET
;---------
DELAY150MS:
MOV BYTE_DELAY_THAP,#LOW(15)
MOV BYTE_DELAY_CAO,#HIGH(15)
INC BYTE_DELAY_CAO
SETB TR0
JB TR0,$
RET
;---------
DELAY200MS:
MOV BYTE_DELAY_THAP,#LOW(20)
MOV BYTE_DELAY_CAO,#HIGH(20)
INC BYTE_DELAY_CAO
SETB TR0
JB TR0,$
RET
;---------
DELAY300MS:
MOV BYTE_DELAY_THAP,#LOW(30)
MOV BYTE_DELAY_CAO,#HIGH(30)
INC BYTE_DELAY_CAO
SETB TR0
JB TR0,$
RET
;---------
DELAY370MS:
MOV BYTE_DELAY_THAP,#LOW(37)
MOV BYTE_DELAY_CAO,#HIGH(37)
INC BYTE_DELAY_CAO
SETB TR0
JB TR0,$
RET
;---------
DELAY400MS:
MOV BYTE_DELAY_THAP,#LOW(40)
MOV BYTE_DELAY_CAO,#HIGH(40)
INC BYTE_DELAY_CAO
SETB TR0
JB TR0,$
RET
;---------
DELAY500MS:
MOV BYTE_DELAY_THAP,#LOW(50)
MOV BYTE_DELAY_CAO,#HIGH(50)
INC BYTE_DELAY_CAO
SETB TR0
JB TR0,$
RET
;---------
DELAY700MS:
MOV BYTE_DELAY_THAP,#LOW(70)
MOV BYTE_DELAY_CAO,#HIGH(70)
INC BYTE_DELAY_CAO
SETB TR0
JB TR0,$
RET
;---------
DELAY1S:
MOV BYTE_DELAY_THAP,#LOW(100)
MOV BYTE_DELAY_CAO,#HIGH(100)
INC BYTE_DELAY_CAO
SETB TR0
JB TR0,$
RET
;---------
DELAY2S:
MOV BYTE_DELAY_THAP,#LOW(200)
MOV BYTE_DELAY_CAO,#HIGH(200)
INC BYTE_DELAY_CAO
SETB TR0
JB TR0,$
RET
;---------
DELAY3S:
MOV BYTE_DELAY_THAP,#LOW(300)
MOV BYTE_DELAY_CAO,#HIGH(300)
INC BYTE_DELAY_CAO
SETB TR0
JB TR0,$
RET
;--------
DELAY5S:
MOV BYTE_DELAY_THAP,#LOW(450)
MOV BYTE_DELAY_CAO,#HIGH(450)
INC BYTE_DELAY_CAO
SETB TR0
LOOP_DELAY5S:
JNB TR0,THOAT_DELAY5S
MOV BYTE_LED_THAP,BYTE_DELAY_THAP ;<-----------
MOV BYTE_LED_CAO,BYTE_DELAY_CAO
JMP LOOP_DELAY5S
THOAT_DELAY5S:
RET
;--------
DELAY10S:
MOV BYTE_DELAY_THAP,#LOW(900)
MOV BYTE_DELAY_CAO,#HIGH(900)
INC BYTE_DELAY_CAO
SETB TR0
LOOP_DELAY10S:
JNB TR0,THOAT_DELAY10S
MOV BYTE_LED_THAP,BYTE_DELAY_THAP ;<-----------
MOV BYTE_LED_CAO,BYTE_DELAY_CAO
JMP LOOP_DELAY10S
THOAT_DELAY10S:
RET
;--------
DELAY20S:
MOV BYTE_DELAY_THAP,#LOW(1800)
MOV BYTE_DELAY_CAO,#HIGH(1800)
INC BYTE_DELAY_CAO
SETB TR0
LOOP_DELAY20S:
JNB TR0,THOAT_DELAY20S
MOV BYTE_LED_THAP,BYTE_DELAY_THAP ;<-----------
MOV BYTE_LED_CAO,BYTE_DELAY_CAO
JMP LOOP_DELAY20S
THOAT_DELAY20S:
RET
;--------
DELAY30S:
MOV BYTE_DELAY_THAP,#LOW(2700)
MOV BYTE_DELAY_CAO,#HIGH(2700)
INC BYTE_DELAY_CAO
SETB TR0
LOOP_DELAY30S:
JNB TR0,THOAT_DELAY30S
MOV BYTE_LED_THAP,BYTE_DELAY_THAP ;<-----------
MOV BYTE_LED_CAO,BYTE_DELAY_CAO
JMP LOOP_DELAY30S
THOAT_DELAY30S:
RET
;--------
DELAY1MIN:
MOV BYTE_DELAY_THAP,#LOW(5500)
MOV BYTE_DELAY_CAO,#HIGH(5500)
INC BYTE_DELAY_CAO
SETB TR0
LOOP_DELAY1MIN:
JNB TR0,THOAT_DELAY1MIN
MOV BYTE_LED_THAP,BYTE_DELAY_THAP ;<-----------
MOV BYTE_LED_CAO,BYTE_DELAY_CAO
JMP LOOP_DELAY1MIN
THOAT_DELAY1MIN:
RET
;--------
DELAY1MIN30:
MOV BYTE_DELAY_THAP,#LOW(8200)
MOV BYTE_DELAY_CAO,#HIGH(8200)
INC BYTE_DELAY_CAO
SETB TR0
LOOP_DELAY1MIN30:
JNB TR0,THOAT_DELAY1MIN30
MOV BYTE_LED_THAP,BYTE_DELAY_THAP ;<-----------
MOV BYTE_LED_CAO,BYTE_DELAY_CAO
JMP LOOP_DELAY1MIN30
THOAT_DELAY1MIN30:
RET
;--------
DELAY2MIN:
MOV BYTE_DELAY_THAP,#LOW(11000)
MOV BYTE_DELAY_CAO,#HIGH(11000)
INC BYTE_DELAY_CAO
SETB TR0
LOOP_DELAY2MIN:
JNB TR0,THOAT_DELAY2MIN
MOV BYTE_LED_THAP,BYTE_DELAY_THAP ;<-----------
MOV BYTE_LED_CAO,BYTE_DELAY_CAO
JMP LOOP_DELAY2MIN
THOAT_DELAY2MIN:
RET
;--------
DELAY2MIN30:
MOV BYTE_DELAY_THAP,#LOW(13700)
MOV BYTE_DELAY_CAO,#HIGH(13700)
INC BYTE_DELAY_CAO
SETB TR0
LOOP_DELAY2MIN30:
JNB TR0,THOAT_DELAY2MIN30
MOV BYTE_LED_THAP,BYTE_DELAY_THAP ;<-----------
MOV BYTE_LED_CAO,BYTE_DELAY_CAO
JMP LOOP_DELAY2MIN30
THOAT_DELAY2MIN30:
RET
;--------- GOOD LUCK TO YOU !
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -