四相步进电机控制系统设计Word格式.docx
- 文档编号:20270022
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:15
- 大小:597.01KB
四相步进电机控制系统设计Word格式.docx
《四相步进电机控制系统设计Word格式.docx》由会员分享,可在线阅读,更多相关《四相步进电机控制系统设计Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
35电机驱动电路6
4程序设计
4.1主程序框图7
4.2步进电机速度控制程序框图8
4.3拨码开关输入程序框图...10
5总结
5.1心得.11
5.2收获..11
附录一源程序
附录二电路原理图.…….15
1概述
本实验旨在通过控制AT89S52芯片,实现对四相步进电机的转动控制具体功能主要是控制电机正转、反转、加速与减速。
具体工作过程是:
给试验箱上电后,拨动启动开关,步进电机按照预先设置的转速和转动方式转动。
调整正反转按钮,步进电机实现正反转切换;
拨动加速开关,步进电机转速加快,速度达到最大值,不再加速;
拨动减速开关时,电机减速转动,速度减到最小速度,停止减速。
系统控制框图
实验具体用到的仪器:
AT89S52试验箱上为89C58)芯片、拨码开关单
元、四项步进电机等硬件设备。
实验具体电路单元有:
单片机最小系统、步进电机连接电路、拨码开关连接电路
2四项步进电机
2.1步进电机
步进电机是一种将电脉冲转化为角位移的执行机构。
电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
2.2步进电机的共组原理
2.2步进电机的控制
1.换相顺序控制:
通电换相这一过程称为脉冲分配。
例如:
混合式步进电机的工作方式,其各相通电顺序为A-B-C-D,通电控制脉冲必须严格按照这一顺序分别控制A,B,C,D相的通断。
2.控制步进电机的转向控制:
如果给定工作方式正序换相通电,步进
电机正转,如果按反序通电换相,则电机就反转。
3.控制步进电机的速度控制:
如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。
两个脉冲的间隔越短,步进电机
就转得越快。
2.3步进电机的工作过程
开关SB接通电源,SASCSD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。
当开关SC接通电源,SBSASD断开时,
由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。
而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。
依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着ABCD方向转动。
四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三
种工作方式。
单四拍与双四拍的步距角相等,但单四拍的转动力矩小。
八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。
单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图
3.a、b、c所示:
脉沖jinrcnjifuirLTLimn
卅冃n_n一n—
mb_nnn—
cm_n一n一TLd相innn
a.单四拍b.双四拍c八拍
步进电机工作时序波形图
对步进电机四个绕组依次实现如下方式的循环通电控制:
单四拍运行:
正转A-B-C-D;
反转D-C-B-A
双四拍运行:
正转AB-BC-CD-DA反转DC-CB-BA-AD
八拍运行:
正转A-AB-B-BC-C-CD-D-DA
本实验使用的是单双八拍循环控制
3电路图设计
3.1AT89S52概述
AT89S52单片机是ATME公司推出的高档型AT89S系列单片机中的增强型产品。
关于其功能原理及其应用不再赘述。
这里只介绍本实验用到的端口和功能。
P1口:
用户使用的通用I/O口,8位准双向,编程和校验时,可做为高8位地址线;
P1.0和P1.1引脚另有第二功能(此实验没用到,不再介绍)
P3口:
8位准双向I/O口
RST:
复位信号输入端,高电平有效
EA访问芯片内部和芯片外部程序存储器的选择信号
XTAL1,XTAL2芯片内振荡器反相放大器的输出端和输入端
3.2最小系统
单片机最小系统或者称为最小应用系统,就是用最少的元件组成的单片机可以工作的系统,对52系列单片机来说,最小系统一般应该包括:
单片机、复位电路、晶振电路。
3.3复位电路
复位电路采用手动复位和上电自动复位。
上电自动复位:
在单片机上电的瞬间,RC电路充电,由于电容上电电
压不能突变,所以RST引脚出现高电平,RST引脚出现的高电平将会随着对电容C的充电过程而逐渐回落。
手动复位:
当按下复位按钮时,RST出现高电平,实现复位。
3.4
拨码开关和P3口相连,拨动开关swl、sw2、sw3sw4来控制电机的启停、正反转、速度的加减。
VCC
3.5电机驱动电路
将步进电机的AB、CD分别接到P1.0、P1.1、P1.2、P1.3管脚上
实物连接
4程序设计
4.1主程序框图
系统分为电机转动、电机正转、电机反转、电机加速、电机减速
和电机停止这几个部分组成,其主程序框图如图下所示
4.2
东北大学秦皇岛分校报告用纸步进电机速度控制程序框图
正转部分:
送P1口不同的值,从而改变电机电源的相序,是电机正转,
数值分别为0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1,0xf9。
流程图如下
等待
反转部分:
送P1口不同的值,从而改变电机电源的相序,是电机反转,
数值分别为0xf9,0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8。
加速部分:
当电机处于正转或反转的时候,按下K2,调用加速程序,是电机每转动一部的延时时间变短,从而实现电机的加速。
开始
延时
减速部分:
当电机处于正转或反转的时候,按下K3,调用加速程序,
是电机每转动一部的延时时间变长,从而实现电机的减速。
运行与停止:
按下K1键,系统默认是停止,拨动一次是运行,在拨动一次是停止,即是基数次运行,偶数次停止(一般不会拨动N次,为了看到现象,就拨动少数几次)
4.3拨码开关输入程序框图
用于判断P3.1、P3.2、P3.3、P3.4,
5总结
5.1心得
这次课程设计,历时多天,失败多次,不断总结失败的经验,从中取得进步。
经过这次课程设计,我明白了具体怎么来实现一个单片机的项目,熟悉了流程,获取信息的途径。
彻底的了解了单片机的用途。
5.2收获
1、能够将理论知识与实践相结合,对理论的理解更透彻。
2、对单片机C语言编程,有了初步的了解,为以后的进一步学习打下
了基础
3、增强了自己的团队意识,在以后的学习和工作中能够更好的与他人
合作
【附录一】源程序
/******************************************************************************
***********************/
//名称:
四项步进电机的控制
//功能:
实现电机的正反转,以及电机的转速
//指导老师:
吕江涛张宝健
**********************/
#inelude<
reg52.h>
absacc.h>
#defineueharunsignedchar
#defineuintunsignedintsbitK1=P3A0;
sbitK2=P3A1;
sbitK3=P3A2;
sbitK4=P3A3;
ueharspeed=0;
uehark=0;
bitflageon=0;
uehareodeup_data[8]=
//定义转速变量,初始值为25
〃用来记录驱动数组的位数
//定义正反转
{0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1,0xf9};
〃正向驱动数组
ueharcodedown_data[8]={0xf9,0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8};
〃反向驱动数组
uehareodemotor_h[]={0x9e,0xae,0xba,0xc3,0xc9,0xcf,0xd3,0xd7,0xda,0xdd,
0xdf,0xe1,0xe3,0xe4,0xe6,0xe7};
//步进电机计数值TH1高位表
uehareodemotor_l[]={0x58,0xa2,0x3c,0x1a,0xbe,0x2c,0xad,0x4c,0x6c,0x1e,
0x76,0x7e,0x4a,0xe4,0xc1,0x96};
//步进电机计数值TL1低位表
***************/
//名称:
延时函数
//功能:
定量延时,延时时间=x*1ms
*************/
voidDelay_ms(uintx)
{
uinti,j;
for(i=x;
i>
0;
i--)
for(j=112;
j>
j--);
〃延时约1ms毫秒
/**
}
****************************************************************************
***********/
〃名称:
定时器T1初始化函数
voidtimer(){
TMOD=0x10;
方式
II定时器T1均为工作模式1,16位定时
TH1=Oxff;
TL1=0xff;
EA=1;
ET仁1;
TR1=0;
〃装定时器T1计数初值
〃开总中断
〃开定时器T1中断
〃暂时不启动定时器T1
************
II按键处理
voidKeyProcess()
if(K1==0)
Delay_ms(10);
TR仁~TR1;
IIK1键按下后,启动定时器T1
}〃再次按下关闭T1,控制步进电机启停
if(K2==0)
if((K2==0)&
&
(speed!
=15))
speed++;
II转速加1
if(K3==0)
if((K3==0)&
(speed!
=0))
speed--;
II转速减1
if(K4==0)
flagcon=~flagcon;
//正反转
*********/
//主函数
*******/
main()
timer();
//定时器TO和T1初始化
while
(1)
KeyProcess();
//按键处理函数
定时器T1中断函数
〃功能:
用于步进电机转速控制,定时时间由查表可知
**********/
voidtimer1()interrupt3{
//查计数值高位值表
//查计数值低位值表
//判断正反转
〃将驱动值送P1,驱动步进电机运转
TH1=motor_h[speed];
TL1=motor_l[speed];
if(flagcon==0)P1=up_data[k];
else
P1=down_data[k];
k++;
if(k==8)k=0;
【附录二】电路图
e
Q吉
{TDCIHS耳
;
£
亍-二二」*二f
,■^52-4fl
■-iDcl二事g^ssi4m
・9「fl
50
・
T
i
t
T沁
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 步进 电机 控制系统 设计