机电一体化C616车床纵轴数控化改造课程设计 联系客服

发布时间 : 星期一 文章机电一体化C616车床纵轴数控化改造课程设计更新完毕开始阅读

OUT DX, MOV DX, AL 2800H MOV AL, 0A0H

OUT DX, AL STI

CALL CB

HTL

2>直线插补子程序

CB PROC

PUSH AX PUSH BX PUSH CX PUSH DX PUSHF

MOV AH, 0H

SAHF MOV AX, M MOV BX, M+2 SUB BX, AX

JGE B1

NEG BX B1: MOV AX, M+1 MOV DX, M+3 SUB DX, AX

JGE B2 NEG

DX

B2: ADD DX,

BX MOV CX, DX MOV

AX,

F

;定义8259A OCW2

;中断打开

;调用插补程序

;保护现场

;标志位清零

;取起点终点的X坐标

;取终点相对于起点横坐标的绝对值Xe

;取起点,终点的Z坐标

;取终点相对于起点的Z坐标的绝对值Ye

;计算总进给步数

;将偏差值送AX

XH: CMP AX,

00H JC B4

MOV 5, 0H

CMP M+2, M

JC B3 OR

5,

00H

B3: OR S,

00H CALL HF

SUB AX, DX CALL TIME

JME

B6

B4: MOV 5, 02H CMP M+3, M+1

JC B5 OR

S,

00H

B5: OR S,

01H CALL HF

ADD AX, BX CALL

TIME

B6: DEC CX

LOOP XH POPF POP DX POP CX POP BX POP AX

RET CB ENDP

3>三相六拍环分子程序 HF

PROC

;判断向哪个方向走

;跳向Z向

;写X电机状态字(X/Z 正/反)

;调用环分子程序,X电机走一步;计算偏差值 ;调用延时程序

;写Z电机状态字(X/Z,正/反)

;调用换分子程序,Z电机走一步 ;计算偏差值 ;调用延时子程序

;总步数减1

;出栈,恢复现场

PUSH PUSH PUSH

AX BX DX

PUSHF

MOV BL, S

AND BL, 01H

CMP BL, 0H JNZ FR MOV BL, S

AND BL, 02H CMP BL, 0H JNZ

ZPZ

XDZ:CMP C, 0H

JNZ L LEA

SI,

XT

L1: MOV C,

01H

MOV BX, XT+5 MOV DX, 2000H

MOV AL, [SI] OUT DX, AL CMP [SI], BX

JZ L2 INC SI JMP

L9

L2: LEA SI, XT

JMP

L9

ZDZ:CMP D, 0H LEA

DI,

ZT

L3: MOV D,

01H

MOV

BX, ZT+5

;压栈;保护现场 ;送电机操作字给BL ;判断正反转

;调转至反转 ;判断XZ电机

;调转至Z电机正转 ;判断是否为第一次跳动

;送通电代码首地址给SI

;通过8255A给电机送通电代码

;判断通电代码是否用完

;指针自增1

;判断是否为第一次转动 ;送通电代码首地址给DI

MOV DX, 2000H MOV AL, [DI] OUT DX, AL CMP [DI], BX

JZ L4 INC DI JMP

L9

L4: LEA DZ, ZT

JMP

L9

FR: AND BL,

02H CMP BL, 0H

JNE

ZDE

XDF:CMP C, 0H JNE L5 LEA

SI,

XT+5

L5: MOV C,

01H

MOV BX, XT

MOV DX, 2000H MOV AL, [SI] OUT DX, AL CMP [SI], BX

JZ L6 DEC SI JMP

L9

L6: LEA SI, XT+5

JMP

L9

ZDF:CMP D, 0H JNZ L7 LEA

DI,

ZT+5

L7: MOV D,

01H

;通过8255A送通电代码给电机

;判断通电代码是否用完

;指针自增1

;判断用哪个电机

;判断是否为第一次转动

;送通电代码末地址给SI

;通过8255A给电机送通电代码

;判断通电代码是否用完

;指针自减1

;判断是否为第一次转动

;送通电代码末地址给DI