基于51单片机的步进电机控制

合集下载

毕业设计(论文)-基于AT89C51单片机的步进电机控制系统

毕业设计(论文)-基于AT89C51单片机的步进电机控制系统

内蒙古科技大学本科生毕业设计说明书(毕业论文)题目:基于AT89C51单片机的步进电机控制系统设计学生姓名:学号:专业:自动化班级:自动化06-3班指导教师:基于AT89C51单片机的步进电机控制系统摘要步进电机是数字控制系统中的一种执行元件,它能按照控制脉冲的要求,迅速起动,制动,正反转和调速。

具有步距角精度高,停止时能自锁等特点,因此步进电机在自动控制系统中,特别是在开环的控制系统中得到了日益广泛的应用。

本文以单片机和环形脉冲分配器为核心设计的步进电机控制系统,通过软硬件的设计调试,实现步进电机能根据设定的参数进行自动加减速控制,使控制系统以最短的时间到达控制终点,而又不发生失步的现象;同时它能准确地控制步进电机的正反转,启动和停止。

硬件是以AT89C51单片机为核心的控制电路,主要包括:环形脉冲分配器、键盘显示电路、步进电机的驱动电路等。

软件部分采用C语言编程,主要包括键盘显示程序、步进电机的调速程序、停止判断程序等。

关键词:步进电机控制系统;调速;单片机Based on AT89C51 Single-chip ComputerStepping Motor Control SystemAbstractStepping motor is a kind of digital control system components. It can achieve quick start-up, positive inversion, stopping and speed control, according to the control pulse. It has high precision step angle, and can be self-locking when it keeps still. As these characteristics, stepping motor in automatic control system, especially in the open loop control system has been widely applied.This article mainly focuses on taking Single-chip Computer and cycle pulse distributor as the core, and designing the stepping motor control system. Through the design of the software and hardware debugging, it realizes controlling the step motor’s acceleration and deceleration automatically, according to parameter setting. Making the system arrive the end point with the shortest time, but not occur outing of step. Besides it can accurately achieve start-up, positive inversion and shutdown. Hardware takes AT89C51 as the core of control circuit, mainly including: cycle pulse distributor, keyboard and display circuit, stepping motor driving circuit, etc. Software part adopts the C language programming, mainly including keyboard and display program, stepping motor speed control program, stop judging program, etc.Key words: Stepping motor control system; speed control; Single-chip Computer目录摘要 (I)Abstract (II)第一章引言 (1)1.1 课题提出的背景和研究意义 (1)1.2 课题的主要研究内容 (2)1.3 本章小结 (2)第二章步进电机控制系统设计 (3)2.1 步进电机的原理 (3)2.1.1 三相单三拍通电方式 (3)2.1.2 三相双三拍通电方式 (5)2.1.3 三相六拍通电方式 (6)2.2 环形脉冲分配器 (8)2.3 续流电路 (12)2.3.1 二极管续流 (13)2.3.2 二极管—电阻续流 (14)2.4 步进电机驱动电路 (15)2.5 步进电机的变速控制 (17)2.5.1 变速控制的方法 (19)2.6 步进电机在自动生产线中的应用 (20)2.7 本章小结 (22)第三章控制系统硬件设计 (23)3.1 硬件系统设计原则 (23)3.2 控制系统组成 (23)3.3 主要元件的选择 (24)3.3.1 单片机的选择 (24)3.3.2 EPROM的选择 (25)3.3.3 可逆计数器的选择 (27)3.4 控制系统接口电路的设计 (27)3.4.1 环形脉冲分配器设计 (27)3.4.2 显示电路设计 (29)3.4.3 外部复位电路设计 (30)3.5 控制系统整体电路设计 (31)3.6 本章小结 (31)第四章控制系统软件设计 (32)4.1 软件系统设计原则 (32)4.2 步进电机控制系统功能设计 (32)4.3 主程序设计 (33)4.3.1 主程序工作过程 (33)4.3.2 主程序工作流程图 (34)4.3.3 定时器T0中断程序流程图 (34)4.4 Proteus仿真 (37)4.5 显示程序设计 (39)4.6 键盘程序设计 (39)4.7 调速程序设计 (41)4.7.1 20BY步进电机参数 (41)4.7.2 步进电机转速与频率的关系 (41)4.8 本章小结 (42)第五章结束语 (43)参考文献 (44)附录 (46)附录A 系统程序(C) (46)附录B 20BY步进电机转速与定时器定时常数关系表 (59)附录C 控制系统电路图 (62)致谢 (63)第一章引言1.1 课题提出的背景和研究意义由于步进电机不需要位置传感器或速度传感器就可以实现定位,即使在开环状态下它的控制效果也是令人非常满意的,这有利于装置或设备的小型化和低成本,因此步进电机在计算机外围设备、数控机床和自动化生产线等领域中都得到了广泛的应用。

基于51单片机的步进电机调速系统(含完整代码)

基于51单片机的步进电机调速系统(含完整代码)

课程设计报告设计题目:遥控小车——基于51单片机的步进电机调速系统学院:专业:班级:学号:姓名:电子邮件:时间:成绩:指导教师:华南农业大学理学院应用物理系课程设计(报告)任务书学生姓名指导教师职称学生学号专业电子信息科学与技术题目基于51单片机的步进电机调速系统(遥控小车)任务与要求1. 设计并制作电路,利用单片计控制步进电机运转。

2. 通过键盘可以不间断地设定改变电机的转速、转向。

3. 利用显示器实时显示转速等参数。

4. 扩展功能:可设定转动步数。

开始日期2014 年3 月完成日期2014 年3 月1引言步进电机是一种将电脉冲转化为角位移的执行机构。

目前,步进机已经广泛应用于领域,例如工业生产中的机械臂的控制,照明装置和监控摄像机转动等。

步进机在装置转动、精确位移方面有很重大的作用。

本系统是基于STC89C51 单片机的遥控小车。

采用STC89C51单片机作为控制核心,通过ULN2003A驱动步进机(28BYJ-48)转动,由按键和显示屏1602组成人机交互模块,同时通过315M无线发射和接收模块向单片机输入控制信号,将整个系统固定于简易小车上,最终实现小车测试和远程遥控功能。

基本达到预定的设计要求以及功能的扩展。

2系统的设计与理论分析2.1系统总体设计2.2理论分析本设计分为两种工作模式:测试模式、遥控模式。

在电路板上有一个带锁的开关进行设置。

测试模式工作时,通过控制小车上的按键进行加速、减速、反转、设置、步数增、步数减等按键,单片机扫描按键,通过软件控制液晶模块显示对应的转速、设置的速度和步数,同时控制步进机模块进行相应的转动。

步进机的是由ULN2003A达林顿管驱动,由单片机控制输入脉冲的频率来控制步进机的转速,单片机是通过程序查表对4个I/O口输出脉冲,本次设计采用的是两相四线减速步进机,步进角为5.625°,减速比为64:1,程序采用的是8拍查表,具有较好的扭矩。

遥控模式工作时,遥控部分五个按键分别输入前、后、左、右、暂停,单片机扫描按键,通过无线发射模块发射串行编码,小车的无线接收模块接收对应的编码,送至单片机进行解码,从而控制液晶模块的显示和步进机模块的工作,进而完成功能。

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

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

基于51单片机的步进电机控制系统设计步进电机是一种特殊的直流电动机,具有定角度、定位置、高精度等特点,在许多领域得到广泛应用,如机械装置、仪器设备、医疗设备等。

本文将基于51单片机设计一个步进电机控制系统,主要包括硬件设计和软件设计两部分。

一、硬件设计步进电机控制系统的硬件设计主要包括51单片机、外部电源、步进电机驱动模块、以及其他辅助电路。

1.51单片机选择由于步进电机控制需要执行复杂的算法和时序控制,所以需要一个性能较高的单片机。

本设计选择51单片机作为主控芯片,因为51单片机具有丰富的外设接口、强大的计算能力和丰富的资源。

2.外部电源步进电机需要较高的电流供给,因此外部电源选择稳定的直流电源,能够提供足够的电流供电。

电源电压和电流的大小需要根据具体的步进电机来确定。

3.步进电机驱动模块步进电机驱动模块是连接步进电机和51单片机的关键部分,它负责将51单片机输出的脉冲信号转化为对步进电机的驱动信号,控制步进电机准确转动。

常用的步进电机驱动芯片有L297、ULN2003等。

4.其他辅助电路为了保证步进电机控制系统的稳定运行,还需要一些辅助电路,如限流电路、电源滤波电路、保护电路等。

这些电路的设计需要根据具体的应用来确定。

二、软件设计1.系统初始化系统初始化主要包括对51单片机进行外部中断、定时器、串口和IO 口等初始化设置。

根据实际需求还可以进行其他模块的初始化设置。

2.步进电机驱动程序步进电机的驱动程序主要通过脉冲信号来控制电机的转动。

脉冲信号的频率和脉冲宽度决定了电机的转速和运行方向。

脉冲信号可以通过定时器产生,也可以通过外部中断产生。

3.运动控制算法步进电机的运动控制可以采用开环控制或闭环控制。

开环控制简单,但无法保证运动的准确性和稳定性;闭环控制通过对电机转动的反馈信号进行处理来调整脉冲信号的生成,从而实现精确的运动控制。

4.其他功能设计根据具体的应用需求,可以加入其他功能设计,如速度控制、位置控制、加速度控制等。

基于51单片机的步进电机控制系统设计与实现

基于51单片机的步进电机控制系统设计与实现

步进电机工作原理
步进电机是一种基于磁场的控制系统,工作原理是当电流通过定子绕组时,会 产生一个磁场,该磁场会吸引转子铁芯到相应的位置,从而产生一定的角位移。 步进电机的角位移量与输入的脉冲数量成正比,因此,通过控制输入的脉冲数 量和频率,可以实现精确的角位移和速度控制。同时,步进电机具有较高的分 辨率和灵敏度,可以满足各种高精度应用场景的需求。
二、系统设计
1、硬件设计
本系统主要包括51单片机、步进电机、驱动器、按键和LED显示等部分。其中, 51单片机负责接收按键输入并控制步进电机的运动;步进电机用于驱动负载运 动;驱动器负责将51单片机的输出信号放大,以驱动步进电机。LED显示用于 显示当前步进电机的状态。
2、软件设计
软件部分主要包括按键处理、步进电机控制和LED显示等模块。按键处理模块 负责接收用户输入,并根据输入控制步进电机的运动;步进电机控制模块根据 按键输入和当前步进电机的状态,计算出步进电机下一步的运动状态;LED显 示模块则负责实时更新LED显示。
三、系统实现
1、按键输入的实现
为了实现按键输入,我们需要在主程序中定义按键处理函数。当按键被按下时, 函数将读取按键的值,并将其存储在全局变量中。这样,主程序可以根据按键 的值来控制步进电机的转动。
2、显示输出的实现
为了实现显示输出,我们需要使用单片机的输出口来控制显示模块的输入。在 中断服务程序中,我们根据设定的值来更新显示模块的输出,以反映步进电机 的实时转动状态。
基于单片机的步进电机控制系统需要硬件部分主要包括单片机、步进电机、驱 动器、按键和显示模块等。其中,单片机作为系统的核心,负责处理按键输入、 控制步进电机转动以及显示输出等功能。步进电机选用四相八拍步进电机,驱 动器选择适合该电机的驱动器,按键用于输入设定值,显示模块用于显示当前 步进电机的转动状态。

步进电机控制程序(c语言51单片机)

步进电机控制程序(c语言51单片机)

// pri_dj = Pme );
if( i == set_pwm_width ) { P1 = 0xff; i = 0; one _round_flg = 0; while ( !one_round_flg & key_puse );}
if(!key_puse) { delay(4ms); if(!key_puse) break; }
while ( key_puse & key_clear ); delay ( 8ms );
if ( !key_clear ) { round_num = 0; display(); }
if ( !key_puse ) break; }
while( !key_puse ); delay(8ms);
while( !key_puse ); }
set_display_num(); for(i = 0; i < LEDLen ; i ++){
P0 = 0xf0; P0 = P0 | LEDBuf[i] ; if(i==0) led_1000 = 0; //P0^4 if(i==1) led_100 = 0; //P0^5 if(i==2) led_10 = 0; //P0^6 if(i==3) led_1 = 0; //P0^7
delay ( 1ms ); tmp = (~(P2 | 0xF0)); P2 = 0x7F; // 0111 1111
delay ( 1ms ); tmp = (~(P2 | 0xF0)) * 10 + tmp; set_round_num = set_round_num + tmp * 100; set_round_num = set_round_num * Chilun_Num;

51单片机驱动步进电机的方法

51单片机驱动步进电机的方法

51单片机驱动步进电机的方法一、步进电机简介步进电机是一种将电脉冲转化为角位移的执行机构,广泛应用于各种自动化设备中。

其工作原理是,当一个脉冲信号输入时,电机转动一个步距角,从而实现电机的精确控制。

二、51单片机驱动步进电机的方法1、硬件连接需要将51单片机与步进电机连接起来。

通常,步进电机需要四个引脚,分别连接到单片机的四个GPIO引脚上。

同时,还需要连接一个驱动器来提高电机的驱动能力。

2、驱动程序编写接下来,需要编写驱动程序来控制步进电机的转动。

在51单片机中,可以使用定时器或延时函数来产生脉冲信号,然后通过GPIO引脚输出给电机。

同时,还需要设置电机的步距角和转向,以保证电机的精确控制。

3、示例程序以下是一个简单的示例程序,用于演示如何使用51单片机驱动步进电机:cinclude <reg52.h> //包含51单片机的头文件sbit motorPin1=P1^0; //定义连接到P1.0引脚的电机引脚sbit motorPin2=P1^1; //定义连接到P1.1引脚的电机引脚sbit motorPin3=P1^2; //定义连接到P1.2引脚的电机引脚sbit motorPin4=P1^3; //定义连接到P1.3引脚的电机引脚void delay(unsigned int time) //延时函数unsigned int i,j;for(i=0;i<time;i++)for(j=0;j<1275;j++);void forward(unsigned int step) //正转函数motorPin1=0;motorPin2=0;motorPin3=0;motorPin4=0; //清零电机引脚delay(step); //延时一段时间motorPin1=1;motorPin3=1;motorPin2=0;motorPin4=0; //设置转向和步距角delay(step); //延时一段时间void backward(unsigned int step) //反转函数motorPin1=0;motorPin2=0;motorPin3=0;motorPin4=0; //清零电机引脚delay(step); //延时一段时间motorPin2=1;motorPin4=1;motorPin3=0;motorPin1=0; //设置转向和步距角delay(step); //延时一段时间void main() //主函数unsigned int step=1000; //设置步距角为1000微步forward(step); //正转一圈backward(step); //反转一圈while(1); //循环等待,保持电机转动状态在这个示例程序中,我们使用了四个GPIO引脚来控制步进电机的转动。

51单片机实现三相六拍的步进电机控制(正反转、加减速、挡位显示)

51单片机实现三相六拍的步进电机控制(正反转、加减速、挡位显示)

51单片机实现三相六拍的步进电机控制(正反转、加减速、挡位显示)自己写的,不规范还望包含,keil和protues文件单片机源程序如下:1.#include <reg52.h>2.3.#define uchar unsigned char4.#define uint unsigned int5.uint speed = 100; //初始转速6.uint max = 200; //最慢转速7.uint min = 20; //最快转速8.9.sbit swich = P2^0; //总开关10.sbit dir = P2^1; //电机旋转方向11.sbit le1=P2^6;12.sbit le2=P2^7;13.sbit speedadd=P3^2;14.sbit speedsub=P3^3;15.16.unsigned char uca_MotorStep[]={0x01,0x03,0x02,0x06, 0x04,0x0C,0x08,0x09}; //励磁电流数组。

17.18.19.uchar leddata[]={20.21.0x3F, //"0"22.0x06, //"1"23.0x5B, //"2"24.0x4F, //"3"25.0x66, //"4"26.0x6D, //"5"27.0x7D, //"6"28.0x07, //"7"29.0x7F, //"8"30.0x6F, //"9"31.0x40, //"-"32.0x00, //熄灭33.};34.35.36.void delay1ms(void) //误差 0us37.{38.unsigned char a,b,c;39.for(c=1;c>0;c--)40.for(b=142;b>0;b--)41.for(a=2;a>0;a--);42.}43.44.void delay(uint x ) //多功能毫秒延时45.{46.uint i;47.for(i=0;i<x;i++)48.{49.delay1ms();50.}51.}52.53.54.55.void display(void)56.{57.if(swich==1)58.{59.P0= leddata[11];60.delay(1);61.le2=1;62.le1=1;63.delay(1);64.le2=0;65.le1=0;66.67.}68.else69.{70.if(dir==1)71.{72.P0= leddata[11];73.delay(1);74.le2=1;75.delay(1);76.le2=0;77.}78.else79.{80.P0 =leddata[10];81.delay(1);82.le2=1;83.delay(1);84.le2=0;85.}86.87.P0=leddata[9-(speed-20)/20];88.delay(30);89.le1=1;90.delay(5);91.le1=0;92.93.}94.}95.96.97.void Init_INT0()98.{99.EX0=1; //开启外部中断 0100.IT0=1; //设置成低电平触发,1为下降沿触发101.EX1=1; //开启外部中断 1102.IT1=1; //设置成低电平触发,1为下降沿触发103.EA=1; //开启总中断104.}105.106.void Interrupt0_handler() interrupt 0107.{108.EA=0; //首先关闭总中断,以消除按键出现的抖动所产生的干扰109.delay(20); //同样是为了消除抖动而产生新的中断110.if(speed>min)111.{speed=speed-20;} //限制最快转速112.else113.{speed=min;}114.while(speedadd==0);115.EA=1; //恢复中断116.}117.118.119.void Interrupt1_handler() interrupt 2120.{121.EA=0; //首先关闭总中断,以消除按键出现的抖动所产生的干扰122.delay(20); //同样是为了消除抖动而产生新的中断123.if(speed<max)124.{speed=speed+20;}125.else126.{speed=max;} //限制最慢转速127.while(speedsub==0);128.EA=1; //恢复中断130.131.void main()132.{133.int i; //初始化134.dir=1;135.le1=0;136.le2=0;137.138.139.start:140.if(swich==0)141.{Init_INT0();} //总开关开启,初始化中断,开始转动142.else143.{display(); goto start; }144.145.146.if(dir==1)147.seq:148.{149.while(1)150.{151.display();152.for (i=0; i<8; i++)153.{154.P1 = uca_MotorStep[i]; //取数据155.delay(speed); //调节转速156.}157.if(dir==0) //是否换向159.delay(5); // 换向延时160.goto oppo; //换向161.}162.if(swich==1) //总开关运行中关闭163.goto start; //等待开启164.165.}166.167.}168.else169.oppo:。

基于C51单片机步进电机综合控制实验

基于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、步距角:表示控制系统每发一个步进脉冲信号,电机所转动的角度。

本实验程序运行前要先测量步进电机的步距角。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7
电)四拍(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 单片机的步进电机控制
信息工程学院 应用电子技术
2013 年 04 年 28 日
步进电机控制系统
本课程设计的内容是利用 51 单片机,达到控制步进电机的启动、停止、正 转、反转、两档速度和状态显示的目的,使步进电机控制更加灵活。步进电机驱
1
动芯片采用 ULN2803,ULN2803 具有大电流、高电压,外电路简单等优点。利用 液晶显示器增设电机状态显示功能,各项数据更直观。实测结果表明,该控制系 统达到了设计的要求。
图 1 是一种四相可变磁阻型的步进电机结构示意图。这种电机定子上有八 个凸齿,每一个齿上有一个线圈。线圈绕组的连接方式,是对称齿上的两个线圈 进行反相连接,如图中所示。八个齿构成四对,所以称为四相步进电机。
图1
它的工作过程是这样的:当有一相绕组被激励时,磁通从正相齿,经过软铁芯 的转子,并以最短的路径流向负相齿,而其他六个凸齿并无磁通。为使磁通路径 最短,在磁场力的作用下,转子被强迫移动,使最近的一对齿与被激励的一相对 准。在图 1(a)中 A 相是被激励,转子上大箭头所指向的那个齿,与正向的 A 齿 对准。从这个位置再对 B 相进行激励,如图 1 中的(b),转子向反时针转过 15°。 若是 D 相被激励,如图 1 中的(c),则转子为顺时针转过 15°。下一步是 C 相被 激励。因为 C 相有两种可能性:A—B—C—D 或 A—D—C—B。一种为反时针 转动;另一种为顺时针转动。但每步都使转子转动 15°。电机步长(步距角)是步 进电机的主要性能指标之一,不同的应用场合,对步长大小的要求不同。改变控 制绕组数(相数)或极数(转子齿数),可以改变步长的大小。它们之间的相互关系, 可由下式计算:
特性
1、3.3V 或 5V 工作电压,对比度可调 2、内含复位电路 3、提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能 4、有 80 字节显示数据存储器 DDRAM 5、内建有 192 个 5X7 点阵的字型的字符发生器 CGROM 6、8 个可由用户自定义的 5X7 的字符发生器 CGRAM
1.2 步进电机的种类
步进电机分永磁式(PM)、反应式(VR)、和混合式(HB)三种。永磁式 步进一般为两相,转矩和体积较小,步进角一般为 7.5 度 或 15 度;反应式步进 一般为三相,可实现大转矩输出,步进角一般为 1.5 度,但噪声和振动都很大。 在欧美等发达国家 80 年代已被淘汰;混合式步进是指混合了永磁式和反应式的 优点。它又分为两相和五相:两相步进角一般为 1.8 度而五相步进角一般为 0.72 度。这种步进电机的应用最为广泛。
6
三、电路设计
3.1、设计要点和软硬环境
1、步进电机的设计要点和软硬件环境 步进电机和普通电动机不同之处是步进电机接受脉冲信号的控制。即步进电
机是将电脉冲信号转换为机械角位移的执行元件。步进电机的控制可以用硬件, 也可以用软件通过单片机实现。硬件方法是采用脉冲分配器芯片进行通用换相控 制;而软件方法是用单片机产生控制脉冲来控制步进电机的运行状态,这种方法 可简化电路,降低成本。 在用软件控制时,主要设计要点如下: 判断旋转方向; 按相序确定控制字; 按顺序输入控制字; 确定控制步数和每一步的延时时间。 由于单片机的驱动电流一般都比较小,不能直接驱动电机工作,所以单片机的 I/O 口输出必须接驱动电路,即功率驱动,才得以控制电机正常工作。控制框图如下 图所示:
N 速度标识减 1
NN
N
速度标识加 1
Y 正反转标志取反
N 反转
取正转码
Y
是否为结束
吗?
N
根据速度标识设定速 度值的显示时间,从而 以达到控制输出脉冲 频率来控制电机速度
显示器显示速
取反转码
是否为结束
Y
吗?
N
根据速度标识设定速 度值的显示时间,从而 以达到控制输出脉冲 频率
显示器显示速
N
时间是否结
束?
9
5. 片上集成 512 字节 RAM 6. 通用 I/O 口(32 个),复位后为:P1/P2/P3/P4 是准双向口/弱上拉, P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时, 需加上拉电阻。 7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无 需专 用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程 序,数秒即可完 成一片 8. 具有 EEPROM 功能 9. 具有看门狗功能 10. 共 3 个 16 位定时器/计数器。即定时器 T0、T1、T2 11. 外部中断 4 路,下降沿中断或低电平触发电路,Power Down 模式可 由 外部中断低电平触发中断方式唤醒 12. 通用异步串行口(UART),还可用定时器软件实现多个 UART 13. 工作温度范围:-40~+85℃(工业级)/0~75℃(商业级) 14. PDIP 封装
二、方案设计与论证
2.1 键盘设计
该系统中只运用到三个控制按钮,即 “正反”,“换挡”,“启停”,由于按 钮较少,所以采用独立键电路,这种按键电路的按键结构相对行列式按键电路更 简单,更使人易懂。
2.2 显示电路设计
本设计采用的 LCD1602 工业字符型液晶,能够同时显示 16x02 即 32 个字 符。
步进电机运行步数控制程序
此方案采用单相和双相交差通电处理方式。此方法具有运行速度稳定,运 行步数准确无误等优点。
第五章、调试总结
5.1 操作控制:
本电路经调试符合题目要求,各项技术指标均达到设计的目的。具体操作控 制方法如下: 1、当电机启停按钮时,步进电机根据制定默认状态开始转动; 2、当电机再启停按钮时,步进电机停止转动; 3、当电机换挡按钮时,步进电机速度快速转动; 4、当电机再换挡按钮时,步进电机速度缓慢转动; 5、当电机正反按钮时,步进电机反转; 6、当电机再正反按钮时,步进电机正转;
2.4 驱动电路设计
驱动电路的性能直接关系到步进电机走步的准 确与 稳定。本电路采用驱动芯片 ULN2803。 ULN2803 是一种大电流高电压型器件,外电路简单(图 b)。
5
图b
驱动方式:
红线接电源 5V,橙色电线接 P1.3 口,黄色电线接 P1.2 口,粉色电线接 P1.1 口, 蓝色接 P1.0 口。 由于单片机接口信号不够大需要通过 ULN2003 放大再连接到相应的电机接口, 如下:
4
管脚功能
1602 采用标准的 16 脚接口,其中: 第 1 脚:VSS 为电源地 第 2 脚:VCC 接 5V 电源正极 第 3 脚:V0 为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时 对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个 10K 的电位器 调整对比度)。 第 4 脚:RS 为寄存器选择,高电平 1 时选择数据寄存器、低电平 0 时选择指令 寄存器。 第 5 脚:RW 为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 第 6 脚:E(或 EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指 令。 第 7~14 脚:D0~D7 为 8 位双向数据端。 第 15~16 脚:空脚或背灯电源。15 脚背光正极,16 脚背光负极。
控制按钮
单片机 AT89c51
功率驱动 LCD 显示模块
步进电 机
2、相关参数设定 步进电机 28BYJ48 型四相八拍电机,电压为 DC5V—DC12V。当对步进电机
施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信 号 对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定 的角度(一个步距角)。当通电状态的改变完成一个循环时,转子转过一个齿距。 四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通
2
3.控制方便——步进电机是以“步”为单位旋转的,数字特征比较明显, 这样就给计算机控制带来了很大的方便,反过来,计算机的出现也为步进电机开 辟了更为广阔的使用市场;
4.整机结构简单——传统的机械速度和位置控制结构比较复杂,调整困难, 使用步进电机后,使得整机的结构变得简单和紧凑。
相关文档
最新文档