您好,欢迎访问三七文档
广州航海学院控制电机及其应用实验报告专业班级电气161姓名学号05实验名称步进电机实验实验日期2019.6.14实验组号指导教师(报告内容包括:实验目的、实验设备及器材、实验步骤、实验数据、图标及曲线处理、实验小结等)一、实验目的1.了解步进电机控制的基本原理;2.掌握控制步进电机转动编程方法。二、实验内容1.在Proteus环境下画出步进电机实验电路图,应用ULN2003达林顿管驱动;2.使用keil软件编程,生成hex文件;3.将hex文件下载到单片机;4.分别操作K1、K2、K3键,观察电机转向和旋转速度。成绩三、实验仿真硬件图1、仿真调试2、实验程序#includereg51.h//此文件中定义了单片机的一些特殊功能寄存器#defineucharunsignedchar#defineuintunsignedintucharcoderight[4]={0x02,0x08,0x04,0x01};ucharcodeleft[4]={0x01,0x04,0x08,0x02};sbitk1=P2^0;sbitk2=P2^1;sbitk3=P2^2;voiddelay(uintj){while(j--);}voidkeypros(){uchari;if(k1==0)//检测按键K1是否按下{delay(1000);//消除抖动一般大约10msif(k1==0)//再次判断按键是否按下{for(i=0;i4;i++){P1=right[i];//正转delay(15000);}}while(!k1)k1=0;//再次判断按键是否按下{while(1)//保持正转{for(i=0;i4;i++){P1=right[i];//正转delay(15000);}if(k2==0)break;//k2判断按下后正转结束if(k3==0)break;//k3判断按下后正转结束}}}//检测按键是否松开if(k2==0)//检测按键K2是否按下{delay(1000);//消除抖动一般大约10msif(k2==0)//再次判断按键是否按下{while(1)//保持反转{for(i=0;i4;i++){P1=left[i];//反转delay(15000);}if(k1==0)break;//k1按下后停止反转if(k3==0)break;}//k3按下后停止反转}}}voidmain(){while(1){keypros();//按键处理函数}}四、实验结果1、按下k1正转并保持,按下k2正转停止反转开始并保持,按下k3停止所有动作。其硬件调试结果如下:六、心得体会1、通过本次实验我们进一步理解了步进电机的运行原理;2、在本次实验刚开始我们知识实现按钮点动电机运行短时间,未能达到我们想要的效果,因此我们通过查阅资料以及问老师同学们,最后通过在按下开关后通过while循环使电机进入无限循环,直到反转信号给入再跳出while循环进入下一步;3、本次实验的的难点在于步进电机控制步进电机的程序设计,需要需要有一定的单片机片机编程编程基础。(注:仅作参考)
本文标题:步进电机实验
链接地址:https://www.777doc.com/doc-5742697 .html