基于单片机的步进电机控制系统设计--学位论文

上传人:痛*** 文档编号:205099370 上传时间:2023-04-28 格式:DOC 页数:32 大小:4.38MB
收藏 版权申诉 举报 下载
基于单片机的步进电机控制系统设计--学位论文_第1页
第1页 / 共32页
基于单片机的步进电机控制系统设计--学位论文_第2页
第2页 / 共32页
基于单片机的步进电机控制系统设计--学位论文_第3页
第3页 / 共32页
资源描述:

《基于单片机的步进电机控制系统设计--学位论文》由会员分享,可在线阅读,更多相关《基于单片机的步进电机控制系统设计--学位论文(32页珍藏版)》请在装配图网上搜索。

1、 单片机技术与应用课程设计题 目步进电机控制系统设计院 系物理与电子工程学院年 级2012级专 业电子信息工程班 级电信12班学 号160412107、160412125姓 名何剑、吴宇浩指导教师周学礼设计时间2015.06.15-2015.07.10课程设计独创性声明:该课程设计是通过我们小组成员研究合作共同完成。小组中每个人都付出了努力和汗水。小组成员之间配合默契,分工明确。我们在题目的基础上有所突破。除了文中特别加以标注的参考文献外,本次课程设计中不包含其他人已经发表或撰写过的研究成果。学生签名:实训报告成绩:项目评分比例平 时 考 核30%实 训 报 告30%答 辩40%实训成绩指导教

2、师(签字):年 月 日步进电机控制系统设计摘要本设计通过ATMEL89C51单片机对步进电机进行控制,主要介绍了步进电机控制器、驱动电路和LED显示电路的设计,实现了步进电机的控制。具有以下功能:1、按下不同的键,分别使步进电机实现顺时针和逆时针旋转;2、电机运转状态可以是正反转,加速减速;3、通过LED数码管显示电机运行状态特点。该系统具有成本低、控制方便的特点。关键词:单片机 步进电机 调速控制Stepper motor control system designAbstractThe design by ATMEL89C51 Microcontroller stepper motor c

3、ontrol, mainly the stepper motor controller, drive circuit and LED display circuit design to achieve a stepper motor control. It has the following features: 1. Press different keys, respectively stepper motor clockwise and counterclockwise; 2, motor running state may be reversing, acceleration and d

4、eceleration; 3, through the LED digital display motor running features. The system is low cost, convenient control features.Key words: microcontroller; Stepper motor; Speed Control常熟理工学院课程设计目录1.引言31.1步进电机31.2研究的目的和意义31.3步进电机工作原理41.3.1步进电机的控制41.3.2步进电机的工作过程41.3.3步进电机的转速计算52.系统概述62.1系统实现功能62.2系统总体构成62

5、.3系统工作流程72.3.1主程序框图72.3.2按键处理程序框图83.硬件电路设计93.1单片机最小系统92.3.2 复位电路102.3.3 振荡电路113.3按键电路模块123.4数码管显示电路模块123.4.1位码选择电路133.4.2 LED电路143.5电机驱动模块144.软件电路设计154.1按键处理程序设计154.2电机旋转程序设计164.3数码管显示程序设计185.系统调试205.1 软件仿真205.2 实物调试205.3 调试结果及现象说明216.总结227.参考文献238.附件238.1程序清单248.2 DXP原理图278.3 Proteus仿真图288.4硬件实物图29

6、1.引言1.1步进电机步进电机是一种将电脉冲转化为角位移的执行机构。电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。步进电机最早是在1920年由英国人所开发。1950年后期晶体管的发明也逐渐应用在步进电机上,这对于数字化的控制变得更为容易。以后经过不断改良,使得今日步进电机已广泛运用在需要高定位精度、高分解性能、高响应性、信赖性等灵活控制性高的机械系统中4。在生产过程中要求自动化、省人力、效率高的机器中,我们很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要精确操作各项指令动作的灵活控制性场合步进电机用得最多。步进

7、电机作为执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化控制系统中。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用14。1.2研究的目的和意义步进电机是将电脉冲信号变换成角位移或直线位移的执行部件。步进电机可以直接用数字信号驱动,使用非常方便。一般电动机都是连续转动的,而步进电动机则有定位和运转两种基本状态,当有脉冲输入时步进电动机一步一步地转动,每给它一个脉冲信号,它就转过一定的角度。步进电动机的角位移量和输入脉冲的个数严格成正比,在时间上与输入脉冲同步,因此只要控制输入脉冲的数量、频率及电动机绕组通电的相序,便可获得所需的转角、转速及转动方向5

8、。在没有脉冲输入时,在绕组电源的激励下气隙磁场能使转子保持原有位置处于定位状态。因此非常适合于单片机控制。步进电机还具有快速启动、精确步进和定位等特点,因而在数控机床,绘图仪,打印机以及光学仪器中得到广泛的应用。步进电动机已成为除直流电动机和交流电动机以外的第三类电动机。步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。随着微电子和计算机技术的发展,步进电动机的需求量与日俱增,研制步进电机驱动器及其控制系统具有十分重要的意义。1.3步进电机工作原理1.3.1步进电机的控制1. 换相顺序控制:通电换相这一过程称为脉冲分配。例如:混合式步进电

9、机的工作方式,其各相通电顺序为A-B-C-D,通电控制脉冲必须严格按照这一顺序分别控制A,B,C,D相的通断。2.控制步进电机的转向控制:如果给定工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反转。3.控制步进电机的速度控制:如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。1.3.2步进电机的工作过程图1.1步进电机原理图开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。当开关SC接通电源,SB、SA、S

10、D断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度1。单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图1.2a、b、c所示:a.单四拍 b. 双四拍 c八拍图

11、1.2步进电机工作时序波形图对步进电机四个绕组依次实现如下方式的循环通电控制:单四拍运行:正转A-B-C-D; 反转D-C-B-A双四拍运行:正转AB-BC-CD-DA;反转DC-CB-BA-AD八拍运行: 正转A-AB-B-BC-C-CD-D-DA本实验使用的是单双八拍循环控制1.3.3步进电机的转速计算四相步进电机有两种运行方式,一、四相四拍;二、四相八拍。1.拍数:完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB,四相八拍运行方式即 A-AB-B-BC-C-CD-D-DA-A.2.步距角

12、:对应一个脉冲信号,电机转子转过的角位移用表示。=360度(转子齿数J*运行拍数),以常规二、四相,转子齿为50齿电机为例。四拍运行时步距角为=360度/(50*4)=1.8度(俗称整步),八拍运行时步距角为=360度/(50*8)=0.9度(俗称半步)11。这两个概念清楚后,我们再来计算转速,以基本步距角1.8的步进电机为例(现在市场上常规的二、四相混合式步进电机基本步距角都是1.8),四相八拍运行方式下,每接收一个脉冲信号,转过0.9,如果每秒钟接收400个脉冲,那么转速为每秒400X0.9=360,相当与每秒钟转一圈,每分钟60转。其他情况同理可以计算得出。2.系统概述2.1系统实现功能

13、1、按下不同的键,分别使步进电机实现正反旋转;2、电机运转状态可以是正反转,加速减速;3、通过LED数码管显示电机转速与运行状态特点;4、按下复位键即可停止运行。2.2系统总体构成系统由AT89C52单片机、复位电路和晶振电路构成的单片机最小系统,按键电路模块,数码管显示模块和电机驱动模块构成。89C52单片机单片机最小系统模块按键电路模块数码管显示模块电机驱动模块图2.1系统总体构成框架图2.3系统工作流程2.3.1主程序框图开始初始化定义引脚数据等声明定义延时、电机旋转、显示函数等按键处理程序调用电机旋转程序调用数码管显示程序等待按键选择正反转按键选择加减速电机正反转电机加减速显示电机正反

14、转显示电机转速图2.2. 主程序框图系统主程序先要定义相关引脚数据,声明相关函数,然后进入到主程序,主程序我这边是放的按键处理程序,通过按键选择正反加减速;按键处理程序之后是调用电机旋转函数,实现电机的正反加减速运行;电机旋转程序之后是调用数码管显示程序,用来显示电机正反加减速和转速;然后在进行按键处理程序,循环进行。2.3.2按键处理程序框图按键处理程序K1按下?电机加速电机正转电机反转电机减速K2按下?K3按下?K4按下?图2.3 按键处理程序框图按键处理程序放在主函数里面,主要判断按键状态,如果有按键按下,那么定义相关数据,与之后电机旋转函数共同实现相关功能。3.硬件电路设计硬件方面采用

15、的是普中科技的一款STC89C52单片机开发板,其具备本次设计所需的所有模块。查看其单片机开发板说明得知,各个模块之间的相关电路已经通过一定的方式连接,所以在硬件设计过程中需要根据其说明来连线,也需要更改相关程序来适应其电路。3.1单片机最小系统单片机最小系统或者称为最小应用系统,就是用最少的元件组成的单片机可以工作的系统,对 52系列单片机来说,最小系统一般应该包括:单片机、复位电路、晶振电路。图3.1最小系统2.3.1 AT89C52单片机简介AT89C52单片机是ATMEL公司推出的高档型AT89S系列单片机中的增强型产品。关于其功能原理及其应用不再赘述。这里只介绍本实验用到的端口和功能

16、。(1)VCC(40):电源+5V。(2)VSS(20):接地,也就是GND。(3)XTL1(19)和XTL2(18):振荡电路。单片机是一种时序电路,必须有脉冲信号才能工作,在它的内部有一个时钟产生电路,有两种振荡方式,一种是内部振荡方式,只要接上两个电容和一个晶振即可;另一种是外部振荡方式,采用外部振荡方式时,需在XTL2上加外部时钟信号。(4)PSEN(29):片外ROM选通信号,低电平有效。(5)ALE/PROG(30):地址锁存信号输出端/EPROM编程脉冲输入端。(6)RST/VPD(9):复位信号输入端/备用电源输入端。(7)EA/VPP(31):内/外部ROM选择端(8)P0口

17、(39-32):双向I/O口。(9)P1口(1-8):准双向通用I/0口。(10)P2口(21-28):准双向I/0口图3.2. AT89C52单片机引脚图2.3.2 复位电路复位电路采用手动复位和上电自动复位。上电自动复位:在单片机上电的瞬间,RC电路充电,由于电容上电电压不能突变,所以RST引脚出现高电平,RST引脚出现的高电平将会随着对电容C的充电过程而逐渐回落。手动复位:当按下复位按钮时,RST出现高电平,实现复位。本设计方案中将复位按键作为停止键使用,当按下复位按钮之后,电路停止运行,回到刚通电时状态。图3.3复位电路2.3.3振荡电路振荡电路与复位电路组成单片机最小系统,本电路为1

18、2MHz晶振电路。图3.4晶振电路3.3按键电路模块K1K4为本次设计的实现点机正反加减速旋转的开关按键,与P3口相连。K2,K3为正反转控制按键,K1,K4为加减速控制按键,当K2或者K3按下时,电机才会转动。图3.5独立按键电路3.4数码管显示电路模块数码管显示电路由74573及数码管构成,与单片机P0口相连。数码管显示电路必须要和138译码器电路组合使用才能正常显示相关数字,否则无效。本设计采用的是前三位显示电机转速,后两位显示电机正反转(数字1和2表示)和加减速(数字3和4表示)。图3.6.数码管显示电路3.4.1位码选择电路位码选择电路采用138译码器在本电路中起到位码选择的作用,与

19、P2口相连,本设计需要用到总共8个数码管,其中有字符显示的有5个。图3.7 138译码器3.4.2 LED电路由于在硬件方面缺少步进电机,所以采用LED发光二极管代替步进电机,实现现象(仿真中不涉及,在硬件上体现)。图3.8 LED电路3.5电机驱动模块本设计采用UN2003驱动五项四线步进电机。图3.9 UN2003电机驱动电路4.软件电路设计4.1按键处理程序设计4.1.1按键处理程序框图按键处理程序K1按下?电机加速电机正转电机反转电机减速K2按下?K3按下?K4按下?图4.1 按键处理程序框图按键处理程序放在主函数里面,主要判断按键状态,如果有按键按下,那么定义相关数据,与之后电机旋转

20、函数共同实现相关功能。4.1.2按键处理程序代码if(K1=0)/判断K1按键是否按下 while(!K1); n=1; /若K1按键按下,则n记为1 if(K2=0) /判断K2按键是否按下 while(!K2); n=2;/若K2按键按下,则n记为2 if(K3=0)/判断K3按键是否按下 while(!K3); m=3; /若K3按键按下,则m记为3Speed=10; /转速变量为10 if(K4=0)/判断K4按键是否按下 while(!K4); m=4; /若K4按键按下,则m记为4Speed=20; /转速变量为20 4.2电机旋转程序设计4.2.1电机旋转程序框图电机旋转程序n=

21、1电机正转电机反转电机加减速n=2Speed值调节转速图4.2电机旋转程序框图电机旋转程序为调用函数,通过判断按键处理程序给出的n的值来判定是正转还是反转,判断m的值来确定加减速。4.2.2电机旋转程序代码void Motor() unsigned char i;for(i=0;i8;i+)if(n=1) GPIO_MOTOR = FFWi&0x1f; /取数据if(n=2) GPIO_MOTOR = FFZi&0x1f; /取数据Delay(Speed); /调节转速display();/调用显示函数4.3数码管显示程序设计4.3.1数码管显示框图数码管显示程序n=?数码管显示n值数码管显示

22、m值数码管显示转速m=?计算转速 图4.3数码管显示框图数码管显示电路主要包含显示电机转速,电机所处正反加减状态的功能。通过138译码器电路选择相应位码。4.3.2数码管显示程序代码void display() LSA=1;LSB=0;LSC=0; /数码管位选GPIO_DIG=DIG_CODEm; /送段码,此处为高低速显示Delay(2);LSA=0;LSB=0;LSC=0; /数码管位选GPIO_DIG=DIG_CODEn; /送段码,此处为正反转显示Delay(2);LSA=1;LSB=1;LSC=1; /数码管位选GPIO_DIG=DIG_CODEbw;/送段码,此处为转速百位显示D

23、elay(2);LSA=0;LSB=1;LSC=1; /数码管位选GPIO_DIG=DIG_CODEsw; /送段码,此处为转速十位显示Delay(2);LSA=1;LSB=0;LSC=1; /数码管位选GPIO_DIG=DIG_CODEgw; /送段码,此处为转速个位显示Delay(2);5.系统调试5.1 软件仿真利用Proteus仿真软件按照电路DXP原理图进行仿真电路的搭建,并进行相关调试与仿真,仿真图结果下图5.1、图5.2所示:图5.1 仿真图数码管结果图5.2 仿真图电机仿真结果为高速正转,转速187转每分钟。Proteus仿真图全图见附件。5.2 实物调试开发板我们选择的是普中

24、科技的一款STC89C51单片机开发板,由于没有步进电机,所以为了实现功能,用了4个led 发光二极管来代替步进电机,通过观察发光二极管的点亮顺序与亮灭速度来表现步进电机的正反、快慢旋转。实物图如下图所示(图示为高速正转,转速187转/min): 图5.3 硬件实物结果图5.3 调试结果及现象说明软件调试实现了按键控制电机正反高低速旋转运行与转速显示,硬件调试则实现了led数码管正反快慢速循环点亮与数码管显示。相关现象说明如下表表5.1与表5.2所示:表5.1:数码管显示与电机运行关系表第7位显示第8位显示3401正转高速正转慢速正转初速2反转高速反转慢速反转初速0待机待机待机表二:按键与电机

25、运行关系表后按先按K1K4无按键复位K2正转高速正转慢速正转初速停止运行K3反转高速反转慢速反转初速停止运行无按键不运行不运行不运行停止运行复位停止运行停止运行停止运行停止运行6.总结该系统设计通过单片机AT89S52来控制步进电机的运转状况,实现了占用CPU时间少,效率高;易控制步进电机的转速;易控制电机的转向;提高了步进电机的步进精度等。本次课程设计在实现过程中,出现的问题主要在数码管显示方面。在基础电路设计方面,通过K1K4按键实现步进电机正反加减速运行方面实现较为容易,当加上数码管显示电路就出现了不少问题。经过不断的调试,修改延时时间,最后基本解决问题。通过这次的单片机课程设计,我们收

26、获了很多。对单片机,尤其是89c51单片机的理解又进了一步,对c语言编程有了更清楚的认识,更是领略了单片机世界的神奇。7.参考文献1张洪润,蓝清华. 单片机应用技术教程M.北京:清华大学出版社,1997.2秦曾煌. 电工学M.北京:高等教育出版社,1999.3常斗南,等. 可编程序控制器原理、应用、实验M.北京:机械工业出版社,1998.4于海生,等. 微型计算机控制技术M.北京:清华大学出版社,1999.5王福瑞,等. 单片机微机测控系统设计大全M.北京:北京航空航天大学出版社,1998.6陈理壁. 步进电机及其应用M.上海:上海科学技术出版社,1989.7刘保延,等. 步进电机及其驱动控制

27、系统M.哈尔滨:哈尔滨工业大学出版社,1997.8季维发,过润秋,严武升等. 机电一体化技术M.北京:电子工业出版社,1995.9郭敬枢,庄继东,孔峰. 微机控制技术M.重庆:重庆大学出版社,1994.10刘国荣. 单片微型计算机技术M.北京:机械工业出版社,1996.11王福瑞. 单片微机测控系统设计大全M.北京:北京航空航天大学出版社,1998.12何立民. 单片机应用技术选编M.北京:北京航空航天大学出版社,1993.13 康华光,皱筹彬. 电子技术基础(数字部分)M.高等教育出版社.200014 王昊,李昕. 集成运放应用电路设计360例M.电子工业出版社.200715 康华光,陈大钦

28、. 电子技术基础(模拟部分)M.高等教育出版设.200016 张庆双. 电源应用电路M.机械工业出版社.200517 张先庭主编. 单片机原理、接口与C51应用程序设计M.国防工业出版社.201118 李光飞, 楼苗然主编. 51系列单片机M.北京航空航天大学出版社.20038.附件8.1程序清单/*/名 称:步进电机控制系统设计/功 能:实现电机的正反转,快慢转,以及电机的转速显示/*/#include reg51.h#defineGPIO_MOTOR P1/定义端口#define GPIO_DIG P0sbit K1=P31; sbitK2=P32;sbit K3=P30;sbit K4=

29、P33;sbit LSA=P22;sbitLSB=P23;sbit LSC=P24;unsigned char code FFW8=0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9;/正向驱动数组unsigned char code FFZ8=0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1; /反向驱动数组unsigned char code DIG_CODE10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/数码管段码09unsigned char Speed,m,n,z,b

30、w,gw,sw;void Delay(unsigned int t);void Motor(); void display();/* 函 数 名 : Delay* 函数功能 : 延时函数*/void Delay(unsigned int t) unsigned int k;while(t-)for(k=0; k80;k+) /* 函 数 名 : main* 函数功能 : 主函数*/void main(void) Speed=15; /定义转速变量,初始值为15 m=0; /初始速度档位显示为0 while(1) if(K1=0)/判断K1按键是否按下 while(!K1); n=1; /若K1

31、按键按下,则n记为1 if(K2=0) /判断K2按键是否按下 while(!K2); n=2;/若K2按键按下,则n记为2 if(K3=0)/判断K3按键是否按下 while(!K3); m=3; /若K3按键按下,则m记为3Speed=10; /转速变量为10 if(K4=0)/判断K4按键是否按下 while(!K4); m=4; /若K4按键按下,则m记为4Speed=20; /转速变量为20 z=1000000/(Speed*80)*0.9/360*60; /计算转速,转速单位为rad/minbw=z/100; /取转速百位sw=z%100/10;/取转速十位gw=z%10; /取转

32、速个位 Motor();/* 函 数 名 : display* 函数功能 : 数码管显示函数*/ void display() LSA=1;LSB=0;LSC=0; /数码管位选GPIO_DIG=DIG_CODEm; /送段码,此处为高低速显示Delay(2);LSA=0;LSB=0;LSC=0; /数码管位选GPIO_DIG=DIG_CODEn; /送段码,此处为正反转显示Delay(2);LSA=1;LSB=1;LSC=1; /数码管位选GPIO_DIG=DIG_CODEbw;/送段码,此处为转速百位显示Delay(2);LSA=0;LSB=1;LSC=1; /数码管位选GPIO_DIG=

33、DIG_CODEsw; /送段码,此处为转速十位显示Delay(2);LSA=1;LSB=0;LSC=1; /数码管位选GPIO_DIG=DIG_CODEgw; /送段码,此处为转速个位显示Delay(2);/* 函 数 名 : Motor* 函数功能 : 电机旋转函数*/ void Motor() unsigned char i;for(i=0;i8;i+)if(n=1) GPIO_MOTOR = FFWi&0x1f; /取数据if(n=2) GPIO_MOTOR = FFZi&0x1f; /取数据Delay(Speed); /调节转速display();/调用显示函数8.2 DXP原理图图8.2DXP原理图8.3 Proteus仿真图图8.3 Proteus仿真图8.4硬件实物图图8.4 .硬件实物图29

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!