您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 综合/其它 > 单片机控制步进电机-论文(汇编程序)
单片机原理与应用技术课程设计论文单片机控制步进电机组长:组员:专业班级:电子信息工程1401班学期:2015-2016年第二学期指导教师:东北农业大学电子信息工程系2016年06月课程设计小组成员分工明细姓名负责课程设计内容(组长)负责绘制电路原理图完成仿真制作PPT(组员)查找相关资料修改调试代码修改论文(组员)查找相关资料撰写论文修改PPT目录1摘要.................................................................................................................................................11设计任务要求................................................................................................................................22设计方案........................................................................................................................................23设计原理······································································································33.1步进电机工作原理……………………………………………………………………………33.2系统设计原理…………………………………………………………………………………44硬件设计······································································································55软件设计······································································································66Proteus仿真条件与仿真结果......................................................................................................137总结···········································································································138参考文献·································································································139附录...............................................................................................................................................149.1系统完整仿真电路图···············································································149.2系统汇编语言程序源代码·········································································141摘要本次课程设计是通过单片机对步进电机进行控制,通过控制其步数实现对其步进角度的控制。我们采用了键盘扫描的方法判断其要转动的步数,并控制步进电机的转动及其转动方向。还采用了温度采集及报警模块防止其过热而产生损耗。通过Keil软件的程序编写及Protues软件的仿真,基本达到了课设的要求。关键字:单片机步进电机步数步进角度键盘扫描温度采集21.设计任务要求采用单片机控制一个三相单三拍的步进电机工作。步进电机的旋转方向由正反转控制信号控制。步进电机的步数由键盘输入,可输入的步数分别为3、6、9、12、15、18、21、24和27步,且键盘具有键盘锁功能,当键盘上锁时,步进电机不接受输入步数,也不会运转。只有当键盘锁打开并输入步数时,步进电机才开始工作。电机运转的时候有正转和反转指示灯指示。电机在运转过程中,如果过热,则电机停止运转,同时红色指示灯亮,同时警报响。本题目的关键之处是:如何生成控制步进电机的脉冲序列。2.设计方案用单片机(AT89C51)为主芯片设计电路来控制四相步进电机以四相八拍方式工作。1.设两个按键,分别作开关键盘,左转、右转控制;2.设9个触电按键分别控制输入的步数为3、6、9、12、15、18、21、24和27步;3.设置三个发光二极管分别指示其旋转方向(正转,反转)及温度报警。4.使用DS18B20温度传感器感测温度;5.使用ULN2003A芯片驱动步进电机工作。33.设计原理:3.1步进电机的工作原理该步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。图1是该四相反应式步进电机,图2是四相步进电机结构示意图。。图1图2开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍4工作方式既可以保持较高的转动力矩又可以提高控制精度。单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图2.a、b、c所示:a.单四拍b.双四拍c.八拍图2步进电机工作时序波形图3.2系统设计原理该系统采用的芯片有:DS18B20温度传感器、ULN2003A以及四相六线步进电机,并且步进电机在双八拍的方式下工作,步矩设置为5°。步进电机的旋转方向由正反转控制信号控制。步进电机的步数由键盘输入,可通过独立键盘S1~S9输入的步数分别为3、6、9、12、15、18、21、24和27步对应的角度为15°、30°、……、135°,且键盘S10具有键盘锁功能,当键盘按键时,通过键盘S11选择运转方向并且输入步数时,步进电机才开始工作;否则,步进电机不接受输入步数,也不会运转。电机运转的时候有正转指示灯D2和反转指示灯D3指示。电机在运转过程中用温度传感器采集步进电机外表温度(可设置),如果过热,则电机停止运转,同时红色指示灯亮,同时蜂鸣器警报响。54.硬件设计4.1最小单片机系统5V电源:给系统供电。复位电路:使AT89C51从程序存储器的0000H单元开始执行程序。晶振:给单片机运行提供时钟。EA接高电平:表示运行内部程序存储器下载的程序。P0口接排阻:P0口作为通用的I/O使用需加上拉电阻,这时为准双向口。4.2键盘设计6该电路中采用独立键盘工作方式,共设有11个按键,分别提供3、6、9、12、15、18、21、24、27布局选择功能、键盘锁功能以及步进电机转动方向选择功能。其中有程序决定起作用。4.3步进电机及其驱动电路采用ULN2003A芯片为驱动电路驱动四相电机工作。芯片的四个引脚分别以逆时针方式连接步进电机对应引脚。4.4温度监测及报警系统使用DS18B20传感器感测温度,当温度高于预设温度时,发光二极管点亮,蜂鸣器报警。75软件设计软件设计采用汇编语言编写控制程序,主要由以下几个模块组成5.1主函数模块:该模块重要功效是调动温度采集函数、步进电机函数中函数,实现模块化编程。5.2温度检测及报警模块:该模块的重要功效是对步进电机的外表采集温度,并且对已设定好的数值进行比较,从而确定机身温度是否过高,正常时电机正常转动,当温度过高时电机不再转动,并且蜂鸣器报警,红灯点亮。5.3键盘扫描模块:通过键盘扫描模块判断所要走步数,控制步进电机的开关,改变步进电机的转向。5.4步进电机驱动模块:通过单片机的定时器,通过控制延时时间控制转速;在10ms过后执行中断程序,即使步进电机转动。各模块程序流程图如下:8步进电机驱动程序:定时器初始化开始步进电机转一步停止定时器开始计时是否有步数按下是否达到10ms否是否是9键盘扫描模块:等待开始是否按下开关键拍序数不变是否改变转向拍序数=7-当前拍序数否是否是10步进电机转一步流程图:正转或反转转基址取反转数组首地址,加拍序数即为要取数基址取正转数组首地址,加拍序数即为要取数将数值赋予P2步进电机转一步开始正转反转11温度检测及报警模块:判断DS18B20是否存在系统初始化发送跳ROM匹配指令数据转换将数据存入预设存储单元读取温度值开始结束否是12主函数模块流程图:开始初始化程序判断步进电机温度是否高于31度是否按键S10确定正反转确定输入步数报警、红灯亮、步进电机停是否否是136.仿真条件及结果:仿真条件:打开元器件单片机属性窗口,在“ProgramFile”栏中添加上面编译好的目标代码文件“step.hex”。在“ClockFrequency”栏中输入晶振频率为11.0592MHz。仿真结果:按下S10,打开步进电机,每按下3,6,9,12……27键,步进电机反转,转动-15,-30……-135度角;当按下一次S11,步进电机正转,再按一次,步进电机反转,以此类推。当温度超过31度时,步进电机停止工作,此时发光二极管变亮,蜂鸣器报警。7.总结:在做课程设计期间,我们得到了周修理老师的指导和原浩强同学的帮助,在此一并感谢。本次课程设计,不仅使我们了解并掌握了步进电机的用法,而且电机转动14让我们对利用单片机实现控制功能有了更加深刻的理解。极大的锻炼了我们的能力,尤其是理论与实践相结合的能力。在未来电子信息行业的竞争中,我们只有尽早将理论应用于实践,才能更好地理解理论,才能由此不断创新,在竞争中拔得头筹。今后我们将会把精力更多地放在动手能力的培养上。我们还懂得了,做学问就要有实事求是的精神,哪怕减少生命的长度,也不能减少实事求是的态度。8.参考文献:1.张毅刚编著,《单片机原理及应用》高等教育出版社,2010。2.郭天祥编著,《新概念51单片机C语言教程》,2009。9附录9.1系统完整仿真电路图159.2系统汇编语言程序源代码SPEEDDATA30H;用于定时中断重载用,与PULS_TIME相反,越大定时越长,也即速度越小PULS_TIMEDATA31H;拍数周期,为零时将用speed重载PULS_TIMEDISPSPEEDDATA32H;显示用级数=15-SPEED,越大,转动速度越快STEPDATA33HPULS_ORDERDATA34H;拍序数DISPBUFFERDATA35H;显示十位S4_ON_TIMEDATA36H;S4按下不放计数MORTORPORTDATAP2;步进电机输出口ORIENTBIT00HON_OFFBIT01HON_TIME3SBIT02H;按住超3sS1BITP0.1;启动/停止键S2BITP0.2;正反向命令S3BITP0.3;
本文标题:单片机控制步进电机-论文(汇编程序)
链接地址:https://www.777doc.com/doc-5869012 .html