教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 专业资料 >

步进马达控制电路设计(2)

来源:网络收集 时间:2026-04-10
导读: 表 1 步进电机正向转动转序图 步进电机需要的电流大且易受噪声干扰,但单片机输出电流相对于步进电机较小,且有噪声干扰,为此本系统中添加了ULN2003驱动步进电机工作。ULN2003有七路达林顿管,可以起到放大和消噪

表 1 步进电机正向转动转序图

步进电机需要的电流大且易受噪声干扰,但单片机输出电流相对于步进电机较小,且有噪声干扰,为此本系统中添加了ULN2003驱动步进电机工作。ULN2003有七路达林顿管,可以起到放大和消噪的作用。其COMMON端与步进电机的COMMON端相连并接到高电平。ULN2003的管脚图见附录A。

5.4 按键设计

本系统中用按键来控制电机的起停、正反转和速度级别。按键与单片机有查询和中断两种连接方式,本系统中起停和正反转按键采用中断方式控制,速度级别按键采用查询方式控制。我们的起停和正反转按键分别接到与门的两端和该单片机的P3^4 和P3^5 两个I/O 口,经与运算后进入单片机的INT1 引脚。速度按键直接接到该单片机的P2^7 口,用查询方式控制。

基于ATMEL89C52单片机的步进马达控制电路设计

5.5 数码管显示设计

本系统中采用的是一个7 段共阳级数码管,即数码管中LED 每一位的正级都共高电平,这样要点亮该数码管中的某一位则只需要给相应位的LED 的负级一个低电平即可。由于LED 二级管的门限电压最大只有0.7V,而单片机是5V供电,电流有15mA 左右,如果按照上述方式使用则回路中几乎没有负载,会对单片机即数码管本身造成一定的伤害。因此在本系统设计中我们在数码管接入电源中串一个1K 左右的电阻,给电路限流来保护器件。

6、软件主要模块流程图与说明

6.1 系统软件流程图

本程序先进行程序初始化。初始化先对外部中断的触发方式进行设置,然后使能中断,最后对相关标志位进行初始化。初始化完成后程序进入死循环。在死循环中首先判断控制步进电机的按键是否被按下,没有被按下时清除相关电机控制标志位及关闭所有LED 指示灯和数码管显示的状态,当该按键被按下时启动电

机,然后查询速度按键状态,如果有键按下则相应速度标志位,若没有键按下则继续往下执行判断转动正反向标志位,最后判断速度级别并执行相应不同方向和速度级别状态下的相关控制程序。然后进入下一次的循环操作。依次类推。

软件主要流程如图7所示。

基于ATMEL89C52单片机的步进马达控制电路设计

图7系统软件流程图

6.2 速度按键控制流程图

单片机的外部中断一初始化在边沿触发方式,当起停和正反转按键中任何一个键按下时,单片机进入INT1 的中断服务子程序,在中断复位子程序中先延时一小段时间用于按键消抖,然后查询P3^4 和P3^5 两个I/O 口的状态,来判断是哪个按键按下,然后改变相应的标志位。单片机主控制程序中一直查询速度按键管脚的状态,当查询到速度按键被按下时,先延时一小段时间用于按键消抖,然后再次查询该管脚的状态以确定该按键确实被按下,如果确实被按下则改变相应标志位的值,最后加上按键等待的相关控制,当按键没有被释放时一直等待。

速度按键控制流程如图8 所示。

基于ATMEL89C52单片机的步进马达控制电路设计

图8 速度按键控制流程图

7、课程设计总结

本次课程设计我们采用AT89C51 单片机做了一个步进电机的控制系统。通过这两周的努力我们学到了很多。首先基本熟悉了MCS51 系列单片机的输入输出、外部中断、串行口中断等单片机的内部资源功能,熟悉并掌握了7 段数码管的显示设计,和25BY0501 类型步进电机的工作原理等。在设计过程中,我们不但拥有自己的创新思维,最关键的是在新思维变成实际应用的过程中我们学会了一种自我学习并解决问题的方法和思路,这应该是我们这次课程设计最大的收获。

8、实验心得体会

经过这次课程设计,我把课堂上学到的软件和硬件知识全部应用进来。很好地把课上学到的知识应用到了实践中去。在这次课程设计中学到了步进电机的工作原理,与外部电路的连接,单片机原理,汇编语言等。 这其中有以前课堂上学过的也有需要我们自学研究的,这不仅考察了自己原来的知识程度还加强了我们独立获取知识并加以运用的能力。 通过这次实验,也让我对电机的了解扩宽了,对单片机和外围电路的认识也更为清晰了,这为我以后工作提供了坚实的基础。在这次课程设计中,我通过上网查资料、图书馆借书等多种渠道根据单片机知识和测控系统的知识把这次课程设计制作完成。感谢老师能给我们这个这个锻炼的机会,不仅为我们打好了专业知识的扎实基础,也为我今后的工作提前做了准备。所以,今后要好好珍惜这种机会,锻炼才能有成长。

基于ATMEL89C52单片机的步进马达控制电路设计

附录:

ULN2003 的管脚图如下

程序部分源代码

#include <reg52.h>

基于ATMEL89C52单片机的步进马达控制电路设计

#include <intrins.h>

#define uchar unsigned char

#define uint unsigned int

#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};

Uchar code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};//30度 uchar code REV[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};//30度

sbit K1 = P1^4; //运行与停止

sbit K2 = P1^5; //设定圈数

sbit K3 = P1^6; //方向转换

sbit K4 = P1^7; //速率调整

sbit BEEP = P3^7; //蜂鸣器

sbit LCD_RS = P2^0;

sbit LCD_RW = P2^1;

sbit LCD_EN = P2^2;

bit on_off=0; //运行与停止标志

bit direction=1; //方向标志

bit rate_dr=1; //速率标志

bit snum_dr=1; //圈数标志

基于ATMEL89C52单片机的步进马达控制电路设计

uchar code cdis1[ ] = {" STEPPING MOTOR "}; uchar code cdis2[ ] = {"CONTROL PROCESS"}; uchar code cdis3[ ] = {" STOP "}; uchar code cdis4[ ] = {"NUM: RATE: "};

uchar code cdis5[ ] = {" RUNNING "}; uchar m,v=0,q=0;

uchar number=0,number1=0;

uchar snum=5,snum1=5; //预设定圈数 uchar rate=8; //预设定速率 uchar data_temp,data_temp1,data_temp2;

…… 此处隐藏:1058字,全部文档内容请下载后查看。喜欢就下载吧 ……
步进马达控制电路设计(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/269409.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)