基于单片机的步进电机控制.docx

上传人:b****6 文档编号:5371878 上传时间:2022-12-15 格式:DOCX 页数:31 大小:585.15KB
下载 相关 举报
基于单片机的步进电机控制.docx_第1页
第1页 / 共31页
基于单片机的步进电机控制.docx_第2页
第2页 / 共31页
基于单片机的步进电机控制.docx_第3页
第3页 / 共31页
基于单片机的步进电机控制.docx_第4页
第4页 / 共31页
基于单片机的步进电机控制.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

基于单片机的步进电机控制.docx

《基于单片机的步进电机控制.docx》由会员分享,可在线阅读,更多相关《基于单片机的步进电机控制.docx(31页珍藏版)》请在冰豆网上搜索。

基于单片机的步进电机控制.docx

基于单片机的步进电机控制

单片机技术与应用

课程设计

 

题目

步进电机控制系统设计

院系

物理与电子工程学院

年级

2012级

专业

电子信息工程

班级

电信12班

学号

160412107、160412125

姓名

何剑、吴宇浩

指导教师

周学礼

设计时间

2015.06.15-2015.07.10

课程设计独创性声明:

该课程设计是通过我们小组成员研究合作共同完成。

小组中每个人都付出了努力和汗水。

小组成员之间配合默契,分工明确。

我们在题目的基础上有所突破。

除了文中特别加以标注的参考文献外,本次课程设计中不包含其他人已经发表或撰写过的研究成果。

学生签名:

实训报告成绩:

项目

评分比例

平时考核

30%

实训报告

30%

答辩

40%

实训成绩

 

指导教师(签字):

年月日

 

步进电机控制系统设计

摘要

本设计通过ATMEL89C51单片机对步进电机进行控制,主要介绍了步进电机控制器、驱动电路和LED显示电路的设计,实现了步进电机的控制。

具有以下功能:

1、按下不同的键,分别使步进电机实现顺时针和逆时针旋转;2、电机运转状态可以是正反转,加速减速;3、通过LED数码管显示电机运行状态特点。

该系统具有成本低、控制方便的特点。

关键词:

单片机步进电机调速控制

Steppermotorcontrolsystemdesign

Abstract

ThedesignbyATMEL89C51Microcontrollersteppermotorcontrol,mainlythesteppermotorcontroller,drivecircuitandLEDdisplaycircuitdesigntoachieveasteppermotorcontrol.Ithasthefollowingfeatures:

1.Pressdifferentkeys,respectivelysteppermotorclockwiseandcounterclockwise;2,motorrunningstatemaybereversing,accelerationanddeceleration;3,throughtheLEDdigitaldisplaymotorrunningfeatures.Thesystemislowcost,convenientcontrolfeatures.

Keywords:

microcontroller;Steppermotor;SpeedControl

目录

1.引言3

1.1步进电机3

1.2研究的目的和意义3

1.3步进电机工作原理4

1.3.1步进电机的控制4

1.3.2步进电机的工作过程4

1.3.3步进电机的转速计算5

2.系统概述6

2.1系统实现功能6

2.2系统总体构成6

2.3系统工作流程7

2.3.1主程序框图7

2.3.2按键处理程序框图8

3.硬件电路设计9

3.1单片机最小系统9

2.3.2复位电路10

2.3.3振荡电路11

3.3按键电路模块12

3.4数码管显示电路模块12

3.4.1位码选择电路13

3.4.2LED电路14

3.5电机驱动模块14

4.软件电路设计15

4.1按键处理程序设计15

4.2电机旋转程序设计16

4.3数码管显示程序设计18

5.系统调试20

5.1软件仿真20

5.2实物调试20

5.3调试结果及现象说明21

6.总结22

7.参考文献23

8.附件23

8.1程序清单24

8.2DXP原理图27

8.3Proteus仿真图28

8.4硬件实物图29

 

1.引言

1.1步进电机

步进电机是一种将电脉冲转化为角位移的执行机构。

电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。

步进电机最早是在1920年由英国人所开发。

1950年后期晶体管的发明也逐渐应用在步进电机上,这对于数字化的控制变得更为容易。

以后经过不断改良,使得今日步进电机已广泛运用在需要高定位精度、高分解性能、高响应性、信赖性等灵活控制性高的机械系统中[4]。

在生产过程中要求自动化、省人力、效率高的机器中,我们很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要精确操作各项指令动作的灵活控制性场合步进电机用得最多。

步进电机作为执行元件,是机电一体化的关键产品之一, 广泛应用在各种自动化控制系统中。

随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用[14]。

1.2研究的目的和意义

步进电机是将电脉冲信号变换成角位移或直线位移的执行部件。

步进电机可以直接用数字信号驱动,使用非常方便。

一般电动机都是连续转动的,而步进电动机则有定位和运转两种基本状态,当有脉冲输入时步进电动机一步一步地转动,每给它一个脉冲信号,它就转过一定的角度。

步进电动机的角位移量和输入脉冲的个数严格成正比,在时间上与输入脉冲同步,因此只要控制输入脉冲的数量、频率及电动机绕组通电的相序,便可获得所需的转角、转速及转动方向[5]。

在没有脉冲输入时,在绕组电源的激励下气隙磁场能使转子保持原有位置处于定位状态。

因此非常适合于单片机控制。

步进电机还具有快速启动、精确步进和定位等特点,因而在数控机床,绘图仪,打印机以及光学仪器中得到广泛的应用。

步进电动机已成为除直流电动机和交流电动机以外的第三类电动机。

步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。

随着微电子和计算机技术的发展,步进电动机的需求量与日俱增,研制步进电机驱动器及其控制系统具有十分重要的意义。

1.3步进电机工作原理

1.3.1步进电机的控制

1.换相顺序控制:

通电换相这一过程称为脉冲分配。

例如:

混合式步进电机的工作方式,其各相通电顺序为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、SD断开时,由于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八拍

图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.步距角:

对应一个脉冲信号,电机转子转过的角位移用θ表示。

θ=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系统实现功能

1、按下不同的键,分别使步进电机实现正反旋转;

2、电机运转状态可以是正反转,加速减速;

3、通过LED数码管显示电机转速与运行状态特点;

4、按下复位键即可停止运行。

2.2系统总体构成

系统由AT89C52单片机、复位电路和晶振电路构成的单片机最小系统,按键电路模块,数码管显示模块和电机驱动模块构成。

图2.1系统总体构成框架图

 

2.3系统工作流程

2.3.1主程序框图

图2.2.主程序框图

 

系统主程序先要定义相关引脚数据,声明相关函数,然后进入到主程序,主程序我这边是放的按键处理程序,通过按键选择正反加减速;按键处理程序之后是调用电机旋转函数,实现电机的正反加减速运行;电机旋转程序之后是调用数码管显示程序,用来显示电机正反加减速和转速;然后在进行按键处理程序,循环进行。

 

2.3.2按键处理程序框图

 

图2.3按键处理程序框图

 

按键处理程序放在主函数里面,主要判断按键状态,如果有按键按下,那么定义相关数据,与之后电机旋转函数共同实现相关功能。

 

3.硬件电路设计

硬件方面采用的是普中科技的一款STC89C52单片机开发板,其具备本次设计所需的所有模块。

查看其单片机开发板说明得知,各个模块之间的相关电路已经通过一定的方式连接,所以在硬件设计过程中需要根据其说明来连线,也需要更改相关程序来适应其电路。

3.1单片机最小系统

单片机最小系统或者称为最小应用系统,就是用最少的元件组成的单片机可以工作的系统,对52系列单片机来说,最小系统一般应该包括:

单片机、复位电路、晶振电路。

图3.1最小系统

2.3.1AT89C52单片机简介

AT89C52单片机是ATMEL公司推出的高档型AT89S系列单片机中的增强型产品。

关于其功能原理及其应用不再赘述。

这里只介绍本实验用到的端口和功能。

(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口(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振荡电路

振荡电路与复位电路组成单片机最小系统,本电路为12MHz晶振电路。

图3.4晶振电路

3.3按键电路模块

K1~K4为本次设计的实现点机正反加减速旋转的开关按键,与P3口相连。

K2,K3为正反转控制按键,K1,K4为加减速控制按键,当K2或者K3按下时,电机才会转动。

图3.5独立按键电路

 

3.4数码管显示电路模块

数码管显示电路由74573及数码管构成,与单片机P0口相连。

数码管显示电路必须要和138译码器电路组合使用才能正常显示相关数字,否则无效。

本设计采用的是前三位显示电机转速,后两位显示电机正反转(数字1和2表示)和加减速(数字3和4表示)。

图3.6.数码管显示电路

3.4.1位码选择电路

位码选择电路采用138译码器在本电路中起到位码选择的作用,与P2口相连,本设计需要用到总共8个数码管,其中有字符显示的有5个。

图3.7138译码器

 

3.4.2LED电路

由于在硬件方面缺少步进电机,所以采用LED发光二极管代替步进电机,实现现象(仿真中不涉及,在硬件上体现)。

 

图3.8LED电路

3.5电机驱动模块

本设计采用UN2003驱动五项四线步进电机。

 

图3.9UN2003电机驱动电路

4.软件电路设计

4.1按键处理程序设计

4.1.1按键处理程序框图

 

图4.1按键处理程序框图

 

按键处理程序放在主函数里面,主要判断按键状态,如果有按键按下,那么定义相关数据,与之后电机旋转函数共同实现相关功能。

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记为3

Speed=10;//转速变量为10

}

if(K4==0)//判断K4按键是否按下

{

while(!

K4);

m=4;//若K4按键按下,则m记为4

Speed=20;//转速变量为20

}

4.2电机旋转程序设计

4.2.1电机旋转程序框图

图4.2电机旋转程序框图

 

电机旋转程序为调用函数,通过判断按键处理程序给出的n的值来判定是正转还是反转,判断m的值来确定加减速。

4.2.2电机旋转程序代码

voidMotor()

{

unsignedchari;

for(i=0;i<8;i++)

{

if(n==1)

GPIO_MOTOR=FFW[i]&0x1f;//取数据

if(n==2)

GPIO_MOTOR=FFZ[i]&0x1f;//取数据

Delay(Speed);//调节转速

display();//调用显示函数

}

}

4.3数码管显示程序设计

4.3.1数码管显示框图

图4.3数码管显示框图

数码管显示电路主要包含显示电机转速,电机所处正反加减状态的功能。

通过138译码器电路选择相应位码。

4.3.2数码管显示程序代码

voiddisplay()

{

LSA=1;LSB=0;LSC=0;//数码管位选

GPIO_DIG=DIG_CODE[m];//送段码,此处为高低速显示

Delay

(2);

LSA=0;LSB=0;LSC=0;//数码管位选

GPIO_DIG=DIG_CODE[n];//送段码,此处为正反转显示

Delay

(2);

LSA=1;LSB=1;LSC=1;//数码管位选

GPIO_DIG=DIG_CODE[bw];//送段码,此处为转速百位显示

Delay

(2);

LSA=0;LSB=1;LSC=1;//数码管位选

GPIO_DIG=DIG_CODE[sw];//送段码,此处为转速十位显示

Delay

(2);

LSA=1;LSB=0;LSC=1;//数码管位选

GPIO_DIG=DIG_CODE[gw];//送段码,此处为转速个位显示

Delay

(2);

}

5.系统调试

5.1软件仿真

利用Proteus仿真软件按照电路DXP原理图进行仿真电路的搭建,并进行相关调试与仿真,仿真图结果下图5.1、图5.2所示:

图5.1仿真图数码管结果

图5.2仿真图电机

仿真结果为高速正转,转速187转每分钟。

Proteus仿真图全图见附件。

5.2实物调试

开发板我们选择的是普中科技的一款STC89C51单片机开发板,由于没有步进电机,所以为了实现功能,用了4个led发光二极管来代替步进电机,通过观察发光二极管的点亮顺序与亮灭速度来表现步进电机的正反、快慢旋转。

实物图如下图所示(图示为高速正转,转速187转/min):

图5.3硬件实物结果图

5.3调试结果及现象说明

软件调试实现了按键控制电机正反高低速旋转运行与转速显示,硬件调试则实现了led数码管正反快慢速循环点亮与数码管显示。

相关现象说明如下表表5.1与表5.2所示:

表5.1:

数码管显示与电机运行关系表

第7位显示

第8位显示

3

4

0

1

正转高速

正转慢速

正转初速

2

反转高速

反转慢速

反转初速

0

待机

待机

待机

表二:

按键与电机运行关系表

后按

先按

K1

K4

无按键

复位

K2

正转高速

正转慢速

正转初速

停止运行

K3

反转高速

反转慢速

反转初速

停止运行

无按键

不运行

不运行

不运行

停止运行

复位

停止运行

停止运行

停止运行

停止运行

6.总结

该系统设计通过单片机AT89S52来控制步进电机的运转状况,实现了占用CPU时间少,效率高;易控制步进电机的转速;易控制电机的转向;提高了步进电机的步进精度等。

本次课程设计在实现过程中,出现的问题主要在数码管显示方面。

在基础电路设计方面,通过K1~K4按键实现步进电机正反加减速运行方面实现较为容易,当加上数码管显示电路就出现了不少问题。

经过不断的调试,修改延时时间,最后基本解决问题。

通过这次的单片机课程设计,我们收获了很多。

对单片机,尤其是89c51单片机的理解又进了一步,对c语言编程有了更清楚的认识,更是领略了单片机世界的神奇。

 

7.参考文献

[1] 张洪润,蓝清华.单片机应用技术教程[M].北京:

清华大学出版社,1997. 

[2] 秦曾煌.电工学[M].北京:

高等教育出版社,1999. 

[3] 常斗南,等.可编程序控制器原理、应用、实验[M].北京:

机械工业出版社,1998. 

[4] 于海生,等.微型计算机控制技术[M].北京:

清华大学出版社,1999. 

[5] 王福瑞,等.单片机微机测控系统设计大全[M].北京:

北京航空航天大学出版社,1998. 

[6] 陈理壁.步进电机及其应用[M].上海:

上海科学技术出版社,1989. 

[7] 刘保延,等.步进电机及其驱动控制系统[M].哈尔滨:

哈尔滨工业大学出版社,1997. 

[8] 季维发,过润秋,严武升等.机电一体化技术[M].北京:

电子工业出版社,1995. 

[9] 郭敬枢,庄继东,孔峰.微机控制技术[M].重庆:

重庆大学出版社,1994. 

[10] 刘国荣.单片微型计算机技术[M].北京:

机械工业出版社,1996. 

[11] 王福瑞.单片微机测控系统设计大全[M].北京:

北京航空航天大学出版社,1998. 

[12] 何立民.单片机应用技术选编[M].北京:

北京航空航天大学出版社,1993. 

[13]康华光,皱筹彬.电子技术基础(数字部分)[M].高等教育出版社.2000

[14]王昊,李昕.集成运放应用电路设计360例[M].电子工业出版社.2007

[15]康华光,陈大钦.电子技术基础(模拟部分)[M].高等教育出版设.2000

[16]张庆双.电源应用电路[M].机械工业出版社.2005

[17]张先庭主编.单片机原理、接口与C51应用程序设计[M].国防工业出版社.2011

[18]李光飞,楼苗然主编.51系列单片机[M].北京航空航天大学出版社.2003

8.附件

8.1程序清单

/*****************************************************************************************************/

//名称:

步进电机控制系统设计

//功能:

实现电机的正反转,快慢转,以及电机的转速显示

/****************************************************************************************************/

#include"reg51.h"

#defineGPIO_MOTORP1//定义端口

#defineGPIO_DIGP0

sbitK1=P3^1;

sbitK2=P3^2;

sbitK3=P3^0;

sbitK4=P3^3;

sbitLSA=P2^2;

sbitLSB=P2^3;

sbitLSC=P2^4;

unsignedcharcodeFFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};//正向驱动数组

unsignedcharcodeFFZ[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};//反向驱动数组

unsignedcharcodeDIG_CODE[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

//数码管段码0~9

unsignedcharSpeed,m,n,z,bw,gw,sw;

voidDelay(unsignedintt);

voidMotor();

voiddisplay();

/**************************************************************************

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 育儿知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1