您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > 步进电机课程设计实验报告
1汇编及接口技术课程设计题目:步进电机控制系统班级:100602学号:100602122姓名:张春东时间:2012.12.25成绩:2目录1设计任务与要求..........................................1.1设计任务............................................1.2设计要求............................................2设计方案................................................2.1设计思路............................................2.2使用的芯片..........................................2.3芯片的作用..........................................3硬件线路设计............................................3.1线路图及连线说明....................................4软件设计................................................4.1程序流程图.........................................5源程序清单与注释.........................................6调试过程................................................6.1实验步骤...........................................6.2出现的问题及解决的方法.............................7.总结....................................................8.参考资料...............................................3步进电机控制系统一、设计任务与要求1.1设计任务1.了解步进电机控制的基本原理。2.掌握控制步进电机转动的编程方法。3.进一步熟练8255的使用。1.2设计要求1.开关K8控制电机的启动与停止:当K8向上拨时,电机启动,否则电机停止;2.开关K7控制电机的正反转。3.开关K1~K6控制电机的转速:K1向上拨时,得到最低转速,……K6向上拨时,得到最高转速。4.在数码管上显示速度编号。二、设计方案2.1设计思路步进电机驱动原理是通过对每相线圈中的电流的顺序切换(实验中的步进电机有四相线圈,每次有二相线圈有电流,有电流的相顺序变化),来使电机作步进式旋转。驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。本实验使用的步进电机线圈由四相组成,驱动方式为二相激磁方式,如图4.1所示。图4.1步进电机原理图如表4.1所示,首先使HA线圈和HB线圈有驱动电流,接着使HB和HC、HC和HD、4HD和HA,又返回到HA和HB有驱动电流,按这种顺序切换,电机轴按顺时针方向旋转。表4.1步进电机激磁方式相顺序HAHBHCHD0++--1-++-2--++3+--+注:当实验结束要立即关闭电源,否则一直停留在某一相上会使电机发热。2.2使用的芯片8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输.RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。WR:写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。PA0~PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。PB0~PB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。PC0~PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。A0,A1:地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器.2.3芯片的作用此系统主要用到的芯片为8255,8255方式0是基本输入/输出方式,A、B、C三个口中任何一个口都可提供简单的输入和输出操作,不需要应答联络信号,即可用于无条件传送的场合,也可以用作查询方式传送。当采用查询方式传送时,原则上可用A、B和C三个口的任一位充当查询信号,但通常都是选用C口充当查询信号,这和C口的编程有关。通常把C口的4位(高4位或低4位)规定为输出口,用以输出一些控制信号,把C口的另4位规定为输人口,用以输入外设的状态。5方式1是一种选通输人偷出方式,A口和B口均可工作在这种方式。方式1可作为查询式传送方式,此时握手联络信号,C口要用6位(分成两个3位)分别作为A口和B口的应答联络信号。方式1也可用作中断方式,此时要写对应的C口的按位置位字,打开中断。方式2是A口独有的双向传送方式,一般使用中断传送方式。三、硬件线路设计3.1线路图及连线说明1.实验连线8255模块的RD、WR连到ISA总线接口模块的IORD、IOWR,8255选通信号CE连到ISA总线接口模块的IOY0。8255模块的数据线AD7~AD0、地址线A7~A0分别连到ISA总线接口模块的LAD0~LAD7,LA0~LA7。步进电机的HA—PA0,HB—PA1,HC—PA2,HD—PA3。1)8255的PA口(PA0---PA3)和步进电机的HA、HB、HC、HD相连。2)8255的PB口(PB0---PB7)和开关K1-K8相连。3)8255的PC口(PC0---PC7)连接到LED的(KD0---KD7)。2.运行程序:BJDJ.ASM。观察电机的运转。四.软件设计该驱动器根据拨码开关KX、KY的不同组合有三种工作方式供选择:方式1为中断方式:P3.5(INT1)为步进脉冲输入端,P3.7为正反转脉冲输入端。上位机(PC机或单片机)与驱动器仅以2条线相连。方式2为串行通讯方式:上位机(PC机或单片机)将控制命令发送给驱动器,驱动器根据控制命令自行完成有关控制过程。方式3为拨码开关控制方式:通过K1~K5的不同组合,直接控制步进电机。当上电或按下复位键KR后,AT89C2051先检测拨码开关KX、KY的状态,根据KX、KY的不同组合,进入不同的工作方式。以下给出方式1的程序流程框图与源程序。在程序的编制中,要特别注意步进电机在换向时的处理。为使步进电机在换向时能平滑过渡,不至于产生错步,应在每一步中设置标志位。其中20H单元的各位为步进电机正转标志位;21H单元各位为反转标志位。在正转时,不仅给正转标志位赋值,也同时给反转标志位赋值;在反转时也如此。这样,当步进电机换向时,就可以上一次的位置作为起点反向运动,避免了电机换64.1程序流程图7五.源程序清单与注释MY_DATASEGMENTP8255ADW0C800HP8255BDW0C801HP8255CDW0C802HP8255MDW0C803HSHUNDB03H,06H,0CH,09H;顺时针旋转TIMEPDW?;时间参数DCODEDB?;显示代码MY_DATAENDSMY_CODESEGMENTMY_PROCPROCFARASSUMECS:MY_CODE,DS:MY_DATASTART:MOVAX,MY_DATAMOVDS,AX;--------------------------------------------------------------------------------------------------------MOVDX,P8255MMOVAL,82H;OUTDX,ALMOVBL,33HNEW:MOVDX,P8255BINAL,DXTESTAL,80H;K8=PB7JNZSECOND;--------------------------------------------------------------------------------------------------FIRST:MOVDX,P8255AMOVAL,00H;停止步进电机OUTDX,ALJMPNEW;---------------------------------------------------------------------------------------------SECOND:MOVDX,P8255AMOVAL,BLOUTDX,ALCALLSWITCHCALLDELAYCALLDISPLY;-----------------------------------------------------------------------------------------------THIRD:MOVDX,P8255BINAL,DXTESTAL,40H;K7=PB6JZFIFTHFORTH:ROLBL,1;JMPDONE8;-----------------------------------------------------------------------------------------------------------FIFTH:RORBL,1;JMPDONEDONE:NOPJMPNEWMOVAX,4C00HINT21HMY_PROCENDP;-------------------------------------------------------------------------------------------------------------DELAYPROCNEAR;延时程序PUSHCXPUSHSIDEL0:MOVSI,TIMEPDL1:MOVCX,0FFFFHDL2:LOOPDL2DECSIJNZDL1POPSIPOPCXRETDELAYENDPDISPLYPROCNEAR;显示程序PUSHAXPUSHDXMOVAL,DCODEMOVDX,P8255COUTDX,ALPOPDXPOPAXRETDISPLYENDPMY_CODEENDSENDSTART;-----------------------------------------------------------------------------------------SWITCHPROCNEAR;速度子程序PUSHAXPUSHBXPUSHDXSTH1:MOVDX,P8255BINAL,DXTESTAL,01H;K1=PB0JNZK1TESTAL,02HJNZK2TESTAL,04H9JNZK3TESTAL,08HJNZK4TESTAL,10HJNZK5TESTAL,20HJNZK6MOVAX,3000HJMPSTH2K1:MOVAX,300H;实验得
本文标题:步进电机课程设计实验报告
链接地址:https://www.777doc.com/doc-6373380 .html