自动化专业综合设计报告自动化专业综合设计报告设计题目:步进电机单片机控制系统的设计所在实验室:指导教师:孙红霞学生姓名班级文自112-2学号201190519238成绩评定:自动化专业综合设计报告一、设计目的二、设计要求三、设计内容(可加附页)1.所用设备与器材本设计需要的硬件设备有89C52主控一个,六线制步进电机一台,LN2003达林顿驱动,12M晶振,LED灯,开关,电阻,电容,+5V/+12V电源等。2..硬件方案由于单片机的输出电流有限不可能直接驱动步进电机,所以用LN2003作为驱动部分。用按键控制步进电机的运行,五个按键分别为正转、反转、加速、减速、停止。并且用LED作为指示灯。3..软件方案为了节约空间正反转用数组,通过C语言编写核心模块对步进电机进行控制。最终编写出一个完整步进电机控制程序,能够调节步进电机的转向和速度。由于转速是通过调节脉冲频率实现的,因此设计脉冲分配采用完全软件方式,既按照给定的通电换向顺序,通过单片机I/O口向驱动电路发出控制脉冲,这样就避免采用复杂脉冲分配芯片,来实现单片机对步进电机的控制。程序设计按照掌握计算机相序控制方法,采用适合四相单四拍、双四拍和单、双八拍的循环移位法,并且在现实操作中解决堵转和启动失步等问题。4.方案论证4.1步进电机的工作原理步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。步进电机区别于其他控制电机的最大特点是:它是通过输入脉冲信号来进行自动化专业综合设计报告控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。步进电机的驱动电路根据控制信号工作,控制信号由单片机产生。其基本原理如下:(1)控制换相顺序通电换相这一过程称为脉冲分配。四相步进电机的工作方式如下:单相四拍工作方式:正转通电顺序为:A-B-C-D-A反转通电顺序为:D-C-B-A-D四相八拍工作方式:正转通电顺序为:A-AB-B-BC-C-CD-D-DA-A反转通电顺序为:D-DC-C-CB-B-BA-A-AD-D控制步进电机的转向。如果给定工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反转。(2)控制步进电机的速度如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。调整单片机发出的脉冲频率,就可以对步进电机进行调速。4.2步进电机的驱动各种电子设备的最末级一般需要功率放大,步进电动机驱动也是这样。为使步进电动机满足各种需要的输出,驱动级必须对电动机绕组提供足够的电压和电流。4.3开关和指示自动化专业综合设计报告5.调试过程先画出硬件电路,然后编写程序,从按键出发先写正反转调通之后再加加减速,最后加上LED灯指示。在调试时出现了一个错误,由于画硬件时电机选错了每次只要接通就会转动,还有就是步进电机电源不能太低,选12V正合适。步进电机的控制最关键的部分就是脉冲的环行分配,硬件方法采用环行分配器,但这样电路复杂,成本高。本系统采用软件实现脉冲的环形分配,即通过编程方法,在一定范围内自由设定步进电机的转速、往返转动的角度以及转动次数。采用软件结构简单,可自由编程,实现电机的灵活控制。6.设计代码#includereg52.h#defineucharunsignedchar#defineuintunsignedint#defineMotorDataP1//步进电机控制接口定义ucharphasecw[8]={0x10,0x30,0x20,0x60,0x40,0xc0,0x80,0x90};//正转电机导通相序D-C-B-Aucharphaseccw[8]={0x90,0x80,0xc0,0x40,0x60,0x20,0x30,0x10};//反转电机导通相序A-B-C-Dsbitk1=P0^0;sbitk2=P0^1;sbitk3=P0^2;sbitk4=P0^3;sbitd1=P0^4;sbitd2=P0^5;自动化专业综合设计报告sbitd3=P0^6;sbitd4=P0^7;uintS;//ms延时函数voidDelay_xms(uintx){uinti,j;for(i=0;ix;i++)for(j=0;j112;j++);}//顺时针转动voidMotorCW(void){uchari;for(i=0;i8;i++){MotorData=phasecw[i];Delay_xms(S);//转速调节}}//逆时针转动voidMotorCCW(void){uchari;for(i=0;i8;i++){MotorData=phaseccw[i];Delay_xms(S);//转速调节}}//停止转动voidMotorStop(void){MotorData=0x0F;}//主函数voidmain(void){uinti;Delay_xms(50);//等待系统稳定while(1)自动化专业综合设计报告{while(k1==0){Delay_xms(10);if(k1==0)S=50;MotorStop();d1=0;d2=1;d3=1;d4=1;for(i=0;i200;i++){MotorCW();//顺时针转动}while(!k1);}while(k2==0){Delay_xms(10);if(k2==0)S=50;MotorStop();d2=0;d1=1;d3=1;d4=1;for(i=0;i200;i++){MotorCCW();//逆时针转动}while(!k2);}while(k3==0){Delay_xms(10);if(k3==0)d1=1;d2=1;d3=0;d4=1;for(S=50;S200;S++){MotorCW();//顺时针转动}while(!k3);}while(k4==0){Delay_xms(10);if(k4==0)d1=1;d2=1;d3=1;d4=0;for(S=100;S10;S--){自动化专业综合设计报告MotorCW();//顺时针转动}while(!k4);}}}7.Pretues仿真系统图四、设计实验结果及分析按下第一个按钮步进电机正转,按下第二个按钮步进电机反转,按下第三个按钮步进电机加速转动,按下第四个按钮步进电机减速转动。自动化专业综合设计报告五、结论整个系统设计在设计方案的指导下,根据硬件与软件相结合的原则,通过各部分的协调完成了设计任务,达到了设计要求。但系统框架设计和程序仍有漏洞,单元设计部分不完善,需要加以改进。六、设计感受准备越充分,设计越顺利。古人云,磨刀不误砍柴工。前期的知识储备、文献储备、材料准备、方法准备可以避免手忙脚乱,充分的预准备使你充满信心。一步一个脚印,就不必“从头再来”。最不能容忍的是在开始的几步偷懒,造成后面总有一些无法排除的障碍。一半时间做设计,一半时间看文献。千万不能把时间全部消耗在电脑上。看文献、看书、看别人的操作、听别人的经验、研究别人的思路,边做边思考。要学会比较,不要盲从。否则,会被一些小小的问题困扰许久。通过这次综合设计,使我学到了不少实用的知识,更重要的是,做该设计的过程,思考问题的方法,这与做其他的一切是通用的,真正使我们受益匪浅.