单片机原理课程设计题目步进电机控制系统学院物联网工程专业自动化姓名罗之韵学号综合得分2011年6月1目录一、概述二、设计目的及准备1.实验目标2.设计思路3.仪器设备三、系统工作原理1.步进电机原理2.单片机最小系统3.采样原理4.数据存储单元安排5.按键及显示原理6.中断处理四、主要芯片说明及硬件线路1.AT89C512.ULN2003A3.硬件原理图4.PCB实验板五、软件编程1.程序框图2.按键及指示灯功能3.程序流程图4.主程序设计六、总结参考文献2一、概述关键词:51系列单片机步进电机调速转向控制步进电机是一种感应电机,它的工作原理是利用电子电路,将直流电变成分时供电的,多相时序控制电流。步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。正常情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机分为反应式、永磁式、混合式三类。其中混合式步进电机综合了反应式和永磁式的优点,它的动态性能好,控制精度高,是目前应用最为广泛的一种。单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的CPU、RAM、、ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。单片机已经成为电子系统中进行数据采集、信息处理、通信联络和实施控制的重要器件。通常利用单片机技术在各种系统、仪器设备或装置中,形成智能式嵌入系统或子系统。因此单片机技术是电类专业特别是电子信息类学生必须具备的基本功。而步进电机就是单片机技术在日常电子产品中的一项重要应用。步进电机是机电一体化的关键产品之一,被广泛应用在各种自动化控制系统中。并且人们还利用它来驱动时钟和其他采用指针的仪器,打印机、绘图仪、磁盘光盘驱动器、各种自动控制阀、各种工具等机械装置。步进电机是机电数字控制系统中常用的执行元件,由于其精度高、体积小、控制方便灵活,因此在智能仪表和位置控制中得到了广泛的应用。大规模集成电路的发展和单片机技术的日益成熟和普及应用,为设计生产功能更全,使用更加方便的步进电机驱动控制器提供了更多的技术支持。本文便是基于51系列单片机对步进电机控制系统的设计。3二、设计目的及准备1.实验目标(1)了解步进电机的基本结构和工作原理(2)熟悉步进电机的驱动原理(3)巩固单片机的硬件接线及软件编程(4)进一步掌握单片机仿真软件应用(5)掌握用单片机对步进电机的启动停止、转向、速度等功能的程序设计方法(6)提高单片机应用系统设计和调试水平2.设计思路利用DP-51PRO.NET仿真器和Keil设计步进电机控制器。在进行控制的时分别用一个拨码开关控制步进电机启动停止,一个开关控制正反转,另两个开关进行高中低档三档调速;同时用一个LED显示步进电机启动停止,用两个LED灯来显示电机的正反转状态,用三个LED等来显示电机的高中低运行状态。软件编程使用汇编语言,步进电机控制系统进入工作状态的默认模式为低速正转。3.仪器设备(1)PC机(2)DP-51PRO.NET单片机仿真器,编程器,实验仪三合一综合平台(3)导线4三、系统工作原理1.步进电机原理步进电机在控制系统中具有广泛的应用。它可以把脉冲信号转换成角位移,并且可用作电磁制动轮、电磁差分器、或角位移发生器等。该步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如下图所示:步进电机的驱动电路根据控制信号工作,控制信号由单片机产生。其基本原理作用如下:(1)控制步进电机的启动利用软件编程判断启动开关是否被打开,如果打开,则电机进入工作状态。(2)控制步进电机的换相顺序及转向通电换相这一过程称为脉冲分配,其各相通电顺序为AB-BC-CD-DA,通电控制脉冲必须严格按照这一顺序分别控制A,B,C,D相的通断。如果给定工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反转。(3)控制步进电机的速度如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。调整单片机发出的脉冲频率,就可以对步进电机进行调速。单四拍双四拍八拍52.单片机最小系统单片机最小系统包括振荡电路和复位电路两部分。振荡电路用12M晶振,这样一个机器周期1us。复位电路采用手动复位,当按下RESET按键,电阻R1、R2接通5V电源,此时R2分得电压大约为4V,为高电平,即置单片机RST脚为高电平,单片机复位。3.采样原理进电机根据单片机发出的脉冲序列来决定其工作方式为单四拍、双四拍和八拍,并能将脉冲信号转换成角位移。根据步进电机接收到的脉冲序列的不同,决定其自身的通电相序。4.数据存放单元安排单片机将立即数存放到相应的工作寄存器中,不同的延时子程序里,将不同的立即数存放到相应的工作寄存器中,以实现不同长度的延时,进而控制电机运行速度,具体数据分配如下表:工作寄存器十进制立即数十六进制立即数R44028HR5(低速)250FAHR5(中速)12078HR5(高速)5032H5.按键及显示原理系统采用4个拨码开关用来控制步进电机状态转换,分别是总开关、转向控制、中速档和高速档,拨码开关接通时,电源通过上拉电阻和开关到单片机I/O口形成通路,给单片机送入一个高电平,高电平即为有效电平。状态指示采用6个发光二极管分别表示步进电机的启动停止、正转、反转、低速运行、中速运行和高速运行状态,发光二极管正极接电源,负极接单片机I/O6口,同时,每个发光二极管需要接限流电阻起保护作用。6.中断处理当CPU检测到与拨码开关相连引脚电平的变化时,停止当前执行的程序,转而跳至标号处去执行中断请求所对应的程序,当执行完中断程序后,CPU跳回先前所执行的程序。四、主要芯片说明及硬件线路1.AT89C51主要功能:4k字节FLASH闪速存储器,128字节内部RAM,32个I/O口线,2个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51降至0Hz的静态逻辑操作,并支持两种可选的节电工作模式。空闲方式体制CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器体制工作并禁止其他所有不见工作直到下一个硬件复位。7引脚功能说明: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.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0’(外中断0)P3.3INT1’(外中断1)P3.4T0(定时/计数器0)P3.5T1(定时/计数器1)P3.6WR’(外部数据存储器写选通)P3.7RD’(外部数据存储器读选通)8RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。PSEN:程序存储允许输出是外部程序存储器的读选通型号,当89C51由外部存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。2.ULN2003AULN2003是耐高压大电流、内部由七个硅NPN达林顿管组成的驱动芯片。经常在显示驱动、继电器驱动、照明灯驱动、电磁阀驱动、伺服电机、步进电机驱动等电路中使用。ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V的电压,输出还可以在高负载电流并行运行。ULN2003的封装采用DIP—16或SOP—16ULN2003A在各种控制电路中常用它作为驱动继电器的芯片,其芯片内部做了一个消线圈反电动势的二极管。ULN2003的输出端允许通过IC电流200mA,饱和压降VCE约1V左右,耐压BVCEO约为36V。输出电流大,故可以直接驱动继电器或固体继电器(SSR)等外接控制器件,也可直接驱动低压灯泡。ULN2003可以驱动7个继电器,具有高电压输出特性,并带有共阴极的续流二极管使器件可用于开关型感性负载。每对达林顿管的额定集电极电流是500mA,达林顿对管还可并联使用以达到更高的输出电流能力。93.硬件原理图104.PCB实验板11五、软件编程1.程序框图AT89C51最小系统ULN2003A步进电机控制按键LED指示灯电源2.按键、指示灯功能及接口此步进电机控制系统共有4个拨码开关,具体功能与接口如下表:拨码开关名称功能与AT89C51相连的接口S1总开关P0.0S2正反转选择P0.1S3中速档选择P0.2S4高速档选择P0.3步进电机控制系统共有6个LED指示灯,具体功能与接口如下表:LED指示灯名称功能与AT89C51相连的接口D1指示步进电机启动与否P2.0D2指示步进电机运行于正转模式P2.1D3指示步进电机运行于反转模式P2.2D4指示步进电机工作于低速模式P2.312D5指示步进电机工作于中速模式P2.4D6指示步进电机工作于高速模式P2.53.程序流程图开始设定初值判断启动判断正反转判断速度正转相序AB-BC-CD-DA反转相序AB-DA-CD-BC判断速度低速正转中速正转高速正转低速反转中速反转高速反转134.主程序设计BAEQUP1.0BBEQUP1.1BCEQUP1.2BDEQUP1.3ORG0000HLJMPMAINORG0100HMAIN:MOVSP,60HACALLDELAYWAIT:MOVP2,0FFHJNBP0.0,WAITCLRP2.0JBP0.1,FARUNSMRUN:SETBP2.2CLRP2.1MOVP1,#03HACALLDELAYMOVP1,#06HACALLDELAYMOVP1,#0CHACALLDELAYMOVP1,#