您的当前位置:首页正文

单片机控制的步进电机驱动

来源:好兔宠物网


单片机原理课程设计

题 目

学 院 姓 名 综合得分

步进电机控制系统

物联网工程 专 业 罗之韵

学 号

自动化

2011年 6月

目录

一、概述

二、设计目的及准备

1.实验目标 2.设计思路 3.仪器设备

三、系统工作原理

1.步进电机原理 2.单片机最小系统 3.采样原理 4.数据存储单元安排 5.按键及显示原理 6.中断处理

四、主要芯片说明及硬件线路1.AT89C51 2.ULN2003A 3.硬件原理图 4.PCB实验板

五、软件编程

1.程序框图 2.按键及指示灯功能 3.程序流程图 4.主程序设计

六、总结 参考文献

1

一、概述

关键词:51系列单片机 步进电机 调速转向控制

步进电机是一种感应电机,它的工作原理是利用电子电路,将直流电变成分时供电的,多相时序控制电流。步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。正常情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

步进电机分为反应式、永磁式、混合式三类。其中混合式步进电机综合了反应式和永磁式的优点,它的动态性能好,控制精度高,是目前应用最为广泛的一种。

单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的CPU、RAM、、ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。

单片机已经成为电子系统中进行数据采集、信息处理、通信联络和实施控制的重要器件。通常利用单片机技术在各种系统、仪器设备或装置中,形成智能式嵌入系统或子系统。因此单片机技术是电类专业特别是电子信息类学生必须具备的基本功。而步进电机就是单片机技术在日常电子产品中的一项重要应用。步进电机是机电一体化的关键产品之一,被广泛应用在各种自动化控制系统中。并且人们还利用它来驱动时钟和其他采用指针的仪器,打印机、绘图仪、磁盘光盘驱动器、各种自动控制阀、各种工具等机械装置。步进电机是机电数字控制系统中常用的执行元件,由于其精度高、体积小、控制方便灵活,因此在智能仪表和位置控制中得到了广泛的应用。大规模集成电路的发展和单片机技术的日益成熟和普及应用,为设计生产功能更全,使用更加方便的步进电机驱动控制器提供了更多的技术支持。

本文便是基于51系列单片机对步进电机控制系统的设计。

2

二、设计目的及准备 1.实验目标

(1) 了解步进电机的基本结构和工作原理 (2) 熟悉步进电机的驱动原理

(3) 巩固单片机的硬件接线及软件编程 (4) 进一步掌握单片机仿真软件应用

(5) 掌握用单片机对步进电机的启动停止、转向、速度等功能的程序设计方法 (6) 提高单片机应用系统设计和调试水平

2.设计思路

利用DP-51PRO.NET仿真器和Keil设计步进电机控制器。在进行控制的时分别用一个拨码开关控制步进电机启动停止,一个开关控制正反转,另两个开关进行高中低档三档调速;同时用一个LED显示步进电机启动停止,用两个LED灯来显示电机的正反转状态,用三个LED等来显示电机的高中低运行状态。软件编程使用汇编语言,步进电机控制系统进入工作状态的默认模式为低速正转。

3.仪器设备

(1) PC机

(2) DP-51PRO.NET 单片机仿真器,编程器,实验仪三合一综合平台 (3) 导线

3

三、系统工作原理 1.步进电机原理

步进电机在控制系统中具有广泛的应用。它可以把脉冲信号转换成角位移,

并且可用作电磁制动轮、电磁差分器、或角位移发生器等。该步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。

四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如下图所示:

单四拍 双四拍 八拍

步进电机的驱动电路根据控制信号工作,控制信号由单片机产生。其基本原理作用如下:

(1)控制步进电机的启动

利用软件编程判断启动开关是否被打开,如果打开,则电机进入工作状态。 (2)控制步进电机的换相顺序及转向

通电换相这一过程称为脉冲分配,其各相通电顺序为AB-BC-CD-DA,通电控制脉冲必须严格按照这一顺序分别控制A,B,C,D相的通断。如果给定工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反转。 (3)控制步进电机的速度

如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。调整单片机发出的脉冲频率,就可以对步进电机进行调速。

4

2.单片机最小系统

单片机最小系统包括振荡电路和复位电路两部分。振荡电路用12M晶振,这样一个机器周期1us。

复位电路采用手动复位,当按下RESET按键,电阻R1、R2接通5V电源,此时R2分得电压大约为4V,为高电平,即置单片机RST脚为高电平,单片机复位。

3.采样原理

进电机根据单片机发出的脉冲序列来决定其工作方式为单四拍、双四拍和八拍,并能将脉冲信号转换成角位移。根据步进电机接收到的脉冲序列的不同,决定其自身的通电相序。

4.数据存放单元安排

单片机将立即数存放到相应的工作寄存器中,不同的延时子程序里,将不同的立即数存放到相应的工作寄存器中,以实现不同长度的延时,进而控制电机运行速度,具体数据分配如下表:

工作寄存器 R4 R5(低速) R5(中速) R5(高速)

十进制立即数 40 250 120 50 十六进制立即数 28H FAH 78H 32H 5.按键及显示原理

系统采用4个拨码开关用来控制步进电机状态转换,分别是总开关、转向控制、中速档和高速档,拨码开关接通时,电源通过上拉电阻和开关到单片机I/O口形成通路,给单片机送入一个高电平,高电平即为有效电平。

状态指示采用6个发光二极管分别表示步进电机的启动停止、正转、反转、低速运行、中速运行和高速运行状态,发光二极管正极接电源,负极接单片机I/O

5

口,同时,每个发光二极管需要接限流电阻起保护作用。

6.中断处理

当CPU检测到与拨码开关相连引脚电平的变化时,停止当前执行的程序,转而跳至标号处去执行中断请求所对应的程序,当执行完中断程序后,CPU跳回先前所执行的程序。

四、主要芯片说明及硬件线路 1.AT89C51

主要功能:

4k 字节FLASH 闪速存储器,128 字节内部RAM,32 个I/O 口线,2 个16 位定时/计数器,一个5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51 降至0Hz 的静态逻辑操作,并支持两种可选的节电工作模式。空闲方式体制CPU 的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM 中的内容,但振荡器体制工作并禁止其他所有不见工作直到下一个硬件复位。

6

引脚功能说明:

Vcc:电源电压 GND:地

P0 口:P0 口是一组8 位漏极开路型双向I/O 口,也即地址/数据总线复用。作为输出口用时,每位能吸收电流的方式驱动8 个TTL 逻辑门电路,对端口写“1”可作为高阻抗输入端用。除此之外,P0口还有第二功能,P0口的第二功能是作为地址/数据分时复用总线。

P1 口:P1 是一个带内部上拉电阻的8 位双向I/O 口,P1 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。有输入、输出、端口操作3种工作方式对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

P2 口:P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。与P0口类似,P2口也有第二功能P2口的第二功能是高8位地址总线。

P3 口:P3 是一个带有内部上拉电阻的8 位双向I/O 口,P3 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。P3口除了作为一般的I/O口外,其还带有第二功能,具体如下表:

端口引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

7

第二功能 RXD (串行输入口) TXD (串行输出口) INT0’ (外中断0) INT1’ (外中断1) T0 (定时/计数器0) T1 (定时/计数器1) WR’ (外部数据存储器写选通) RD’ (外部数据存储器读选通)

RST:复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将使单片机复位。

ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8 位字节。

PSEN:程序存储允许输出是外部程序存储器的读选通型号,当89C51 由外部存储器取指令(或数据)时,每个机器周期两次PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的PSEN 信号不出现。

EA/VPP:外部访问允许。欲使CPU 仅访问外部程序存储器(地址为 0000H—FFFFH),EA 端必须保持低电平(接地)。

XTAL1:振荡器反相放大器及内部时钟发生器的输入端。 XTAL2:振荡器反相放大器的输出端。

2.ULN2003A

ULN2003 是耐高压大电流、内部由七个硅NPN 达林顿管组成的驱动芯片。 经常在显示驱动、继电器驱动、照明灯驱动、电磁阀驱动、伺服电机、步进电机驱动等电路中使用。

ULN2003 的每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。

ULN2003 工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受 50V 的电压,输出还可以在高负载电流并行运行。

ULN2003 的封装采用DIP—16 或SOP—16

ULN2003A在各种控制电路中常用它作为驱动继电器的芯片,其芯片内部做了一个消线圈反电动势的二极管。ULN2003的输出端允许通过IC 电流200mA,饱和压降VCE 约1V左右,耐压BVCEO 约为36V。输出电流大,故可以直接驱动继电器或固体继电器(SSR)等外接控制器件,也可直接驱动低压灯泡。 ULN2003可以驱动7个继电器,具有高电压输出特性,并带有共阴极的续流二极管使器件可用于开关型感性负载。每对达林顿管的额定集电极电流是500mA,达林顿对管还可并联使用以达到更高的输出电流能力。

8

3.硬件原理图

9

4.PCB实验板

10

五、软件编程

1.程序框图

控制按键AT89C51最小系统电源ULN2003ALED指示灯步进电机

2.按键、指示灯功能及接口

此步进电机控制系统共有4个拨码开关,具体功能与接口如下表: 拨码开关名称 S1 S2 S3 S4 功能 总开关 正反转选择 中速档选择 高速档选择 与AT89C51相连的接口 P0.0 P0.1 P0.2 P0.3 步进电机控制系统共有6个LED指示灯,具体功能与接口如下表: LED指示灯名称 D1 D2 D3 D4 功能 指示步进电机启动与否 指示步进电机运行于正转模式 指示步进电机运行于反转模式 指示步进电机工作于低速模式 11

与AT89C51相连的接口 P2.0 P2.1 P2.2 P2.3

D5 D6 3.程序流程图

指示步进电机工作于中速模式 指示步进电机工作于高速模式 P2.4 P2.5 开始设定初值判断启动判断正反转正转相序AB-BC-CD-DA反转相序AB-DA-CD-BC判断速度判断速度低速正转中速正转高速正转低速反转中速反转高速反转12

4.主程序设计

MAIN: WAIT: SMRUN:

FARUN:

DELAY: DELAY1:

BA BB BC BD ORG LJMP ORG MOV ACALL MOV JNB CLR JB SETB CLR MOV ACALL MOV ACALL MOV ACALL MOV JB JNB SJMP SETB CLR MOV ACALL MOV ACALL MOV ACALL MOV JNB JNB MOV SETB SETB SETB JB JB CLR

EQU P1.0 EQU P1.1 EQU P1.2 EQU P1.3 0000H MAIN 0100H SP,60H DELAY P2,0FFH P0.0,WAIT P2.0

P0.1,FARUN P2.2 P2.1 P1,#03H DELAY P1,#06H DELAY P1,#0CH DELAY P1,#09H P0.1,FARUN P0.0,MAIN SMRUN P2.1 P2.2 P1,#03H DELAY P1,#09H DELAY P1,#0CH DELAY P1,#06H

P0.1,SMRUN P0.0,MAIN R5,#40 P2.3 P2.4 P2.5

P0.2,DELAY2 P0.3,DELAY3 P2.3

13

DELAY2: DELAY3:

MOV DJNZ DJNZ RET CLR MOV DJNZ DJNZ RET CLR MOV DJNZ DJNZ RET

R4,#1000 R4,$

R5,DELAY1 P2.4 R4,#500 R4,$

R5,DELAY2 P2.5 R4,#250 R4,$

R5,DELAY3

六、总结

这次单片机的课程设计,我们的课题是步进电机控制系统的设计,步进电机是一种在工业控制中常用的电机,而与我们这学期所学的单片机进行相结合的控制系统,在控制工程中更是典型的基础范例。

其实,这次课程设计的课题并不算非常难,整体设计思路较为明确,用单片机AT89C51对步进电机的启动停止、转向和速度进行选择控制。虽说总体逻辑比较清晰,但在实际的编程过程中,各个细节方面还是遇到了不少问题,当步进电机运行于低速正转的运行状态时,如何判断总开关是否被关闭?或是如何判断正反转选择是否改变?这些提高系统实用性的按键扫描相关程序是必须要考虑的,而在对按键扫描及程序跳转的相关编程上,需要进一步注意的便是相应跳转指令的跳转长度,正因为是这方面的问题,而导致了程序调试出了很多难以发现的错误,不过在对相关资料进行查询后,最终排除了这些错误;除此之外,在点亮LED灯的程序上,对单片机相应I/O口置0还是置1的问题上出现了分歧,不过在实验室亲自调试过后,这个问题也得到了解决,实验室里的仿真器LED是需要单片机相应的I/O口置0才能点亮的,而置1则是熄灭LED,这个细节更

14

有力的说明了不亲自加以实验而得出的结论是无法站稳脚跟的,所以,对待科学,我们更应该持有一种严禁钻研的态度。

其实,此次的单片机课程设计较为顺利的另一个原因便是运气,因为正好我使用的一台仿真机什么问题都没有,只要软件编程正确,接线合理,不需要考虑硬件损坏的问题,这也大大的节省了调试时间。

此次的单片机课程设计是对一学期课程学习与实践的总结,在吴老师的课上,我在理论方面学到了很多知识,不过这点所谓的理论也不过是皮毛,在真正进行实验时,更多实际的问题暴露了出来,而且其中不乏逻辑语句使用错或者软件初期设置错误等低级问题,所以,不得不说,如果光靠现在这点学到的知识,而又想做出真正实用或是少许复杂的东西,还是有很多有差距的地方,所以,在学好理论知识的同时,依然不能忘了实践的重要性。

当然,学习不是一个人的事,与人交流亦是快速提高自的途径之一,集体的力量总胜于个人,及时与同学交流,常学会向老师请教也是有效的学习之道。作为一个大学生,最重要的不是从老师那里学到什么,而是靠自己学会什么,所以,我们不但要努力学,还得会学习,这样才能事半功倍。

参考文献

1 丁元杰.单片微机原理及应用.机械工业出版社.2009.1

2 朱建树,吴嘉澍.单片机原理与应用实验指导书.江南大学通讯与工程学院,2006 3赵志诚,段中兴.微机原理及接口技术.中国林业出版社,2006.8 4 王志强.步进电机应用技术.科学出版社,2010

5李广弟.单片机应用程序设计基础.北京航空航天大学出版社.1994.6. 6 http://baike.baidu.com/view/1012.htm 7 http://baike.baidu.com/view/13608.htm 8 http://dlib.cnki.net/kns50/ 9 http://www.cntronics.com/public/

15

因篇幅问题不能全部显示,请点此查看更多更全内容