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

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

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

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

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

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

目录

摘要I

1课题的原理及意义1

1.1课题原理1

1.2课题的意义2

2控制系统的硬件设计3

2.1总的方案设计3

2.2步进电机控制电路设计3

2.3单片机最小系统设计4

2.4驱动电路设计4

2.5显示电路设计5

2.6硬件电路设计6

3控制系统的软件设计7

3.1.主程序设计7

3.2定时中断设计8

3.3外部中断设计8

3.4源程序9

4仿真结果与分析14

4.1proteus简介14

4.2仿真结果14

5结束语17

参考文献18

摘要

步进电机是一种将电能转化为角位移的装置。

当它收到一个脉冲信号,步进电机就按设计的方向转动一个固定的角度。

本设计主要设计了一个基于89C51单片机对步进电机的动行控制,涉及到正反转和加减速度控制。

其中速度控制是最主要控制,要求运行速度在线可调,并要求具有运行步设置在线正反转及启停控制。

本设计是采用单片机AT89C51(12MHZ)与步进电机紧密联系起来,通过I/O口输出的具有时序的方波作为步进电机的控制信号,用4个按钮来对电机的状态进行控制。

单片机根据电机的状态信号将写入的程序通过CPU进行处理,发出脉冲控制信号,脉冲控制信号经过芯片ULN2003A驱动步进电机,步进电机将脉冲控制信号转换为电机的角位移,使电机的转子根据脉冲数来实现电机准确的转速控制。

所以软件完成了由单片机的驱动程序来控制步进电机的各中运行动作,以实现传统的步进电机的高度自动化。

本设计中硬件实现了电机的正反转和加速、减速转动的效果,并且能够通过按钮控制电机的启动与停止。

通过单片机的汇编程序来控制步进电机的运行动作

关键词:

AT89C51单片机;ULN2003A;20BY-0型步进电机;3PROTEUS软件

 

1课题的原理及意义

1.1课题原理

1.步进电机

步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。

步进电机区别于其他控制电机的最大特点是:

它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。

步进电机分三种:

永磁式(PM),反应式(VR)和混合式(HB),步进电机又称为脉冲电机,是工业过程控制和仪表中一种能够快速启动,反转和制动的执行元件,其功用是将电脉冲转换为相应的角位移或直线位移,由于开环下就能实现精确定位的特点,使其在工业控制领域获得了广泛应用。

步进电机的运转是由电脉冲信号控制的,其角位移量或线位移量与脉冲数成正比,每个一个脉冲,步进电机就转动一个角度(不距角)或前进、倒退一步。

步进电机旋转的角度由输入的电脉冲数确定,所以,也有人称步进电机为数字/角度转换器。

2.原理

根据控制系统功能要求及步进电机应用环境,确定了设计系统硬件和软件的功能划分,从而实现了基于AT89C51单片机的四相步进电机的开环控制系统。

控制系统通过单片机存储器、I/O接口、中断、键盘、LED显示器的扩展、步进电机的环形分频器、驱动及保护电路、中断系统及复位电路、单电压驱动电路等的设计,实现了四相步进电机的正反转,急停等功能。

为实现单片机控制步进电机系统在数控机床上的应用,系统设计了两个外部中断,以实现步进电机在某段时间内的反复正反转功能,也即数控机床的刀架自动进给运动。

选定的曲线比较符合步进电机升降过程的运行规律,能充分利用步进电机的有效转矩,快速响应性好,缩短了升降速的时间,并可防止失步和过冲现象。

步进电机能响应而不失步的最高步进频率称为“启动频率”。

步进电机换向时,一定要在电机降速停止或降到突跳频率范围之内在换向,以免产生较大的冲击而损坏电机。

换向信号一定要在前一个方向的最后一个脉冲结束后以及下一个方向的第一个脉冲前发出。

对于脉冲的设计主要要求其有一定的脉冲宽度、脉冲序列的均匀度及高低电平方式。

在某一高速下的正、反向切换实质包含了降速→换向→加速3个过程。

1.2课题的意义

随着数字化技术地发展,数字控制技术得到了广泛而升入的应用。

步进电机是一种将数字信号直接转换成角位移或线位移的控制元件,具有快速启动和停止的特点。

因为步进电机组成的控制系统结构简单,价格低廉,性能上能满足工业控制的基本要求,所以广泛的应用于手工业自动控制、数控机床、组合机床、机器人、计算机外围设备、照相机、投影仪、数码摄像机、大型望远镜、卫星天线定位系统、医疗器件以及各种可控机械工具等等。

此外作为执行元件,步进电机是机电一体化的关键产品之一,被广泛应用在各种自动化控制系统中,随着微电子和计算机技术的发展,它的需要量与日俱增,在各个国民经济领域都有应用。

步进电机是机电数字控制系统中常用的执行元件,由于其精度高、体积小、控制方便灵活,因此在智能仪表和位置控制中得到了广泛的应用,大规模集成电路的发展以及单片机技术的迅速普及,为设计功能强,价格低的步进电机控制驱动器提供了先进的技术和充足的资源。

 

2控制系统的硬件设计

2.1总的方案设计

该方案是由一个AT89C51(12MHZ)、两个共阳极数码显示管(一个显示转向,另外一个显示转速)、芯片ULN2003A、步进电机,还有晶振和按钮复位电路以及开关控制器件连接而成。

图如2.1所示。

2.2步进电机控制电路设计

1.正反转控制

根据系统的控制要求,控制输入部分设置了启动控制,换向控制,加速控制和减速控制按钮,分别是K1、K2、S2、S3。

通过K1、K2状态变化来实现电机的启动和换向功能。

当K1、K2的状态变化时,内部程序检测P1.0和P1.1的状态来调用相应的启动和换向程序,发现系统的电机的启动和正反转控制。

2.转速控制

根据步进电机的工作原理可以知道,步进电机转速的控制主要是通过控制通入电机的脉冲频率,从而控制电机的转速。

对于单片机而言,转速控制的方法主要有:

软件延时和定时中断,在此电路中电机的转速控制主要是通过定时器的中断来实现的,该电路控制电机加速度主要是通过S2、S3的断开和闭合,从而控制外部中断根据按键次数,改变速度值存储区中的数据(该数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,从而改变了电机的转速。

控制电路如图2.2所示。

图2.2控制电路原理图

2.3单片机最小系统设计

对于没有内部没有晶振的单片机,接上电源和晶振就是该单片机的最小系统。

对于这个设计的单片机来说,还有一个按钮复位电路。

电路如图2.3所示。

图2.3复位及时钟振荡电路

2.4驱动电路设计

通过ULN2003构成比较多的驱动电路,通过单片机的P1.0~P1.3输出脉冲到ULN2003的1B~4B口,经信号放大后从1C~4C口分别输出到电机的A、B、C、D相。

电路图如图2.4所示。

图2.4步进电机驱动电路

2.5显示电路设计

在我们设计的该步进电机的控制器中,电机可以正转、反转,还可以加速、减速,其中电机转速的等级分为五级。

为了方便知道电机的运行状态和电机的转速的等级和电机运动的转向,这里设计了电机转速和电机的工作状态的显示电路,用来显示电机转动的级数和转向。

在显示电路中,主要是利用了单片机的P0口和P2口。

采用两个共阳数码管作显示。

第一个数码管用于显示电机正反转状态,正转时显示“1”,反转时显示“一”,不转时显示“0”。

第二个数码管用于显示电机的转速级别,共五级,即从1~5转速依次递增,“0”表示转速为零。

并且在数码显示管与单片机端口连接的中间分别加上了一个排阻,用来限制电路中的电流,确保流入数码管的电流在正常的范围内。

起到保护电路的作用。

P0.0~P0.6分别连接第一个数码管;P2.0~P2.6接第二数码管。

显示电路如图2.5所示。

图2.5显示电路

2.6硬件电路设计

设计一个单片机四相步进电机控制硬件电路系统要求系统具有如下功能:

1.用K1、K2状态变化来实现电机的启动和换向功能,k1按一下,电机启动,K2按一下电机将以相反的方向转动。

比如电机正在顺时针转动,按k2一次,电机将会逆时针转动,进而第一个数码显示管由“1”会变为“-”。

2.上面的数码管用于显示电机正反转,正转显示“1”,反转显示“-”,不转

时显示“0”。

3.通过S1、S2的加速和减速。

在这里按一次S1按钮电机将减速一个档位;按S3一次,电机将加速一个档位。

而显示电机正在转动的档位的数码显示管是第二个数码显示管。

4.复位电路采用手动复位。

根据设计要求用PROTUES所做的硬件连线如图2.6所示。

图2.6总体电路图

3控制系统的软件设计

3.1主程序设计

主程序中要完成的工作主要有系统初始值的设置、系统状态的显示以及各种开关状态的检测判断等。

其中系统初始状态的设置内容较多,该系统中,需要初始化定时器、外部中断;对P1口送初值以决定脉冲分配方式,速度值存储区送初值决定步进电机的启动速度,对方向值存储区送初值决定步进电机旋转方向等内容。

主程序流程图如图3.1所示。

3.2定时中断设计

步进电机的转动主要是给电机各绕组按一定的时间间隔连续不断地按规律通入电流,步进电机才会旋转,时间间隔越短,速度就越快。

在这个系统中,这个时间间隔是用定时器重复中断一定次数产生的,即调节时间间隔就是调节定时器的中断次数,因而在定时器中断程序中,要做的工作主要是判断电机的运行方向、发下一个脉冲,以及保存当前的各种状态。

程序流程图如3.2所示。

3.3.外部中断设计

外部中断所要完成的工作是根据按键次数,改变速度值存储区中的数据(该数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,也就是改变了电机的转速。

速度增加按钮S2为INT0中断,其程序流程为原数据,当值等于5时,不改变原数值返回,小于5时,数据加1后返回;速度减少按钮S3,当原数据不为0,减1保存数据,原数据为0则保持不变。

程序流程图3.3所示。

3.4源程序

汇编程序如下:

SPEEDEQU10H;SPEED为转速等级共5级

FXEQU11H;FX为方向标志

COUNTEQU12H;COUNT中断次数标志

ORG0000H

LJMPMAIN

ORG003H;加速子程序

LJMPUP

ORG0013H;减速子程序

LJMPDOWN

ORG000BH;控制中断次数来达到控制转速

LJMPZDT0

ORG0030H

MAIN:

OVSP,#60H

MOVTMOD,#01H;工作于定时模式1(16位计时器)

MOVTH0,#0EFH

MOVTL0,#0FAH

MOVCOUNT,#01H

SETBET0;定时/计数器允许中断

CLRIT0;外部中断低电平有效

CLRIT1

SETBEX0;外部允许中断

SETBEX1

SETBEA;开总中断

MOVR1,#11H

MOVSPEED,#00H

MOVFX,#00H

XIANS:

MOVA,SPEED

MOVDPTR,#LED

MOVCA,@A+DPTR;查表获取等级对应数码管代码

MOVP2,A;第二个数码管显示转速等级

MOVA,FX;准备判断转向

CJNEA,#11H,ELS

MOVP0,#0F9H;第一个数码管显示1,表示正转

LJMPQD

ELS:

CJNEA,#00H,ZHENG

MOVP0,#0C0H;第一个数码管显示0,表示不转

LJMPQD

ZHENG:

MOVP0,#0BFH;第一个数码管显示-,表示反转

QDJBP3.1,DD;P3.1为1时启动

CLRTR0;停止定时/计数器

MOVP0,#0FFH;第一个数码管显示0,表示不转

MOVP2,#0FFH;第二个数码管显示0表转速为0

MOVSPEED,#00H;重新赋初值

MOVFX,#00H

LJMPQD

DD:

MOVA,SPEED

JNZGO;A不等于0,则转移到GO

CLRTR0;停止定时/计数器

LJMPQD

GO:

SETBTR0;开启定时/计数器

ACALLDELAY

LJMPXIANS

延时子程序

DELAY:

MOVR6,#10

DEL1:

MOVR7,#250

HERE1:

DJNZR7,HERE1

DJNZR6,DEL1

RET

以下ZDT0为定时器中断程序

ZDT0:

PUSHACC

PUSHDPH

PUSHDPL

MOVTH0,#0EFH

MOVTL0,#0FAH

DJNZCOUNT,EXIT

JBP3.0,NIZHUAN;P3.0接换向开关K2

MOVFX,#11H

NIZHUAN:

MOVA,FX

CJNEA,#11H,FZ;正转,则转移到FZ

MOVA,R1;R1记录上一次电机脉冲状态

MOVP1,A

RRA;循环右一位

MOVR1,A

MOVP1,A

LJMPRE

FZ:

MOVA,R1

MOVP1,A

RLA;循环左移一位

MOVP1,A

MOVR1,A

RE:

MOVA,SPEED

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVCOUNT,A;把转速级别赋给COUNT

JBP3.0,FFX

MOVFX,#11H

LJMPEXIT

FFX:

MOVFX,#0FEH

EXIT:

POPDPL

POPDPH

POPACC

RETI

以下UP为加速中断程序

UP:

PUSHACC

ACALLDELAY;延时防抖动

JBP3.2,UPEX

MOVA,SPEED

CJNEA,#5,SZ

LJMPUPEX;若A=5,则退出

SZ:

INCSPEED;SPEED=SPEED+1

UPEX:

POPACC

HERE2:

JNBP3.2,HERE2

RETI

以下DOWN为减速中断程序

DOWN:

PUSHACC

ACALLDELAY

JBP3.3,DEX;

MOVA,SPEED

CJNEA,#0,SJ

LJMPDEX

SJ:

DECSPEED

DEX:

POPACC

HERE3:

JNBP3.3,HERE3

RETI

TAB:

DB0,50,46,39,33,28

LED:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H

END

 

4.仿真结果与分析

4.1.proteus简介

Proteus是英国Labcenter公司开发的电路分析与实物仿真软件。

它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路。

proteus6.5是目前最好的模拟单片机外围器件的工具,真的很不错。

可以仿真51系列、AVR、PIC等常用的MCU及其外围电路(如LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分SPI器件,部分IIC器件,...)

该软件的特点是:

1.实现了单片机仿真和SPICE电路仿真相结合。

具有模拟电路仿真、数字电路仿真、

单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。

2.支持主流单片机系统的仿真。

目前支持的单片机类型有:

ARM7(LPC21xx)、8051/52系列、AVR系列、HC11系列以及多种外围芯片。

3.提供软件调试功能。

在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如KillC51uVision2、MPLAB等软件。

4.具有强大的原理图绘制功能。

4.2仿真结果

1.根据proteus软件的用法,将我们设计的电路以及源程序进行仿真,将开关K2拨到启动位置,得到的结果。

此时的电机已经启动,但还没有加速,也就没有转向,故两个数码显示管的显示都为“0”,如图4.1所示。

图4.1原始数码管显示

2.在按下开关按钮K2启动的基础上,按加速按钮S2五次,也就意味着电机开始正向转动,并且逐渐加速到五级速度转动。

此时的仿真图如4.2所示。

图4.2正向运行时数码管显示

3.在上面的仿真基础上按下一次换向按钮K2,并且连续按两次减速按钮S1。

这样的操作是的电机减速两级并且反向转动,此时的仿真结果如图4.3所示。

图4.3反向运行时数码管显示

 

5结束语

我在本课程设计中,原件的选择和功能做一个查阅,尽量选取最合适的器件来完成最精准的实习结果。

本设计通过分析步进电机结构、工作原理,查阅步进电机控制系统的相关科技文献,遵循实用、简单、可靠和低成本的原则,设计了一种既可用于精度要求不高,但控制需完备的场合。

经过查阅各种资料以及我们所学的《单片机原理及接口技术》教材,使得我对于单片机的应用以及汇编语言都有了一个更本性的提高。

本人深知自己做的工作还很不够,由于软件和硬件的各方面原因,系统的应用讨论不够,精度还有待于进一步提高。

由于时间的原因,设备的原因,实验做的不好不够,相关验证性的数据、信息不够丰富。

可以肯定,随着技术的不断发展,步进电机的控制应用前景将越来越宽阔,而其控制系统也将向着智能化和网络化的方向发展。

本论文的研究和探讨还远远不够,我们要在现在的基础上,不断吸取新的技术和方法,并将它们应用于本课题的研究上来,进一步深化我们的研究深度,争取有更多的收获。

 

参考文献

[1]辜承林,陈乔夫,熊永前.电机学[M].武汉:

华中科技大学出版社,2010.

[2]李朝青.单片机原理与接口技术[M].北京:

航天大学出版社,2006.

[3]胡宴如,耿苏燕.模拟电子技术基础[M].北京:

出版社,2010.

[4]张家生.电机原理与拖动基础[M].北京:

北京邮电大学出版社,2006.

[5]德英,张建,马淑华.计算机控制技术[M].北京:

大学出版社.2006.

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

当前位置:首页 > 解决方案 > 学习计划

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

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