步进电机课程设计报告徐云Word文件下载.docx

上传人:b****6 文档编号:20625591 上传时间:2023-01-24 格式:DOCX 页数:16 大小:233.66KB
下载 相关 举报
步进电机课程设计报告徐云Word文件下载.docx_第1页
第1页 / 共16页
步进电机课程设计报告徐云Word文件下载.docx_第2页
第2页 / 共16页
步进电机课程设计报告徐云Word文件下载.docx_第3页
第3页 / 共16页
步进电机课程设计报告徐云Word文件下载.docx_第4页
第4页 / 共16页
步进电机课程设计报告徐云Word文件下载.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

步进电机课程设计报告徐云Word文件下载.docx

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

步进电机课程设计报告徐云Word文件下载.docx

通俗一点讲:

当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(即步进角)。

您可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;

同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

国内外对细分驱动技术的研究十分活跃,高性能的细分驱动电路,可以细分到上千甚至任意细分。

目前已经能够做到通过复杂的计算使细分后的步距角均匀一致,大大提高了步进电机的脉冲分辨率,减小或消除了震荡、噪声和转矩波动,使步进电机更具有“类伺服”特性。

对实际步距角的作用:

在没有细分驱动器时,用户主要靠选择不同相数的步进电机来满足自己对步距角的要求。

如果使用细分驱动器,则用户只需在驱动器上改变细分数,就可以大幅度改变实际步距角,步进电机的“相数”对改变实际步距角的作用几乎可以忽略不计。

2.系统概述

2.1步进电机控制工作原理

步进电机实际上是一个数字\角度转换器,也是一个串行的数\模转换器。

步进电机的基本控制包括启停控制、转向控制、速度控制、换向控制4个方面。

从结构上看,步进电机分为三相、四相、五相等类型,常用的则以三相为主。

本设计采用单片机AT89S51来作为整个步进电机控制系统的运动控制核心部件,采用了电机驱动芯片L298及其外围电路构成了整个系统的驱动部分,再加上作为执行部件的步进电机来构成了一个基本的步进电机控制系统。

步进电机控制工作原理系统流程图如图2.1:

图2.1步进电机控制工作原理系统流程图

整个系统的组成包括单片机最小系统,电机驱动模块,串口下载模块,数码管显示模块,电机驱动电流检测模块,独立按键等模块组成。

单片机最小系统作为整个系统的控制核心,它主要负责产生控制步进电机转动的脉冲,通过单片机的软件编程代替环形脉冲分配器输出控制步进电机的脉冲信号,步进电机转动的角度大小与单片机输出的脉冲数成正比步进电机转动的速度与输出的脉冲频率成正比,而步进电机转动的的方向与输出的脉冲顺序有关。

同时单片机系统还负责处理来自电机驱动电流检测模块检测到的电流值。

与此同时,单片机将会把电机转速,电机的转动方向,以及电流检测模块检测到的电机驱动的电流通过数码管显示出来。

电机驱动模块负责将单片机发给步进电机的信号功率放大,从而驱动电机工作。

串口下载模块主要是负责实行计算机和单片机之间的通信,将在计算机里面编写好的程序下载到单片机芯片当中。

数码管显示模块就主要是显示电机转速,电机转向,和通过电机的电流等系统的实时信息。

3.系统硬件电路设计

3.1最小系统介绍

本设计采用AT89S51单片机构成了控制系统的核心。

AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4kbytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。

它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,功能强大。

AT89S51提供以下标准功能:

4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。

同时,AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。

空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。

掉电方式保存RAM的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

其基本模块就主要包括复位电路和晶体震荡电路。

在本设计当中,单片机的P0口、P1口、P2口、P3口全部参与系统工作。

单片机最小系统的接线如图3.1所示:

3.1最小系统结构示意图

3.1.1单片机端口分配及功能

1、中P0口用于控制数码管的具体显示功能,既是数码管的段选。

2、P1口主要用于控制电机驱动芯片L298的工作,以及ADC0804芯片的编程的读写控制。

3、P2口主要用于控制数码管的公共端,既是数码管的位选。

与此同时还处理键盘扫描电路的。

4、P3口主要用于负责处理ADC0804的模数转化芯片的工作。

3.1.2晶体振荡器特性

AT89S51一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。

这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。

外接石英晶体(或陶瓷谐振器)及电容Cl、C2接在放大器的反馈回路构成并联振荡电路。

对外接电容Cl、C2虽然没十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。

如果使用石英晶体,我们推荐电容使用30pF±

10pF,而如使用陶瓷谐振器建议选择40pF±

10pF。

用户也可以采用外部时钟。

这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。

由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。

3.2数码管显示电路设计

本设计的显示部分可以用液晶显示的方案可供选择,液晶显示和数码管显示的区别主要体现在以下几个方面:

数码管显示内容单一,而液晶显示器显示内容丰富,因为液晶一般都是七段八字的只能显示单一的内容,而液晶显示的内容就很丰富;

数码管还比液晶显示耗电,而且使用液晶也比使用数码管显得美观。

但是控制液晶显示器的时候占用的系统资源多,编程更复杂,最关键的是液晶显示的成本是数码管的几十倍,所以考虑到应用价值,最终还是确定选用数码管实现本设计的显示部分功能。

四位共阳数码管的管脚分配如下图3.2所示:

图3.2 四位共阳数码管管脚定义

从数码管的正面观看,左下角的那个脚为1脚,从1脚开始,按照逆时针方向排列依次是1脚到12脚,其中12、9、8、6为公共角,为位选信号输入端。

剩余的八个脚是段选信号输入端,其对应方式是A-11、B-7、C-4、D-2、E-1、F-10、G-5、DP-3。

数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"

a,b,c,d,e,f,g,dp"

的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。

通过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。

在轮流显示过程中,每位元数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O口,而且功耗更低。

本设计选用的LCD液晶显示,低压微功耗、平板型结构、被动显示型(无眩光,不刺激人眼,不会引起眼睛疲劳)、显示信息量大(因为像素可以做得很小)  易于彩色化(在色谱上可以非常准确的复现)、无电磁辐射(对人体安全,利于信息保密)、长寿命(这种器件几乎没有什么劣化问题,因此寿命极长,但是液晶背光寿命有限,LCD液晶显示器引脚如图3.3所示。

图3.3 LCD数码管引脚图

3.3电机驱动电路设计

本设计的电机驱动部分是由驱动芯片L298及其外围电路构成,其中从L298的2、3脚和13、14脚(即芯片的输出端)依次按顺序连成一个插座,分别与步进电机的四根线相连。

而5、6、7、10、11、12脚就依次与单片机的P1口的六个管脚相连。

通过这一连接实现了单片机与L298以及步进电机的串联控制。

如图3.4所示。

图3.4 电机驱动电路图

3.4按键设计

本系统中用按键来控制电机的起停、正反转和速度级别。

按键与单片机有查询和中断两种连接方式,本系统中起停和正反转按键采用中断方式控制,速度级别按键采用查询方式控制。

我们的起停和正反转按键分别接到与门的两端和该单片机的P3^4和P3^5两个I/O口,经与运算后进入单片机的INT1引脚。

速度按键直接接到该单片机的P2^7口,用查询方式控制。

如图3.5所示的按键控制原理图。

图3.5按键控制原理图。

4.软件设计

本系统的软件设计主要分为系统初始化、延时子程序、按键响应程序,数码管显示程序,读ADC0804子程序及控制脉冲输出几部分,事实上每一部分都是紧密相关的,每个功能模块对于整体设计都是非常重要,单片机AT89S51通过软件编程才能使系统真正的运行起来,软件设计的好坏也直接决定了系统的运行质量。

4.1 系统软件主流程图

当给系统供电以后,通过单片机复位电路对系统进行上电复位系统经过初始化以后,便开始执行按键查询等待相应的操作,当有按键按下的时候程序便调用并执行相应的子程序,其具体的主流程图4.1如下所示:

图4.1系统软件总流程图

经过以上几步,就可以方便的编写出完整的汇编源程序,详细代码程序见附录1。

4.1.1 系统初始化流程图

对相应的系统参数进行初始化,包括系统上电默认运行参数设定,包括两相四拍的工作方式,初始速度档位是30转/分,系统中断设定,定时器设定,载入定时器初值和默认的工作参数等,具体流程图如图4.2所示。

图4.2系统初始化流程图

4.2 按键子程序

1、延时子程序:

在本延时子程序当中每调用一次延时子程序延时时间是1毫秒。

2、按键响应子函数:

在本设计当中按键的一端接地,另一端接单片机的对应端口,所以当按键按下,既是将单片机对应端口电平拉低。

所以在编程的时候判断按键按下是低电平有效。

电机增速和减速的子程序框图如图4.3。

图4.3增速减速子程序

3、控制步进电机转动的脉冲输入方式:

两相四拍通电方式:

正转:

AB—aB—ab—Ab—AB

反转:

AB—Ab—ab—aB—AB

两相八拍通电方式:

AB—B—aB—a—ab—b—Ab—A—AB

AB—A—Ab—b—ab—a—aB—B—AB

以两相四拍正转为例的程序代码见附录2。

5.系统仿真调试

本系统采用了一种基于Proteus的PC机对步进电机运动控制仿真方法, Protues软件是英国Labcenterelectronics公司出版的EDA工具软件。

它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。

它是目前最好的仿真单片机及外围器件的工具,互动的电路仿真。

用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。

还可以用来仿真处理器及其外围电路。

包括仿真51系列、AVR、PIC、ARM、等常用主流单片机。

我们可以用它来进行元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。

对应的单拍正转、双拍正转、单双拍正转种情况下由虚拟示波器(OSCILLOSCOPE)采集的脉冲驱动信号,对于步进电机的控制,实际上是控制步进脉冲的个数和步进脉冲的间隔,而步进电机的间隔又可转化为某基准延时子程序的循环次数。

因此,可以很方便地用软件来控制步进电机的运行,达到各种控制目的。

如图5.1所示,是本设计步进电路的仿真图。

图5.1步进电机仿真图

如图所示,它由单片机最小系统设计、LCD数码管显示器、电机驱动电路部分和按键系统等组成。

通过仿真,我们可以得到如图5.2的步进电机控制仿真图。

图5.2步进电机控制仿真图

从图5.2我们可以看出,通过这个系统,我们可以得到转速为60n/min的转速。

我们可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

6.课程设计体会

随着工业技术的不断进步,在自动化控制、精密机械加工、航空航天技术及所有要求高精度定位等高新技术领域,步进电机的得到了广泛的应用。

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。

在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。

步进电机控制系统以8086作为控制的核心元件,利用8255的C口控制步进电机,同时获取控制转动方向(即正转和反转),A口连接键盘,以选取不同档的移动速度,B口连接LED显示器,以显示当前的速度档,8253作为定时器,提供必要的时钟信号。

本课程设计报告通过步进电机的基本介绍、系统的软硬件设计(包括最小系统介绍、接口电路设计、延时程序设计、步进电机的驱动程序设计等几个主要模块)、完整的汇编语言程序等,我们完成了对步进电机系统的设计,并完成了相应的任务,如正转、反转、显示步数及设定速度等,使我们进一步掌握了汇编语言,也使我们能很好的把书本上的知识与实践相结合,大大提高了我们的动手能力。

在老师的悉心指导和严格要求下,我们完成了四相步进电机设计课程。

从书本上的知识到自己亲手的课程设计,每一步对我们来说无疑是巨大的尝试和挑战。

虽然我们的设计作品不是很成熟,即使借鉴前人的很多资料仍然还有很多不足之处,但我仍然心里有一种莫大的幸福感,因为我们实实在在地走过了一个完整的设计所应该走的每一个过程,并且享受了每一个过程。

参考文献:

[1]彭虎,周佩玲,傅忠谦.微机原理与接口技术[Z].北京:

电子工业出版社,2008

[2]张齐,朱宁西.单片机应用系统设计技术——基于C51的Proteus仿真[Z].北京:

电子工业出版社,2009

[3]周荷琴,吴秀清.微型计算机原理与节后技术[Z].合肥:

中国科技大学出版社,2008

[4]彭虎,周佩玲,傅忠谦.微机原理与接口技术学习指导[Z].北京:

附录1.

系统完整的汇编源程序:

#include<

reg52.h>

#include"

LCD1602.h"

sbitP1_0=P1^0;

sbitP1_1=P1^1;

sbitP1_2=P1^2;

sbitP1_3=P1^3;

sbitP3_6=P3^6;

sbitP3_7=P3^7;

sbitP2_4=P2^4;

unsignedcharspeed=100;

voidprintXY(intx,inty,char*st)

{

GotoXY(x,y);

Print(st);

}

voiddisspeed(void)

unsignedcharSPEEDdis[3];

SPEEDdis[0]=(1000*6/speed/100)+0x30;

SPEEDdis[1]=1000*6/speed%100/10+0x30;

SPEEDdis[2]=1000*6/speed%100%10+0x30;

printXY(13,1,SPEEDdis);

voiddelay(unsignedcharde)

unsignedcharch=1;

while(de--)

while(ch--);

voidint0()interrupt0

{

if(P1_0==0)

{if(speed>

=10)//add

speed=speed-4;

P1_1=1;

P1_2=1;

P1_3=1;

disspeed();

}

if(P1_1==0)

{if(speed<

=200)//sub

speed=speed+10;

P1_0=1;

if(P1_2==0)

{

P3_6=1;

//正转

P1_1=1;

printXY(13,0,"

CW"

);

if(P1_3==0)

P3_6=0;

//反转

ICW"

}

}

voidmain()

IT0=1;

EA=1;

EX0=1;

P3_6=1;

P1_0=1;

P1_1=1;

P1_2=1;

P1_3=1;

Lcd_Init();

printXY(0,1,"

Speed(n/min):

"

printXY(0,0,"

MotoRun_direcCW"

while

(1)

{

delay(speed);

P3_7=~P3_7;

附录2.

以两相四拍正转为例的程序代码:

if(i==1)

{

AL=1;

BL=1;

aL=0;

bL=0;

elseif(i==2)

AL=0;

aL=1;

}

elseif(i==3)

{

BL=0;

bL=1;

}

elseif(i==4)

AL=1;

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

当前位置:首页 > 求职职场 > 简历

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

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