基于C51单片机步进电机综合控制实验
大学毕业设计 C51程序控制步进电机
题目:简易步进电机控制步进电机控制摘要:本设计采用ATMEL公司DIP-40封装的AT89S52单片机实现对四相步进电机的手动和按键控制。
由单片机产生的脉冲信号经过分配后分解出对应的四相脉冲,分解出的四相脉冲经驱动电路功率放大后驱动步进电机的转动。
转速的调节和状态的改变由按键进行选择,此过程由程序直接进行控制。
通过键盘扫描把选择的信息反馈给单片机,单片机根据反馈信息做出相应的判断并改变输出脉冲的频率或转动状态信号。
电机转动的不同状态由液晶LCD1602显示出来。
而设计的扩展部分可以通过红外信号的发射由另一块单片机和红外线LED完成,用红外万能接收头接收红外信号,可以实现对电机的控制进行红外遥控。
关键字:四相步进电机单片机功率放大 LCD1602步进电机控制 (1)摘要 (1)关键字 (1)前言 (3)1系统总体方案设计及硬件设计 (4)1.1步进电机 (4)1.1.1 步进电机的种类 (4)1.1.2 步进电机的特点 (4)1.1.3 步进电机的原理 (5)1.2 控制系统电路设计 (7)1.3 液晶显示LCD1602 (7)1.4 AT89S52核心部件及系统SCH原理图 (9)1.5 LN2003A驱动 (10)2软件设计及调试 (13)2.1程序流程 (13)2.2软件设计及调试 (14)3 扩展功能说明 (15)4设计总结 (16)5 设计源程序 (16)6 附录 (21)参考文献 (22)附2:系统原理图及实物图 (23)步进电机广泛应用于对精度要求比较高的运动控制系统中,如机器人、打印机、软盘驱动器、绘图仪、机械阀门控制器等。
目前,对步进电机的控制主要有由分散器件组成的环形脉冲分配器、软件环形脉冲分配器、专用集成芯片环形脉冲分配器等。
分散器件组成的环形脉冲分配器体积比较大,同时由于分散器件的延时,其可靠性大大降低;软件环形分配器要占用主机的运行时间,降低了速度;专用集成芯片环形脉冲分配器集成度高、可靠性好,但其适应性受到限制,同时开发周期长、需求费用较高。
基于51单片机的步进电机控制
电)四拍(A-B-C-D-A。。。),双(双相绕组通电)四拍(AB-BC- CD-DA-AB-。。。), 八拍(A-AB-B-BC-C-CD-D-DA-A。。。) 3、系统电路图
(1)接电源:VCC(PIN40)、GND(PIN20)。加接退耦电容 0.1uF (2)接晶体:X1(PIN18)、X2(PIN19)。注意标出晶体频率(选用 12MHz), 还有辅助电容 20pF (3)接复位:RES(PIN9)。接上电复位电路,以及手动复位电路,分析 复位工作原理 4、 接配置:EA(PIN31) (1)四个 8 位通用 I/O 端口,对应引脚 P0、P1、P2 和 P3; (2)两个 16 位定时计数器;(TMOD,TCON,TL0,TH0,TL1,TH1) (3)一个串行通信接口;(SCON,SBUF) (4)一个中断控制器;(IE,IP) 根据以上的方案比较与论证确定总体方案,确定硬件原理图。原理图如下:
1.3 步进电机的特点
1.精度高 一般的步进电机的精度为步进角的 3-5%,且不累积。可在宽 广的频率范围内通过改变脉冲频率来实现调速,快速起停、正反 转控制及制动 等,这是步进电动机最突出的优点
2.过载性好——其转速不受负载大小的影响,不像普通电机,当负载加大 时就会出现速度下降的情况,所以步进电机使用在对速度和位置都有严格要求的 场合;
一、步进电机与驱动电路
1.1 什么是步进电机
步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱 动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度 (及步进角)。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目 的;同时也可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调 速的目的。
基于51单片机的步进电机控制-设计报告(说明书)及源程序
步数
Q1
Q2
Q3
Q4
1
1
0
1
0
2
1
0
0
1
3
0
1
0
1
4
0
1
1
0
5
1
0
1
0
表1
二
2.
该系统中只运用到三个控制按钮,即 “正反”,“换挡”,“启停”,由于按钮较少,所以采用独立键电路,这种按键电路的按键结构相对行列式按键电路更简单,更使人易懂。
单片机的晶振为12MHZ;
(3)、系统电路图:
南京XX大学
指导老师:张X
课 程 设 计
基于51单片机的步进电机控制
机械电子工程学院
测控技术与仪器
XXXXX
Xxx
2012年1年4日
步进电机控制系统
[摘要]本课程设计的内容是利用51单片机,达到控制步进电机的启动、停止、正转、反转、两档速度和状态显示的目的,使步进电机控制更加灵活。步进电机驱动芯片采用ULN2803,ULN2803具有大电流、高电压,外电路简单等优点。利用四位数码管增设电机状态显示功能,各项数据更直观。实测结果表明,该控制系统达到了设计的要求。
2.
如图2.31,采用LED数码管动态显示数据与个项参数,方法简单,容易控制,成本低。
设计如下图
图2.31
2.4驱动电路设计
驱动电路可分为:三极管直接驱动(图3),采用斩波恒流驱动方式(图2.41)和芯片驱动电路等。驱动电路的性能直接关系到步进电机走步的准确与稳定。本电路采用驱动芯片ULN2803。ULN2803是一种大电流高电压型器件,外电路简单(图2.42)。
基于51单片机的步进电机控制
目录第1章总体设计方案 (1)1.1设计原理 (1)1.2设计思路 (1)1.3实验环境 (2)第2章详细设计方案 (3)2.1硬件电路设计 (3)2.2主程序设计 (4)2.3功能模块的设计与实现 (5)第3章结果测试及分析 (8)3.1结果测试 (8)3.2结果分析 (8)参考文献 (9)附录A (10)附录B(电路原理图) (15)附录C (元件列表) (16)第1章总体设计方案1.1 设计原理根据课程设计任务书的内容与要求,要实现步进电机的工作过程,步进电机是一种将电脉冲转换成相应角位移或线位移的电磁机械装置,也是一种能把输出位移增量和输入数字脉冲对应的驱动器件。
首先要给步进电机送入脉冲信号来启动,然后在已经设定好的步进电机的正反转及三种节拍工作方式中切换,步进电机的三种节拍工作方式分别为单四拍、双四拍、单双八拍。
步进电机的驱动需要时钟脉冲信号,改变单片机输出脉冲信号来实现的。
改变各脉冲的先后顺序,可以改变电机的旋转方向和工作方式。
步进电机工作方式的转换则通过键盘控制,可以进行启动、停止、正转、反转及三种节拍工作方式的选择。
键盘的控制是在程序中已经给给每个键设置相应的功能,扫描键盘判断是否有键按下,若有,则执行与之对应的功能;若没有键按下,则保持正在运行的状态不变。
1.2 设计思路采用C语言程序设计的方法结合硬件电路设计方法,利用Lab6000实验箱上已有芯片来实现步进电机的工作(包括正转、反转、单四拍、双四拍、单双八拍的节拍工作方式)。
1)提出方案首先,实现步进电机的启动与停止;其次,实现步进电机的正反转;再次,实现在正转时可选择三种节拍工作方式;最后,实现在反转时可选择三种节拍工作方式。
2)方案论证P1口接步进电机的A~D口,键盘接通片选信号,扫描键盘,由于本程序设定固定按键为功能键,所以扫描键盘时,将使用到的按键的相应列扫描码设置为低电平,如果有键按下,74LS374输出的低电平经过按键被接到74LS245的端口上,这样从74LS245读回的数据就会有低位,根据74LS374输出的列信号和74LS245读回的行信号,就可以判断哪个键被按下。
基于51单片机的步进电机控制系统设计
基于51单片机的步进电机控制系统设计步进电机是一种特殊的直流电动机,具有定角度、定位置、高精度等特点,在许多领域得到广泛应用,如机械装置、仪器设备、医疗设备等。
本文将基于51单片机设计一个步进电机控制系统,主要包括硬件设计和软件设计两部分。
一、硬件设计步进电机控制系统的硬件设计主要包括51单片机、外部电源、步进电机驱动模块、以及其他辅助电路。
1.51单片机选择由于步进电机控制需要执行复杂的算法和时序控制,所以需要一个性能较高的单片机。
本设计选择51单片机作为主控芯片,因为51单片机具有丰富的外设接口、强大的计算能力和丰富的资源。
2.外部电源步进电机需要较高的电流供给,因此外部电源选择稳定的直流电源,能够提供足够的电流供电。
电源电压和电流的大小需要根据具体的步进电机来确定。
3.步进电机驱动模块步进电机驱动模块是连接步进电机和51单片机的关键部分,它负责将51单片机输出的脉冲信号转化为对步进电机的驱动信号,控制步进电机准确转动。
常用的步进电机驱动芯片有L297、ULN2003等。
4.其他辅助电路为了保证步进电机控制系统的稳定运行,还需要一些辅助电路,如限流电路、电源滤波电路、保护电路等。
这些电路的设计需要根据具体的应用来确定。
二、软件设计1.系统初始化系统初始化主要包括对51单片机进行外部中断、定时器、串口和IO 口等初始化设置。
根据实际需求还可以进行其他模块的初始化设置。
2.步进电机驱动程序步进电机的驱动程序主要通过脉冲信号来控制电机的转动。
脉冲信号的频率和脉冲宽度决定了电机的转速和运行方向。
脉冲信号可以通过定时器产生,也可以通过外部中断产生。
3.运动控制算法步进电机的运动控制可以采用开环控制或闭环控制。
开环控制简单,但无法保证运动的准确性和稳定性;闭环控制通过对电机转动的反馈信号进行处理来调整脉冲信号的生成,从而实现精确的运动控制。
4.其他功能设计根据具体的应用需求,可以加入其他功能设计,如速度控制、位置控制、加速度控制等。
基于51单片机实现的步进机控制系统设计
摘要步进电机是一种进行精确步进运动的机电执行元件,它广泛地用于工业机械的数字控制。
为使系统的可靠性,通用性,可维护性以及性价比最优,根据控制系统功能要求及步进电动机应用环境,确定了设计系统硬件和软件的功能划分,从而实现了基于8051单片机的四相步进电动机的开环控制系统。
控制系统通过单片机存储器、I/O口、中断、键盘、LED显示器的扩展,步进电动机的环形分配器、驱动及保护电路、人机接口电路、中断系统及复位电路、单电压驱动电路等的设计。
实现了四相步进电动机的正反转、急停等功能。
为实现单片机控制步进电动机系统在数控机床上的特殊应用,系统设计了两个外部中断,以实现步进电动机在某段时间内的反复正反转功能,也即数控机床的刀架自动进给运动。
关键词:8051单片机;四相步进电动机;控制Realizes based on single chip microcomputer 51 the stepping motor the control systemABSTRACTThe stepping motor is a precision electromechanical incremental actuator.It widely uses the digital approach for control of industrial machines.For dependable,in general use that make system,can support sex an sex price ratio superior,divide the line according to control system funcion request and a function for entering electricmotor applying environment,making sure designing system hardware with softwares, from but realizes to base on single chip microcomputer 8051 of four mutually the step enters the dynamoelectric opening the wreath the control the system.The control system passes the single saving maching,I/O in a machine, break off,the keyboard, the display of LED expands, a wreah for entering elecreic motor form assigns the machine,drive and the design of its protection electric circuit, man-machine connection electric circuit,interrupt system and reset circuit, single-voltage driver circuit and so on,realizes four mutually the step enters the electric motor positive and negative to turn, nasty stop to wait the function.For realizing single chip microcomputer control a special application for entering electric motor system in severalth contorling machine bed, the system designed two exteriors breaks off,toing realize a the step enters electric motor is in a certain time of again and again positive and negative turn the function, also count namely the knife that control the machine bed is automatic to enter to the sport.KEYWORD:single chip microcomputer 8051;four-phase stepper motor ;control第一章绪论1.1 课题背景当今社会,电动机在工农业生产、人们日常生活中起着十分重要的作用。
基于51单片机的步进电机控制系统-单片机课程设计报告
9.牵入转矩:≥34.3mN.m(120Hz) 10.自定位转矩:≥34.3mN.m 11.绝缘电阻:>10MΩ (500V) 12.绝缘介电强度:600VAC/1mA/1S 13.绝缘等级:A 14.温升:<50K(120Hz) 15.噪音:<40dB(120Hz) 16.重量:大约 40g 17.未注公差按:GB1804-m 18.转向:CCW
2.2.2 步进电机 24BYJ48 的相关电气参数
1.额定电压:12VDC(另有电压:5V、6V、24V) 2.相数:4 3.减速比:1/64(另有减速比:1/16、1/32) 4.步距角:5.625°/64 5.驱动方式:4 相 8 拍 6.直流电阻:200Ω ±7%(25℃)(按客户要求而定:80、130 欧姆) 7.空载牵入频率:≥600Hz 8.空载牵出频率:≥1000Hz
三、 ULN2003 达林顿陈列芯片
步进电机的驱动采用 ULN2003 芯片。 ULN2003 是高耐压、大电流达林顿陈列,由七个硅 NPN 达林顿管组成。 ULN2003 的每一对达林顿都串联一个 2.7K 的基极电阻, 在 5V 的工作电压下 它能与 TTL 和 CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器 来处理的数据。ULN2003 工作电压高,工作电流大,灌电流可达 500mA ,并 且能够在关态时承受 50V 的电压,输出还可以在高负载电流并行运行。 其引脚及内部原理图如下:
口作输入口使用时, 因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电 流(������������L ) 。 P2 端口(P2.0~P2.7,21~28 引脚) :P2 口是一个带内部上拉电阻的 8 位双 向 I/O 端口。 P2 的输出缓冲器可以驱动(吸收或输出电流方式)4 个 TTL 输入。 对端口写入 1 时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。 P2 作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会 输出一个电流(������������L ) 。 在访问外部程序存储器和 16 位地址的外部数据存储器(如执行“MOVX @DPTR” 指令) 时, P2 送出高 8 位地址。 在访问 8 位地址的外部数据存储器 (如 执行“MOVX @R1”指令)时,P2 口引脚上的内容(就是专用寄存器(SFR) 区中的 P2 寄存器的内容) ,在整个访问期间不会改变。 在对 Flash ROM 编程和程序校验期间, P2 也接收高位地址和一些控制信号。 P3 端口(P3.0~P3.7,10~17 引脚) :P3 是一个带内部上拉电阻的 8 位双向 I/O 端口。P3 的输出缓冲器可驱动(吸收或输出电流方式)4 个 TTL 输入。对端 口写入 1 时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3 做输入口使用时, 因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一 个电流(������������L ) 。 在对 Flash ROM 编程或程序校验时,P3 还接收一些控制信号。 P3 口除作为一般 I/O 口外,还有其他一些复用功能,如下表所示: 表 XX 引脚号 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3 口引脚复用功能 复用功能 RXD(串行输入口) TXD(串行输出口) ������NT0(外部中断 0) ������NT1(外部中断 1) T0(定时器 0 的外部输入) T1(定时器 1 的外部输入) ������R(外部数据存读选通) RST(9 引脚) :复位输入。当输入连续两个机器周期以上高电平时为有效,
51单片机实训实验报告
课设实习报告题目:步进电机姓名:杨帅班级: 3100303专业:机电一体化学号: 23号一、目的设计一个可以用单片机控制的步进电机正反转。
二、内容1、单片机采用AT89C51。
2、步进电机。
3、要求电路设计合理,系统功能可靠、稳定。
三、功能介绍按下开始按钮后,步进电机正转后自动反转。
四、步进电机的工作原理步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,它的的驱动电路根据控制信号工作,控制信号由单片机产生。
当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,控制换相顺序,即通电控制脉冲必须严格按照一定顺序分别控制各相的通断。
通过控制脉冲个数即可以控制角位移量,从而达到准确定位的目的。
控制步进电机的转向,即给定工作方式正序换相通电,步进电机正转,若按反序通电换相,则电机就反转。
控制步进电机的速度,即给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步,两个脉冲的间隔越短,步进电机就转得越快。
同时通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
五、硬件结构图六、硬件电路图七、程序流程图八、程序编程#include <at89x51.h>#define TIME0H 0xfc#define TIME0L 0xff //定时器0溢出时间:1ms//********************************************************* ****************************************//**//*******************************全局变量**********************************//**//********************************************************* ****************************************unsigned char uc_StepSelect=0; //励磁电流选择序号。
基于C51单片机步进电机综合控制实验
重庆工商大学计算机与信息工程学院学院《单片机原理及应用》课程实验报告实验名称:步进电机综合控制实验实验班级:2010级自动化专业班级:2010级自动化三班指导老师:文远熔组员:陶园2010133330 王路2010133344江洋2010133335陈娅2010133326张琴芳2010133317张丹2010133320(组长)一、摘要:本实验利用8051单片机达到控制步进电机的启动、停止、正转、反转、点动、转过指定角度、状态显示和数据指示的目的,使步进电机控制更加灵活。
步进电机驱动芯片采用ULN2003,ULN2003具有大电流、高电压,外电路简单等优点。
利用ZLG7290模块驱动LED数码管显示速度设定值。
通过这个单片机控制系统的设计来掌握步进电机的工作原理和驱动过程以及LED显示原理和ZLG7290模块的使用方法,用LED数码管显示实验要求的状态结果,设计电路的硬件接线图和实现上述要求的程序。
关键词:51单片机步进电机ZLG7290 ULN2003二、设计内容与要求:1、任务介绍:实现步进电机按规定的速度正转、反转,转过指定的角度,要有点动功能。
所有命令通过键盘输入,步进电机在运行过程中要有状态和数据指示。
2、每套设计文档应包括:系统原理说明、程序框图、电路原理图和程序清单。
三、实验器件介绍及原理:本实验采用单片机来控制步进电机,实现了软件与硬件相结合的控制方法。
在单片机环境下,用ULN2003驱动芯片驱动步进电机,用ZLG7290芯片作用下的按键控制步进电机的运行,从而达到实验要求。
其控制框图(图一)为:图一:控制框图1、系统硬件介绍1.1步进电机1.1.1相关的技术指标:a、相数:指电机内部的线圈组数,目前常用的有二相、三相、四相、五相步进电机,本实验用的是四相步进电机。
电机相数不同,其步距角也不同。
b、步距角:表示控制系统每发一个步进脉冲信号,电机所转动的角度。
本实验程序运行前要先测量步进电机的步距角。
用51单片机控制两相四线步进电机
用51单片机控制两相四线步进电机最近学习步进电机的驱动原理,照着教材自己实践了一下用ULN2003驱动28BYJ-48两相5线步进电机,可以正常转动。
手头有一个旧光驱,拆开发现里面有三个电机,其中有一个控制激光头寻迹的两相四线步进电机,我就用51的单片机让它也转起来。
一开始照葫芦画瓢用ULN2003驱动,结果发现无论如何也不行。
原来ULN2003基本没输出电流,只能驱动有公共端的两相五线、两相六线步进电机,不能驱动2相4线步进电机。
然后改用L293D驱动,可以转动。
通过按钮控制正反转时发现,按键释放后,电机迅速发热,烫手。
用万用表测量,发现电机A,A-或B,B-直接存在电位差!应该是按键释放时,IN1-IN4没有归零。
找到问题,就容易解决了。
修改程序,可以完美运行,键1按下正转,释放停下,键2按下反转,释放停下。
IN1-IN4分别接P1口的低四位。
工作方式选用8拍。
A 1 1 0 0 0 0 0 1A- 0 0 0 1 1 1 0 0B 0 1 1 1 0 0 0 0B- 0 0 0 0 0 1 1 1附上源程序,仅供参考。
#include#define uint unsigned int#define uchar unsigned charsbit K3=P2^5;sbit K4=P2^4;//k3正转。
k4反转。
释放停止uchar code step_table[]={0x8,0xa,0x2,0x6,0x4,0x5,0x1,0x9};void delay(unsigned int m){unsigned int i,j;for(i=m;i>0;i--)for(j=110;j>0;j--);}void xp()//x轴正转{while(!K3){uint i;for(i=0;i<8;i++){P1=step_table[ i];delay(10);}}P1=0;//按键释放时,反转P1停在table某处,导致电机有电压从而使电机发热,需要归零。
基于C51单片机步进电机综合控制实验
重庆工商大学计算机与信息工程学院学院《单片机原理及应用》课程实验报告实验名称:步进电机综合控制实验实验班级:2010级自动化专业班级:2010级自动化三班指导老师:文远熔组员:陶园2010133330 王路2010133344江洋2010133335陈娅2010133326张琴芳2010133317张丹2010133320(组长)一、摘要:本实验利用8051单片机达到控制步进电机的启动、停止、正转、反转、点动、转过指定角度、状态显示和数据指示的目的,使步进电机控制更加灵活。
步进电机驱动芯片采用ULN2003,ULN2003具有大电流、高电压,外电路简单等优点。
利用ZLG7290模块驱动LED数码管显示速度设定值。
通过这个单片机控制系统的设计来掌握步进电机的工作原理和驱动过程以及LED显示原理和ZLG7290模块的使用方法,用LED数码管显示实验要求的状态结果,设计电路的硬件接线图和实现上述要求的程序。
关键词:51单片机步进电机ZLG7290 ULN2003二、设计内容与要求:1、任务介绍:实现步进电机按规定的速度正转、反转,转过指定的角度,要有点动功能。
所有命令通过键盘输入,步进电机在运行过程中要有状态和数据指示。
2、每套设计文档应包括:系统原理说明、程序框图、电路原理图和程序清单。
三、实验器件介绍及原理:本实验采用单片机来控制步进电机,实现了软件与硬件相结合的控制方法。
在单片机环境下,用ULN2003驱动芯片驱动步进电机,用ZLG7290芯片作用下的按键控制步进电机的运行,从而达到实验要求。
其控制框图(图一)为:图一:控制框图1、系统硬件介绍1.1步进电机1.1.1相关的技术指标:a、相数:指电机内部的线圈组数,目前常用的有二相、三相、四相、五相步进电机,本实验用的是四相步进电机。
电机相数不同,其步距角也不同。
b、步距角:表示控制系统每发一个步进脉冲信号,电机所转动的角度。
本实验程序运行前要先测量步进电机的步距角。
毕业设计-基于C51单片机的步进电机控制系统设计
摘要本设计中首先介绍了步进电机的工作原理、控制特点和运行状态,然后给出了步进电机的单片机控制系统的总体设计方案。
在这个控制系统中,单片机选用AT89C51,其作为控制核心,担负着产生脉冲,发送、接受控制命令等任务;脉冲分配采用硬件方法,由8713接收到单片机的控制信号后产生相应的控制脉冲,避免了软件法在不停地产生脉冲时占用的时间;采用单电压驱动的方法驱动电机带动负载运行;利用键盘、显示专用芯片8279能够以较简单的硬件电路和较少的软件开销实现微型机与键盘和LED显示器接口。
本设计最后详细介绍了硬件部分和软件部分的实现方法。
关键词:单片机;步进电机;速度控制;ZLG7290;显示器AbstractThe design introduces the working principle of stepper motor, control features and operations, and then gives the stepper motor microcontroller control system design programs. In this control system, the SCM selecting AT89C51, the control center of the shoulder produces pulses, sending, receiving control commands and other tasks; pulse distribution method using hardware from the 8713 chip control signals received resulting from the corresponding control pulse, to avoid software method to generate pulses in constant time occupied; adopt a single voltage-driven approach drive motor to drive the load operation; use of keyboard, display 8279 can be dedicated to simple hardware and less software overhead to achieve keyboard and LED display interface. Finally introduce the hardware and software implementation methods in detail.Key words: SCM; stepper motor; speed control;ZLG7290;display;目录摘要 (I)Abstract .................................................... I I 第一章绪论. (1)1.1步进电机概述 (1)1.2课题研究的主要内容 (2)1.2.1研究内容 (2)1.2.2论文安排 (2)第二章步进电机控制系统设计方案 (3)2.1步进电机的系统 (3)2.2步进电机的失步现象 (5)2.3步进电机控制系统的组成 (6)2.4系统的控制过程 (7)第三章步进电机控制系统硬件部分 (9)3.1硬件电路图 (9)3.2采用51系列单片机AT89C51作为控制器 (10)3.2.1 AT89C51的主要性能 (10)3.2.2 AT89C51引脚功能说明 (10)3.3步进电机的驱动电路 (15)3.4 LED显示电路 (16)3.4.1 LED显示器的结构原理 (16)3.4.2 LED显示接口 (18)3.5可编程键盘/显示控制器ZLG7290电路工作原理 (19)3.5.1 ZLG7290概述 (19)3.5.2管脚、引线与功能 (21)3.5.3 ZLG7290键盘、显示接口电路设计 (24)3.6脉冲分配 (26)第四章步进电机控制系统软件部分 (30)4.1定时器中断服务 (30)4.1.1定时器初值 (30)4.1.2定时器中断服务子程序 (31)4.2 速度控制 (31)第五章总结 (35)致谢 (36)参考文献 (37)附录 (38)第一章绪论本章将简要介绍步进电机的发展过程、步进电机在日常生活中的广泛应用、步进电机作为数字控制电动机的主要特点以及本次研究的主要内容和论文安排。
基于51单片机的步进电机的控制设计
单片机应用系统设计报告设计题目:步进电机控制器设计专业班级:学生姓名:指导教师:设计时间: 2016年12月一、 设计要求及方案 1、设计要求可以实现步进电机正转和反转控制及速度的控制,同时实现步进电机步数的控制。
2、设计方案本次设计采用AT89C51单片机控制一个四相步进电机。
单片机输出脉冲序列,驱动步进电机转动;并设置开关、按键电路,来控制步进电机的2挡转速,即加速、减速;以及步数的变化,即四拍驱动方式、八拍驱动方式,同时控制步进电机的转动方向,即正转、反转。
设计方案总体框图:二、步进电机简介 1、步进电机工作原理步进电机是一种将电脉冲转化为角位移的执行机构。
当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。
可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。
步进电机是一种感应电机,它的工作原理是利用电子电路,将直流电变成分时供电的,多相时序控制电流,用这种电流为步进电机供电,步进电机才能正常工作,驱动器就是为步进电机分时供电的多相时序控制器。
虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机,交流电机在常规下使用。
它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。
因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。
步进电机作为执行元件,是机电一体化的关键产品之一, 广泛应用在各种自动化控制系统中。
随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。
2、步进电机磁力方式选择步进电机的励磁方式主要分为全步励磁和半步励磁两种,其中全步励磁又有一相励磁和二相励磁之分,半步励磁又称一-二相励磁。
基于51单片机的步进电机控制系统单片机课程设计报告
微机原理与接口技术课程设计报告基于51单片机的步进电机控制系统毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
基于51单片机的步进电机控制系统设计与实现
基于51单片机的步进电机控制系统设计与实现步进电机控制系统是基于51单片机的一种控制系统,它主要用来控制步进电机的转动方向和转速等参数。
下面详细解释一下这个系统的设计和实现。
1. 系统硬件设计步进电机控制系统的硬件主要包括51单片机、驱动电路、步进电机和电源等部分。
其中,驱动电路是控制步进电机的关键,它通常采用L298N芯片或ULN2003芯片等常用的驱动模块。
在硬件设计方面,主要需要考虑以下几个方面:(1)步进电机的种类和规格,以便选择合适的驱动电路和电源。
(2)驱动电路的接线和参数设置,例如步进电机的相序、脉冲频率和电流大小等。
(3)电源的选取和参数设置,以满足系统的供电要求和安全性要求。
2. 系统软件设计步进电机控制系统的软件设计主要包括编写控制程序和调试程序。
其中,控制程序是用来实现步进电机的正转、反转、加速和减速等控制功能,而调试程序则用来检测系统的电路和程序的正确性和稳定性。
在软件设计方面,主要需要考虑以下几个方面:(1)确定控制程序的算法和流程,例如使用“循环控制法”或“PID控制法”等控制方法。
(2)选择编程语言和编译器,例如使用汇编语言或C语言等。
(3)编写具体的控制程序和调试程序,并进行测试和调试,以确保程序的正确性和稳定性。
3.系统实现步进电机控制系统的实现主要包括硬件组装和软件烧录两个部分。
在硬件组装方面,需要按照硬件设计图纸进行零部件的选取和电路的组装,同时进行电源和信号线的接入。
在软件烧录方面,需要使用专用的编程器将程序烧录到51单片机的芯片中,并进行相应的设置和校验。
总之,基于51单片机的步进电机控制系统是一个功能强大、应用广泛的控制系统,可以实现精密控制和自动化控制等多种应用,具有很高的实用价值和研究价值。
基于51系列单片机控制步进电机调速实验
基于51系列单片机控制步进电机调速实验实验目的及要求:1、熟悉步进电机的工作原理2、熟悉51系列单片机的工作原理及调试方法3、设计基于51系列单片机控制的步进电机调速原理图(要求实现电机的速度反馈测量,测量方式:数字测量)4、实现51系列单片机对步进电机的速度控制(步进电机由实验中心提供,具体型号42BYG )由按钮控制步进电机的启动与停止;实现加速、匀速、和减速控制。
速度设定由键盘设定,步进电机的反馈速度由LED数码管显示。
实验原理:步进电机控制原理一般电动机都是连续旋转,而步进电动却是一步一步转动的,故叫步进电动机。
步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。
步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。
因此步进电动机是一种把脉冲变为角度位移(或直线位移)的执行元件。
步进电动机的转子为多极分布,定子上嵌有多相星形连接的控制绕组,由专门电源输入电脉冲信号,每输入一个脉冲信号,步进电动机的转子就前进一步。
由于输入的是脉冲信号,输出的角位移是断续的,所以又称为脉冲电动机。
随着数字控制系统的发展,步进电动机的应用将逐渐扩大。
步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。
步进电机的驱动电路根据控制信号工作,控制信号可以由单片机产生。
电机转子均匀分布着很多小齿,定子齿有三个励磁绕阻,其几何轴线依次分别与转子齿轴线错开。
0、1/3て、2/3て,(相邻两转子齿轴线间的距离为齿距以て表示),即A与齿1相对齐,B与齿2向右错开1/3て,C与齿3向右错开2/3て,A'与齿5相对齐,(A'就是A,齿5就是齿1)下面是定转子的展开图:(图2所示)图1 是反应式步进电动机结构示意图,它的定子具有均匀分布的六个磁极,磁极上绕有绕组。
单片机实验步进电机控制
实验九步进电机控制实验一、实验目的1、掌握keil C51软件与proteus软件联合仿真调试的方法;2、掌握步进电机的工作原理及控制方法;3、掌握步进电机控制的不同编程方法;二、实验内容1、用Proteus设计一四相六线步进电机控制电路。
要求利用P1口作步进电机的控制端口,通过达林顿阵列ULN2003A驱动步进电机。
基本参考电路见后面附图。
2.、编写程序,实现步进电机的正反转控制。
正反转时间分别持续10S时间,如此循环。
3.、设计一可调速步进电机控制电路。
P3.2~P3.5分别接按键k1~k4,其中k1为正反转控制按键,k2为加速按键,k3为减速按键,k4为启动/停止按键,要求速度7档(1~7)可调,加减速各设3档,复位时位于4档,要求每档速度变化明显。
该步进电机控制电路在以上电路的基础上自行修改。
三、实验原理及步骤1.步进电机控制原理:1) 步进电机是利用电磁铁的作用原理,步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。
每来一个电脉冲,步进电机转动一定角度,带动机械移动一小段距离。
特点 A.来一个脉冲,转一个步距角。
B.控制脉冲频率,可控制电机转速。
C.改变脉冲顺序,可改变转动方向。
2) 以反应式步进电机为例说明步进电机的结构和工作原理。
三相反应式步进电动机的原理结构图如下,定子内圆周均匀分布着六个磁极,磁极上有励磁绕组,每两个相对的绕组组成一相。
转子有四个齿。
给A相绕组通电时,转子位置如图(a),转子齿偏离定子齿一个角度。
由于励磁磁通力图沿磁阻最小路径通过,因此对转子产生电磁吸力,迫使转子齿转动,当转子转到与定子齿对齐位置时(图b)因转子只受径向力而无切线力,故转矩为零,转子被锁定在这个位置上。
由此可见:错齿是助使步进电机旋转的根本原因。
3)三相反应式步进电动机的控制原理①三相单三拍:A 相 B 相 C A 相②三相六拍:A AB B BC C CA A③三相双三拍:AB BC CA AB4)步距角计算公式:步距角=360/(转子齿数*每个通电循环周期的拍数)四、电路设计及调试1、实验电路XTAL218XTAL119ALE 30EA31PSEN 29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C122PFC222PFX1CRYSTALC320uFRA1k+5VRB1000+5V1B 11C 162B 22C 153B 33C 144B 44C 135B 55C 126B 66C 117B77C10COM 9U2ULN2003A+88.8STEPPER-MOTORD1DIODED2DIODED3DIODE2、程序设计及调试步进电机正反转: #include<reg51.h>#define uchar unsigned char #define uint unsigned int sbit A1=P1^0; sbit B1=P1^1; sbit C1=P1^2; sbit D1=P1^3;sbit fangxiang=P3^0; sbit up=P3^1; sbit down=P3^2; uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0x f8};int speed,count; bit flag; #define coil_A {A1=1;B1=0;C1=0;D1=0;} #define coil_B {A1=0;B1=1;C1=0;D1=0;} #define coil_C {A1=0;B1=0;C1=1;D1=0;} #define coil_D {A1=0;B1=0;C1=0;D1=1;} #define coil_AB {A1=1;B1=1;C1=0;D1=0;}#define coil_BC {A1=0;B1=1;C1=1;D1=0;} #define coil_CD {A1=0;B1=0;C1=1;D1=1;} #define coil_DA {A1=1;B1=0;C1=0;D1=1;} void delay1ms(uint x) { uint y,z; for(y=0;y<x;y++) for(z=0;z<120;z++); } void main() { speed=100; EA=1; ET0=1; TR0=1; TMOD=0X01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; while(1) { if(flag==1) { coil_A delay1ms(speed); coil_AB delay1ms(speed); coil_B delay1ms(speed); coil_BC delay1ms(speed); coil_C delay1ms(speed); coil_CD delay1ms(speed); coil_D delay1ms(speed); coil_DA delay1ms(speed); } if(flag==0) { coil_DA delay1ms(speed); coil_D delay1ms(speed); coil_CD delay1ms(speed); coil_C delay1ms(speed); coil_BCdelay1ms(speed); coil_Bdelay1ms(speed);coil_AB delay1ms(speed);coil_Adelay1ms(speed);}}}void time0() interrupt 1 {TH0=(65536-50000)/256;TL0=(65536-50000)%256; count++;if(count>=200) {count=0;flag=~flag;}});}void main(){init();while(1){write_com(0x80+0x01);for(num=0;num<13;num++){write_data(table[num]);delay1ms(10);}write_com(0x80+0x40);for(num1=0;num1<27;num1++){write_data(table1[num1]);delay1ms(10);}write_com(0x1c);}}步进电机调速转动:#include<reg51.h>#define uchar unsigned char#define uint unsigned int sbit A1=P1^0;sbit B1=P1^1;sbit C1=P1^2;sbit D1=P1^3;sbit fangxiang=P3^0; sbit up=P3^1;sbit down=P3^2;uchar code table[]={0xc0,0xf9,0xa4 ,0xb0,0x99,0x92,0x82,0x f8};int step,speed;int step=3;bit flag;#define coil_A {A1=1;B1=0;C1=0;D1=0;} #define coil_B {A1=0;B1=1;C1=0;D1=0;} #define coil_C {A1=0;B1=0;C1=1;D1=0;}#define coil_D{A1=0;B1=0;C1=0;D1=1;}#define coil_AB{A1=1;B1=1;C1=0;D1=0;}#define coil_BC{A1=0;B1=1;C1=1;D1=0;}#define coil_CD{A1=0;B1=0;C1=1;D1=1;}#define coil_DA{A1=1;B1=0;C1=0;D1=1;}void delay1ms(uint x){uint y,z;for(y=0;y<x;y++)for(z=0;z<120;z++);}void main(){speed=100;EA=1;EX1=1;IT1=1;while(1){speed=20+step*10;P2=table[7-step];if(flag==1){coil_Adelay1ms(speed);coil_ABdelay1ms(speed);coil_Bdelay1ms(speed);coil_BCdelay1ms(speed);coil_Cdelay1ms(speed);coil_CDdelay1ms(speed);coil_Ddelay1ms(speed);coil_DAdelay1ms(speed);}if(flag==0){coil_DAdelay1ms(speed);coil_D delay1ms(speed);coil_CDdelay1ms(speed);coil_Cdelay1ms(speed);coil_BCdelay1ms(speed); coil_Bdelay1ms(speed);coil_ABdelay1ms(speed);coil_Adelay1ms(speed);}}}void int1() interrupt 2{EA=0;delay1ms(100);EA=1;if(fangxiang==0){flag=~flag;}if(down==0){step++;if(step>=6)step=6;}if(up==0){step--;if(step<=0)step=0;}}。
基于C51的步进电机控制系统
2015 年 6 月目录1 绪论 (1)1.1 步进电机的单片机控制系统研究意义 (1)1.2步进电机的单片机控制系统国内外现状,水平 (1)1.3步进电机的单片机控制系统发展趋势 (2)1.4步进电机的单片机控制系统设计的基本任容 (2)2系统设计原理方案和硬件设计 (3)2.1步进电机型号的选择、电机参数以及要实现的目的 (3)2.2系统的设计方案以及原理图 (3)2.3单片机最小系统 (4)2.4外部输入4*4矩阵式键盘 (7)2.4.1矩阵式键盘的构成及键盘扫描 (7)2.4.2按键的功能设置及按键功能的使用 (7)2.5LCD显示模块LM016L液晶显示器 (9)2.6步进电机驱动模块ULN2003A及步进电机 (11)2.7指示灯模块 (13)3软件设计介绍及proteus仿真 (15)3.1主程序 (15)3.2键盘扫面程序 (15)3.3内部处理执行程序 (17)3.4显示程序 (17)3.5正反转程序 (19)3.6正反向点动程序 (19)3.7调速模式程序 (20)3.8 proteus仿真 (22)3.8.1正转仿真 (22)3.8.2反转仿真 (22)3.8.3正向点动仿真 (23)3.8.4正向点动仿真 (23)3.8.5输入无效时仿真 (24)3.8.6调速模式正常输入情况下仿真 (25)3.8.7调速模式非正常输入情况下仿真 (26)结论 (28)致谢 (29)参考文献 (30)附录 (31)1 绪论1.1 步进电机的单片机控制系统的研究意义经过几十年的发展,单片机控制技术已经应用于各个领域,而且在应用到它的那些领域都起着很大的作用[1]。
用单片机来控制的那些智能系统在实际中大幅减少了需要投入的人力资源,而且还提高了生产效率和提高了工程质量。
因为单片机的这些优越性,目前国家将单片机也作为重点发展项目,各大高校也将单片机单片机教学列为重点必修课程,就是为了以后有更多这方面的人才。
基于C51的步进电机控制
本研究课题受江苏省教育厅自然科学基金项目(项目编号:02K J 0540001)资助基于C51的步进电机控制常熟高等专科学校物理系 周 平 215500【摘 要】 介绍了用C51对AT89C2051单片机编程,实现四相八拍步进电机的控制,以达到精确定位的目的【关键字】 C51,单片机,步进电机,定位1.引言电磁铁是纺织设备的重要的部件。
电压、电流、电阻、通电磁感应强度、断电磁感应强度等电磁参数是判断一个电磁铁好坏的重要依据。
现有一矩形电磁铁,上面均匀排布了20个等间距的电磁阀(每个电磁阀间距为12mm ),要求对每个电磁阀进行电磁参数测量以便进一步处理。
为了提高测量准确度,采用步进电机对其精确定位。
步进电机由单片机控制,用C51编程实现。
C51是一种开发51系列单片机的高级语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。
尤其是它具有丰富的库函数、运算速度快、编译效率高、有良好的可移植性、而且可以直接对系统硬件操作。
利用C51开发单片机系统不但可以减少编程工作量,而且便于软件的维护和修改。
因此,C51语言的应用越来越广泛。
2.硬件结构与基本原理该步进电机控制系统由单片机、驱动电路、步进电机等组成。
系统所用的步进电机为42D125型四相反应式步进电机,其工作电压+35V ,静态电流2.5A ,步距角1.8度,微步距0.212mm 。
单片机用AT89C2051,并配以时钟电路、“看门狗”复位电路等。
系统驱动电路由专用驱动芯片STK 6722(单极步进电机驱动器芯片)与外部分立元器件组合而成。
图中给出了以AT89C2051单片机控制四相步进电机的电路原理图。
四相步进电机采用“高压驱动,低压锁定”的工作方式。
步进电机有正、反转两个动作,分别实现步进12mm 和回到零位。
正、反转触发信号从Step 、Return 输入到单片机的外部中断I NT0、I NT1口,CPU 采用下降沿方式响应中断,执行中断服务程序。
C51单片机技术应用与实践-任务步进电机
第4篇单片机综合应用任务2、步进电机控制电路问题的提出:步进电机是一种常见的机电转换器件,是一种可以将电脉冲信号转变成角位移或者线位移的电磁机械装置,可以对其旋转角度和旋转速度进行高精度的控制,是工业过程控制和仪表中常用的执行元件之一。
随着微电子技术和计算机技术的发展,步进电机以广泛运用在需要高定位精度、高响应性、依赖性等灵活控制的机械系统中,伴随着不同的数字化技术的发展以及步进电机本身技术的提高,步进电机将会在更多的领域中应用。
例如,在机电一体化产品中可以用丝杆把角度变成直线位移,也可以用步进电机带动螺旋电位器,调节电压或电流,从而实现对执行机构的控制。
步进电机可以直接接受数字信号,不必进行模数转换,使用起来十分方便。
在步进电机负荷不超过它所能提供的动态转矩的情况下,它具有快速启动、精确步进和定位,步进的角距或步进的转速只受收入脉冲的个数和脉冲的频率控制,与电压的波动、负载变化、环境温度和振动等因素无关等优点。
因而,步进电机在数控机床、绘图仪、打印机以及光学仪器中得到了广泛的应用。
图2-1 焊接机器人图2-2 雕刻机2.1步进电机介绍步进电机(Stepping Motor)又称为脉冲电动机,是将电脉冲信号转换为相应的角位移或直线位移的电磁机械装置,也是一种输出机械位移增量与数字脉冲对应的增量驱动器件。
在非超载情况下,步进电机的转速、停止的位置值取决于脉冲信号的频率和脉冲数,不受负载变化的影响,加之步进电机只有周期性的误差无累积误差等特点,使得步进电机在速度、位置控制等领域的控制非常简单。
虽然步进电机应用广泛,但它并不像普通的直流和交流电机那样在常规状态下使用,它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用,所以用好步进电机也非易事,它涉及机械、电子、电子及计算机等较多的专业知识。
2.1.1 步进电机分类步进电机分三种:(1)永磁式(PM):一般为两相,转矩和体积较小,步进角一般为7.5度或15度;(2)反应式(VR):一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
重庆工商大学计算机与信息工程学院学院《单片机原理及应用》课程实验报告实验名称:步进电机综合控制实验实验班级:2010级自动化专业班级:2010级自动化三班指导老师:文远熔组员:陶园2010133330 王路2010133344江洋2010133335陈娅2010133326张琴芳2010133317张丹2010133320(组长)一、摘要:本实验利用8051单片机达到控制步进电机的启动、停止、正转、反转、点动、转过指定角度、状态显示和数据指示的目的,使步进电机控制更加灵活。
步进电机驱动芯片采用ULN2003,ULN2003具有大电流、高电压,外电路简单等优点。
利用ZLG7290模块驱动LED数码管显示速度设定值。
通过这个单片机控制系统的设计来掌握步进电机的工作原理和驱动过程以及LED显示原理和ZLG7290模块的使用方法,用LED数码管显示实验要求的状态结果,设计电路的硬件接线图和实现上述要求的程序。
关键词:51单片机步进电机ZLG7290 ULN2003二、设计内容与要求:1、任务介绍:实现步进电机按规定的速度正转、反转,转过指定的角度,要有点动功能。
所有命令通过键盘输入,步进电机在运行过程中要有状态和数据指示。
2、每套设计文档应包括:系统原理说明、程序框图、电路原理图和程序清单。
三、实验器件介绍及原理:本实验采用单片机来控制步进电机,实现了软件与硬件相结合的控制方法。
在单片机环境下,用ULN2003驱动芯片驱动步进电机,用ZLG7290芯片作用下的按键控制步进电机的运行,从而达到实验要求。
其控制框图(图一)为:图一:控制框图1、系统硬件介绍1.1步进电机1.1.1相关的技术指标:a、相数:指电机内部的线圈组数,目前常用的有二相、三相、四相、五相步进电机,本实验用的是四相步进电机。
电机相数不同,其步距角也不同。
b、步距角:表示控制系统每发一个步进脉冲信号,电机所转动的角度。
本实验程序运行前要先测量步进电机的步距角。
c、拍数:完成一个磁场周期性变化所需脉冲数或导电状态,或指电机转过一个步距角所需脉冲数。
本实验用四相八拍运行方式,为A-AB-B-BC-C-CD-D-DA-A1.1.2工作原理:步进电机是一种将电脉冲转化为角位移的执行机构。
当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的,可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点,使得在速度、位置等控制领域用步进电机来控制变的非常的简单。
1.1.3步进电机的驱动:步进电机的驱动可以选用专用的电机驱动模块,比如L298、FT5754等,这类驱动模块接口简单,操作方便,它们既可以驱动步进电机,同时也可以驱动直流电机。
但本实验使用ULN2003a驱动器,下面介绍该芯片。
图二:步进电机及其驱动电路1.2 ULN2003A芯片ULN是集成达林顿管IC,内部还集成了一个消线圈反电动势的二极管,可用来驱动继电器。
它是双列16脚封装,NPN晶体管矩阵,最大驱动电压=50V,电流=500mA,输入电压=5V,适用于TTL COMS,由达林顿管组成驱动电路。
ULN是集成达林顿管IC,内部还集成了一个消线圈反电动势的二极管,它的输出端允许通过电流为200mA,饱和压降VCE 约1V左右,耐压BVCEO 约为36V。
用户输出口的外接负载可根据以上参数估算。
采用集电极开路输出,输出电流大,故可直接驱动继电器或固体继电器,也可直接驱动低压灯泡。
通常单片机驱动ULN2003时,上拉2K的电阻较为合适,同时,COM引脚应该悬空或接电源。
ULN2003是一个非门电路,包含7个单元,但独每个单元驱动电流最大可达350mA.资料的最后有引用电路,9脚可以悬空。
比如1脚输入,16脚输出,负载接在VCC与16脚之间,不用9脚。
图三:ULN2003A原理图1.2.1 ULN2003的作用:ULN2003是大电流驱动阵列,多用于单片机、智能仪表、PLC、数字量输出卡等控制电路中。
可直接驱动继电器等负载。
输入5VTTL电平,输出可达500mA/50V。
ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。
ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器。
ULN2003 是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。
1.2.3 ULN2003A功能及引脚图:功能:ULN2003 是高耐压、大电流、内部由七个硅NPN 达林顿管组成的驱动芯片。
经常在以下电路中使用,作为显示驱动、继电器驱动、照明灯驱动、电磁阀驱动、伺服电机、步进电机驱动等电路中。
ULN2003 的每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。
ULN2003 工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V 的电压,输出还可以在高负载电流并行运行。
ULN2003 的封装采用DIP—16 或SOP—16 。
ULN2003可以驱动7个继电器,具有高电压输出特性,并带有共阴极的续流二极管使器件可用于开关型感性负载。
每对达林顿管的额定集电极电流是500mA,达林顿对管还可并联使用以达到更高的输出电流能力。
显示电路主要包括大型LED数码管BSI20-1(共阳极,数字净高12 cm)和高电压大电流驱动器ULN2003,大型LED数码管的每段是由多个LED发光二极管串并联而成的,因此导通电流大、导通压降高。
ULN2003是高压大电流达林顿晶体管阵列电路,他具有7个独立的反相驱动器,每个驱动器的输出灌电流可达500 mA,导通时输出电压约1 V,截止时输出电压可达50 V。
ULN2003的1~7脚为信号输入脚,依次对应的输出端为16~10脚,8脚为接地端。
当驱动电源电压为+12 V时,若要求数码管每段导通电流为40 mA,则每段的限流电阻为50Ω。
则一块ULN2003恰好驱动一个LED数码管的7段。
大数码管采用共阳极接法,低电平有效。
锁存器输出的电平经NPN三极管9014反相后,再由ULN2003放大后推动大数码管显示图四:ULN2003A引脚图1.3ZLG7290芯片1.3.1 ZLG7290作用及其功能介绍ZLG7290能够直接驱动8 位共阴式数码管(或64 只独立的LED),同时还可以扫描管理多达64 只按键。
其中有8 只按键还可以作为功能键使用,就像电脑键盘上的Ctrl、Shift、Alt 键一样。
另外ZLG7290B 内部还设置有连击计数器,能够使某键按下后不松手而连续有效。
采用I2C 总线方式,与微控制器的接口仅需两根信号线。
可控扫描位数,可控任一数码管闪烁。
引脚说明如下图:图五:ZLG7290引脚图1.3.2 ZLG7290使用说明ZLG7290B是基于I2C总线接口的芯片。
主控单片机ADUC831作为主器件时,内部没有I2C总线功能,因此需用SPI总线的引脚来模拟I2C总线。
具体连接如下:ZLG7290B ADUC831GND DGNDSDA MOSISCL SCLOCK/INT INT0VCC DVDD但是,这种连接不是唯一的,只是在所写的软件里需要这样连接。
其实中断可以根据自己所选的中断而定。
地(GND)和电源(VCC)也可以另外从电源上接过来。
所用电源为5V。
编译软件使用的是WSD,这个软件主要是用于AD系列芯片的。
只要下载扩展名为HEX的文件即可。
1.3.3ZLG7290工作原理ZLG7290的核心是一块ZLG7290B芯片,它采用I2C接口,能直接驱动8位共阴式数码管,同时可扫描管理多达64只按键,实现人机对话的功能资源十分丰富。
除具有自动消除抖动功能外,它还具有段闪烁、段点亮、段熄灭、功能键、连击键计数等强大功能,并可提供10种数字和21种字母的译码显示功能,用户可以直接向显示缓存写入显示数据,而且无需外接元件即可直接驱动数码管,还可扩展驱动电压和电流。
此外,ZLG7290B的电路简单,使用也很方便。
用户按下某个键时,ZLG7290的INT引脚会产生一个低电平的中断请求信号,读取键值后,中断信号就会自动撤销。
正常情况下,微控制器只需要判断INT引脚就可以得到键盘输入的信息。
微控制器可通过两种方式得到用户的键盘输入信息。
其一是中断方式,该方式的优点是抗干扰能力强,缺点是要占用微控制器的一个外部中断源。
其二是查询方式,即通过不断查询INT引脚来判断是否有键按下,该方式可以节省微控制器的一根I/O口线,但是代价是I2C总线处于频繁的活动状态,消耗电流多并且不利于抗干扰。
1.3.4 ZLG7290驱动数码管及按键开关连接线路图图六:ZLG7290电源部分接线图图七:ZLG7290驱动数码管电路图图八:ZLG7290驱动按键开关电路图在本实验运用了十个按键其中:S1按键控制步进电机的运转方向,S2控制步进电机的启动,S3控制步进电机的关断,S4控制步进电机的单步运行键,S5为步数加键,S6为步数减键,S7为速度加键,S8为速度减键,S9为连续运行与指定步数运行切换键。
1.4总电路图:电路图中包含最小系统、驱动电路和显示电路图九:总电路图1.4.1 最小系统:单片机最小系统或者称为最小应用系统,素质用最少的元件组成的单片机可以工作的系统,对51系列单片机来说,最小系统一般应该包括:单片机、复位电路、晶振电路。
a、复位电路:使用了独立式键盘,单片机的P1口键盘的接口。
b、晶振电路:8051单片机的时钟信号通常用两种电路形式电路得到:内部震荡方式和外部中断方式。
内部振荡方式的外部电路如下图所示。
2135642、系统软件设计2.1 程序流程图主要作用是根据系统的控制要求,控制输入部分设置了启动控制,换向控制,加速控制,减速控制按钮,单步运行控制和指定步数运行控制。
2.1.1 主流程图如下:2.1.2 外部中断程序流程图如下:2.2程序清单2.2.1步进电机测步距角的程序BA EQU P1.0BB EQU P1.1BC EQU P1.2BD EQU P1.3ORG 0000HLJMP MAINORG 0100HMAIN:MOV SP,#60HACALL DELAYMOV R2,#2SMRUN: ;电机控制方式为单双八拍MOV P1,#08H ;AACALL DELAYMOV P1,#0CH ;ABACALL DELAYMOV P1,#04H ;BACALL DELAYMOV P1,#06H ;BCACALL DELAYMOV P1,#02H ;CACALL DELAYMOV P1,#03H ;CDACALL DELAYMOV P1,#01H ;DACALL DELAYMOV P1,#09H ;DAACALL DELAYDJNZ R2,SMRUNSJMP $ ;循环转动DELAY: ;单步延时程序MOV R4,#255DELAY1: MOV R5,#255DJNZ R5,$DJNZ R4,DELAY1RETEND2.2.2步进电机按要求运行的程序/************************************************************************基于51单片机的异步电机控制程序************************************************************************/ #include<reg51.h>#include "VIIC_C51.H"#include "ZLG7290.h"sbit BA=P1^0;sbit BB=P1^1;sbit BC=P1^2;sbit BD=P1^3;sbit SDA=P1^6;sbit SCL=P1^7;sbit KEY_INT=P3^2;#define uchar unsigned char#define uint unsigned int/*四相步进电动机单、双八拍运行状态表11111110 F8H A11111100 FCH AB11111101 F4H B11111001 F6H BC11111011 F2H C11110011 F3H CD11110111 F1H D11110110 F9H DA*/uchar code step_tab[ ]={0xf0,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1,0xf9};uint code delaytime[4] = {60,40,20,10};//延时时间列表//变量的定义uchar direction; //状态变量0-正向,1-反向uchar continuous; //状态变量0-指定步数运行,1-连续速度运行uchar run; //状态变量0-电机未运行,1-电机运行中uchar speed_num; //连续速度运行标号1-4uchar cur_step; //八拍运行状态uchar step_num; //指定运行的步数,范围0-99//键值定义#define Key_dir 1 //方向键#define Key_Run 2 //启动键#define Key_stop 3 //停止键#define Ket_Step 4 //单步运行键#define Key_step_add 5 //步数加键#define Key_step_sub 6 //步数减键#define Key_speed_add 7 //速度加键#define Key_speed_sub 8 //速度减键#define Key_Con_Set 9 //连续运行与指定步数运行切换键。