您现在的位置:

逐点比较法圆弧插补汇编语言程序(MCS-8031)

根据该插补软件框图(参见http://www.busnc.com/ly/zhudian/yuanhchabu.htm),编制出逐点比较法第一象限逆圆插补汇编语言源程序(本程序指令系统采用MCS8031,仅供参考):

RP:MOV SP,#60H          

  MOV 4AH,#00H  F单元清零

  MOV 49H,#00H

  MOV 48H,#01H X电动机初始化

  MOV 47H,#02H Y电动机初始化

  MOV DPTR,#0030H

  MOV A,#03H   XY电动机上电

  MOVX @DPTR,A

  CLR C        计算终判值

  MOV A,52H    低位X、Xe相减,得a

  SUBB A,4EH

  MOV 54H,A    保存结果于终判值单元低位字节

  MOV A,51H    高位X、Xe相减,得b

  SUBB A,4DH 

  MOV 53H,A      保存结果于终判值单元高位字节

  CLR C              低位YeY相减,得c

  MOV A,4CH  

  SUBB A,50H 

  MOV 20H,C    暂存YeY低位相减产生的借位位

  ADD A,54H    计算d=a+cd为低位终判值

  MOV 54H,A    保存d于终判值单元低位字节

MOV 21H,C    暂存d=a+c产生的进位位

MOV A,4BH  

MOV C,20H    恢复YeY低位相减产生的借位位

SUBB A,4FH   高位YeY相减,得e

MOV C,21H      恢复d=a+c产生的进位位

ADDC A,53H   计算f=b+ef为高位终判值

MOV 53H,A    保存f于终判值单元高位字节

    RP2:ACALL DL0  延时子程序

MOV A,49H    取F高位字节       

JB ACC.7,RP6 高位=1,F<0,去RP6

ACALL XMM    高位=0,F>0,X反转一步

CLR C        计算新偏差F=F-2X+1

MOV A,4AH    计算g=F-X低位

SUBB A,52H

XCH A,B      g存入B寄存器

MOV A,49H    计算h=F-X高位

SUBB A,51H

XCH A,B            低位存A,高位存B。BA内容为F-X

CLR C        计算ig-X=F-2X低位

SUBB A,52H      

XCH A,B      B内容为F-2X低位,A内容为F-X高位

SUBB A,51H   A内容为F-2X高位

XCH A,B      BA内容为F-2X

ADD A,#01H   计算F-2X+1

MOV 4AH,A    4A内容为F-2X+1低位

XCH A,B      B内容为F-2X+1低位,A内容为F-2X高位

ADDC A,#00H  考虑F-2X+1的进位

MOV 49H,A    49H的内容为F-2X+1高位

CLR C        计算X=X-1

MOV A,52H        低位

SUBB A,#01H

MOV 52H,A

MOV A,51H        高位

SUBB A,#00H

MOV 51H,A

RP4:CLR C       终判值减1

   MOV A,54H

   SUBB A,#01H

   MOV 54H,A

   MOV A,53H

   SUBB A,#00H

   MOV 53H,A

   ORL A,54H

   JNZ RP2      插补没结束,转至RP2

   LJMP 0000H  

RP6:ACALL YMP   Y电动机正转

   MOV R6,#02H   此处“2”,为“F+2Y+1”的“2”

RP7:MOV A,4AH      F+2Y+1

   ADD A,50H

   MOV 4AH,A

   MOV A,49H       

   ADDC A,4FH

   MOV 49H,A

   DJNZ R6,RP7     

   MOV A,4AH       

   ADD A,#01H      

   MOV 4AH,A

   MOV A,49H

   ADDC A,#00H

   MOV A,50H

   ADD A,#01H

   MOV 50H,A

   MOV A,4FH

   ADDC A,#00H

   MOV 4FH,A

   AJMP RP4

说明:1)数据存放格式同前;

  2)各变量地址分配如下:47H-4EH,存放数据方式同直线,4FH50H-Y,51H52H-X,53H54H-终判值