项目编号:2015-2016学年第一学期微机原理(单片机)课程设计总结报告项目名称:步进电机控制A班级:姓名:学号:微机原理(单片机)课程设计任务书项目名称:步进电机控制A内容与要求:上位机:完成界面设计与通讯程序(1)能够设置步进电机启动、停止、正传、反转(2)能够设置步进电机转速(快、中、慢),圈数(3)能够保存电机的工作状态至文档,从文档读取电机的工作状态(4)可以对串口进行设置下位机:完成电路设计与控制程序(1)采用步进电机的控制,默认中速正传1圈(2)按键1可控制电机的启动和停止,按键2可控制电机的转动方向,按键3可控制电机的转速,按键4可控制转动圈数(每按1次加1圈)(3)由串行LCD显示当前转动方向、转速、圈数(4)通过串口与上位机通讯。项目组任务分担评价表课程设计报告评分表内容总体方案硬件设计软件设计结果分析明细清单问题分析心得体会参考文献程序代码格式规范总分学生1得分学生2得分姓名分担任务组内评价周欧翔LCD显示模块设计与编程、下位机串口通讯程序、上位机串口通讯程序、上位机界面、上位机控制程序6张璐下位机硬件连接、电路焊接、步进电机控制程序4微机原理(单片机)课程设计报告I目录1.总体方案…………………………………..12.硬件设计…………………………………..13.软件设计…………………………………..34.结果分析或项目所实现的功能、指标………………55.明细清单…………………………………..66.设计调试中遇到的疑难问题及解决方法……….77.心得体会与建议…………………………………..78.参考文献…………………………………..8附录…………………………………..9微机原理(单片机)课程设计报告1一、总体方案图1-1步进电机控制A总体功能模块示意图图中,控制器为89C52MCU,负责与上位机通讯、控制步进电机的开闭转速转向圈数、控制LCD显示、接受外部按键输入;步进电机模块为42BYGHW型步进电机,为系统的执行模块;外部按键模块按键1可控制电机的启动和停止,按键2可控制电机的转动方向,按键3可控制电机的转速,按键4可控制转动圈数(每按1次加1圈);LCD显示当前转动方向、转速、圈数;上位机设置步进电机启动、停止、正传、反转、步进电机转速(快、中、慢),圈数,并保存电机的工作状态至文档,从文档读取电机的工作状态,可以对串口进行设置,由VS2010MFC编程而得。二、硬件设计控制芯片:80C52单片机学习板驱动芯片:UM2003显示屏:LCD1602电机:42BYGHW混合式步进电机选择控制芯片时还是选用80C52系列,板子当然用面积小的比较好;电机的驱动芯片选用ULN2003,ULN2003是高压大电流达林顿晶体管阵列系列产控制器LCD显示模块上位机步进电机模块外部按键模块微机原理(单片机)课程设计报告2品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统,市场价5.00-6.00左右;与80C52学习板配套的LCD显示屏一般都是LCD1602型号,市场价4.00-5.00左右;步进电机选用42BYGHW混合式步进电机,步进电机一般分为三种:反应式、永磁式、混合式,反应式步进一般为两相,转矩和体积较小,步进角一般为7.5度或1.5度;永磁式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大;混合式步进是指混合了永磁式和反应式的优点。它又分为两相、三相和五相:两相步进角一般为1.8度而五相步进角一般为0.72度,混合式步进电机随着相数(通电绕组数)的增加,步进角减小,精度提高,这种步进电机的应用最为广泛。42BYGHW市场价30.00-40.00左右。ULN2003作为电极的驱动芯片,由七个硅NPN达林顿管组成。ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。除管脚8接地、管脚9接VCC之外,管脚1-7作为脉冲输入端,管脚10-16脉冲信号输出端。一般从80C52单片机输出出来的脉冲作为脉冲的输入端,脉冲信号输出端输出幅值12V及以上的脉冲来驱动电机转动。详细的硬件电路图如下:微机原理(单片机)课程设计报告3三、软件设计上位机主要为用户提供控制界面,在用户按下相应按键之前一直等待,按下按键后按照按下按键的类型改变相应的电机状态,更新界面,并传递给下位机;如果下位机的传递了电机状态,便改变成相应的电机状态,更新界面。图3-1上位机程序流程图是否接收到数据电机状态相应改变用户是否按下按键更新界面否是否是电机状态相应改变更新界面传递给下位机微机原理(单片机)课程设计报告4而下位机需要根据电机状态来控制步进电机,并将相应的电机状态打印到LCD显示屏上;如果接受到上位机传递的数据便改变自己相应的电机状态,如果有外部按键按下,则改变自己相应的电机状态,并将该状态上传给上位机。开始根据电机状态显示并驱动电机是否接收到数据电机状态相应改变是否是否有外部按键按下电机状态相应改变否是微机原理(单片机)课程设计报告5图3-2下位机程序流程图四、结果分析或项目所实现的功能、指标上位机运行界面如下:图4-1上位机运行图像图中转向0代表反转,1代表正转,"保存参数"按钮能够将目前的电机参数存入.txt文件中,“读取参数”按钮能够将.txt中的参数读入。右下角的小框为接受到的下位机电机参数。第一位数字开闭字位‘0’代表电机停止,‘1’代表电机起转。第二位数字为速度字位‘0’代表低数,‘1’代表中数,‘2’代表高速。第三位数字代表正反位,‘0’为反转,‘1’为正转。最后一位数字代表圈数。运行前必须先设置好串口,才能使用。下位机组装如下图:微机原理(单片机)课程设计报告6图4-2下位机组装图按键1可控制电机的启动和停止,按键2可控制电机的转动方向,按键3可控制电机的转速,按键4可控制转动圈数(每按1次加1圈),在电机停转的时候,LCD显示“OFF”,在电机启动的时候,LCD第一行第一个单词显示“ON”,下个字符正转显示‘Z’反转时显示‘F’,然后显示“LOOP:”后面跟圈数,第二行显示”SPEED:”,’L’代表低速,‘M’代表中速,‘H’代表高速。五、明细清单器件单价LY5A-L2AV4STC89C52学习板1602液晶显示器42BYGHWULN2003合计:微机原理(单片机)课程设计报告7六、设计调试中遇到的疑难问题及解决方法周欧翔:1、对于MFC中C++串口类不熟悉,所以只能在网上查有关的实例,并按照自己的要求不停地修改,然后在实验室不停地实验,并且在界面中专门用了一个编辑框不停地查看回传的数据。还有对于下位机串口设置方面有些不熟悉,我就一直在查找有关方面的书籍,以及相关的例子进行修改。2、对于串口的时序一开始的时候不是很懂,一开始的时候想着在上下位机通讯的时候就只是由上位机传输数字字符串,由字符在字符串中的位置来决定传递的是什么,但是时序老是出错,最后没有办法,只有将所有的字符换成单独的字母字符,这样就不会出错了。3、MFC在VS2010中的COMBO控件老是出错,不能够显示下拉栏,在网上找了好多的实力也没有解决,可能是我电脑配置的问题。所以最后我只是使用了普通的EDIT控件,在控件中输入数据来达到设置串口的目的。张璐:1、硬件原理图比较简单,只是需要上网查阅相关管脚的资料。焊接电路时基本没有什么问题,但是进行调试时电机不转。用万用表测VCC以及地端,并检查各管脚有没有虚焊。焊接没有问题,我们又用示波器测量ULN2003的输入信号和输出信号,输入信号即单片机的输出信号为5v脉冲没有问题,但输出信号一直为高电平。无奈应该是驱动芯片有问题。我们又换了一块板子;2、第二次接入电路电机依旧不转,检查过后发现是芯片插反了。调整过后电机终于转了起来。但是电机转动幅度不大。将控制程序中四路输出相邻的延时时间变长,电机终于正常转动了。后来对电机控制的各种参数进行微调,最终达到了实验效果。七、心得体会与建议周欧翔:单片机是自动化行业在实际生产生活中必不可少的伙伴,现在越来越多的产品都涉及到了单片机领域,所以这次的课程设计对我意义颇深,特别是这种给你一个题目,自主去做的模式,非常符合实际生产中生产形式。自主查找信息,学习单片微机原理(单片机)课程设计报告8机芯片资料,寻找相关的例程,这些都是非常宝贵的经验。这个题目如果再往深了做就是结合手机安卓系统与上位机的通讯,或者就是手机充当上位机,来远程控制步进电机。我觉得老师在芯片资料方面给的不是太详细,有些东西必须在网上找相似的器件才能够满足要求,加大了查找资料的难度,然后实验报告所占的分值过多,实验报告终究只是其次,最重要的还是将项目完成,所以我认为项目完成情况应该占分数的大头。张璐:单片机在各行各业的应用都很广泛,特别在自动化行业是重头。之前做大创项目有接触过这方面,所以上手并不难。对步进电机的控制之前没有做过,但通过查阅资料后也大致明白了其具体原理,就是基于单片机自身产生的晶振,由串口输出一定占空比的脉冲进而控制步进电机。硬件方面主要由我负责,虽然之前做过DSP小车底盘的焊接,但是此次实验硬件部分进行得也不是很顺利。主要是有些芯片是坏掉的,所以耽误了一些时间。上位机程序是由周欧翔同学编写,但我也对相关知识进行了学习,这种单独做小项目能够做出来成果后我们有很大的成就感,而且从中受益匪浅。课程设计时间安排较为灵活十分合理,我们也基本比较满意。可能大家对于验收等待老师比较有意见,我觉得老师本来就比较忙碌,我们等待验收是应该的,而且大部分同学第一次验收都存在问题,都没有太多的耐心。对于实验室的建议就是,可以对用过的芯片、器件进行复查,有些器件已经坏掉了,再给同学们继续使用会耽误项目的进程。最后感谢三位实验老师的细心教导!参考文献[1]林洋电子.LY5A-L2AV4原理图.Lydz8.taobao.com[2]常州市合泰电机电器有限公司.42BYGHW产品说明书[3]郭天祥.新概念51单片机C语言教程入门提高【M】.北京.电子工业出版社微机原理(单片机)课程设计报告9附录下位机源程序:#includereg52.hsbitlcden=P1^2;//LCD使能端sbitlcdrs=P1^0;//LCD控制端sbiton_off_key=P3^7;//按键1sbitorientation_key=P3^6;//按键2sbitspeed_key=P3^5;//按键3sbitloop_key=P3^4;//按键4bitclockwise_flag=1;//转向位biton_off_flag=0;//开关位bitcom_flag=0;//COM位unsignedcharchar_num=0;unsignedcharon_off,clock=0;unsignedcharnum=1;unsignedcharloops=1;//圈数unsignedchartable_begin=0;unsignedcharcodetable1[]={0x01,0x02,0x04,0x08,0x08,0x04,0x02,0x01};//电机运行表unsignedcharcodechar_table5[]=Speed:;//LCD显示字符串数组unsignedcharcodechar_table4[]=Loop:;//LCD显示字符串数组unsignedcharcodechar_table3[]=ONZ;//LCD显示字符串数组unsignedcharcodechar_table2[]=ONF;//LCD显示字符串数组unsignedcharcodechar_table1[]=OFF;//LCD显示字符串数组unsignedcharspeed_c=0;unsignedcharloop_c=0;unsignedcharreceive_char=0;unsignedcharletter_inx=0;unsignedcharloop_count=0;