步进电机课程设计实验报告(共11页).doc
精选优质文档-倾情为你奉上成绩:汇编及接口技术课程设计题目:步进电机控制系统班 级: 学 号: 姓 名: 张春东 时 间: 2012.12.25 目 录.计任务.1.2设计要求.及连线说明.4 软件设计. 4.1程序流程图.5源程序清单与注释.6 调试过程. 6.1实验步骤. 6.2出现的问题及解决的方法.7. 总结.8. 参考资料.步进电机控制系统 一、 设计任务与要求 1.1设计任务1. 了解步进电机控制的基本原理。2. 掌握控制步进电机转动的编程方法。3. 进一步熟练8255的使用。 1.2设计要求 1. 开关K8控制电机的启动与停止:当K8向上拨时,电机启动,否则电机停止;2. 开关K7控制电机的正反转。3. 开关K1K6控制电机的转速:K1向上拨时,得到最低转速, K6向上拨时,得到最高转速。4. 在数码管上显示速度编号。二、 设计方案2.1设计思路 步进电机驱动原理是通过对每相线圈中的电流的顺序切换(实验中的步进电机有四相线圈,每次有二相线圈有电流,有电流的相顺序变化),来使电机作步进式旋转。驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。本实验使用的步进电机线圈由四相组成,驱动方式为二相激磁方式,如图4.1所示。图4.1 步进电机原理图如表4.1所示,首先使HA线圈和HB线圈有驱动电流,接着使HB和HC、HC和HD、HD和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。 D0D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。 PB0PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。 PC0PC7:端口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位规定为输人口,用以输入外设的状态。 方式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模块的数据线AD7AD0、地址线A7A0分别连到ISA总线接口模块的LAD0LAD7,LA0LA7。Ø 步进电机的HAPA0,HBPA1,HCPA2,HDPA3。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为拨码开关控制方式:通过K1K5的不同组合,直接控制步进电机。 当上电或按下复位键KR后,AT89C2051先检测拨码开关KX、KY的状态,根据KX、KY 的不同组合,进入不同的工作方式。以下给出方式1的程序流程框图与源程序。 在程序的编制中,要特别注意步进电机在换向时的处理。为使步进电机在换向时能平滑过渡,不至于产生错步,应在每一步中设置标志位。其中20H单元的各位为步进电机正转标志位;21H单元各位为反转标志位。在正转时,不仅给正转标志位赋值,也同时给反转标志位赋值;在反转时也如此。这样,当步进电机换向时,就可以上一次的位置作为起点反向运动,避免了电机换4.1程序流程图五源程序清单与注释MY_DATA SEGMENTP8255ADW0C800HP8255BDW0C801HP8255CDW0C802HP8255MDW0C803H SHUNDB03H,06H,0CH,09H;顺时针旋转TIMEPDW?;时间参数DCODEDB?;显示代码MY_DATA ENDSMY_CODE SEGMENT MY_PROCPROCFARASSUME CS:MY_CODE,DS:MY_DATASTART:MOVAX,MY_DATAMOVDS,AX ;- MOVDX,P8255MMOVAL,82H;OUTDX,ALMOVBL,33HNEW:MOV DX, P8255BIN AL,DXTEST AL,80H;K8=PB7JNZ SECOND;-FIRST:MOVDX, P8255AMOVAL,00H ;停止步进电机OUTDX,ALJMPNEW;-SECOND:MOVDX,P8255AMOVAL,BLOUTDX,ALCALLSWITCHCALLDELAYCALLDISPLY;-THIRD:MOV DX,P8255BIN AL,DXTESTAL,40H;K7=PB6JZ FIFTHFORTH:ROLBL,1;JMPDONE;-FIFTH:RORBL,1;JMPDONEDONE:NOPJMPNEWMOVAX,4C00HINT21HMY_PROCENDP;-DELAY PROC NEAR;延时程序PUSHCXPUSHSIDEL0:MOVSI,TIMEPDL1: MOV CX,0FFFFHDL2: LOOPDL2 DECSI JNZDL1POPSI POPCX RETDELAY ENDPDISPLYPROC NEAR;显示程序PUSHAXPUSHDXMOVAL,DCODEMOVDX, P8255COUTDX,ALPOPDX POPAX RETDISPLY ENDPMY_CODE ENDS END START;-SWITCHPROC NEAR;速度子程序PUSHAXPUSHBXPUSHDXSTH1:MOV DX,P8255BIN AL,DXTESTAL,01H;K1=PB0JNZK1TESTAL,02HJNZK2TESTAL,04HJNZK3TESTAL,08HJNZK4TESTAL,10HJNZK5TESTAL,20HJNZK6MOVAX,3000HJMPSTH2K1:MOVAX,300H;实验得出具体值JMPSTH2K2:MOVAX, 300H;实验得出具体值JMPSTH2K3:MOVAX, 300H;实验得出具体值JMPSTH2K4:MOVAX, 500HJMPSTH2K5:MOVAX, 300HJMPSTH2K6:MOVAX, 300HJMPSTH2STH2:MOVTIMEP,AXPOPDXPOPBXPOPAXRETSWITCHENDP六、 调试过程6.1实验步骤1、硬件测试【WINXP】à【步进电机】2、三个相一致:在硬件测试通过后,要注意三个相一致(1)PNP地址和数据段中的端口地址。(2)控制字和接线。(3)代码段中的端口地址和接线。3、步步为营:功能模块要一个一个地实现4、附加内容:(1)K8扳上表示启动,步进电机转动。绿灯亮。K8扳下表示停止,步进电机停止。绿灯灭。(2)K7扳上表示顺时针转,红灯亮。K7扳下表示逆时针,即倒转,倒档。红灯灭。(3)K1-K6扳上时,表示不同的速度。步进电机由慢到快。(4)在1、2和3功能实现的基础上,K1K6扳上时,要在右边的数码管上显示前进的档位。(只用一个LED显示)(5)在1、2、3和4功能实现的基础上,K1扳上,在第一个数码管上显示1;K2扳上,在第二个数码管上显示2。余类推。K7时,显示1。6.2出现的问题及解决的方法 1.硬件问题:线路连接好后,调试,步进电机无转动现象。 解决方法:查看接线是否正确,如若不行,换实验箱及连接线 2.软件速度问题:K1-K6扳上时,步进电机转速几乎无差别。 解决方法:将程序中K1-K6中MOV AX,_空格中的数据差距调大 七 总结通过这门课程的学习我们对生活中的好多简单的电子产品的工作原理有了进一步的了解,微型计算机技术是学习微电子技术不可或缺的课程。在此次课程设计中,通过对所学知识的综合运用来实现步进电机的控制原理,主要用到了汇编语言的寻址方式和指令系统,通汇编语言来编写程序源代码来实现步进电机的加速。用到的硬件主要是可编程的并行通信接口8255,通过8255的控制字及工作方式里实现输入输出,熟悉并掌握了所学知识,将所学的知识系统化并且学会了这些知识在实践中的应用。通过此次设计我感触颇深,我们只有将所学的理论知识具体的应用在实践中,才可以更好的理解并掌握。参考资料微型计算机原理与接口技术.王建国 傅妍芳 主编专心-专注-专业