湖南工程学院课程设计课程名称单片机原理与应用课题名称步进电机控制系统设计专业自动化班级 1002班学号 201001020201姓名刘心祥指导教师李晓秀2013年 6 月 7日湖南工程学院课程设计任务书课程名称单片机原理与应用课题步进电机控制系统设计专业班级自动化1002 学生姓名刘心祥学号 201001020201 指导老师李晓秀审批任务书下达日期 2013年 6月 7日任务完成日期2013年6月21日目录第1章概述 (1)1.1单片机概述 (1)1.2步进电机概述 (1)第2章系统总体方案设计 (2)2.1系统总体设计思路 (2)2.2系统总体设计方案方框图................ 错误!未定义书签。
第3章硬件介绍与说明 .. (3)3.1开发板按键硬件连接及实物说明 (4)3.2开发板数码管硬件连接及实物说明 (5)3.3开发板步进电机硬件连接及实物图 (6)第4章软件设计流程 (6)4.1系统整体流程概述 (6)4.2系统整体流程图 (7)第5章调试结果与说明 (8)5.1系统调试 (8)5.2调试说明 (9)5.3调试结果 (10)第6章总结 (12)参考文献 (13)附录 (14)附录A系统原理图 (14)附录B程序清单 (15)第1章概述1.1 单片机概述单片机是指一个集成在一块芯片上的完整计算机系统。
尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。
同时集成诸如通讯接口、定时器,实时时钟等外围设备。
而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。
单片机也被称为微控制器(Microcontroller),是因为它最早被用在工业控制领域。
单片机由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
AT89系列单片机。
他不但具有一般MCS-51单片机的所有特性,而且还拥有一些独特的优点,此次设计中所用到的STC90C52RC就是其中典型的代表。
1.2 步进电机概述步进电机是一种感应电机,它的工作原理是利用电子电路,将直流电变成分时供电的,多相时序控制电流,用这种电流为步进电机供电,步进电机才能正常工作,驱动器就是为步进电机分时供电的,多相时序控制器感应子式步进电机与传统的反应式步进电机相比,结构上转子加有永磁体,以提供软磁材料的工作点,而定子激磁只需提供变化的磁场而不必提供磁材料工作点的耗能,因此该电机效率高,电流小,发热低。
因永磁体的存在,该电机具有较强的反电势,其自身阻尼作用比较好,使其在运转过程中比较平稳、噪音低、低频振动小。
感应子式步进电机某种程度上可以看作是低速同步电机。
一个四相电机可以作四相运行,也可以作二相运行。
(必须采用双极电压驱动),而反应式电机则不能如此。
例如:四相,八相运行(A-AB-B-BC-C-CD-D-DA-A)完全可以采用二相八拍运行方式。
一个二相电机的内部绕组与四相电机完全一致,小功率电机一般直接接为二相,而功率大一点的电机,为了方便使用,灵活改变电机的动态特点,往往将其外部接线为八根引线(四相),这样使用时,既可以作四相电机使用,可以作二相电机绕组串联或并联使用。
完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相拍运行方式即AB-BC-CD-DA-AB,四相八拍运动方式即A-AB-B-BC-C-CD-D-DA-A。
虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机,交流电机在常规下使用。
它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。
因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。
第2章系统总体方案设计2.1 系统总体设计思路本系统,通过选取单片机的矩阵键盘的五个控制键输入,并连接到单片机的P2口(P2.0-P2.3列线,P2.4-P2.7行线),通过单片机内部的处理将键盘的输入信号读入并执行相应的动作,并从P0,P1口分别接数码管的段选端和位选端(P1.0-P1.3),从而使得四位数码管能按指定要求显示指点的档位加减,和步进电机运行状态的效果。
同时利用程序对步进电机(本方案中采取四项八拍的方式)实施与数码管同步的相应运转状态,从而使得整个步进电机控制系统得以准确的实现。
具体设计方框图如下。
图2.1 总体总体设计方案方框图第3章硬件介绍与说明本系统采用自备的STC89C54RD+系列的单片机开发板进行硬件搭接与调试,并利用C语言编程来实现硬件的既定功能。
下面就对此些列开发板的硬件电路原理图进行相应的说明。
3.1 开发板按键硬件连接及实物说明图3.1 按键硬件连接及实物图图中S1~S4可以配置成独立按键,即通过一个眺冒J11切换,在独立键盘配置中,应该把眺冒跳到左端,此时独立键盘才有效,由于,此个步进电机控制系统中所用的按键刚好四个即可满足要求,因此,系统中采用独立键盘。
本系统设计通过四个独立按键S1,S2,S3,S4接入单片机P3口前四位,当S1键按下时,步进电机正转,当S2键按下时,步进电机反转,当S3键按下时,步进电机通过按键的次数来增大步进电机的脉冲频率从而在原有的转速上进行加速,当S4键按下时,步进电机通过按键的次数来减小步进电机的脉冲频率从而在原有的转速上进行减速。
由此,通过四个按键的控制即可实现步进电机的准确控制。
3.2 开发板数码管硬件连接及实物说明图3.2 数码管硬件连接及实物图图中74HC573 11脚接VCC,锁存不起作用,相当于直通,相应的段赋值为1,A,B,C赋值0~7,则输出端分别是Y0~Y7置0,从而选通七个数码管,在此步进电机控制系统中仅使用三个数码管,一个用来显示电机运转状态,另外两个用来显示电机转速的不同档位。
本系统设计通过P0口控制数码管的段选,P2口控制数码管的八位数码管的位选,利用数码管的动态扫描选通数码管的1,4,5位数码管,其中第1位为电机的转动状态,4,5位显示一个十位数以用来表示电机转动速度及档位的显示。
3.3 开发板步进电机硬件连接及实物图图3.3 步进电机硬件连接及实物图图中ABCD为4相信号输入端,此端默认为悬空,需要用4根杜邦线连接至单片机I/O口,在此系统中,在软件中定义ABCD 4相分别为P1.0,P1.1, P1.2,P1.3,即可利用4根杜邦线将其连接即可。
本系统设计接的是四项的步进电机,每项分别接到P1.0,P1.1,P1.2,P1.3端口上,并通过程序来控制P1高低电平的循环输出。
由于此电机利用的是四项四拍方式来驱动电机,因此,通过程序中的设置从而选择合适的脉冲输出频率从P1口的转换成高低电平信号输出,从而可以有效的驱动电机。
第4章软件设计流程4.1 系统整体流程概述本系统通过C语言编程,其中包括数码管显示部分,键盘扫描部分,步进电机控制部分三个主要部分,进入程序先给数码管初始化然后设置中断的工作状态同时开启总中断,然后进入键盘扫描程序部分,首先判断S1键的状态,并通过按键的去抖程序后,给档位进行初始设置,同时设置标志位为1。
然后在保证S2键没有按下的前提下进入转速控制子模块并开始检测S3,S4键的状态,并分别在相应的键按下时对档位进行相应的加减,并同步修改电机的转速参数。
之后,再对中断装入初值,S1键按下的程序中开启中断,从而程序进入中断并通过标志位的选择从而进入电机正反转的程序,并最后进入数码管的动态扫描。
同理可以对S2键进行扫描,流程与上相似。
4.2 系统整体流程图图4.1系统工作流程图第5章调试结果与说明5.1 系统调试本系统调试过程中采用直接硬件调试的方法,对整体的系统程序进行分解排故,首先对八段显像管进行数字显示测试,然后对键盘进行按键响应测试,当测试都得到正确结果时,将键盘与显示结合起来,并给予恰当的字型码,最后加入定时器中断程序,给出正确的脉冲信号和频率。
5.2 调试说明在调试过程中出现了不少问题,通过不同方法得到了解决,在此逐一进行说明:(1)显示管出现不停闪烁,不能清晰显示的问题,后查出由于延时程序过长没有小于眼镜分辨频率所致,缩短定时器定时后解决。
(2)按键出现按下一键响应多次的情况,后查出由于键位抬起子程序书写不当,造成键盘多次响应,并加上了松手去抖程序后问题得以顺利解决。
(3)在设计中断初值重装的时候,发现要适时的修改步进电机的脉冲频率,可以直接将控制电机转速参数的量直接赋到初值里面,这样的效果比通过固定初值再去计数的效果要好5.3 调试结果图5.1 电机正转显示效果图图5.2 电机反转显示效果图图5.3 电机最高档位显示效果图图5.4 电机最低档位显示效果图第6章总结这次单片机课程设计让我获益很多,由于先前我自己已经对单片机的基本功能都有个比较具体的了解,因此,对于这个课程设计我并不是很担心,因此,对于选题我也并不是很在意,那天老师给我们布置了课题后,我接到的是步进电机控制的课题,由于平时我对步进电机控制上并没有下太大的功夫,因此,对于这个课题还是比较陌生的,但是,我并不担心,接到课题后我就开始准备程序。
其实,我做的还是比较顺利,由于先前一些基本的程序我自己都有编过,因此很多基本的模块就可以直接调用,像键盘扫描模块就可以直接调用,由于先前我的程序都是用C语言编的,因此,我也就没有打算用汇编语言编程,将这些外面的控制模块都编好了后,我就开始查资料了解步进电机的工作原理及程序控制方法,了解完后,我也很顺利的编好了电机驱动程序,接下来就剩下了最后一个功能部分,也算是最关键的部分,那就是电机的加速减速,一开始,我是利用按键的按下次数来控制步进电机的延时程度,从而达到电机转速控制的效果。
弄好了这个程序后,我后来就去拿给老师检查,但是老师说我的档位设置的不够,同时最好利用中断来控制步进电机的脉冲频率,要我回家继续修改,因此,我拿回程序后继续改进方案,最后,终于,按照老师的要求完成了目标同时也有了个比较好的硬件显示效果。
至此,我的程序编译调试阶段算是结束了,剩下的就是报告的书写,我们老师对我们要求很严格,报告一定要按照老师指定的规范书写,因此,在报告的书写上我们也获益匪浅,也理解到了做事情一定要细致。
通过这次单片机课程设计,我不仅又重温了一下单片机的操作,同时也让我加深了对单片机的了解,尤其是对步进电机的工作原理及运转状态的控制有了个比较形象的认知,让我,在单片机上又有了更进一步的提升。