计算机控制技术课程设计说明书三相步进电机控制系统的设计_第1页
计算机控制技术课程设计说明书三相步进电机控制系统的设计_第2页
计算机控制技术课程设计说明书三相步进电机控制系统的设计_第3页
计算机控制技术课程设计说明书三相步进电机控制系统的设计_第4页
计算机控制技术课程设计说明书三相步进电机控制系统的设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录目录1 设计任务及要求.12 方案比较及选择.12.1 电机驱动选择方案.12.2 led 显示选择方案.12.3 按键状态的读取.23 系统实现的原理.23.1 步进电机控制工作原理.23.1.1 步进电机的启停控制.23.1.2 步进电机的转向控制.23.2 系统设计思路.23.3 系统的整体框图.34 系统的硬件设计.44.1 总体设计.44.2 步进电机控制电路.54.2.1 启/停控制、正/反转控制、工作模式控制电路分析.54.2.2 步进电机控制电路.54.3 显示电路 .64.3.1 发光二极管显示电路.64.3.2 八段数码管显示电路.75 系统软件设计 .85.1 总体设

2、计.85.1.1 步进电机的工作方式.85.1.2 系统总体流程图.95.2 关键模块设计.115.2.1. 三相步进电机模块设计.115.2.2 显示模块设计.126 小结及体会.13附录:.14参考文献.16三相步进电机控制系统的设计1 1 设计任务及要求设计任务及要求 设计一个三相步进电机控制系统,要求系统具有如下功能:用 k0-k2 做为通电方式选择键,k0 为三相单三拍,k1 为三相双三拍,k2 为三相六拍;k3 为启动/停止控制、k4 方向控制;用 4 位 led 数码管显示工作步数。用 3 个发光二极管显示状态:正转时红灯亮,反转时黄灯亮,不转时绿灯亮。2 2 方案比较及选择方案

3、比较及选择2.1 电机驱动选择方案电机驱动选择方案方案 1:使用功率三极管等电子器件搭建成功率驱动电路来驱动电机的运行。优点是电路简单,但信号不够稳定,器件较大而不便电路的集成。方案 2:使用专门的电机驱动芯片 uln2004a 来驱动电机运行。其优点是便于电路的集成,且驱动简单,驱动信号稳定,不受外部干扰。通过对方案的比较,我选择使用电机驱动芯片来作为驱动。2.2 led 显示选择方案显示选择方案方案 1:把所要显示的数据通过专用的七段显示芯片的转换输出给 led 显示屏。其优点是输出简单,可以简化程序,但增加了芯片的费用。方案 2:通过软件把所要的数据转化为七段显示的数据,直接通过单片机接

4、口来显示,其优点是简化了电路,但增加了软件编写的负担。通过对方案的比较,我选择通过软件编写来输出显示信号。2.3 按键状态的读取按键状态的读取 方案 1:把按键接到单片机的中断口,若有按键按下,单片机接收到中断信号,再通过软件编写的中断程序来执行中断,优点是接线简单,简化了电路,但软件编写较为复杂,不易掌握。 方案 2:不使用中断,直接把开关分别接在单片机的接口上,通过查询端口信号来动作。其优点是程序得到简化,可读性加强。 通过对方案的比较,我选择通过查询方式来读取端口信号。3 3 系统实现的原理系统实现的原理3.1 步进电机控制工作原理步进电机控制工作原理3.1.13.1.1 步进电机的启停

5、控制步进电机的启停控制步进电机由于其电气特性,运转时会有步进感 ,即振动感。为了使电机转动平滑 ,减小振动 ,可在步进电机控制脉冲的上升沿和下降沿采用细分的梯形波 ,可以减小步进电机的步进角 ,提高电机运行的平稳性。在步进电机停转时 ,为了防止因惯性而使电机轴产生顺滑 ,则需采用合适的锁定波形 ,产生锁定磁力矩 ,锁定步进电机的转轴 ,使步进电机的转轴不能自由转动。3.1.23.1.2 步进电机的转向控制步进电机的转向控制如果给定工作方式正序换相通电 ,步进电机正转。若步进电机的励磁方式为三相六拍 ,即 a-ab-b-bc-c-ca。如果按反序通电换相 ,即则电机就反转。其他方式情况类似。3.

6、23.2 系统设计思路系统设计思路 此次我们所设计的是一个步进电机控制系统,主要由单片机 80c51,3 相步进电机,7 段数码管,及一些其他相关元件设计而成。可以通过开关来控制系统的启/停工作,当系统运转时,用开关来控制方向,并使相应的指示灯亮起,同样由开关来选择工作模式。运转时,用 4 位 7 段数码管来输出步数。最后根据思路所设计出来的硬件图设计相适应的软件。3.33.3 系统的整体框图系统的整体框图80c51 单片机整体控制led显示模块开关选择电机工作模式led 显示灯显示电机工作状态三相步进电机模块图 1 系统的整体框图4 4 系统的硬件设计系统的硬件设计4.1 总体设计总体设计设

7、计一个单片机三相步进电机控制系统要求系统具有如下功能:(1)用 k0-k2 做为通电方式选择键,k0 为单三拍,k1 为双三拍,k2 为三相六拍;(2)k3、k4 分别为启动和方向控制;(3)正转时红色指示灯亮,反转时黄色指示灯亮,不转时绿色指示灯亮;(4)用 4 位 led 显示工作步数。根据设计要求用 proteus 所做的硬件连线图如下图 1:图 2 总体硬件连线4.24.2 步进电机控制电路步进电机控制电路4.2.14.2.1 启启/ /停控制、正停控制、正/ /反转控制、工作模式控制电路分析反转控制、工作模式控制电路分析原理图如下:图 3 按键控制图(1)k3 为启/停控制开关,控制

8、整个系统的开启和关闭。(2)k4 为正/反转控制开关,控制步进电机的转向。(3)k0-k3 为工作模式控制开关,ko 接电时,为步进电机单三拍工作模式;k1 接电时,为步进电机双三拍工作模式;k2 接电时,步进电机工作模式为三相六拍。4.2.24.2.2 步进电机控制电路步进电机控制电路将 80c51 的 p1.0-p1.3 作为步进电机的输出控制口。原理图如下:图 4 步进电机的输出控制口4.34.3 显示电路显示电路4.3.14.3.1 发光二极管显示电路发光二极管显示电路用 3 个不同颜色的发光二极管来作为指示灯显示,将 p3.5 接红灯,p3.6 接黄灯,p3.7 接绿灯,正转时红色指

9、示灯亮,反转时黄色指示灯亮,不转时绿色指示灯亮,并加上 3 个保护电阻。原理图如下: 图 5 指示灯接线图4.3.24.3.2 八段数码管显示电路八段数码管显示电路由 80c51 的 p0 口取出显示码,从 80c51 的 p2.0-p2.3 输出位选码,设计中我们主要用到 4 位显示步数既可。原理图如下: 图 6 led 接线图5 5 系统软件设计系统软件设计5.15.1 总体设计总体设计5.1.15.1.1 步进电机的工作方式步进电机的工作方式(1)三相单三拍工作方式 在这种工作方式下,a、b、c 三相轮流通电,电流切换三次,磁场旋转一周,转子向前转过一个齿距角。因此这种通电方式叫做三相单

10、三拍工作方式。这时步距角 b (度)为 b = 360 /mz (公式 1)式中:m定子相数; z 转子齿数单三拍的数学模型: 控制位步序p1.7p1.6p1.5p1.4p1.3p1.2c 相p1.1b 相p1.0a 相工作状态控制模型100000001a01h 200000010b02h300000100c04h表 1(2)三相六拍工作方式 在这种工作方式下,绕组以 aabbbcccaa 时序(或反时序)转换 6 次,磁场旋转一周,转子前进一个齿距,每次切换均使转子转动 1. 5,故这种通电方式称为三相六柏工作方式。其步距角 b 为:b = 360 /2mz = 180 /mz (公式 2)

11、六拍的数学模型: 控制位步序p1.7p1.6p1.5p1.4p1.3p1.2c 相p1.1b 相p1.0a 相工作状态控制模型100000001a01h 200000011ab03h300000010b02h400000110bc06h500000100c04h600000101ca05h 表 2 (3)双三拍工作方式 这种工作方式每次都是有两相导通,两相绕组处在相同电压之下,以 abbccaab (或反之)方式通电,故称为双三拍工作方式。以这种方式通电,转子齿所处的位置相当于六拍控制方式中去掉单三拍后的三个位置。它的步距角计算公式与单三拍时的公式相同。极分度角/齿距角= r + k1/m进一

12、步化简得齿数 z:z = q (mr + k) (公式 3)式中:m相数; q每相的极数; k (m - 1)的正整数;r正整数,为 0、1、2、3。双三拍的数学模型: 控制位步序p1.7p1.6p1.5p1.4p1.3p1.2c 相p1.1b 相p1.0a 相工作状态控制模型100000011ab03h 200000110bc06h300000101ca05h表 35.1.25.1.2 系统总体流程图系统总体流程图 设计说明:首先复位单片机,然后从 p3 口读出开关状态,判断是否启动,没启动绿灯亮重新确认启动。启动后再次读取 p3 口数据,判断工作方式并将对应的用来存储步进电机工作方式字的数

13、组首地址值给 q。由 p3.4 口的双向开关来控制步进电机的正反转,如果是正转则红灯亮,反转则绿灯亮。在电机每走一步后,步数记数加 1,然后通过 led 显示把工作步数显示出来。再从 p3 口把状态信息读出来,与之前的 p3 口的状态信息进行比较。如果状态信息没有改变,电机继续运行。如果状态信息改变了,就需要重新返回程序的开端,对电机的运行状态进行判断,让电机重新以新的状态运行。由此,开关的状态在电机每走一步都会查询一遍,做到实时地反映。nnyy单片机 80c51 给步进电机复位启动?绿灯亮n判断工作方式q 存储方式字地址指针b 正向控制模型指针p3.4=1?正转反转红灯亮黄灯亮延时,且模型地

14、址加 1总步数加 1显示总步数p3 口状态是否改变b 反向控制模型地址p1 口输出控制模型y重新启动p3.0=1?p3.1=1?p3.2=1?nnny图 7 总体流程图5.25.2 关键模块设计关键模块设计5.2.1.5.2.1. 三相步进电机模块设计三相步进电机模块设计设计说明:在此设计中,采用的是三相步进电机,对于步进电机模块的程序设计采用循环程序设计方法。先把正反转向的控制模型存放在内存单元中,然后再逐一从单元中取出控制模块并输出。首先启动,选择步进电机的拍数,输入步数,然后读入正反转的控制模型驱动步进电机转动。 三相步进电机的流程框图:三相步进电机控制程序是正转吗?b反向控制模型地址n

15、取控制模型输出控制模型延时,模型地址+1nynyb正向控制模型指针控制模型=00h?吗初始化 图 8 三相步进电机的流程框图5.2.25.2.2 显示模块设计显示模块设计设计说明:显示模块是用 4 位八段数码管来显示工作步数。先将显示码存入数组中,指向最左边一位,然后取出要显示的数据,指向换码表首地址,取出显示码,从 p0 口输出显示码,p2 口输入位选码,显示出 4 位工作步数,最后修改数组地址,求下一位位选码继续显示。动态显示子程序取出要显示的数据求待显示数据的显示码送位段码到 p0 口输出送位显码到 p2.0-p2.3 输出延时4 位显示完了吗 返回修改数组地址求下一位选码图 9 显示模

16、块的程序框图6 6 小结及体会小结及体会经过这个学期对微机的学习,我们对计算机这一以后会经常接触的现代化工具有了更深的认识,在本次课程设计中,通过老师的指导和从网上查阅资料,和同学相互交流,我们从起初对课题的陌生开始一步步走向了完成的这一刻,在本次课设中,我们接触并了解了 proteus 的应用方法,并顶着程序随时可能崩溃的风险及时保存并顺利完成了布置的任务,对三相步进电机的原理及其控制方法有了更多的了解,相信在这次课设学到的东西会对未来的工作起到很大的作用。此外在此次课设中暴露了我单独处理问题的能力有所欠缺,在以后的学习中我会尽力克服这种缺陷当好合格的大学生。附录:附录:c 语言程序:#in

17、clude #include void delay1(void); void delay2(void); void display(int); int bs=0;main() char a,b,c,d,j,*q, done18=0 x01,0 x02,0 x04,0 x00,0 x01,0 x04,0 x02,0 x00, done28=0 x03,0 x06,0 x05,0 x00,0 x03,0 x05,0 x06,0 x00, done314=0 x01,0 x03,0 x02,0 x06,0 x04,0 x05,0 x00,0 x01,0 x05,0 x04,0 x06,0 x02,0

18、 x03,0 x00; p3=0 x20; /p3.5 口置 1,绿灯亮,不工作 delay1(); l: a=p3; while(!(a&0 x08) /判断是否启动,若没启动则重新启动 p3=0 x20; a=p3; delay1(); a=p3; /判断工作模式 if(a&0 x01) /方式 1 模型 q=done1; if(a&0 x02) /方式 2 模型 q=done2; if(a&0 x04) /方式 3 模型 q=done3; if(a&0 x10) /判断电机是否要正转 p3=0 x80; /p3.4 口为 1,电机正转,红灯亮 b=

19、0; else p3=0 x40; /p3.4 口为,电机反转,黄灯亮 if(a&0 x04)b=7; else b=4; d=b; while(1) c=*(q+b); /判断电机步数是否走完 if(c=0)b=d; /步数走完,电机重新再走 else p1=c; /从 p1 输出电机控制信号 b+; bs+; /总步数加 1 display(bs); /显示步数 j=a; a=p3; if(a!=j) /判断 p3 口状态信号是否改变 if(!(a&0 x08)bs=0; /若为停止信号,总步数清零 goto l; /状态信号改变,返回到开始,重新对电机控制 void delay1() int i,j; for(i=0;i200;i+) for(j=0;j300;j+); void display(int n)unsigned char tab10=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x67; unsigned char i,k,t,num4; num0=n%10; /将总步数的各位分别存在 num 数组中 num1=(n/10)%10; num2=(n/100)%10; num3=(n/1000)%10; for(t=0;t50;t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论