资源描述:
《步进电动机控制程序段》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、《步进电动机控制程序段》1.《软件实现脉冲分配子程序》COMMUTATIONLDP#0BITDIRECTION,15;判别转向BCNDCCW,NTC;反转则跳转CWLACLSTATE;正转加1ADD#1SACLSTATESUB#10BCNDZZ,NEQ;STATE没超过9则跳转SPLK#0,STATE;否则修正STATE=0BZZCCWLACLSTATE;反转减1SUB#1SACLSTATESUB#0FFFFHBCNDZZ,NEQ;STATE不小于0则跳转SPLK#9,STATE;否则修正STATE=9ZZLACL#ABC;指向数据首地址ADD
2、STATE;加偏移量LDP#0E8HTBLRACTRA;修改ACTRALDP#0RETABC;10个控制字.word000FH,003FH,003CH,00FCH,00F0H.word03F0H,03C0H,03C3H,0303H,030FH2.《位置控制子程序》POSLDP#0BITDIRECTION,15;检测转向BCNDCCW,NTC;反转则跳转CW;正转加一CLRCC;清进位标志LACLABSOLUTELADD#1SACLABSOLUTELLACLABSOLUTEHADDCZERO;加进位SACLABSOLUTEHBCNDALARM,C
3、;有进位则越界BRELCCW;反转减一SETCC;清借位LACLABSOLUTELSUB#1SACLABSOLUTELLACLABSOLUTEHSUBBZERO;减借位SACLABSOLUTEHBCNDALARM,NC;有借位则越界RELLACLRELATIVE;步数减一SUB#1SACLRELATIVEBCNDQUIT,NEQ;步数不等于0,退出BSTOP;步数等于0,停机ALARMLDP#0E8HLACLT1CONAND#0FFBFH;清TENABLE位SACLT1CON;停机LDP#0CALLBAOJING;调报警子程序STOPLDP#0
4、E8HLACLT1CONAND#0FFBFH;清TENABLE位SACLT1CON;停机QUITLDP#0RET3.《加减速子程序》SPEEDLDP#0BITDIRECTION,15;检测转向BCNDCCW,NTC;反转则跳转CW;正转加一CLRCC;清进位标志LACLABSOLUTELADD#1SACLABSOLUTELLACLABSOLUTEHADDCZERO;加进位SACLABSOLUTEHBCNDALARM,C;有进位则越界BUPCCW;反转减一SETCC;清借位LACLABSOLUTELSUB#1SACLABSOLUTELLACLAB
5、SOLUTEHSUBBZERO;减借位SACLABSOLUTEHBCNDUP,C;无借位则跳转ALARMLDP#0E8HLACLT1CONAND#0FFBFH;清TENABLE位SACLT1CON;停机LDP#0ALARM1CALLBAOJING;调报警子程序BALARM1UPBITABC,15BCNDCONSTANT,NTC;不是加速则跳转LACLSPEEDUPN;加速总步数减1SUB#1SACLSPEEDUPNBCNDUP1,NEQ;加速总步数没走完则跳转LACCABC,1;修改标志,指向恒速SACLABCBQUITUP1LACLSTEP;
6、级步数减1SUB#1SACLSTEPBCNDQUIT,NEQ;级步数没走完则退出LACLSPEEDN;速度级数加1ADD#1SACLSPEEDNLTSPEEDNMPY#K;计算级步数PACSACLSTEPLDP#0E8HLACLT1PRSUB#10;周期值减10SACLT1PRFSR;除2SACLCMPR1;送比较器BQUITCONSTANTBITABC,14BCNDDOWN,NTC;不是恒速则跳转LACLSPEEDCN;恒速总步数减1SUB#1SACLSPEEDCNBCNDQUIT,NEQ;恒速总步数没走完则退出LACCABC,1;修改标志,
7、指向减速SACLABCBDOWN2DOWNLACLSPEEDWN;减速总步数减1SUB#1SACLSPEEDWNBCNDDOWN1,NEQ;减速总步数没走完跳转LDP#0E8HLACLT1CON;总步数走完停机AND#0FFBFH;清TENABLE位SACLT1CON;停机BQUITDOWN1LACLSTEP;级步数减1SUB#1SACLSTEPBCNDQUIT,NEQ;级步数没走完退出DOWN2LACLSPEEDN;速度级数减1SUB#1SACLSPEEDNLTSPEEDN;计算级步数MPY#KPACSACLSTEPLDP#0E8HLACLT
8、1PRADD#10;周期值加10SACLT1PRFSR;除2SACLCMPR1;送比较器QUIT;退出LDP#0RET