8086改造机床进给系统 联系客服

发布时间 : 星期四 文章8086改造机床进给系统更新完毕开始阅读e404855ce518964bcf847cfd

MOV SI, 60H MOV [SI], BX

MOV [SI+2], AX

MOV AX, DATA MOV DS, AX

MOV DX, 2003H

MOV AL, 80H OUT DX, AL MOV DX, 2800H MOV AL, 13H OUT DX, AL MOV DX, 2801H MOV AL, 60H OUT DX, AL MOV AL, 01H

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

CALL CB

HTL

2>直线插补子程序

CB

PROC

PUSH AX PUSH BX

;中断类型码送SI

;将中断偏移量送到[SI][SI+1]中

;将中断段基址送到[SI][SI+1]中

;恢复DS

;初始化8255A

;定义8259A ICW1

;定义8259A ICW2

;定义8259A ICW4

;定义8259A OCW1

;定义8259A OCW2

;中断打开

;调用插补程序

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

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

;标志位清零

;取起点终点的X坐标

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

;取起点,终点的Z坐标

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

;计算总进给步数

;将偏差值送AX ;判断向哪个方向走

;跳向Z向

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

;调用环分子程序,X电机走一步

;计算偏差值

;调用延时程序

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

CMP M+3,

B5

M+1

JC OR B5: OR

S, S,

00H 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

PUSH AX PUSH BX PUSH

DX

PUSHF

MOV BL, S AND BL, 01H

CMP BL, 0H

JNZ

FR

MOV BL, S

AND BL, 02H CMP BL, 0H

JNZ

ZPZ

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

;调用延时子程序

;总步数减1

;出栈,恢复现场

;压栈;保护现场

;送电机操作字给BL ;判断正反转

;调转至反转

;判断XZ电机

;调转至Z电机正转

XDZ:CMP C, JNZ LEA

L SI,

0H ;判断是否为第一次跳动

XT 01H

;送通电代码首地址给SI

L1: MOV C, MOV BX, MOV DX, XT+5 2000H

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

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 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

;判断通电代码是否用完

;指针自增1

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

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

;判断通电代码是否用完

;指针自增1

;判断用哪个电机