《微机原理课程设计步进电机设计.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计步进电机设计.docx(38页珍藏版)》请在第一文库网上搜索。
1、AbStrac1*21课程设计任务及要求1.1设计任务1. 2设计要求2方案设I十2. 1方案一2.2 方案二2.3 方案比较3硬件分析3. 1电路设计图3.2各部件分析4软件分析.3.3.3.6.12.13.1314215调试运行.225.1方案一程序调试运行及仿真225.2方案二调试运行及仿真236心得体会25参考文献附录一方案一源程序附录二方案二源程序262730课程设计任务书学生姓名:专业班级:自动化0902指导教师:徐小强工作单位:自动化题目:步进电机设计初始条件:用汇编语言设计一个步进电机的控制,在PrOteUS仿真环境下完成,功能上实现步进电机的基本功能。要求完成的主要任务:(包
2、括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1 .通过键盘控制步进电机的启动和停止,正转和反转;2 .编制完整的程序并调试;3,撰写符合学校要求的课程设计说明书,内容包括:摘要、目录、正文、参考文献、附录(程序清单)。正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。指导教师签名:系主任(或责任教师)签名:摘要步进电机是工业生产过程控制及仪表中的主要控制元件之一。例如,在机械结构中,可以用丝杠把角度变成直线位移,也可以用它带动螺旋电位器,调节电压和电流,从而实现对执行机构的控制。在数字控
3、制系统中,由于它可以直接接受计算机输出的数字信号,而不需要进行数/模/转换,可以用起来非常方便。步进电机角位移与控制脉冲间精确同步,若将角位移的改变转变为线性位移、位置、体积、流量等物理量的变化,便可通过硬件电路和软件编程实现对它们的控制。步进电机作为执行元件的一个显著特点,就是具有快速启停能力。如果负荷不超过步进电机所提供的动态转矩值,就能使步进电机在“一刹那”间启动或停转。一般步进电机的步进速率为每秒2001000步,如果步进电机是以逐渐加速到到最高转速,然后再逐渐减速到零的方式工作,其步进速率增加2步,仍然不会失掉一步。步进电机的另一个显著特点是精确度高。在没有齿轮转动的情况下,步距角可
4、以由每步90。低到每步0.36O正因为步进电机具有快速启停、精确步进以及能直接接受数字量的特点,所以使其在定位场合中得到了广泛的应用。如在绘图机、打印机及光学仪器中,都采用步进电机来定位绘图笔、印字头或光学镜头。特别是在工业过程控制的位置控制系统中,由于步进电机精度高以及不用位移传感器即可达到精确地定位,应用越来越广泛。关键词:步进电机;特点;定位场合;广泛应用AbstractSteppermotoristheindustria1productionprocesscontro1andinstrumentationinoneofthemajorcontro1components.Forexamp
5、1e,inthemechanica1structure,canscrewintoa1ineardisp1acementofthepointofview,youcana1souseittodrivespira1potentiometertoregu1atevo1tageandcurrentinordertoachievetheimp1ementationofinstitutiona1contro1.Inthedigita1contro1system,becauseitcanacceptthecomputeroutputofdigita1signa1swithouttheneedforD/conv
6、ertercanbeusedisveryconvenient.Steppermotorangu1ardisp1acementandprecisesynchronizationbetweenthecontro1pu1se,hencethechangeinangu1ardisp1acementinto1ineardisp1acement,position,vo1ume,andotherphysica1changescanbeprogrammedbyhardwarecircuitryandSOftWaretoachievecontro1overthem.Steppermotorastheactuat
7、or,anotab1efeatureisaquickstartandstopcapabi1ity.Ifthe1oaddoesnotexceedthedynamicsteppermotorprovidesthetorqueva1ues,canmakethesteppermotorinthemoment,betweenthestartorstop.Genera1steppingmotorsteppingrateof200to1000stepspersecond,ifthesteppermotoristogradua11yacce1eratetomaximumspeed,thens1owdowngr
8、adua11ytozerowaytowork,thesteprateincreasedby1to2steps,sti11wi11not1oseastep.Steppermotorisanothernotab1efeatureisthehighaccuracy.Intheabsenceofgearsinthecase,stepang1ecanbeas1owas90perstepperstep0.36o.Becausethesteppermotorwithaquickstartandstop,step,andcandirect1yreceiveaccuratedigita1features,soi
9、toccasionsinthepositioninghasbeenwide1yused.Suchasp1otters,printersandoptica1instruments,steppermotorsareusedto1ocatethepen,theprintheadoroptica11enses.Especia11yintheindustria1processcontro1positioncontro1system,duetohighprecisionsteppermotorandpositionsensorcanbeachievedwithoutprecisepositioning,a
10、ndmorewide1y.Keywords:steppermotor;characteristics;positioningoccasions;wide1yused1课程设计任务及要求1.1 设计任务(1)通过键盘控制步进电机的启动和停止,正转和反转;(2)编制完整的程序并调试;(3)撰写符合学校要求的课程设计说明书。1.2 设计要求(1)掌握8088CPU的最小工作模式的结构及其应用各管脚的含义,地址的分配、选择。(2)熟练掌握8255A的初始化控制字的写入及更改,巧妙应用A口、B口、C的功能,是它与实验板上的其它芯片更好的配合应用。(3)熟练掌握可编程计数器/定时器8253的六种工作方式,
11、各种方式控制字的写入,各种工作方式的特点,并能够熟练的加以应用。(4)熟练掌握应用8255A与ADC0809的配合使用来进行数据采样。(5)了解步进电机的工作原理,用程序实现脉冲分配器,并对步进电机进行顺序控制。(6)更加熟悉应用汇编语言中的语句及用法,子程序的调用,模块化编写程序,和学会使用有关软件的应用编程、编译、调试、发现错误、修改错误总结经验,并且还要应用汇编语言编写实用程序,控制一个实际的对象。2方案设计2.1方案一2.1.1设计思想(1)根据步进电机的励磁顺序列写控制步进电机顺序转动的输出的数据表。(2)初始化8255A的工作方式,A为输入,B口为输出。(3)设计正转步数,每次循环
12、走八步。(4)当检测到输入信号为“0”时,程序跳转到反转。检测输入信号为“1”时继续正转。(5)检测到暂停信号时步进电机暂停旋转,检测到启动信号时启动。2.1.2流程图2.1.3程序分析(1)定义数据段,在设计主函数的过程中,首先要定义步进电机正转和反转的数据表。若要步进电机正转,则要按照A-AB-B-BC-C-CD-D-DA顺序进行通电,若要电机反转,则要按照A-AD-D-DC-C-CB-B-BA的顺序进行通电,己知通电顺序表如图2-2所示,相顺序DCBA0000110011200103011040100511006100071001图2-2通电顺序表(2)根据运转相序可知,若要步进电机正转
13、,则要将正转步数STR2设置为OIH,03H,02H,06H,04H,0CH,08H,09Ho若反转,STR1设为03H,01H,09H,08H,OCH,04H,06H,02Ho(3)定义堆栈段,定义容量为100个字节的连续单元STA,再用等值语句EQU定义变量ToP为STA的长度。(4)用等值语句将A端口,B端口,C端口与控制端口分配地址。A为8000H,B口为8002H,C为8004H,控制为8006H。(5)将数据DATA加载到数据段寄存器DS,堆栈段加载到堆栈段寄存器SS,并将ToP的数值送入AX中存储,设置指针SP指向AX。因为A端口为输入,B端口为输出,所以将8255A的方式控制字
14、设定为90H,即IOO1OO00,并把它用MOV和OUT语句将它输出到控制端口IOCONo(6)由于我们设计的步进电机为八步,所以将步数08H送入CX中。并使用1EA将表示正转相序的字符串STR2的偏移地址存放到目标变址寄存器DI中。(7)使步进电机正向旋转,利用转移指令MoV和输出指令OUT将STR2的步数,输入到A口,即输入端口。利用TEST指令将A1中的内容与OIH相与。当结果为0,即按下反转按钮时,跳转到MOT1否则将D1加1,指向STR2的下一相序,并调用延时程序DE1AY0(8)由于步进电机反转的时候也为八步,所以仍按08H送入CX中,并将表示反转相序的串STR1的偏移地址存放到目
15、标变址寄存器D1中。(9)为使步进电机反向旋转,将A1输入进A端口,而将DX从B口输出,利用TEST指令将A1中的内容与02好做“与”运算。当结果为0时,即按下正转按钮时,程序跳回到MoT2中否则D1=DI+1,调用延时函数DEIAY,IO1ED1循环执行。2. 2方案二2.1.1 设计思想(1)根据步进电机的励磁顺序列写控制步进电机顺序转动的输出的数据表。(2)初始化8255A的工作方式。(3)设定需要步进电机转过的步数。(4)顺序依次逐个延时(调用延时函数1:延时较长,实现慢转)输出表中数据。(5)设定需要步进电机快速转过的步数。(6)顺序依次逐个延时(调用延时函数2:延时较短,实现快转)输出表中数据。(7)设定需要反向转过的步数。(8)逆序依次逐个延时(调用延时函数1,慢速)输出表中数据,设定需要步进电机快速反向转过的