单片机基于80C51单片机的步进电机控制系统.docx
《单片机基于80C51单片机的步进电机控制系统.docx》由会员分享,可在线阅读,更多相关《单片机基于80C51单片机的步进电机控制系统.docx(12页珍藏版)》请在冰豆网上搜索。
单片机基于80C51单片机的步进电机控制系统
中国地质大学长城学院
本科课程设计
题目:
基于80C51单片机的步进电机控制系统
系别
信息工程系
学生姓名
专业
电气工程及其自动化
学号
指导教师
职称
讲师
2014年6月11日
摘要
本文研究基于51系列单片机的步进电机控制系统设计,该系统包括以下几个部分:
数据采集、数据处理、终端接收,该系统以汇编语言为单片机的驱动程序语言,单片机控制步进电机,主要任务是把二进制数变成脉冲序列,按相序输入脉冲以实现电机转动方向控制,利用单片机实现对步进电机的远距离实时监控,从而达到高效、节能的控制步进电机工作的目的,该系统具有成本低、控制方便的特点。
使用单片机驱动四相步进电机,控制步进电机以四相八拍的方式运行,来实现步进电机正向/反向旋转,P1.0~P1.3分别控制步进电机;P1.5~P1.7分别控制步进电机的停止、正转、反转。
关键词:
51单片机;步进电机;数据采集;汇编语言;
摘要0
1设计目的1
2设计内容与要求1
3总体设计方案1
3.1整体方案1
3.2具体方案实现1
4系统硬件设计2
4.1复位电路2
4.2晶振电路2
4.3按键电路3
4.4指示灯电路3
4.5驱动电路4
4.6步进电机4
5程序软件设计5
5.1程序流程图5
5.2源程序6
6系统调试与仿真7
7总结8
1设计目的
1.掌握单片机控制步进电机的硬件接口电路。
2.掌握步进电机驱动程序的设计和调试方法。
3.熟悉步进电动机的工作特性。
2设计内容与要求
1.查阅资料,了解步进电机的工作原理。
2.通过单片机给定参数控制电机转动。
3.通过按钮控制正转、反转和停止。
3总体设计方案
3.1整体方案
本系统主要是由AT89C51,步进电机控制器ULN2004,步进电机,通过单片机编程,实现步进电机控制的脉冲分配,使电机实现正转,反转以及停止等功能
3.2具体实现方案
根据系统要求画出单片机控制步进电机的控制框图,见下图。
系统包括单片机、按键、驱动电路和步进电机。
开始通电后,步进电机停止转动,单片机分别接有按钮开关正,反,停用来控制步进电机的正转、反转和停止。
当按下正后,电机正转;当按下反后,电机反转,当按下停,电机停转。
4系统硬件设计
本系统主要由单片机主控模块、复位电路模块、晶振电路模块、独立键盘电路模块、指示灯电路模块、驱动电路模块、步进电机模块等组成,下面将对各模块作简要介绍。
4.1复位电路
为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。
AT89C52的复位端是一个施密特触发输入,高电平有效[3]。
RST端如果由低电平上升到高电平并持续2个机器周期,系统将实现一次复位操作。
此复位电路中,上电或按一下复位开关都能在RST端出现一段时间的高电平,使系统复位。
如图1示。
图表1
4.2晶振电路
每个单片机系统里都有晶振,全称是叫晶体振荡器,在单片机系统里晶振的作用非常大,他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快。
晶振的作用是为系统提供基本的时钟信号。
通常一个系统共用一个晶振,便于各部分保持同步[6]。
有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。
本次设计的晶振其输入端为芯片引脚XTAL1,其输出端为芯片引脚XTAL2。
通过这两个引脚在芯片外并接12MHz晶振和两只30F的电容,这样就构成一个稳定的自激振荡器。
如图2示。
图表2
4.3按键电路
本设计的键盘电路由3独立按键组成,如图3示。
图表3
功能如下:
正:
正转键。
按下时步进电机正转。
反:
反转键。
按下时步进电机反转。
停:
停止键。
运行状态按下此键即停止运转。
4.4指示灯电路
指示灯电路包括D1、D2、D3、D4四个LED灯组成,分别串联一个分别串联一个电阻,提供稳定的电压与电流。
图表4
4.5驱动电路模块
驱动电路模块包括四个非门和unl2003,通过脉冲让步进电机转动。
图表5
4.6步进电机
有三线式、五线式、六线式三种,但其控制方式均相同,必须以脉冲电流来驱动。
若每旋转一圈以20个励磁信号来计算,则每个励磁信号前进18度,其旋转角度与脉冲数成正比,正、反转可由脉冲顺序来控制。
励磁方式可分为全部励磁及半步励磁,其中全步励磁又有1相励磁及2相励磁之分,而半步励磁又称1-2相励磁。
图为步进电动机的控制等效电路,适应控制A、B、/A、/B的励磁信号,即可控制步进电动机的转动。
每输出一个脉冲信号,步进电动机只走一步。
因此,依序不断送出脉冲信号,即可步进电动机连续转动。
励磁顺序:
A→AB→B→BC→C→CD→D→DA→A。
图表6
5程序软件设计
5.1程序流程图
本设计中采用了主程序调用各个子程序的方法。
包括对系统初始化和对硬件设备进行初始化,并使硬件处于准备开始的状态。
扫描是否有按键按下,有则跳转到相应的子程序执行,没有则循环等待。
子程序采用查表法获取数值,使得单片机发出相应的脉冲驱动步进电机转动。
具体程序流程图如下。
5.2源程序
ORG0000
LJMPSTART
ORG0100H
START:
LOOP:
MOVP1,#00H;步进电机停止
ORLP1,#0E0H
MOVA,P1
JBACC.5,STOP;停止
JBACC.6,FOR;正转
JBACC.7,rev;反转
JMPLOOP;
FOR:
MOVR0,#00H;正转到tab取码指针初值
for1:
MOVA,R0;取码
MOVDPTR,#TABLE;
MOVCA,@A+DPTR
JZLOOP;是否到了结束码00h
CPLA;把acc反向
MOVP1,A;输出到p1开始正转
ACALLDELAY;转动的速度
INCR0;取下一个码
JMPFOR1;继续正转
rev:
MOVR0,#09H;反转到tab取码指针初值
rev1:
MOVA,R0
MOVDPTR,#TABLE;取码
MOVCA,@A+DPTR
JZLOOP;是否到了结束码00h
CPLA;把acc反向
MOVP1,A;输出到p1开始反转
ACALLDELAY;转动的速度
INCR0;取下一个码
JMPREV1;继续反转
stop:
MOVP1,#00H
JMPLOOP
DELAY:
MOVR1,#150;步进电机的转速20ms
D1:
MOVR2,#248
DJNZR2,$
DJNZR1,D1
RET
TABLE:
db01h,03h,04h,06h,04h,12h,08h,09h;正转表
db00;正转结束
db01h,09h,08h,12h,04h,06h,04h,03h;反转
db00;反转结束
END
6系统调试与仿真
7总结
主要以单片机为基础,用单片机来控制电机的转动,熟悉单片机的一般搭建电路,了解一般电子电路与单片机构成简单系统及简单编程的方法。
进一步加深对单片机常用指令的理解与运用。
能够较熟练的运用protues绘制电路原理图以及进行仿真。
在课设过程中,使我得到了一次用专业知识、专业技能分析和解决问题、全面系统的锻炼。
使我在单片机的基本原理、单片机应用系统开发过程,以及常用编程设计思路技巧的掌握方面有了很大的提高。
同时在老师的悉心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,单片机领域对我今后进一步学习计算机方面的知识有极大的帮助,使我们积累实际电子制作经验,达到学以致用的目的,真正的吧理论和实践结合起来,让我们进一步体验到实践的重要性。
对我们以后的工作有很大的帮,同时锻炼了我们团队合做精。
同时非常感谢老师的细心指导,当我们遇到困难时,能及时给予我们帮助。
参考文献:
[1]潘晓宁,朱耀东。
单片机程序设计实践教程
[2]刘海宽,包建华。
单片机实验与实训教程
[3]杨居义,马宁。
单片机原理与工程应用
[4]胡健,刘玉宾。
单片机原理及接口技术实践教程
[5]韩志军,刘新民。
单片机系统设计与应用实例
[6]朱博,马鸣鹤。
单片机应用技术教程