proteus步进电机仿真

验证/仿真

35人已加入

描述

步进电机广泛应用在生产实践的各个领域。它最大的应用是在数控机床的制造中,因为步进电机不需要A/D转换,能够直接将数字脉冲信号转化成为角位移,所以被认为是理想的数控机床的执行元件。本设计利用proteus仿真软件进行电路仿真,系统通过设置四个按键分别控制不进电机的起止、圈数、方向、不进速度,使用1602液晶显示以上参数。整个系统具有稳定性好,实用性强,操作界面友好等优点。

步进电机是一种将电脉冲转变为角位移的执行机构,可通过控制脉冲数来控制角位移量。步进电机广泛应用在生产实践的各个领域。它最大的应用是在数控机床的制造中,因为步进电机不需要A/D转换,能够直接将数字脉冲信号转化成为角位移,所以被认为是理想的数控机床的执行元件。

一、 Proteus简介

Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:

①实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。

②支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。

③提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。

④具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。

二、整体电路分析

如下图,整个设计以STC89C51单片机为中心,由复位电路,时钟电路,电机驱动,步进电机,显示电路等组成,硬件模块如图2-1所示:

通过按键进行相应的参数设定,单片机接收到信号后经过判断驱动电机驱动模块,然后由驱动电路驱动步进电机运转,并用1602显示设置的参数。

三、系统硬件电路选择与设计

1、主控器的选择

按照题目要求本次主控单元使用C51单片机对整个系统进行控制。STC89C51RC包含512字节RAM 、32条I/O口线、3个16位定时/计数器、8输入4优先级嵌套中断结构、1个串行I/O口(可用于多机通信、I/O扩展或全双工UART)以及片内振荡器和时钟电路。此外,由于器件采用了静态设计,可提供很宽的操作频率范围(频率可降至0)。可实现两个由软件选择的节电模式、空闲模式和掉电模式。空闲模式冻结CPU,但RAM、定时器、串口和中断系统仍然工作。掉电模式保存RAM的内容,但是冻结振荡器,导致所有其它的片内功能停止工作。由于设计是静态的,时钟可停止而不会丢失用户数据。运行可从时钟停止处恢复。所以该单片机可以满足系统要求,电路图如下:

2、步进电机选择

步进电机是一种能够将电脉冲信号转换成角位移或线位移的机电元件,它实际上是一种单相或多相同步电动机。单相步进电动机有单路电脉冲驱动,输出功率一般很小,其用途为微小功率驱动。多相步进电动机有多相方波脉冲驱动,用途很广。本设计使用的是四相三拍步进电机,连接图如下:

3、驱动电路的选择

驱动模块我们使用集成驱动芯片ULN2003,给芯片是高耐压、大电流达林顿管由七个硅NPN 达林顿管组成。该电路的特点如下:ULN2003 的每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003 工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V 的电压,输出还可以在高负载电流并行运行。1脚输入,16脚输出,你的负载接在VCC与16脚之间,不用9脚。

ULN2003是大电流驱动阵列,多用于单片机、智能仪表、PLC、数字量输出卡等控制电路中。可直接驱动继电器等负载。所以足以满足驱动步进电机的要求,连接图如下:

4、显示电路的

LCD显示模块是把LCD显示屏、背景光源、线路 板和驱动集成电路等部件构造成1个整体作为1个独 立部件使用,只留1个接口与外部通信。显示模块通 过这个接口接收显示的命令和数据,并按指令和数据 的要求进行显示,外部电路通过这个接口读出显示模 块的工作状态和显示数据。1602液晶模块内部的字 符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大 小写、常用的符号和日文假名等,每1个字符都有1个 固定的代码。用户对模块写入适当的控制命令,即可 完成清屏、显示、地址设置等操作 。设计采用并行方式控制,LCD与单片机的通讯接口电路如图3所示采用直连的方法。

5键盘输入模块电路

设计中,键盘采用非编码键盘系统中的独立式按 键结构。键盘工作方式采用定时扫描方式。采用定时 器TO定时,通过输出数据,识别按键的工作状态。键 盘主要用来提供人机接口,电路如图3所示,采用独立 式按键电路,各按键开关均采用了上拉电阻,保证在按 键断开时,各I/O有确定的高电平。按键功定义如 下:当P3.2按下时,步进电机开始加速;当P3.3按下 时,步进电机开始减速;当P3.4按下时,步进电机开始 正转;当P3.5按下时,步进电机开始反转。按键抖动的消除采用软件消抖实现。连接图如下:

四、系统软件设计

1、软件流程图

proteus中的步进电机有两种,

六线制(MOTOR-STEPPER)和四线制(MOTOR-BISTEPPER),六线制的左右中间两根线接电源,任然剩下四根,但的顺序和四线制的不同,见下图。 注意a,b,c,d的顺序

在实际情况中,单片机是不能直接拖动步进电机的,需用ULN2003这样的器件 两个步进电机都是四相电机。 如果用四拍:

那么P2输出的(顺时针)顺序就是:0x03,0x06,0x0c,0x09

a 1 0 0 1

b 1 1 0 0

c 0 1 1 0

d 0 0 1 1

如果用八拍:

那么P2输出的(顺时针)顺序就是:0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09

a 1 1 0 0 0 0 0 1

b 0 1 1 1 0 0 0 0

c 0 0 0 1 1 1 0 0

d 0 0 0 0 0 1 1 1

给一个测试八拍的仿真程序:

#include《reg52.h》

main(){

while(1){

unsigned int i,j,k;

for(k=0;k《255;k++){

for(i=0;i《75;i++)

for(j=0;j《255;j++);

P2=0x01;

for(i=0;i《75;i++)

for(j=0;j《255;j++);

P2=0x03;

for(i=0;i《75;i++)

for(j=0;j《255;j++);

P2=0x02;

for(i=0;i《75;i++)

for(j=0;j《255;j++);

P2=0x06;

for(i=0;i《75;i++)

for(j=0;j《255;j++);

P2=0x04;

for(i=0;i《75;i++)

for(j=0;j《255;j++);

P2=0x0c;

for(i=0;i《75;i++)

for(j=0;j《255;j++);

P2=0x08;

for(i=0;i《75;i++)

for(j=0;j《255;j++);

P2=0x09;

}

}

}

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • P

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分