第五章 软件设计.docx
《第五章 软件设计.docx》由会员分享,可在线阅读,更多相关《第五章 软件设计.docx(5页珍藏版)》请在冰豆网上搜索。
第五章软件设计
第五章软件设计
软件设计是为了控制4个步进电动机和一个直流电动机完成预定的动作。
如果启动时一次将速度升到给定速度,由于启动频率超过极限启动频率,步进电动机要发生失步现象,因此会造成不能正常启动。
如果到终点时突然停止,由于惯性作用,步进电动机会发生过冲现象,会造成位置精度降低。
为了保证在不失步和过冲的前提下,用最快的速度移动到指定位置,步进电动机按照加、减速曲线进行。
如图
我们就采用这种简单的匀加速的形式。
MT1是手臂上升下降电动机,MT2是前进后退电动机,MT3是婉转旋转电动机,MT4是底盘旋转电动机,DT是直流电动机。
其中MT4没有加速,因为要求它的速度较慢,步数又少。
本程序的资源分配如下:
R4—计数器
R3—存储步数
R6,R7—延时控制
F0,01H,02H位—标志位
70H—延时单元控制
程序流程图和程序如下:
;\******主程序*****\ORG0000HSJMPMAINORG0020HMAIN:
MOVSP,#30HCLREAMOVDPTR,#5F00H;8155初始化MOVA,#0FHMOVX@DPTR,AACALLSTOP;各口清零MOVDPTR,#TAB3;MT1下降ACALLMT1MOVDPTR,#TAB1;MT2伸长ACALLMT2MOVA,#01H;DT抓紧ACALLDTMOVDPTR,#TAB4;MT1上升ACALLMT13MOVDPTR,#TAB1;MT3正转90度ACALLMT13MOVDPTR,#TAB3;MT4正转90度ACALLMT4MOVDPTR,#TAB3;MT1下降ACALLMT13MOVA,#02H;DT放松ACALLDTMOVDPTR,#TAB4;MT1上升ACALLMT13MOVDPTR,#TAB2;MT3反转90度ACALLMT13MOVDPTR,#TAB4;MT4反转90度ACALLMT4MOVDPTR,#TAB4;MT1上升ACALLMT13MOVDPTR,#TAB2;MT2复位ACALLMT2LCALLSTOP;各口清零,停止LJMPED;\*****MT1子程序*****\MT1:
MOVR4,#00HMOVR3,#0FH;加速步数MOV70H,#14H;延时控制SETBF0;F0置1,指向PA口SETB00H;00位置1,加速SETB01H;01位置1,延时控制单元减1ACALLBSU;调用变速子程序CPL00H;00位取反,匀速MOVR3,#0E1H;匀速步数MOV70H,#04H;延时控制ACALLBSU;调用变速子程序MOVR3,#0FFHMOV70H,#04HACALLBSUCPL01H;01位取反,减速MOVR3,#0FH;减速步数MOV70H,#05HACALLBSURET;\*****MT3子程序*****\MT13:
MOVR4,#00HMOVR3,#0FHMOV70H,#14HSETBF0SETB00HSETB01HACALLBSUCPL00HMOVR3,#0E1HMOV70H,#04HACALLBSUCPL01HMOVR3,#0FHMOV70H,#05HACALLBSURET;\*****MT2子程序*****\MT2:
MOVR4,#00HMOVR3,#0FHMOV70H,#14HCLRF0SETB00HSETB01HACALLBSUCPL00HMOVR3,#0E1HMOV70H,#04HACALLBSUCPL01HMOVR3,#0FHMOV70H,#05HACALLBSURET;\*****MT4子程序*****\MT4:
MOVR5,#12H
MOVR4,#00HLP1:
MOVA,R4MOVCA,@A+DPTRPUSHDPHPUSHDPLMOVDPTR,#5F02HMOVX@DPTR,ALCALLDELAY2POPDPLPOPDPHINCR4CJNER4,#04H,LP1MOVR4,#00HDJNZR5,LP1RET;\*****变速子程序*****\BSU:
MOVA,R4MOVCA,@A+DPTRPUSHDPHPUSHDPLPUSH70HJNBF0,T1MOVDPTR,#5F01HSJMPT2T1:
MOVDPTR,#5F02HT2:
MOVX@DPTR,ALP3:
LCALLDELAYDJNZ70H,LP3POP70HPOPDPLPOPDPHINCR4CJNER4,#04H,BSUMOVR4,#00HJNB00H,T3DEC70HSJMPT4T3:
JB01H,T4INC70HT4:
DJNZR3,BSURET;\*****8155各口清零子程序*****\STOP:
MOVDPTR,#5F01HMOVA,#00HMOVX@DPTR,AINCDPTRMOVX@DPTR,AINCDPTRMOVX@DPTR,ARET;\*****DT子程序*****\DT:
MOVDPTR,#5F03HMOVX@DPTR,ACJNEA,#01H,DT1ACALLDELAY1SJMPDT2DT1:
ACALLDELAY1ACALLDELAYDT2:
MOVA,#00HMOVX@DPTR,ARET;\*****延时40MS子程序*****\DELAY2:
MOVR6,#40HL1:
MOVR7,#0FFHL2:
DJNZR7,L2CJNER6,#20H,L3;脉宽限制MOVA,#00HMOVX@DPTR,AL3:
DJNZR6,L1RET
;\*****延时5S子程序*****\DELAY1:
MOVR1,#11H
DL4:
MOVR6,#0FFHDL5:
MOVR7,#0FFHDL6:
DJNZR7DL6DJNZR6,DL5DJNZR1,D4
RET;\*****延时2MS子程序*****\DELAY:
MOVR6,#04H;2msDL1:
MOVR7,#0FFHDL2:
DJNZR7,DL2DJNZR6,DL1RET;\*****相序表格*****\TAB1:
DB0CH,0AH,03H,05HTAB2:
DB0CH,05H,03H,0AHTAB3:
DB0C0H,0A0H,30H,50HTAB4:
DB0C0H,50H,30H,0A0HED:
END