步进电机课程设计.docx
- 文档编号:23239923
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:32
- 大小:334.99KB
步进电机课程设计.docx
《步进电机课程设计.docx》由会员分享,可在线阅读,更多相关《步进电机课程设计.docx(32页珍藏版)》请在冰豆网上搜索。
步进电机课程设计
单片机综合设计实验
题目:
步进电动机综合控制
学 院计算机科学与信息工程学院
专业年级2013级自动化三班
实验组员
指导教师职称
日期2013--12-30
摘要..............................................................................
一概述..................................................................
1.1实验目的...................................................................
1.2实验内容与要求.....................................................
1.3步进电机的介绍................................................
1.4研究的思路.........................................................
二硬件设计..............................................
2.151单片机介绍...................................................
2.2LCD1602液晶显示介绍
2.3uln2003步进电机驱动介绍
三相关图像...................................................
3.1总电路图.................................................
3.2程序流程图..................................................
3.2.1控制框图
3.2.2流程图
四调试结果及分析..........................................
五设计总结及心得体会................................................
附录【1】系统程序...............................................
附录【2】参考文献........................................................
【摘要】
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件
本实验利用8051单片机达到控制步进电机的启动、停止、正转、反转、点动、转过指定角度、状态显示和数据指示的目的,使步进电机控制更加灵活。
整个系统有80C51单片机控制系统,由uln2003驱动电路驱动,键盘控制电路,LCD液晶显示电路。
用51单片机控制两相四线步进电动机,在非超载情况下,电机的转速,停止的位置只取决于脉冲信号的频率和个数,而不受负载的影响,给电机一个脉冲信号,电机则转过一个步距角,通过控制脉冲个数可以控制角位移量,从而达到控制位的作用,同时通过控制脉冲的相序来改变步进电机的转向,从而达到控制正反相的作用。
本次采用51单片机为核心器件来控制步进电机,系统的实用性较强。
关键字:
51单片机;步进电动机;脉冲;LCD1602
1.1实验目的:
1,单片机对步进电动机控制可以熟悉步进电机的控制与原理运用。
2,单片机对步进电动机控制可以熟悉步进电机结构及各种工作方式。
3,通过本次实验可以运用所学单片机理论知识,专业技能来对实际问题进行分析,思考,解决,提高对专业知识的掌握和锻炼逻辑思维能力。
1.2设计内容与要求:
1、任务介绍:
实现步进电机按规定的速度正转、反转,转过指定的角度,要有点动功能。
所有命令通过键盘输入,步进电机在运行过程中要有状态和数据指示。
2、每套设计文档应包括:
系统原理说明、程序框图、电路原理图和程序清单。
1.3步进电机的介绍
1.3.1相关的技术指标:
a、相数:
指电机内部的线圈组数,目前常用的有二相、三相、四相、五相步进电机,本实验用的是二相步进电机。
电机相数不同,其步距角也不同。
b、步距角:
表示控制系统每发一个步进脉冲信号,电机所转动的角度。
本实验程序运行前要先测量步进电机的步距角。
(本开发板上已测步进电机步距角为18度)
c、拍数:
完成一个磁场周期性变化所需脉冲数或导电状态,或指电机转过一个齿距角所需脉冲数。
也就是说本步进电机每转一周需要20个脉冲。
本实验用2相4拍运行方式双四拍工作方式:
*
*;正转:
A/BABAB/A/B/*
*反转:
A/B/AB/ABA/B
该实验板上步进电机内部结构图如图一
1.3.2工作原理:
步进电机是一种将电脉冲转化为角位移的执行机构。
当步进驱动器接收到一个脉冲
信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的,可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点,使得在速度、位置等控制领域用步进电机来控制变的非常的简单。
1.3.3步进电机的驱动:
步进电机的驱动可以选用专用的电机驱动模块,比如L298、FT5754等,这类驱动模块接口简单,操作方便,它们既可以驱动步进电机,同时也可以驱动直流电机。
但本实验使用ULN2003驱动电路驱动步进电机运转。
1.4研究的思路
1了解单片机本身内部应有的资源,如:
中断,定时器,计数器,I\O的使用。
2了解步进电机的工作原理和作用。
3根据步进电机的原理,分析并分配单片机内部资源,并根据单片机的资源,来实现硬件电路的设计以及软件程序的编写。
4遇到自己所学知识不懂或不熟悉的东西,查阅资料探究明白。
5在设计好单片机控制步进电动机时,要学会分析电路中出现的问题,并且好好总结。
二硬件设计
2.151单片机介绍
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案其引脚图如下所示。
1.主要特性:
·与MCS-51兼容
·4K字节可编程闪烁存储器
寿命:
1000写/擦循环
数据保留时间:
10年
·全静态工作:
0Hz-24Hz
·三级程序存储器锁定
·128*8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中断源
·可编程串行通道
·低功耗的闲置和掉电模式
·片内振荡器和时钟电路
2.2.管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
51单片机内部结构图
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
4.芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
5.MCS-51单片机是美国INTE公司于1980年推出的产品,典型产品有8031(内部没有程序存储器,实际使用方面已经被市场淘汰)、8051(芯片采用HMOS,功耗是630mW,是89C51的5倍,实际使用方面已经被市场淘汰)和8751等通用产品,一直到现在,MCS-51内核系列兼容的单片机仍是应用的主流产品(比如目前流行的89S51、已经停产的89C51等),各高校及专业学校的培训教材仍与MCS-51单片机作为代表进行理论基础学习。
有些文献甚至也将8051泛指MCS-51系列单片机,8051是早期的最典型的代表作,由于MCS-51单片机影响极深远,许多公司都推出了兼容系列单片机,就是说MCS-51内核实际上已经成为一个8位单片机的标准。
其他的公司的51单片机产品都是和MCS-51内核兼容的产品而以。
同样的一段程序,在各个单片机厂家的硬件上运行的结果都是一样的,如ATMEL的89C51(已经停产)、89S51,PHILIPS(菲利浦),和WINBOND(华邦)等,我们常说的已经停产的89C51指的是ATMEL公司的AT89C51单片机,同时是在原基础上增强了许多特性,如时钟,更优秀的是由Flash(程序存储器的内容至少可以改写1000次)存储器取带了原来的ROM(一次性写入),AT89C51的性能相对于8051已经算是非常优越的了。
2.2LCD1602液晶显示介绍
液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。
这里介绍的字符型液晶模块是一种用5x7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等,这里以常用的2行16个字的DM-162液晶模块来介绍它的编程方法
*
a.1602LCD主要技术参数:
显示容量:
16×2个字符
芯片工作电压:
4.5—5.5V
工作电流:
2.0mA(5.0V)
模块最佳工作电压:
5.0V字符尺寸:
2.95×4.35(W×H)mm
b.1602液晶模块引脚功能
1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如下表所示:
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
数据
3
VL
液晶显示偏压
11
D4
数据
4
RS
数据/命令选择
12
D5
数据
5
R/W
读/写选择
13
D6
数据
6
E
使能信号
14
D7
数据
7
D0
数据
15
BLA
背光源正极
8
D1
数据
16
BLK
背光源负极
1602液晶模块引脚说明:
第1脚:
VSS为地电源。
第2脚:
VDD接5V正电源。
第3脚:
VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15脚:
背光源正极。
第16脚:
背光源负极。
3. 1602LCD的指令说明及时序
1602液晶模块内部的控制器共有11条控制指令,如下表所示:
序号
指令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
1
清显示
0
0
0
0
0
0
0
0
0
1
2
光标返回
0
0
0
0
0
0
0
0
1
*
3
置输入模式
0
0
0
0
0
0
0
1
I/D
S
4
显示开/关控制
0
0
0
0
0
0
1
D
C
B
5
光标或字符移位
0
0
0
0
0
1
S/C
R/L
*
*
6
置功能
0
0
0
0
1
DL
N
F
*
*
7
置字符发生存贮器地址
0
0
0
1
字符发生存贮器地址
8
置数据存贮器地址
0
0
1
显示数据存贮器地址
9
读忙标志或地址
0
1
BF
计数器地址
10
写数到CGRAM或DDRAM)
1
0
要写的数据内容
11
从CGRAM或DDRAM读数
1
1
读出的数据内容
1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
(说明:
1为高电平、0为低电平)
指令1:
清显示,指令码01H,光标复位到地址00H位置。
指令2:
光标复位,光标返回到地址00H。
指令3:
光标和显示模式设置I/D:
光标移动方向,高电平右移,低电平左移S:
屏幕上所有文字是否左移或者右移。
高电平表示有效,低电平则无效。
指令4:
显示开关控制。
D:
控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:
控制光标的开与关,高电平表示有光标,低电平表示无光标B:
控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:
光标或显示移位S/C:
高电平时移动显示的文字,低电平时移动光标。
指令6:
功能设置命令DL:
高电平时为4位总线,低电平时为8位总线N:
低电平时为单行显示,高电平时双行显示F:
低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。
指令7:
字符发生器RAM地址设置。
指令8:
DDRAM地址设置。
指令9:
读忙信号和光标地址BF:
为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
(注意每次输入指令前都要判断液晶模块是否处于忙的状态)
指令10:
写数据。
指令11:
读数据。
2.3ULN2003步进电机驱动介绍
ULN是集成达林顿管IC,内部还集成了一个消线圈反电动势的二极管,可用来驱动继电器。
它是双列16脚封装,NPN晶体管矩阵,最大驱动电压=50V,电流=500mA,输入电压=5V,适用于TTLCOMS,由达林顿管组成驱动电路。
ULN是集成达林顿管IC,内部还集成了一个消线圈反电动势的二极管,它的输出端允许通过电流为200mA,饱和压降VCE约1V左右,耐压BVCEO约为36V。
用户输出口的外接负载可根据以上参数估算。
采用集电极开路输出,输出电流大,故可直接驱动继电器或固体继电器,也可直接驱动低压灯泡。
通常单片机驱动ULN2003时,上拉2K的电阻较为合适,同时,COM引脚应该悬空或接电源。
ULN2003是一个非门电路,包含7个单元,但独每个单元驱动电流最大可达350mA.资料的最后有引用电路,9脚可以悬空。
比如1脚输入,16脚输出,负载接在VCC与16脚之间,不用9脚。
2.3.1ULN2003的作用:
ULN2003是大电流驱动阵列,多用于单片机、智能仪表、PLC、数字量输出卡等控制电路中。
可直接驱动继电器等负载。
输入5VTTL电平,输出可达500mA/50V。
ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。
ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器。
ULN2003是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。
2.3.2ULN2003A功能及引脚图:
功能:
ULN2003是高耐压、大电流、内部由七个硅NPN达林顿管组成的驱动芯片。
经常在以下电路中使用,作为显示驱动、继电器驱动、照明灯驱动、电磁阀驱动、伺服电机、步进电机驱动等电路中。
ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。
ULN2003工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V的电压,输出还可以在高负载电流并行运行。
ULN2003的封装采用DIP—16或SOP—16。
ULN2003可以驱动7个继电器,具有高电压输出特性,并带有共阴极的续流二极管使器件可用于开关型感性负载。
每对达林顿管的额定集电极电流是500mA,达林顿对管还可并联使用以达到更高的输出电流能力。
显示电路主要包括大型LED数码管BSI20-1(共阳极,数字净高12cm)和高电压大电流驱动器ULN2003,大型LED数码管的每段是由多个LED发光二极管串并联而成的,因此导通电流大、导通压降高。
ULN2003是高压大电流达林顿晶体管阵列电路,他具有7个独立的反相驱动器,每个驱动器的输出灌电流可达500mA,导通时输出电压约1V,截止时输出电压可达50V。
ULN2003的1~7脚为信号输入脚,依次对应的输出端为16~10脚,8脚为接地端。
当驱动电源电压为+12V时,若要求数码管每段导通电流为40mA,则每段的限流电阻为50Ω。
则一块ULN2003恰好驱动一个LED数码管的7段。
大数码管采用共阳极接法,低电平有效。
锁存器输出的电平经NPN三极管9014反相后,再由ULN2003放大后推动大数码管显示
三相关图像
3.1总电路图
上图是protues的电路图,由于我们开发板上没有74HD09和74HC21与门,于是我们在实际开发板上采用软件实现中断信号的产生及K1,K2,K3,K4,K5相与后赋值给P1.6输出口再于外部中断口INTO的P3.2相连实现外部中断。
3.2.1控制框图
3.2.2流程图
NO
yes
NO
YES
NO
YES
四调试结果及分析
1,打开文件,进行编译,确认无误后,点击工具栏中的运行工具。
2,准备调试
3,调入文件到硬件中,开始调试硬件电路,点击运行,电路正常连接。
4,从键盘输入,按正转电机正转运行。
5,从键盘输入,按反转电机反转运行。
6,从键盘输入,按点动,电机点一下转过一个步距角。
7,从键盘输入,按角度转变,电机转过设定角度。
调试完毕,通过键盘可以控制电机的按照预先设置的转速,转向,点动,转过一定角度等功能的运行。
所得的结果与理论设计的运行结果相同。
调试成功。
设计总结及心得体会
刚接触到设计的时候确实很难着手,不知道该重什么地方下手。
主要是理论的学习是空洞的,而且并不是那么熟练。
本次设计我们采用的是51单片机对两相四线步进电机进行控制,通过改变相序可以改变电机的转向,通过键盘的按键可以控制电机的正转,反转,点动等动能。
所运行的角度,速度通过LCD1602给以显示。
通过调试和运行得到了正确的预期结果。
刚开始就像大海捞针一样,通过上网查阅资料,图书馆借阅文献查询。
慢慢开始对我们的设计有了了解,逐步开始了进行,确实发现了很多问题,如怎样设置中断,慢慢的感觉懂了一些,问题也一步一步的解决。
花了不少时间,有的时候困难来了,我们确实想放弃不管了,最后还是坚持了下来。
实在不懂的请教了同学老师,相互探讨下最终解决了一些列问题。
这过程让我们很有成就感,感悟到了学
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 步进 电机 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)