步进马达控制电路设计(2)
表 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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [专业资料]《蜜蜂之家》教学反思
- [专业资料]过去分词作定语和表语1
- [专业资料]苏州工业园区住房公积金贷款申请表
- [专业资料]保安管理制度及处罚条例细则
- [专业资料]2018年中国工程咨询市场发展现状调研及
- [专业资料]2015年电大本科《学前教育科研方法》期
- [专业资料]数字信号处理实验 matlab版 离散傅里叶
- [专业资料]“十三五”重点项目-虎杖白藜芦醇及功
- [专业资料]2015-2020年中国竹木工艺市场需求及投
- [专业资料]国际贸易理论与实务作业五:理论案例分
- [专业资料]财政部修订发布事业单位会计制度
- [专业资料]BCA蛋白浓度测定试剂盒(增强型)
- [专业资料]工程进度总计划横道图模板(通用版)
- [专业资料]七年级地理同步练习(天气与气候)
- [专业资料]X光安检机介绍火灾自动报警系统的组成
- [专业资料]衢州市人民政府办公室关于印发衢州市区
- [专业资料]经济全球化及其影响[1]
- [专业资料]质粒DNA限制性酶切图谱分析
- [专业资料]国家安全人民防线工作“六项”制度
- [专业资料]劳动力投入计划及保证措施
- 电子账册联网监管培训手册
- 人教版语文七年级上第1课《在山的那边
- 对我区担保行业发展现状的思考与建议
- 平面四边形网格自动生成方法研究
- 2016年党课学习心得体会范文
- 如何设置电脑定时关机
- 全球最美人妖排行榜新鲜出炉
- 社会实践调查报告及问卷
- Visual Basic习题集
- 《鱼我所欲也》课件2
- 浙江省会计从业资格考试试卷
- 全遥控数字音量控制的D 类功率放大器资
- 鞍钢宪法与后福特主义
- 电表的改装与校准实验报告(1)
- 2014年高考理科数学真题解析分类汇编:
- Windows 7 AIK 的使用
- 风电场全场停电事故应急处置方案
- 化工原理选填题题库(下)
- 关于产学研合作教育模式的学习与思考
- 西安先锋公馆项目前期定位报告




