中国地质大学长城学院
本科课程设计题目:基于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具体实现方案
根据系统要求画出单片机控制步进电机的控制框图,见下图。
系统包括单片机、按键、驱动电路和步进电机。
键盘80c51单片机
步进电机
驱动电路
开始通电后,步进电机停止转动,单片机分别接有按钮开关正,反,停用来控制步进电机的正转、反转和停止。
当按下正后,电机正转;当按下反后,电机反转,当按下停,电机停转。
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程序流程图
本设计中采用了主程序调用各个子程序的方法。
包括对系统初始化和对硬件设备进行初始化,并使硬件处于准备开始的状态。
扫描是否有按键按下,有则跳转到相应的子程序执行,没有则循环等待。
子程序采用查表法获取数值,使得单片机发出相应的脉冲驱动步进电机转动。
具体程序流程图如下。
开始
步进电机停止
扫描是否按键
按下正转了吗?
按下反转了吗?
按下停止了吗?
N
N
反转模块
步进电机停止
正转模块
Y
Y
Y
读取表格
输出
结束
5.2源程序
ORG 0000
LJMP START
ORG 0100H
START:
LOOP: MOV P1,#00H ; 步进电机停止
ORL P1,#0E0H
MOV A,P1
JB ACC.5,STOP ; 停止
JB ACC.6,FOR ; 正转
JB ACC.7,rev ; 反转
JMP LOOP ;
FOR: MOV R0, #00H ; 正转到tab取码指针初值for1: MOV A,R0 ; 取码
MOV DPTR,#TABLE ;
MOVC A,@A+DPTR
JZ LOOP ; 是否到了结束码00h
CPL A ;把acc反向
MOV P1,A ;输出到p1开始正转
ACALL DELAY ;转动的速度
INC R0 ;取下一个码
JMP FOR1 ;继续正转
rev: MOV R0,#09H ;反转到tab取码指针初值rev1: MOV A,R0
MOV DPTR,#TABLE ;取码
MOVC A,@A+DPTR
JZ LOOP ;是否到了结束码00h
CPL A ;把acc反向
MOV P1,A ;输出到p1开始反转
ACALL DELAY ;转动的速度
INC R0 ;取下一个码
JMP REV1 ;继续反转
stop:
MOV P1, #00H
JMP LOOP
DELAY: MOV R1,#150 ;步进电机的转速20ms
D1: MOV R2,#248
DJNZ R2,$
DJNZ R1,D1
RET
TABLE:
db 01h,03h,04h,06h,04h,12h,08h,09h ;正转表
db 00 ;正转结束
db 01h,09h,08h,12h,04h,06h,04h,03h ;反转
db 00 ;反转结束
END
6 系统调试与仿真
中国地质大学长城学院2014课程设计
7 总结
主要以单片机为基础,用单片机来控制电机的转动,熟悉单片机的一般搭建电路,了解一般电子电路与单片机构成简单系统及简单编程的方法。
进一步加深对单片机常用指令的理解与运用。
能够较熟练的运用protues绘制电路原理图以及进行仿真。
在课设过程中,使我得到了一次用专业知识、专业技能分析和解决问题、全面系统的锻炼。
使我在单片机的基本原理、单片机应用系统开发过程,以及常用编程设计思路技巧的掌握方面有了很大的提高。
同时在老师的悉心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,单片机领域对我今后进一步学习计算机方面的知识有极大的帮助,使我们积累实际电子制作经验,达到学以致用的目的,真正的吧理论和实践结合起来,让我们进一步体验到实践的重要性。
对我们以后的工作有很大的帮,同时锻炼了我们团队合做精。
同时非常感谢老师的细心指导,当我们遇到困难时,能及时给予我们帮助。
参考文献:
[1]潘晓宁,朱耀东。
单片机程序设计实践教程
[2]刘海宽,包建华。
单片机实验与实训教程
[3]杨居义,马宁。
单片机原理与工程应用
[4]胡健,刘玉宾。
单片机原理及接口技术实践教程
[5]韩志军,刘新民。
单片机系统设计与应用实例
[6]朱博,马鸣鹤。
单片机应用技术教程
第8 页共8 页。