步进电机控制系统设计报告正稿.doc
湖南人文科技学院课程设计报告课程名称:单片机原理及应用课程设计设计题目: 步进电机控制系统 系 别: 通信与控制工程系 专 业: 自动化 班 级: 0702 学生姓名: 宋赞 龚玉洲 学 号: 07421254 07421228 起止日期: 2009年6月8日 2009年6月19日指导教师: 周桃云 赵志刚 教研室主任: 方志文 13 摘 要本设计通过ATMEL89C52单片机对步进电机进行控制,主要介绍了步进电机控制器、驱动电路和LED显示电路的设计,实现了步进电机的控制。具有以下功能:1、按下不同的键,分别使步进电机实现顺时针和逆时针旋转;2、电机运转状态可以是正反转,加速减速,五种不同速度的各种组合;3、通过LED数码管显示电机运行状态特点。该系统具有成本低、控制方便的特点。关键词:单片机;步进电机;调速控制引言 步进电机是一种将电脉冲信号变换成相应的角位移或直线位移的机电执行元件。控制步进电机的输入脉冲数量、频率及电机各相绕组的接通顺序,可以得到各种需要的运行特性。尤其与数字设备配套时,体现了更大的优越性,因此广泛应用于数字控制系统中。 本文介绍已实现的单片机对步进电机的控制系统。该控制系统中,控制器担负着产生脉冲以及发送、接收控制命令的任务。 目 录 1 实验要求. .1 2 实验目的.13 设计过程. .1 3.1设计方案. 1 3.2方案论证. 14 硬件系统框图与说明. .3 4.1 系统总体框图. 3 4.2 单片机系统设计. 3 4.3 步进电机控制设计. 4 4.4 按键设计. 6 4.5 数码管显示设计. 6 5 软件主要模块流程图与说明.6 5.1 系统软件流程图. 6 5.2 速度按键控制流程图. 7 5.3 红外接收流程图. 9 6课程设计总结. . . .8 7实验心得体会. .8 附录A ULN2003管脚图. .9 附录B程序部分源代码. .10 附录C 系统实物图. .12参考文献. .12 步进电机控制系统 1 实验要求 利用AT89C52设计步进电机控制电路,步进电机为二相四线(5v),需要 1) 可实现步进电机起停控制,一键实现; 2) 可实现步进电机正反转控制,一键实现; 3) 可实现步进电机调速控制,速度分为三级,1级最低,3级最高,速度变 化明显,一键实现; 4) 运行指示灯一个,启动后点亮,停止后熄灭,三个速度指示灯,速度为1 时一个指示灯亮,速度为3时三个指示灯亮。2 实验目的 1) 了解步进电机的控制原理并掌握转动的编程方法。 2) 掌握AT89C52 的内部结构,输出接口以及控制原理。3 设计过程 3.1设计方案 本系统中AT89C52 作为控制系统的核心,显示部分采用LED 发光二极管和7段共阳极数码管显示速度级别,用按键分别实现步进电机开关的起停、正反转以及速度控制,步进电机类型为二相四线(5V),工作于单双拍混合方式,采用ULN2003 驱动其工作。 整体设计以模块划分为主,硬件、软件相结合,分模块进行设计和调试,最 后将各个模块衔接起来。3.2方案论证 本设计采用51单片机AT89C51(晶振频率为12MHZ)对两相四线制步进电机进行控制。通过I/O口输出的具有时序的方波作为步进电机的控制信号,信号经过芯片ULN2003驱动步进电机。ULN2003 可以在5V 的工作电压下,它能与TTL 和CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003 工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V 的电压,输出还可以在高负载电流并行运行。通过ULN2003构成步进电机的驱动电路,电路图如图1所示。51的25-28口接ULN2003的1-4输入端。另外,用键盘来对电机的状态进行控制,并用数码管显示电机的转速,采用74LS164作为2位单个数码管的显示驱动。74LS164带锁存,使用串行接法可以节约I/O口资源。其电路图如图2所示。通过51的TXD和RXD口对CLK和DATA发送数据。图1 51单片机控制步进电机线路图图2 显示电路图4 硬件系统框图与说明 4.1 系统总体框图 本系统中采用单片机作为主控制芯片。有三个按键作为输入端,他们都是通 过中断控制。其中电机的起停按键和转向正反按键通过与门连接接入单片机的外 部中断1,速度按键直接接到单片机的外部中断0。P1 口的低四位(P10 P13)用来连接ULN2003 驱动芯片从而控制步进电机转动;P1 口的高四位(P14 P17)用来连接LED 指示灯。其中,P17 接起停键的指示灯,其余三个指示灯 分别显示三种速度级别。P2 口接一个7 段LED 数码管,也用来显示速度级别。具体框图如图3 所示。 图3 系统总体设计框图 4.2 单片机系统设计 本系统中采用单片机作为微控制器。其片内资源有32个并行I/O口,5个中 断源,包括2个16位定时器,2个外部中断和一个串行中断。 本系统中单片机采用外部时钟方式,外接11.0592MHZ晶振和30pF电容组成时钟电路。采用上电复位和按键方式组成复位电路。其复位电路和时钟电路连接如图4所示。 图4 复位电路和时钟电路 4.3 步进电机控制设计 步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,它的的驱动电路根据控制信号工作,控制信号由单片机产生。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,控制换相顺序,即通电控制脉冲必须严格按照一定顺序分别控制各相的通断。通过控制脉冲个数即可以控制角位移量,从而达到准确定位的目的。控制步进电机的转向,即给定工作方式正序换相通电,步进电机正转,若按反序通电换相,则电机就反转。控制步进电机的速度,即给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步,两个脉冲的间隔越短,步进电机就转得越快。同时通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。 要步进电机可以“步进” 就得产生如图2所示的脉冲序列。此脉冲序列是用周期、脉冲高度、通断时间来表征的。数字电路中,脉冲高度由元件电平决定,如TTL电平为05V,COMS电平为010V。步进电机的每一步的响应。都需要一定的时间,即一个高脉冲要保留一定的时间,以便电机完全达到一定的位置。通断的时间可以利用延时在软件中实现,这决定了步进电机的实际工作速率。 图5 脉冲序列图本系统中我们采用的是二相四线步进电机(5V),其逻辑功能图如图6所示。 图6 步进电机逻辑 该电机可工作于单拍模式和单双拍混合模式,分别给A、B、A 和B 不同 的控制信号,可得到不同的效果。以单拍模式为例,正转则分别给A、B、A 和B 循环供电,反转则分别给A、B、A 和B 循环供电。但一般单拍模式下转动时相角过度少、转动角度大,因此不连贯,如果设计成单双拍混合模式则转动较为连贯。 本系统中我们用单片机的P10 接步进电机的A 端控制信号,P11 接A 的 控制信号,P12 接B 的控制信号,P13 接B 的控制信号,步进电机工作于单双拍混合模式。表1 列出了步进电机正向转动(顺时针方向)时P1 口的控制数据(P1 口的高四位未参与控制该电机,设其值为0)。表 1 步进电机正向转动转序图 步进电机需要的电流大且易受噪声干扰,但单片机输出电流相对于步进电机 较小,且有噪声干扰,为此本系统中添加了ULN2003驱动步进电机工作。ULN2003有七路达林顿管,可以起到放大和消噪的作用。其COMMON端与步进电机的COMMON端相连并接到高电平。ULN2003的管脚图见附录A。4.4 按键设计 本系统中用按键来控制电机的起停、正反转和速度级别。按键与单片机有查 询和中断两种连接方式,本系统中起停和正反转按键采用中断方式控制,速度级 别按键采用查询方式控制。我们的起停和正反转按键分别接到与门的两端和该单 片机的P34 和P35 两个I/O 口,经与运算后进入单片机的INT1 引脚。速度按键直接接到该单片机的P27 口,用查询方式控制。 4.5 数码管显示设计 本系统中采用的是一个7 段共阳级数码管,即数码管中LED 每一位的正级 都共高电平,这样要点亮该数码管中的某一位则只需要给相应位的LED 的负级 一个低电平即可。由于LED 二级管的门限电压最大只有0.7V,而单片机是5V 供电,电流有15mA 左右,如果按照上述方式使用则回路中几乎没有负载,会对单片机即数码管本身造成一定的伤害。因此在本系统设计中我们在数码管接入电源中串一个1K 左右的电阻,给电路限流来保护器件。5 软件主要模块流程图与说明 5.1 系统软件流程图 本程序先进行程序初始化。初始化先对外部中断的触发方式进行设置,然后使 能中断,最后对相关标志位进行初始化。初始化完成后程序进入死循环。在死循 环中首先判断控制步进电机的按键是否被按下,没有被按下时清除相关电机控制 标志位及关闭所有LED 指示灯和数码管显示的状态,当该按键被按下时启动电 机,然后查询速度按键状态,如果有键按下则相应速度标志位,若没有键按下则继续往下执行判断转动正反向标志位,最后判断速度级别并执行相应不同方向和 速度级别状态下的相关控制程序。然后进入下一次的循环操作。依次类推。软件主要流程如图7所示。 图7系统软件流程图 5.2 速度按键控制流程图 单片机的外部中断一初始化在边沿触发方式,当起停和正反转按键中任何一个键按下时,单片机进入INT1 的中断服务子程序,在中断复位子程序中先延时一小段时间用于按键消抖,然后查询P34 和P35 两个I/O 口的状态,来判断是哪个按键按下,然后改变相应的标志位。单片机主控制程序中一直查询速度按键管脚的状态,当查询到速度按键被按下时,先延时一小段时间用于按键消抖,然后再次查询该管脚的状态以确定该按键确实被按下,如果确实被按下则改变相应标志位的值,最后加上按键等待的相关控制,当按键没有被释放时一直等待。速度按键控制流程如图8 所示。图8 速度按键控制流程图6 课程设计总结 本次课程设计我们采用AT89C51 单片机做了一个步进电机的控制系统。通 过这两周的努力我们学到了很多。首先基本熟悉了MCS51 系列单片机的输入输 出、外部中断、串行口中断等单片机的内部资源功能,熟悉并掌握了7 段数码管的显示设计,和25BY0501 类型步进电机的工作原理等。在设计过程中,我们不但拥有自己的创新思维,最关键的是在新思维变成实际应用的过程中我们学会了一种自我学习并解决问题的方法和思路,这应该是我们这次课程设计最大的收获。7 实验心得体会 宋赞:经过进两周的课程设计,最大的感受就是“只要你想做,你就能做到”。最初开始对步进电机的控制等方面可以说是一片空白。但是后来经过慢慢的查找资料,分析资料和实验调试最终还是成功了。另外就是实验过程中,难免会出现一些问题,比如说串口不工作、电机不转等,遇到问题并不可怕,可怕的是不着手去解决问题。我们仔细分析各个模块,不断测试发送和接收的数据终于将系统运行流畅了。这两周我不仅学到了相关专业知识,更学到了很多调试程序的经验和方法。相信这次的成功会给增强我们以后做事的信心。 龚玉洲:这次为期两周的课程设计,我们所做的是利用89C512设计步进电机控制电路。在这之前,我从未接触过步进电机,所以说应该是一切从零开始。于是,我首先选择上网查阅与之相关的资料。通过大量的资料,我对步进电机的工作原理有了基本的了解。我们所要求的是使用二相四线步进电机,于是我更有针对性地去了解并掌握它。其实步进电机的原理很简单,就是将给定的电脉冲信号转变成角位移。在这次课程设计中,我所做的主要是硬件电路设计。软件方面,主要就是我们的组长了。在后来,我也在组长他们的帮助下对程序有所掌握。因为编写程序是需要长时间积累的,所以我想我很难独立完成的。这是我们在学习 单片机后第一次近距离接触单片机,通过这次实践,我们终于可以将理论与实践相结合进而更好地去理解掌握课本知识。在整个课程设计的过程中,我感觉我们这个团队真得太重要了。尽管可能每个人在其中的作用有轻有重,但是我相信如果我们失去其中任何一位,我们将不会这么顺利地完成这次课设任务的。很珍惜这次团结协作的机会,我非常开心。附录A ULN2003管脚图 ULN2003 的管脚图如下 附录B 程序部分源代码#include <reg52.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int #define delayNOP(); _nop_();_nop_();_nop_();_nop_(); uchar code FFW8=0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9;/30度 uchar code REV8=0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1;/30度 sbit K1 = P14; /运行与停止 sbit K2 = P15; /设定圈数 sbit K3 = P16; /方向转换 sbit K4 = P17; /速率调整 sbit BEEP = P37; /蜂鸣器 sbit LCD_RS = P20; sbit LCD_RW = P21; sbit LCD_EN = P22; bit on_off=0; /运行与停止标志 bit direction=1; /方向标志 bit rate_dr=1; /速率标志 bit snum_dr=1; /圈数标志 uchar code cdis1 = " STEPPING MOTOR " uchar code cdis2 = "CONTROL PROCESS" uchar code cdis3 = " STOP " uchar code cdis4 = "NUM: RATE: " uchar code cdis5 = " RUNNING " uchar m,v=0,q=0; uchar number=0,number1=0; uchar snum=5,snum1=5; /预设定圈数 uchar rate=8; /预设定速率 uchar data_temp,data_temp1,data_temp2; 附录C 系统实物图 图C1 步进电机实物图 图C2 单片机步进电机控制系统实物图 参考文献 1 孟武胜,李亮. 基于AT89C52单片机的步进电机控制系统设计J. 西安:微电机学报,2007,40(3):64- 66 2 聂诗良,李磊明. 采用单片机发送并接收红外遥控信号的方法J.信息技术学报,2004,28(2): 21- 23 10.致谢首先衷心感谢我们的两位指导老师,本次课程设计是在两位老师的悉心指导下完成的。老师渊博的知识、严谨的治学态度、敏锐的学术洞察力、活跃的思想、以及平易近人的师长风范,也使我们受益匪浅。值此论文完成之际,谨向老师致以深深的敬意和衷心的感谢。同样感谢我的同学们和其他的老师们,感谢你们的无私帮助,成功不是属于一个人的,而是属于大家的。