步进电机设计报告Word文档下载推荐.docx

上传人:b****6 文档编号:17727991 上传时间:2022-12-08 格式:DOCX 页数:19 大小:207.31KB
下载 相关 举报
步进电机设计报告Word文档下载推荐.docx_第1页
第1页 / 共19页
步进电机设计报告Word文档下载推荐.docx_第2页
第2页 / 共19页
步进电机设计报告Word文档下载推荐.docx_第3页
第3页 / 共19页
步进电机设计报告Word文档下载推荐.docx_第4页
第4页 / 共19页
步进电机设计报告Word文档下载推荐.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

步进电机设计报告Word文档下载推荐.docx

《步进电机设计报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《步进电机设计报告Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。

步进电机设计报告Word文档下载推荐.docx

该步进电机为一四相步进电机,采用单极性直流电源供电。

只要对步进电机的各相绕组按适宜的时序通电,就能使步进电机步进转动。

图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进展相应的显示。

8051单片机

开关

液晶LCD

步进电机

扩展输出

驱动电路

LCD驱动电路

扩展输入

图5硬件框图

2.4总的硬件电路图

如硬件电路图图6所示。

其中,74LS373为地址锁存器,74LS244为带3态输出的八缓冲器,74LS273为带去除的八触发器;

74LS138为三八译码器。

开关由扩展输入对单片机进展输入相关变量,从而通过单片机对步进电机的转速和方向进展控制。

再有液晶进展相应的显示。

3.软件分析及设计

3.1软件需求分析

本实习要求用开关控制步进电机的转速和方向,并将相应的数据显示在液晶上;

通过分析,我们只需将开关的输入量转换成相应的步进电机转速即可,然而,通过前面讲过的步进电机的相关驱动方式我们可以知道,转速可以通过设置延时子程序的时间长短来实现,而步进电机的方向那么通过不同的时序来控制,从而加上很容易的实现步进电机的转速控制,在根据液晶的时序规那么来显示相应的数据,很简单的实现了整个实习要求。

3.2程序流程图

如图(图7:

程序流程图)所示,在程序开场后先进展各个参数的初始化,然后对开关量进展读取,根据读取的数值进展对步进电机的转速量和方向量进展设置,并同时在LCD上显示出相应的数据,定时,置输出地址,然后输出相应的参数,从而实现对步进电机和液晶的相应控制。

图7:

如以下图(图8:

LCD框图所示)为LCD液晶的显示子程序框图,程序先进展LCD初始化,然后进展清屏,在需要写入时,对LCD进展写操作,最后就可以显示出来你想要的字符。

图8:

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;

//LCD初始化设定

voidlcd_init()

lcd_wcmd(0x38);

//设置LCD为8位数据,两行显示,5*7点阵

lcddelay

(1);

lcd_wcmd(0x0E);

//显示开关控制指令设定,LCD开显示和光标,不闪烁

lcd_wcmd(0x06);

//设光标和画面的移动方式I/D=1,S=0设置读写操作之后AC自动加一,显示不移动

lcd_wcmd(0x01);

//去除LCD的显示内容

voidout0init()//外部中断0的初始化

EX0=1;

IT0=1;

EA=1;

voidlcd_xianshi()//lcd液晶显示程序

lcd_wcmd(0x00);

for(num=0;

num<

15;

num++)

lcd_wdat(table[num]);

delay

(1);

lcd_wcmd(0x80+0x40);

12;

lcd_wdat(table1[num]);

10;

lcd_wdat(table2[num]);

11;

lcd_wdat(table3[num]);

14;

lcd_wdat(table4[num]);

lcd_wcmd(0x80+0x40);

6;

lcd_wdat(table5[num]);

voiddelay1ms(void)//判断按键是否按下延时时间误差0us

unsignedchara,b,c;

for(c=1;

c>

0;

c--)

for(b=142;

b>

b--)

for(a=2;

a>

a--);

void0ut0inter(void)interrupt0using1

delay1ms(10)

if(k1==0)

delay1ms

(2)

if(k1==0)

{

lcd_wcmd(0x80+0x40+0x07);

lcd_wdat(table6[0]);

elseif(k2==0)

if(k2==0)

delay

(1);

i=100;

lcd_wdat(table6[1]);

elseif(k3==0)

delay1ms

(2)

if(k3==0)

{

i=80;

lcd_wdat(table6[2]);

elseif(k4==0)

if(k4==0)

i=60;

lcd_wdat(table6[3]);

elseif(k5==0)

if(k5==0)

i=40;

lcd_wdat(table6[4]);

elseif(k6==0)

if(k6==0)

i=30;

lcd_wdat(table6[5]);

motor_ffw(i);

elseif(k7==0)

if(k7==0)

if(k2==0)

if(k2==0)

elseif(k3==0)

lcd_wdat(table6[2]);

motor_ffz(i);

voidmain(void)

lcd_xianshi();

lcd_init();

out0init();

while

(1)

delay1ms(80)

4.操作说明及结果分析

P1八位分别接开关开关的八个口,F208接38译码器,PO前四口分别接步进电机四口,F200接液晶

把程序烧写进去后运行,液晶第一行显示FX:

当K0拨上时液晶显示FX:

1,步进电机顺时钟转,当K1拨上时液晶显示FX:

0,步进电机逆时针转,开关K2—K7控制步进电机转速,〔分6档〕,并正常显示在液晶上,K2上拨时,第二行显示SPEED:

1;

K3上拨时显示SPEED:

2;

K4上拨时显示SPEED:

3;

K5上拨时显示SPEED:

4;

K5上拨时显示SPEED:

K6上拨时显示SPEED:

7;

K7上拨时显示SPEED:

8;

整个程序运行符合实习要求。

5.调试过程中遇到的问题与解决方法

在整个调试过程中遇到了很多问题,现在就几个比较有代表性和常见的问题加以说明。

首先,在本人调试步进电机速度时,刚开场遇到了电机只抖不转的现象,当时检查了整个程序,未发生程序上的错误,于是很纳闷。

不过再后来上网差了很多资料后才慢慢了解到,是一下子给步进电机的速度太大,使其无法正常加速到那个速度。

比较好的解决方法就是减速或是慢慢加速到那个快的速度。

其次,就是在液晶显示程序完成后,调试过程中会遇到没执行完一次程序闪一下,通过查找相关资料和仔细阅读自己程序后才知道,原来是自己在写程序的时候,每次判断后都有液晶清屏,后来改了之后正常显示了。

其他方面没有大的问题。

最终我们完成了完美的程序。

6.硬件实习总结

为期两个星期的单片机软件、硬件实习很快就完毕了,虽然整个过程进展的不是那么太顺利,实习过程中遇到了种种问题,但在自己不懈的努力和指导教师的殷切教诲下,终归还是依依解决,正如大家所说,在自己努力之下尝到成功的滋味是一件很幸福的事情,确实如此。

在这次实习中收获很多,我觉得最值得一提的是通过本次实习,培养了我对单片机的浓厚兴趣,完成了这次实习任务觉得很有成就感。

在专业只是方面也收获很多,首先,提高了自己的动手能力,并且在编程方面也有了很大的飞跃,通过本次的实习,稳固了单片机的知识,学以致用才是学习的最终目标。

我想这次实习在我以后的学习和工作中都会起到至关重要的帮助。

7.参考文献

【1】赵德安.单片机原理与应用.机械工业出版社

【3】向艳.周天彤.程起才.史兵.C语言程序设计.清华大学出版社

【4】朱正伟.何宝祥.刘训飞.数字电路逻辑设计.清华大学出版社

【5】坂本正文〔日〕.步进电机应用技术.北京科学出版社

【6】丛爽.李泽湘.实用运动控制技术.电子工业出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 思想汇报心得体会

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1