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

📄 rsr_hbs.asm

📁 介绍德国HBS的自动螺柱焊接机
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;==========================================================================
                   USER_F1             BIT           PSW.1H
                   GUN_TOUCH           BIT           P3.2                ;焊枪接触
                   HAND_SWITCH         EQU           P3.3        ;焊枪启动焊接
                   TOUCH               EQU           P3.4
                   READY               EQU           P3.5            ;充电完成
                   
                   CHARGE              EQU           P1.5
                   DIS_CHARGE          EQU           P1.3
                   ERR_LED             EQU           P1.2
                   GRN_LED             EQU           P1.1
                   RLY_DIS_CHARGE      EQU           P1.0          
;==========================================================================
                   ORG            000H
MAIN:              NOP
                   NOP
                   NOP
                   NOP
                   NOP
                   NOP
                   NOP
                   NOP
                   NOP
                   NOP
                   NOP
                   NOP
                   NOP
                   MOV   	P1,#0FFH      ;禁止所有信号输出
                   MOV   	P3,#0FFH
                   CLR   	ERR_LED
                   MOV   	SP,#40H
                   MOV   	R6,#0FFH
                   CLR   	F0
                   CLR   	F1
                   MOV   	R2,#0FFH
                   LCALL 	DELAY_1MS
                   SETB  	ERR_LED
                   LCALL 	TEST_PRO
                   CLR   	RLY_DIS_CHARGE
MAIN_LOOP:         LCALL 	Q00A5
                   JB    	GUN_TOUCH,MAIN_LP1
                   LCALL 	Q0173
MAIN_LP1:          JNB   	P1.6,MAIN_LP2
                   JNB   	TOUCH,MAIN_LP3
                   SJMP  	MAIN_LOOP
MAIN_LP3:          JNB   	HAND_SWITCH,MAIN_LOOP
                   MOV   	R2,#32H
                   LCALL 	DELAY_1MS
                   MOV   	A,#64H
MAIN_LP4:          JB    	TOUCH,MAIN_LOOP
                   JNB   	HAND_SWITCH,MAIN_LP2
                   MOV   	R2,#64H
                   LCALL 	DELAY_1MS
                   DEC   	A
                   JNZ   	MAIN_LP4
                   SJMP  	MAIN_LOOP
MAIN_LP2:          JNB   	HAND_SWITCH,MAIN_LP5
                   SJMP  	MAIN_LOOP
MAIN_LP5:          MOV   	A,R6
                   JZ    	MAIN_LP6
                   SJMP  	MAIN_LOOP
MAIN_LP6:          JB    	TOUCH,MAIN_LOOP
                   LCALL 	Q00FE
                   LJMP  	MAIN_LOOP
;=====================================================
;测试程序
;=====================================================
TEST_PRO:          CLR   	ERR_LED
                   MOV   	R2,#0FFH
                   LCALL 	DELAY_1MS
                   CLR   	HAND_SWITCH
                   MOV   	R2,#0FFH
                   LCALL 	DELAY_1MS
                   SETB  	HAND_SWITCH
                   CLR   	GRN_LED
                   MOV   	R2,#0FFH
                   LCALL 	DELAY_1MS
                   SETB  	GRN_LED
                   MOV   	R2,#0FFH
                   LCALL 	DELAY_1MS
                   SETB  	ERR_LED
                   MOV   	R2,#0FFH
                   LCALL 	DELAY_1MS
                   CLR   	ERR_LED
                   MOV   	R2,#0FFH
                   LCALL 	DELAY_1MS
                   SETB  	ERR_LED
                   MOV   	R2,#0FFH
                   LCALL 	DELAY_1MS
                   CLR   	ERR_LED
                   MOV   	R2,#0FFH
                   LCALL 	DELAY_1MS
                   SETB  	ERR_LED
                   RET
;=====================================================
Q00A5:             MOV   	R3,#0FFH
                   MOV   	R4,#34H
                   MOV   	0AH,#0FFH
Q00AC:             JB    	GUN_TOUCH,Q00B2
                   LCALL 	Q0173
Q00B2:             CLR   	C
                   MOV   	A,R3
                   SUBB  	A,#01H
                   MOV   	R3,A
                   MOV   	A,R4
                   SUBB  	A,#00H
                   MOV   	R4,A
                   JNZ   	Q00C4
                   MOV   	A,R3
                   JNZ   	Q00C4
                   LCALL 	Q01C1
                   RET
;=====================================================
Q00C4:             DJNZ  	0AH,Q00CF
                   MOV   	0AH,#0FFH
                   MOV   	A,R6
                   JZ    	Q00CF
                   CPL   	GRN_LED
Q00CF:             JNB   	READY,Q00DD
                   SETB  	CHARGE
                   CLR   	GRN_LED
                   MOV   	R6,#00H
                   SETB  	F1
                   CLR   	F0
                   RET
;=====================================================
Q00DD:             JB    	GUN_TOUCH,Q00E3
                   LCALL 	Q0173
Q00E3:             CLR   	CHARGE
                   MOV   	R2,#01H
                   LCALL 	DELAY_1MS
                   MOV   	A,R6
                   JZ    	Q00EF
                   SJMP  	Q00AC
Q00EF:             JNB   	P1.6,Q00F8
                   JB    	TOUCH,Q00AC
                   SETB  	CHARGE
                   RET
;=====================================================
Q00F8:             JB    	HAND_SWITCH,Q00AC
                   SETB  	CHARGE
                   RET
;=====================================================
Q00FE:             CLR   	ERR_LED
                   JB    	P1.7,Q010A
                   CLR   	P1.4
                   MOV   	R2,#64H
                   LCALL 	DELAY_1MS
Q010A:             CLR   	DIS_CHARGE
                   SETB  	P1.4
                   MOV   	R2,#64H
                   LCALL 	DELAY_1MS
                   SETB  	DIS_CHARGE
                   MOV   	R2,#64H
                   LCALL 	DELAY_1MS
                   SETB  	GRN_LED
                   MOV   	R6,#0FFH
                   JB    	GUN_TOUCH,Q0138
                   JNB   	GUN_TOUCH,$
                   MOV   	R2,#0FFH
                   LCALL 	DELAY_1MS
                   MOV   	R2,#0FFH
                   LCALL 	DELAY_1MS
                   MOV   	R2,#0FFH
                   LCALL 	DELAY_1MS
                   MOV   	R2,#64H
                   LCALL 	DELAY_1MS
Q0138:             MOV   	R2,#0FFH
                   LCALL 	DELAY_1MS
                   MOV   	R2,#0FFH
                   LCALL 	DELAY_1MS
                   JB    	P1.6,Q014A
                   JNB   	HAND_SWITCH,$
                   SJMP  	Q0154
Q014A:             JNB   	TOUCH,$
                   SETB  	HAND_SWITCH
                   MOV   	R2,#0FFH
                   LCALL 	DELAY_1MS
Q0154:             JNB   	HAND_SWITCH,Q014A
                   JNB   	TOUCH,Q014A
                   JNB   	HAND_SWITCH,Q014A
                   CLR   	F1
                   JNB   	TOUCH,Q014A
                   JNB   	HAND_SWITCH,Q014A
                   SETB  	ERR_LED
                   RET
;=====================================================
DELAY_1MS:         MOV   	R1,#02H
Q016A:             MOV   	R0,#0E1H
                   DJNZ  	R0,$
                   DJNZ  	R1,Q016A
                   DJNZ  	R2,DELAY_1MS
                   RET
;=====================================================
Q0173:             MOV   	B,P1
                   SETB  	CHARGE
                   SETB  	DIS_CHARGE
                   SETB  	P1.4
                   CLR   	ERR_LED
                   MOV   	A,#0FFH
Q0180:             DEC   	A
                   JZ    	Q0195
                   JNB   	GUN_TOUCH,Q0180
                   MOV   	R2,#0AH
                   LCALL 	DELAY_1MS
                   JNB   	GUN_TOUCH,Q0195
                   ORL   	B,#0C0H
                   MOV   	P1,B
                   RET
;=====================================================
Q0195:             CLR   	ERR_LED             ;死循环
                   SETB  	GRN_LED
                   SETB  	RLY_DIS_CHARGE
                   MOV   	R2,#0FFH
                   LCALL 	DELAY_1MS
                   MOV   	R2,#0FFH
                   LCALL 	DELAY_1MS
                   MOV   	R2,#0FFH
                   LCALL 	DELAY_1MS
                   SETB  	ERR_LED
                   MOV   	R2,#0FFH
                   LCALL 	DELAY_1MS
                   CLR   	ERR_LED
                   MOV   	R2,#0FFH
                   LCALL 	DELAY_1MS
                   SETB  	ERR_LED
                   MOV   	R2,#0FFH
                   LCALL 	DELAY_1MS
                   SJMP  	Q0195
;================================================================
Q01C1:             MOV   	B,P1
                   MOV   	0CH,#02H
                   MOV   	0BH,#0FFH
Q01CA:             SETB  	RLY_DIS_CHARGE
                   SETB  	GRN_LED
                   SETB  	CHARGE

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -