1、步进电机控制系统毕业设计信息职业技术学院毕业设计说明书(论文)设计(论文)题目:_步进电机控制系统_专 业:_电子信息工程技术_班 级:_电信07-2班_学 号:_ _姓 名:_ _指导教师:_ _ 2009年 12 月 26 日信息职业技术学院毕业设计(论文)任务书学号班级电信07-2班专业电子信息工程技术设计(或论文)题目步进电机控制系统指导教师姓名职 称工作单位及所从事专业联系方式备 注副教授院电子信息工程技术专业教学04设计(论文)内容:1、用单片机作为开发工具设计一个步进电机控制系统;2、能够实现匀速运转、加速运转、减速运转、正反转切换功能;3、可通过键盘选择步进电机的转速、方向;4
2、、能用Proteus软件进行仿真。进度安排:1、第6-7周:确定设计任务,查找资料,拟定设计方案; 2、第8-9周:软、硬件功能划分,系统硬件电路的设计; 3、第10-11周:软件结构设计、设计软件流程图并编制相应的软件;4、第12-13周:系统工作原理分析,综合调试;5、第14-15周:整理资料,拟定毕业设计报告初稿;6、第16周:检查定稿,准备答辩; 7、第17-18周:答辩。主要参考文献、资料(写清楚参考文献名称、作者、出版单位):1 樊明龙任丽静编单片机原理与应用M化学工业出版社,20052 徐爱卿编单片微型计算机应用和开发系统M北京航空航天大学出版社,19983 张伟编单片机原理及应
3、用M机械工业出版社20034 胡汉才编单片机原理及接口技术M清华大学出版社20055 吴金戌编8051单片机实践与应用M清华大学出版社,2003审批意见教研室负责人:年 月 日备注:任务书由指导教师填写,一式二份。其中学生一份,指导教师一份。摘 要步进电机作为执行元件,是机电一体化的关键产品之一, 普遍应用在各类自动化控制系统中。随着微电子和运算机技术的进展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。步进电机是将电脉冲信号转变成角位移或线位移的开环控制元件。在非超载的情形下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载转变的影响,即给电机加一个脉冲信号,电机则转
4、过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无积累误差等特点。使得在速度、位置等控制领域用步进电机来控制变的超级的简单。普遍应用于自动控制和精密机械等领域,尤其在需要精准定位时应用得更为普遍。本控制系统是采用单片机提供电脉冲信号通过驱动电路放大信号后,驱动步进电机转动。通过软硬件结合使得步进电机可实现匀速运转、加速运转、减速运转、正反转切换等功能。本系统硬件主要由最小应用系统、键盘控制电路和功能电路组成。其中单片机采用AT89C51驱动,通过由ULN2003芯片组成的放大电路,差遣四相八拍步进电机35BYJ46型。关键词:AT89C51单片机;步进电机;ULN2003;绪
5、论随着经济建设和城市的迅速进展,步进电机控制系统在工业进程控制中取得了普遍的应用,尤其在需要精准定位场合中应用得更为普遍。步进电机是一种将电脉冲转换成相应角位移或线位移的电磁机械装置,也是一种把输出机械位移增量和输入数字脉冲对应的驱动器件。步进电机具有快速启停能力,只要电机的负荷不超过它所能提供的动态转矩,就可以通过输入脉冲来控制它在一刹时启动和停止。步进电机控制系统是采用单片机提供电脉冲信号通过驱动电路放大信号后,驱动步进电机转动。使电性能实现正向或反向运转,电性能加速运转、减速运转,并能按给定速度匀速运转。系统设计包括硬件设计和软件设计。硬件设计主要包括最小应用系统、I/O接口电路和功能电
6、路的设计。软件设计包括流程图设计和程序设计。程序主要包括步进电机正向、逆向控制程序,加速、减速控制程序,按给定速度匀速运转程序,延时程序。在本控制系统中,单片机采用AT89C51芯片,步进电机为35BYJ46型。通过软硬件结合使得步进电机可实现按给定速度匀速运转、加速运转、减速运转、正反转切换等功能,可通过键盘选择步进电机的转速、方向,同时还考虑了系统的抗干扰技术。步进电机的步距角和转速只和输入的脉冲频率有关,与环境温度、气压、冲击和振动无关,也不受电网电压的波动和负载转变的影响,它每转一周都有固定的步数,步进精准和步距误差不会长期积累。步进电性能够对旋转角度和转动速度进行高精度的控制,因此,
7、作为控制执行部件,步进电机在需要精准定位场合应用普遍。第1章 硬件系统设计11最小应用系统设计单片机的最小应用系统是指能够维持单片机运行的最简单的配置系统,如图1-1所示。最小应用系统主要由AT89C51单片机、时钟电路和复位电路组成。111 AT89C51单片机AT89C51单片机是片内无程序存储器的单片机。在其扩展片外程序存储器时,由于P0口是数据线、地址线分时复用的,故P0口输出的低8位必需经地址锁存器进行锁存,提供地址总线的低8位A0A7。由于P2口一直提供高8位地址,故不需要外加地址锁存器,直接提供地址总线的高8位A8A15。在本系统设计中,由于扩展的是EPROM2716芯片,故P2
8、口直接提供地址总线的高3位。ALE用于锁存P0口输出的低8位地址的控制线。PSEN用于片外程序存储器的读控制。AT89C51是40引脚双列直插式封装的集成电路芯片,基引脚排列如图1-2所示。4个并行口共有32根引脚,能够别离作地址线、数据线和I/O线;2根电源线;2桶时钟振荡电路引脚和4根控制线。AT89C51单片机引脚功能列表:1CPUCPU 也叫中央处置器,是单片机的核心部件,主要完成单片机的运算和控制功能。其内部由运算器和控制器组成。(1)运算器:包括算术逻辑单元ALU、布尔处置器、累加器ACC、寄放器B、暂存器TMP1和TMP二、程序状态字PSW寄放字PSW寄放器及十进制调整电路等。(
9、2)控制器:包括按时控制逻辑、指令寄放器、译码器和信息传送控制部件等。以实现控制功能。2内部存储器单片机内的存储器包括程序存储器和数据存储器,它们彼此独立。(1)程序存储器(ROM):为只读存储器,用于寄存程序指令、常数及数据表格。(2)数据存储器(RAM):为随机存储器,用于寄存数据。数据存储器又可分为北部数据存储器和外部数据存储器。3按时器/计数器MCS-51单片机内部有2个16位的按时器/计数器,用于实现北部按时或外部计数的功能,并一路按时或计数的结果来实现控制功能。4中断系统控制MCS-51单片机具有中断功能,以知足控制应用的需要。MCS-51共有5个中断源,即外部中断2个,按时器/计
10、数器中断2个,串行口中断一个。全数中断可分为高级和低级两个优先级别。5并行I/O口MCS-51单片机内部共有四个8位的并行I/O口,以实现数据的并行输入和输出。6全双工串行口MCS-51单片机还有一个全双工的串行口,以实现单片机与外部之间的串行数据传送。112 时钟电路单片机的时钟信号用来提供单片机内各类微操作的时刻基准,时钟电路用于产生单片机工作所需要的时钟信号。MCS-51单片机的时钟信号通常常利用两种方式取得:内部振荡方式和外部振荡方式。本系统设计采用内部振荡方式,如图1-3所示。MCS-51片内有个高增益的反相放大器,其输入端(XTAL1)和输出端(XTAL2)用于外接石英晶体振荡器或
11、陶瓷谐振器和微调电容,组成了稳固的自激振荡器,其发出的脉冲直接送入内部的时钟电路。电容C1和C2对频率有微调作用,电容值一般取30pF左右,振荡频率范围是12MHZ。MCS-51在通常情形下,利用振荡频率为6MHZ的石英晶体,而12MHZ频率的晶体主要在高速串行通信情形下利用。振荡脉冲信号通过内部时钟发生器进行二分频以后,才能够成为单片机的时钟信号。113 复位电路复位是单片机的初始化操作,其目的是使CPU及各专用寄放器处于一个肯定的初始状态。如:把PC的内容初始化为0000H,使单片机从0000H单元开始执行,除进入系统的正常初始化之外,当单片机系统在运行犯错或操作错误使系统处于死锁状态时,
12、为摆脱窘境,也需要复位以使其恢复正常工作状态。RST端的外部复位电路有两种操作方式:上电自动复位和按键手动复位。按键手动复位有电平方式和脉冲方式两种,本系统设计采用的是上电复位,如图1-4所示。12功能电路设计121 键盘控制电路键盘是运算机不可缺少的输入设备,是实现人与运算机对话的纽带,在单片机应用系统中常常利用独立式键盘与行列式键盘(矩阵式键盘)。独立式键盘配置灵活,软件结构简单,适合于按键数量较少的场合,故本系统设计中采用独立式键盘。独立式键盘是指各按键彼此独立地接通一条输入数据线,当任何一个键按下时,与之相连的输入数据线即被清0(低电平),而平时该线为1(高电平),键盘电路接一个与门电
13、路就组成了完整的键盘控制电路。如图1-五、1-6所示。122 步进电机电路步进电机是一种将电脉冲转换成相应角位移或线位移的电磁机械装置,也是一种把输出机械位移增量和输入数字脉冲对应的驱动器件。步进电机具有快速启停能力,只要电机的负荷不超过它所能提供的动态转矩,就可以通过输入脉冲来控制它在一刹时启动和停止。步进电机的步距角和转速只和输入的脉冲频率有关,与环境温度、气压、冲击和振动无关,也不受电网电压的波动和负载转变的影响,它每转一周都有固定的步数,步进精准和步距误差不会长期积累。因此,步进电机在需要精准定位场合应用普遍。本设计选用35BYJ46型四相八拍步进电机。通常电机的转子为永磁体,当电流流
14、过定子绕组时,定子绕组产生一个矢量磁场,该磁场会带动转子旋转必然角度,使得转子的一对磁场方向与定子磁场一致。当定子的矢量磁场旋转一个角度,转子也随着该磁场转一个角度。每输入一个电脉冲,电动机转动一个角度前进一步。它输出的角位移与输入的脉冲数成正比,转速与脉冲频率成正比。改变绕组通电的顺序,电动机就会反转。所以可用控制脉冲数量、频率及电机各相绕组的通电顺序来控制步进电机的转动。电机四相绕组如图1-7所示。123 ULN2003电路AT89C51单片机通过ULN2003芯片组成的放大电路来驱动四相八拍步进电机。ULN2003是高耐压、大电流达林顿陈列,有七个硅NPN达林顿管组成。ULN2003的每
15、一对达林顿都串联一个的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连。能够直接处置原先需要标准逻辑缓冲器来处置的数据。如图 1-8所示。ULN2003 工作电压高、工作电流大,灌电流可达500mA,而且能够在关态时经受50V的电压,输出还能够在高负载电流并行运行。ULN2003 采用DIP-16或SOP-16塑料封装。ULN2003的特性如表1-二、表1-3所示。13 系统工作原理步进电机控制系统原理图如附录1所示。由图可知,可通过键盘选择步进电机的转速、转向。步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此超级适合于单片机控制。
16、步进电机可分为反映式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。步进电机的驱动电路按照控制信号工作,控制信号由单片机产生。其大体原理作用如下:(1)控制换相顺序通电换相这一进程称为脉冲分派。例如:三相步进电机的三拍工作方式,其各相通电顺序为A-B-CD,通电控制脉冲必需严格依照这一顺序别离控制A,B,C,D相的通断。(2)控制步进电机的转向若是给定工作方式正序换相通电,步进电机正转,若是按反序通电换相,则电机就反(3)控
17、制步进电机的速度若是给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个机脉冲的距离越短,步进电就转得越快。调整单片机发出的脉冲频率,就可以够对步进电机进行调速。第2章 软件设计21 步进电机四相八拍工作方式211 四相八拍工作方式四相八拍方式单相绕组和双相绕组交替施加电流脉冲方式。以AT89C51的P0口接步进电机的绕组,输出控制电流脉冲。“1”通入电脉冲,“0”无电脉冲。212 步进电机转向控制步进电机按四相八拍方式来工作,在A、B、C、D四相绕组上依次输入脉冲的顺序如下所示。步进电机正转: A AB B BC C CD D DA步进电机反转: A AB B BC C C
18、D D DA由上图可见:只要控制脉冲输出的顺序改变就可以够对步进电机正/反转的控制。22 步进电机控制系统工作流程以单片机为核心,设计步进电机控制系统,具有以下功能:开机时电机不转动1按下正转键,步进电机匀速正向旋转,然后从头获取按键情形;2按下停止键,步进电机停止转动,然后从头获取按键情形;3按下反转键,步进电机匀速反向旋转,然后从头获取按键情形;4按下加速键,步进电机以当前方向加速旋转,然后从头获取按键情形;5按下减速键,步进电机在加速前提下减速到匀速旋转,然后从头获取按键情形;23系统流程图 总 结通过本次毕业设计步进电机控制系统的设计,使我从中学到许多知识。在做毕业设计的这段时刻里,通
19、过上网、在校图书馆查找资料,整理资料,尽力认真的完成了毕业设计。本次所设计的步电机控制系统是采用AT89C51型单片机驱动步进电机转动,主要由单片机最小应用进系统、扩展电路和功能电路组成。可通过键盘控制步进电机的转速、方向,使电性能实现正向或反向运转的切换,电性能加速运转、减速运转。使我对步进电机及其工作原理有了更深刻的熟悉。步进电性能够对旋转角度和转动速度进行高精度的控制。作为控制执行部件,普遍应用于自动控制和精密机械等领域,尤其在需要精准定位时应用得更为普遍。在这期间通过我的尽力和指导老师熊建云老师的耐心指导,和在同窗的帮忙下 顺利的完成了本次毕业设计,使我学会了综合性的运用三年内所学知识
20、分析解决问题,知道了如何设计一个系统,拓展了知识面,动手动笔能力取得充分锻炼,在以后的工作、学习中将受益非浅。参考文献1 樊明龙任丽静编单片机原理与应用M化学工业出版社,20052 徐爱卿编单片微型运算机应用和开发系统M北京航空航天大学出版社,19983 张伟编单片机原理及应用M机械工业出版社20034 胡汉才编单片机原理及接口技术M清华大学出版社20055 吴金戌编8051单片机实践与应用M清华大学出版社,2003附 录附录1 整机电路图附录2 源程序#include #include #include #define uc unsigned char #define ui unsigned
21、 intuc scan_key1,scan_key2; /按键功能选择,00 停止,01 正转 10 反转 uc step1,step2;static step_index;ui count1,count2; /按时 uc butter; /按键 static speed; /速度参数 /函数声明 /*void ground(step); /转步 void run1(); /正转 void run2(); /反转void stop(); /停止void delay(ui time);/*void main(void) step2=0; step1=0; P1=0xff; P0=0; EX1=1
22、; EA=1; /开中断 speed=2010; while(1) if(scan_key1=1) & (scan_key2=0) / 正转 ground(step_index); delay(speed); step_index+; /大于7,从头再来 if(step_index7) step_index=0; if(scan_key1=0)&(scan_key2=1) /反转 ground(step_index); delay(speed); step_index-; if(step_index0) /小于0,从头再来。 step_index=7; if(scan_key1=0&scan_
23、key2=0) /停止 P0=0xff; if(step1=1&step2=0) /加速 speed=speed-100; if(speed2500|speed=2500) /若是 小于了,就说明到饿低速,能够用停止按键停止。 speed=2500; /低速运行 /*/*延时子程序*/*void delay(ui time) /延时程序 for (count1=0;count1time;count1+) /此处能够用中断进行准确按时。 for(count2=0;count23;count2+);/*/*按键处置程序*/*void key(void) interrupt 2 uc i; for(
24、i=0;i200;i+); /延时防抖 if(P3_3=0) butter=P1; /扫描P1口,查找按下的键盘 switch(butter) case 0x01: scan_key1=1;scan_key2=0; break; /正常运行 ,用两个数字进行选择 case 0x02: scan_key1=0;scan_key2=0;break; /停止 case 0x04: scan_key1=0 ;scan_key2=1; break; /加速 case 0x08: step1=1;step2=0;break; /减速 case 0x10: step1=0;step2=1;break; /正
25、转 default : ; /其它值返回 P1=0XFF;/*/*转步*/*void ground(step_index) /转步 switch(step_index) case 0:/0 / 这里就说明了同步电机是怎么转的。 P0_0 = 1; P0_1 = 0; /+225 P0_2 = 0; P0_3 = 0; break; case 1:/0,1 P0_0 = 1; P0_1 = 1; /+180 P0_2 = 0; P0_3 = 0; break; case 2:/1 P0_0 = 0; P0_1 = 1; /+135 P0_2 = 0; P0_3 = 0; break; case
26、3:/1,2 P0_0 = 0; P0_1 = 1; /+90 P0_2 = 1; P0_3 = 0; break; case 4:/2 P0_0 = 0; P0_1 = 0; /+45 P0_2 = 1; P0_3 = 0; break; case 5:/2,3 P0_0 = 0; P0_1 = 0; /+360 /0 P0_2 = 1; P0_3 = 1; break; case 6:/3 P0_0 = 0; P0_1 = 0; /+315 P0_2 = 0; P0_3 = 1; break; case 7:/3,0 P0_0 = 1; P0_1 = 0; /+270 P0_2 = 0; P0_3 = 1;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1