步进电机设计报告Word格式.docx
- 文档编号:14259036
- 上传时间:2022-10-21
- 格式:DOCX
- 页数:19
- 大小:210.36KB
步进电机设计报告Word格式.docx
《步进电机设计报告Word格式.docx》由会员分享,可在线阅读,更多相关《步进电机设计报告Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
而LCD显示屏在很多数码产品中有着广泛的应用,如计算器,IC卡机,电子手表,掌上电脑,仪表显示屏等。
同时,单片机也广泛应用于实时控制、智能仪器、仪表通信和家用电器等各个领域,所涉与的容非常广泛,是计算机科学、电子学、自动控制等基础知识的综合应用。
单片机的应用系统有硬件和软件所组成。
本次硬件实习是基于51单片机对步进电机转速进行控制,加之液晶的显示,使其转速的档位和方向显示在液晶上。
1.设计目标与容
1.1设计容
利用实验平台上单片机P0口输出脉冲序列,74LS244输出开关量,开关K2—K7控制步进电机转速,(分6档),K0,K1控制转向。
驱动方式分两种,四相四拍、四相八拍,通过软件设计,控制步进电机的转速和方向。
并将转速(1~6档)和转向(正转“1”,反转“0”)显示在LCD显示器上
1.2设计目的
1.2.1了解步进电机控制的基本原理;
1.2.2掌握液晶显示图形的基本方法,从而对其它液晶屏的使用也能得心应手。
2.硬件原理与设计分析
2.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通电时序波形
本实验使用的步进电机用直流+12V电压,电机线圈由A、B、C、D四相组成。
驱动方式为四相四拍方式,各线圈通电顺序如下表。
表中首先向A线圈输入驱动电流,接着B、C、D线圈驱动,最后又返回到A线圈驱动,按这种顺序切换,电机轴按顺时针方向旋转。
若通电顺序相反,则电机轴按逆时针方向旋转。
(注:
为提高步进电机负载能力和运行平稳,可使用四相八拍驱动方式。
)
顺序/相
A
B
C
D
0
1
2
3
1
表二:
驱动方式
2.2液晶显示原理
本实验用的是1602液晶,1602液晶可以显示两行字符,其写入字符是根据时序特点,写指令,写数据等操作。
以下是1602液晶的相关资料,
读状态
输入
RS=L,R/W=H,E=H
输出
D0—D7=状态字
写指令
RS=L,R/W=L,D0—D7=指令码,E=高脉冲
无
读数据
RS=H,R/W=H,E=H
D0—D7=数据
写数据
RS=H,R/W=L,D0—D7=数据,E=高脉冲
表二:
基本操作时序表
读写操作时序如图所示
图3:
读操作时序
图4:
写操作时序
2.3步进电机转速控制与显示设计(LCD显示转速)的硬件框图
如图5所示,整个硬件围绕51单片机,根据开关输入通过外接电路控制步进电机的转速和方向,并显示在液晶上。
8051单片机作为处理器,整个硬件功能围绕8051进行实现,首先,由开关通过扩展输入实现对整个硬件功能的控制。
当开关设置为某个状态时,由8051单片机输出相应的值,通过扩展输出对步进电机进行相应方向和转速的控制,并由1602进行相应的显示。
图5硬件框图
2.4总的硬件电路图
如硬件电路图图6所示。
其中,74LS373为地址锁存器,74LS244为带3态输出的八缓冲器,74LS273为带清除的八触发器;
74LS138为三八译码器。
开关由扩展输入对单片机进行输入相关变量,从而通过单片机对步进电机的转速和方向进行控制。
再有液晶进行相应的显示。
3.软件分析与设计
3.1软件需求分析
本实习要求用开关控制步进电机的转速和方向,并将相应的数据显示在液晶上;
通过分析,我们只需将开关的输入量转换成相应的步进电机转速即可,然而,通过前面讲过的步进电机的相关驱动方式我们可以知道,转速可以通过设置延时子程序的时间长短来实现,而步进电机的方向则通过不同的时序来控制,从而加上很容易的实现步进电机的转速控制,在根据液晶的时序规则来显示相应的数据,很简单的实现了整个实习要求。
3.2程序流程图
如图(图7:
程序流程图)所示,在程序开始后先进行各个参数的初始化,然后对开关量进行读取,根据读取的数值进行对步进电机的转速量和方向量进行设置,并同时在LCD上显示出相应的数据,定时,置输出地址,然后输出相应的参数,从而实现对步进电机和液晶的相应控制。
如下图(图8:
LCD框图所示)为LCD液晶的显示子程序框图,程序先进行LCD初始化,然后进行清屏,在需要写入时,对LCD进行写操作,最后就可以显示出来你想要的字符。
3.3软件代码
#include"
reg52.h"
#include<
intrins.h>
//#defineucharunsignedchar
//#defineuintunisgnedint
//#defineBYTEunsignedchar
//#definenumunsignedint
sbitk1=P2^0;
sbitk2=P2^1;
sbitk3=P2^2;
sbitk4=P2^3;
sbitk5=P2^4;
sbitk6=P2^5;
sbitk7=P2^6;
sbitk8=P2^7;
voiddelay1(unsignedintt)//电机驱动延时程序
{
unsignedintk;
while(t--)
{
for(k=0;
k<
100;
k++)
}
}
voidmotor_ffw(unsignedchari)//电机顺时针转动程序
P1=0x01;
delay1(i);
P1=0x02;
P1=0x04;
P1=0x08;
voidmotor_ffz(unsignedchari)//电机逆时针转动程序
{
P1=0x01;
P1=0x08
}
sbitRS=P0^5;
//定义P2^5为液晶控制端口RS
sbitRW=P0^6;
sbitE=P0^7;
ucharcodetable[]="
Guizhoudaxue"
//字符定义
ucharcodetable1[]="
wangxiaogang"
ucharcodetable2[]="
1120020075"
ucharcodetable3[]="
SPEED:
123456"
;
ucharcodetable4[]="
startstepmotor"
ucharcodetable5[]="
"
ucharcodetable6[]="
typedefunsignedcharBYTE;
//定义字符变量BYTE
typedefunsignedintWORD;
//定义整形变量WORD
typedefbitBOOL;
//字符变量BOOL
//LCD驱动程序
voidlcddelay(BYTEms)//延时子程序
{
BYTEi;
while(ms--)
for(i=0;
i<
250;
i++)//循环250次
{
_nop_();
_nop_();
//空操作延时1us
}
}
//测试LCD忙碌状态-忙检测函数
BOOLlcd_bz()
BOOLresult;
//定义字符变量result,用于存放测试的LCD忙碌状态值
RS=0;
//寄存器的选择控制口,选择指令寄存器
RW=1;
//读写操作控制端口,RW=1表示读操作
E=1;
//
_nop_();
//延时4us
result=(BOOL)(P0&
0x80);
E=0;
returnresult;
}
//写入指令数据到LCD
voidlcd_wcmd(BYTEcmd)
while(lcd_bz());
RS=0;
RW=0;
E=0;
_nop_();
P0=cmd;
E=1;
//写入字符显示数据到LCD
voidlcd_wdat(BYTEdat)
RS=1;
P0=dat;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 步进 电机 设计 报告