_单片机控制步进电机驱动原理___驱动图
单片机驱动步进电机电器原理部分细节图

4.4 步进电机与微型机的接口电路
由于步进电机的驱动电流较大,
所以微型机与步进电机的连接都需要专门的
接口及驱动电路。
驱动器可用大功率复合管,也可以是专门的驱动器。
总之,只要按一定的顺序改变8713脉冲分配器的 13脚~15脚 三位通电的状况,即可控制步进电机依选定的方向步进。
由于步进电机运行时功率较大,可在微型机与驱动器之间增加一级光电隔离器(一是抗干扰,二是电隔离。
)以防强功率的干扰信号反串进主控系统。
电路图如下所示:
图4.5 单片机与步进电机的接口电路图
1. 图中 K1、K2、K3、K4按钮分别控制步进电机正转、反转、加速、减速。
2. 因为我们讨论的是三相六拍的工作方式,所以P0.4和P0.6接高电平,P0.7接低电平。
3. P0.0输出步进脉冲。
4. P0.1控制步进电机的转向。
单片机与步进电机细分控制

单片机与步进电机细分控制
1
步进是纯粹的数字控制电动机,它将电脉冲信号改变为角位移,即给一个脉冲,步进电机就转一个角度,因此十分合适控制,在非超载的状况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变幻的影响,电机则转过一个步距角,同时步进电机惟独周期性的无累积误差,精度高。
步进电动机有如下特点:
1)步进电动机的角位移与输入脉冲数严格成正比。
因此,当它转一圈后,没有累计误差,具有良好的尾随性。
2)由步进电动机与驱动组成的开环数控系统,既容易、便宜,又十分牢靠,同时,它也可以与角度反馈环节组成高性能的闭环数控系统。
3)步进电动机的动态响应快,易于启停、正反转及变速。
4)速度可在相当宽的范围内平稳调节,低速下仍能获得较大转距,因此普通可以不用减速器而挺直驱动负载。
5)步进电机只能通过脉冲电源供电才干运行,不能挺直用法沟通电源和直流电源。
6)步进电机存在振荡和失步现象,必需对控制系统和机械负载实行相应措施。
步进电机具有和机械结构容易的优点,图1是四相六线制步进电机原理图,这类步进电机既可作为四相电机用法,也可以做为两相电机用法,用法灵便,因此应用广泛。
步进电机有两种工作方式:整步方式和半步方式。
以步进角1.8度四相混合式步进电机为例,在整步方式下,步进电机每接收一个脉冲,旋转1.8度,旋转一周,则需要200个脉冲,在半步方式下,步进电机每接收一个脉冲,旋转0.9度,旋转一周,则需要400个脉冲。
控制步进电机旋转必需按一定时序对步进电机引线输入脉冲,以上述四
第1页共4页。
机械电子学-第6章 步进电动机的驱动与控制

认识步进电动机
功能 • 将电脉冲信号转换成转角或转速信号。 • 转角 ∝脉冲信号的个数; • 转速 ∝脉冲信号的频率。 • 转向取决于脉冲信号的相序
f
相
f N
通电脉冲频率 拍数
步进电动机的特点
2) 步距角
步进机通过一个电脉冲转子转过的角度,称为步距角。
S
360 ZrN
N:一个周期的运行拍数 Zr:转子齿数
如:Zr=40 ,
N=3 时
S
360 40 3
3
1 单拍制
拍数:N=km m:相数 k=
整步
2 双拍制
半步
步距角不受各种干扰因素的影响。
步进电动机的特点
2) 步距角
步进电动机的特点
3) 转速
每输入一个脉冲,电机转过
S
360 ZrN
即转过整个圆周的1/(ZrN), 也就是1/(ZrN)转
因此每分钟转过的圆周数,即转速为
n
60f ZrN
60f 360 360Z r N
s f
6
(r / min)
步进电动机的特点
4)误差不长期积累。 5)可实现数字信号的开环控制,控制系统廉价。 6)步进电机具有自锁能力
齿距角 为使转、定子的齿对齐,定子磁极上的小齿, 齿宽和齿槽和转子相同。
工作原理:假设是单三拍通电工作方式。
(1)A 相通电时,定子A 相的五个小齿和转子对 齐。此时,B 相和 A 相空间差120,含
120/9 = 13 1 齿 3
A 相和 C 相差240,含240/ 9 =26 2个齿。所以, A 相的转子、定子的五个小齿对齐时,3B 相、C 相不能 对齐,B相的转子、定子相差 1/3 个齿(3),C相的 转子、定子相差2/3个齿(6)。
步进电机的单片机驱动控制

摘
一
要 :以 步进 电机 作 为 动 力 装 置 , 绍 了 系统 的 组 成 . 用 SC 9 5 介 采 T 8 C 2作 为 主 控 制 芯 片 , 外 避 障 传 感 器 型 号 为 E 8 红 l
D O K, 白线 检 测 传 感 器 型号 为 T 8N 黑 K一2 , 进 电机 型 号 为 s r2 17 , 过 红 外 避 障 传 感 器 和 黑 白 线 检 测 传 感 器 0步 s 4D 00 通
线 , 现寻 线运 动 ; ) 实 5 附加 功 能 及 辅 助 电 路设 计 ; ) 作 电路 6制
图 1 总体 设 计 图
收 稿 日期 :0 1 3 5 修 回 1 :0 1 0 —1 2 1 —0 —2 ; 3期 2 1 — 8 8
基 金 项 目 : 南 省 大 学生 研 究性 学 习与 创 新 性 实践 项 目 湖
沿着 指定 轨道 自动 寻迹行 驶和 自动 避开 障碍 物 . 目前很 多 寻 迹小 车 的路 径 识 别方 案 使 用 C D来 实 现 , 优点 C 其 是 控 制精 细 , 但算 法 复杂 , 本 较 高 . 采 用 红外 传 感 器 进 行 路 径识 别 的方 案 , 有 控 制 简 单 , 号处 理 速 度 成 而 则 信 快 , 本低 等特 点 . 论文设 计 一种 能够 实 时采 集 传 感器 信 号 、 能分 析 外 部 环境 以及 路径 信 息 、 成 本 智 自动 实 现方
液晶 显示
模块
过液 晶显示 屏 显示 出基本信 息 . 系统 的设 计 内容 是 :)步 进 本 1 电机 驱动 电路 的设计 ; ) 现单 片机 对 步进 电机 的智 能 控 制 ; 2实
单片机课程设计-正反转可控的步进电机

正反转可控的步进电机1 引言本课程设计目的是为了进一步掌握单片机系统,加强对系统设计和应用能力的培养而开设的综合设计训练环节。
本系统用51单片机和ULN2003A电机驱动芯片并加入控制按钮来实现步进电机的正、反转控制。
2 设计方案及原理步进电机可以对旋转角度和转动速度进行高精度的控制。
作为控制执行部件,广泛应用于自动控制和精密仪器等领域。
例如在仪器仪表、机床设备以及计算机的外围设备中(如打印机和绘图仪),常有对精确的、可控制的回转源的需要。
在这种情况下,使用步进电机最为理想。
2.1 步进电机控制步进电机两个相邻磁极之间的夹角为60°,线圈绕过相对的两个磁极构成一相。
此外各磁极上还有5个分布均匀的锯形小齿。
电机转子上没有绕组。
当某相绕组通电时,响应的两个磁极就分别形成N-S极,产生磁场,并与转子形成磁路。
如果这是定子的小齿与转子的小齿没有对齐,则在磁场的作用下,转子将转动一定的角度,使转子齿与定子齿对齐,从而使步进电机向前“走”一步。
如果通过单片机按顺序给绕组施加有序的脉冲电流,就可以控制电机的转动,从而进行了数字到角度的转换。
转动的角度大小与施加的脉冲数成正比,转动的速度与脉冲频率成正比,而转动方向则与脉冲的顺序有关。
2.2 步进电机驱动方式步进电机常用的驱动方式是全电压驱动,即在电机移步与锁步时都加载额定电压。
为防止电机过流及改善驱动特性需加限流电阻。
由于步进电机锁步时,限流电阻要消耗掉大量的功率。
因此,限流电阻要有较大功率容量,并且开关管也要有较高的负载能力。
步进电机也可以使用软件方法,即使用单片机实现,这样不但简化了电路,同时降低了成本。
使用单片机以软件方式驱动步进电机,不但可以通过编程方法在一定范围之内自由的设定步进电机的转速,往返转动的角度以及转动次数等;还可以方便灵活的控制步进电机的运行状态,以满足不同用户的需求。
因此常把单片机步进电机控制电路称之为可编程步进电机控制驱动器。
单片机原理及接口技术(C51编程)单片机各种应用设计

unsigned long freq;
//定义频率
unsigned char code table[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,
0x7d,
0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71};
//共阴数码管段码表
void delay_1ms(unsigned int z) { //函数功能:延时约1ms
#define out P2
sbit pos=P0^0;
//定义检测正转控制位P0.0
sbit neg=P0^1;
//定义检测反转控制位P0.1
void delayms(uint);
uchar code
turn[]={0x02,0x06,0x04,0x0c,0x08,0x09,0x01,0x03};
步进电机是将脉冲信号转变为角位移或线位移的开环控 制元件。
非超载的情况下,电机转速、停止位置只取决于脉冲信 号的频率和脉冲数,而不受负载变化的影响,给电机加一脉 冲信号,电机则转过一个步距角。因而步进电机只有周期性 误差而无累积误差,在速度、位置等控制领域有较为广泛的 应用。
12.1 单片机控制步进电机的设计
12.2 单片机控制直流电机
2. 电路设计与编程
当P3.6=1时,P3.7发送PWM波,直流电机正转。且 可通过“INC”和“DEC”两个按键来增大和减少直流电机 转速。反之,P3.6=0时,P3.7发送PWM信号,直流电机反 转。
因此,增大和减小电机转速,实际上是通过按下 “INC”或“DEC”按键来改变输出PWM信号占空比,控 制直流电机转速。图12-4中驱动电路使用了NPN低频、低 噪声小功率达林顿管 2SC2547。
基于单片机AT89C52的步进电机的控制器设计
基于单片机AT89C52的步进电机的控制器设计步进电机是一种非常常见的电机类型,由于其具有精准定位、适应高速运动以及控制简单等特点,被广泛应用于各种自动化设备中。
本文将从步进电机的工作原理、控制方式以及基于单片机AT89C52的步进电机控制器设计等方面展开阐述。
首先,我们来了解步进电机的工作原理。
步进电机是一种特殊的同步电动机,它具有内置的磁化轭,在没有外部励磁的情况下也能自动旋转。
步进电机的旋转是由控制电流方向和大小来实现的。
通常情况下,步进电机每转动一定角度,称为“步距角”,它可以是1.8度、0.9度、0.45度等,不同的步距角决定了电机的分辨率。
步进电机的控制方式主要有全步进和半步进两种。
全步进是指每次控制信号脉冲后,电机转动一个步距角。
而半步进则是在全步进基础上,在脉冲信号中引入一半步距角的微调。
控制信号脉冲可以是脉冲序列或者方波信号。
基于单片机AT89C52的步进电机控制器设计主要包括控制信号发生器的设计和步进电机驱动电路的设计。
控制信号发生器负责产生相应的控制信号脉冲,而步进电机驱动电路将这些脉冲信号转化为电流信号驱动步进电机。
控制信号发生器的设计可以采用定时器/计数器模块来实现。
AT89C52芯片具有可编程的定时器/计数器,可以用来产生控制信号的脉冲。
通过设置定时器的工作方式和计数值,可以实现不同频率、占空比的控制脉冲。
步进电机驱动电路的设计主要包括功率级驱动电路和电流控制电路。
功率级驱动电路负责将控制信号转化为足够大的电流驱动步进电机,通常采用功率放大器来实现。
电流控制电路则用来控制驱动电流的大小,使步进电机能够顺畅工作。
电流控制电路通常采用可调电阻、电流检测电阻和比较器等元件组成。
在步进电机控制器设计中,还需要考虑到步进电机的特性和应用需求。
例如,步进电机的电源电压、额定电流、阻抗、扭矩等参数需要与驱动电路匹配。
此外,还需要考虑到步进电机的机械结构、位置传感器、防重叠措施等因素。
单片机控制步进电机正反转
void Motor()
{
unsigned char i;
for(i=0;i<8;i++)
{
GPIO_MOTOR = FFW[i];
Delay(Speed);//调节转速
}
}
当然,这种控制个人觉得是不太精确的,如果只是让一个轴转动180度,则用步进电机外接减速箱,然后接一轴,让电机转一圈,轴转10度或20度,则控制会更精准。
unsigned char code FFZ[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1}; //正转顺序
unsigned char Direction;
void Delay(unsigned int t);
void Motor();
void main()
Delay(10);
GPIO_MOTOR = FFZ[3];
Delay(10);
GPIO_MOTOR = FFZ[4];
Delay(10);
GPIO_MOTOR = FFZ[5];
Delay(10);
GPIO_MOTOR = FFZ[6];
Delay(15);
GPIO_MOTOR = FFZ[7];
{
unsigned char i;
while(1)
{
if(K1==0)//检测按键K1是否按下
{
Delay(10);//消除抖动
if(K1==0)
{
Direction=1;}while((i<200)&&(K1==0))//检测按键是否松开
单片机控制伺服电机设计(带单片机程序及电路)
程设计说明书题目:基于单片机的步进电机控制系统设计课程:机电一体化系统设计姓名:马福德学号:0804705030指导教师:段广云、俞学兰专业年级:机械设计制造及其自动化(机械电子工程方向)2008级所在院系:机械工程学院完成日期: 2011年7月 10 日答辩日期: 2011年7月 11 日摘要随着微电子和计算机技术的发展,步进电机的需求量与日俱增,它广泛用于打印机、电动玩具等消费类产品以及数控机床、工业机器人、医疗器械等机电产品中,其在各个国民经济领域都有应用。
研究步进电机的控制系统,对提高控制精度和响应速度、节约能源等都具有重要意义。
步进电机是一种能将电脉冲信号转换成角位移或线位移的机电元件,步进电机控制系统主要由步进控制器,功率放大器及步进电机等组成。
采用单片机控制,用软件代替上述步进控制器,使得线路简单,成本低,可靠性大大增加。
软件编程可灵活产生不同类型步进电机励磁序列来控制各种步进电机的运行方式。
本设计是采用AT89C51单片机对步进电机的控制,通过IO口输出的时序方波作为步进电机的控制信号,信号经过芯片AT6560AHQ驱动步进电机;同时,用 4个按键来对电机的状态进行控制,并用数码管动态显示电机的转速。
系统由硬件设计和软件设计两部分组成。
其中,硬件设计包括AT89C51单片机的最小系统、电源模块、键盘控制模块、步进电机驱动模块、数码显示模块、测速模块(含霍尔片UGN3020)6个功能模块的设计,以及各模块在电路板上的有机结合而实现。
软件设计包括键盘控制、步进电机脉冲、数码管动态显示以及转速信号采集模块的控制程序,最终实现对步进电机转动方向及转动速度的控制,并将步进电机的转动速度动态显示在LED数码管上,对速度进行实时监控显示。
软件采用在Keil软件环境下编辑的C语言。
本系统具有智能性、实用性及可靠性的特点。
关键词:步进电机 ,单片机 ,电脉冲信号, 角位移, 转速控制,方向控制ABSTRACTWith the development of microelectronics and computer technology, increasing demand for stepper motor, which is widely used in printers, electronic toys and consumer products such as CNC machine tools, industrial robots, medical equipment and electrical products, and its various national fields are applied. Of stepper motor control system to improve the control accuracy and response speed, energy conservation and so important.Stepper motor is an electric pulse signals can convert the angular displacementor linear displacement of the mechanical and electrical components, stepper motor control system consists of stepper controller, stepper motor power amplifier and so on. Use MCU control, the stepper controller instead of using software to make simple circuit, low cost, reliability greatly increased. Software programming flexibility to produce different types of stepping motor excitation sequence to control the operation of the various stepper motor modeThis design is used AT89C51 of Stepping motor control, through the IO port as a square wave output of the timing of step motor control signal, the signal through the ULN2003 driver chip stepper motor; the same time, with four buttons to the status of the motor control, and dynamic display with digital control motor speed.System consists of hardware and software design of two parts. Among them, the hardware design, including minimum system AT89C51 microcontroller, power supply module, keyboard control module, stepper motor drive (integrated Darlington ULN2003) module, digital display (SM420361K digital control) module, speed modules (including the Hall probe UGN3020) six function modules, and each module in the circuit board to achieve the organic combination. Software design, including keyboard control, stepping motor pulse, the digital dynamic display and speed signal acquisition module, control procedures, and ultimately to the stepper motor rotation direction and rotation speed control of stepper motor rotation speed and dynamic display in the LED digital tube, real-time monitoring of the speed display. Software used in the software environment to edit Keil C language. This system has the intelligence, practicality and reliability features.Key Words: Stepping motor , MCU Pulse Signal , Angular displacement ,Speed control ,Direction control目录1 绪论 (1)1.1背景 (1)1.2设计任务及要求 (1)2 总体方案设计 (2)2.1方案设计 (2)2.2芯片选择 (2)2.2.1 CPU的芯片选择 (2)2.2.2 驱动电路的芯片选择 (3)2.2.3 测试电路的芯片选择 (6)3 系统硬件设计 (7)3.1电机驱动电路 (7)3.2测试及显示电路 (8)3.2.1 CS3020霍尔传感器测试电路 (8)3.2.2 LED数码显示管 (8)3.3电源 (9)3.4两相步进电机 (9)3.5键盘控制系统 (10)4 控制系统软件分析与设计 (11)4.1主程序流程图 (11)4.2读键盘子程序流程图 (11)4.3键盘处理子程序流程图 (12)4.4电机控制中断程序流程图 (12)4.5程序设计平台 (13)4.6源程序清单 (14)5 PCB板设计 (19)5.1设计原则 (19)5.1.1布局操作的基本原则 (19)5.1.2布线原则 (19)5.2PCB板设计方案: (20)5.3PCB板各电器元件的布局 (21)6 设计体会 (22)致谢 (23)参考文献 (24)附录 (25)A元件清单 (25)B电路PCB图 (26)C电路原理图 (26)1 绪论1.1 背景当今社会,电动机在工农业生产、人们日常生活中起着十分重要的作用。
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引脚来控制步进电机的转动。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机控制步进电机驱动器工作原理
步进电机在控制系统中具有广泛的应用。
它可以把脉冲信号转换成角位移,并且可用作电磁制动轮、电磁差分器、或角位移发生器等。
有时从一些旧设备上拆下的步进电机(这种电机一般没有损坏)要改作它用,一般需自己设计驱动器。
本文介绍的就是为从一日本产旧式打印机上拆下的步进电机而设计的驱动器。
本文先介绍该步进电机的工作原理,然后介绍了其驱动器的软、硬件设计。
1.
该步进电机为一四相步进电机,采用单极性直流电源供电。
只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。
图1是该四相反应式步进电机工作原理示意图。
图1 四相步进电机步进示意图
开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。
当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。
而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。
依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。
四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。
单四拍与双四拍的步距角相等,但单四拍的转动力矩小。
八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。
单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图2.a、b、c所示:
a. 单四拍
b. 双四拍 c八拍
图2.步进电机工作时序波形图
2.AT89C2051
步进电机驱动器系统电路原理如图3:
图3 步进电机驱动器系统电路原理图
AT89C2051将控制脉冲从P1口的P1.4~P1.7输出,经74LS14反相后进入9014,经9014放大后控制光电开关,光电隔离后,由功率管TIP122将脉冲信号进行电压和电流放大,驱动步进电机的各相绕
电机的一相绕组。
AT89C2051选用频率22MHz的晶振,选用较高晶振的目的是为了在方式2下尽量减小AT89C2051对上位机脉冲信号周期的影响。
数的元件。
D1~D4为续流二极管,使电机绕组产生的反电动势通过续流二极管(D1~D4)而衰减掉,从而保护了功率管TIP122不受损坏。
步进电机的高频性能。
与续流二极管串联的200Ω电阻可减小回路的放电时间常数,使绕组中电流脉冲的后沿变陡,电流下降时间变小,也起到提高高频工作性能的作用。
3.
该驱动器根据拨码开关KX、KY的不同组合有三种工作方式供选择:
方式1为中断方式:P3.5(INT1)为步进脉冲输入端,P3.7为正反转脉冲输入端。
上位机(PC机或单片机)与驱动器仅以2条线相连。
方式2为串行通讯方式:上位机(PC机或单片机)将控制命令发送给驱动器,驱动器根据控制命令自行完成有关控制过程。
方式3为拨码开关控制方式:通过K1~K5的不同组合,直接控制步进电机。
当上电或按下复位键KR后,AT89C2051先检测拨码开关KX、KY的状态,根据KX、KY 的不同组合,进入不同的工作方式。
以下给出方式1的程序流程框图与源程序。
在程序的编制中,要特别注意步进电机在换向时的处理。
为使步进电机在换向时能平滑过渡
,不至于产生错步,应在每一步中设置标志位。
其中20H单元的各位为步进电机正转标志位;21H单元各位为反转标志位。
在正转时,不仅给正转标志位赋值,也同时给反转标志位赋值;在反转时也如此。
这样,当步进电机换向时,就可以上一次的位置作为起点反向运动,避免了电机换向时产生错步。
图4 方式1程序框图
方式1源程序:
MOV 20H,#00H ;20H单元置初值,电机正转位置指针
MOV 21H,#00H ;21H单元置初值,电机反转位置指针
MOV P1,#0C0H ;P1口置初值,防止电机上电短路
MOV TMOD,#60H ;T1计数器置初值,开中断
MOV TL1,#0FFH
MOV TH1,#0FFH
SETB ET1
SETB EA
SETB TR1
SJMP $
;***********计数器1中断程序************
IT1P: JB P3.7,FAN ;电机正、反转指针
;*************电机正转*****************
JB 00H,LOOP0
JB 01H,LOOP1
JB 02H,LOOP2
JB 03H,LOOP3
JB 04H,LOOP4
JB 05H,LOOP5
JB 06H,LOOP6
JB 07H,LOOP7
LOOP0: MOV P1,#0D0H
MOV 20H,#02H
MOV 21H,#40H
AJMP QUIT
LOOP1: MOV P1,#090H
MOV 20H,#04H
MOV 21H,#20H
AJMP QUIT
LOOP2: MOV P1,#0B0H
MOV 20H,#08H
MOV 21H,#10H
AJMP QUIT
LOOP3: MOV P1,#030H
MOV 20H,#10H
MOV 21H,#08H
AJMP QUIT
LOOP4: MOV P1,#070H
MOV 20H,#20H
MOV 21H,#04H
AJMP QUIT
LOOP5: MOV P1,#060H
MOV 20H,#40H
MOV 21H,#02H
AJMP QUIT
LOOP6: MOV P1,#0E0H
MOV 20H,#80H
MOV 21H,#01H
AJMP QUIT
LOOP7: MOV P1,#0C0H
MOV ; 20H,#01H
MOV 21H,#80H
AJMP QUIT
;***************电机反转***************** FAN: JB 08H,LOOQ0
JB 09H,LOOQ1
JB 0AH,LOOQ2
JB 0BH,LOOQ3
JB 0CH,LOOQ4
JB 0DH,LOOQ5
JB 0EH,LOOQ6
JB 0FH,LOOQ7
LOOQ0: MOV P1,#0A0H
MOV 21H,#02H
MOV 20H,#40H
AJMP QUIT
LOOQ1: MOV P1,#0E0H
MOV 21H,#04H
MOV 20H,#20H
AJMP QUIT
LOOQ2: MOV P1,#0C0H
MOV 21H,#08H
MOV 20H,#10H
AJMP QUIT
LOOQ3: MOV P1,#0D0H
MOV 21H,#10H
MOV 20H,#08H
AJMP QUIT
LOOQ4: MOV P1,#050H
MOV 21H,#20H
MOV 20H,#04H
AJMP QUIT
LOOQ5: MOV P1,#070H
MOV 21H,#40H
MOV 20H,#02H
AJMP QUIT
LOOQ6: MOV P1,#030H
MOV 21H,#80H
MOV 20H,#01H
AJMP QUIT
LOOQ7: MOV P1,#0B0H
MOV 21H,#01H
MOV 20H,#80H
QUIT: RETI
END
4.
该驱动器经实验验证能驱动0.5N.m的步进电机。
将驱动部分的电阻、电容及续流二极管的有关参数加以调整,可驱动1.2N.m的步进电机。
该驱动器电路简单可靠,结构紧凑,对于I/O口线与单片机资源紧张的系统来说特别适用。