基于单片机的步进电机控制设计Word格式.docx
《基于单片机的步进电机控制设计Word格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的步进电机控制设计Word格式.docx(43页珍藏版)》请在冰豆网上搜索。
Keywords:
MCU;
steppermotor;
12864LCD;
InstructionSet.
第1章绪论
1。
1课题的来源
步进电机作为执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化控制系统中。
随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。
步进电机广泛应用在生产实践的各个领域.它最大的应用是在数控机床的制造中,因为步进电机不需要A/D转换,能够直接将数字脉冲信号转化成为角位移,所以被认为是理想的数控机床的执行元件。
早期的步进电机输出转矩比较小,无法满足需要,在使用中和液压扭矩放大器一同组成液压脉冲马达.随着步进电动机技术的发展,步进电动机已经能够单独在系统上进行使用,成为了不可替代的执行元件。
比如步进电动机用作数控铣床进给伺服机构的驱动电动机,在这个应用中,步进电动机可以同时完成两个工作,其一是传递转矩,其二是传递信息。
步进电机也可以作为数控蜗杆砂轮磨边机同步系统的驱动电动机。
除了在数控机床上的应用,步进电机也可以并用在其他的机械上,比如作为自动送料机中的马达,作为通用的软盘驱动器的马达,也可以应用在打印机和绘图仪中。
步进电动机以其显著的特点,在数字化制造时代发挥着重大的用途.伴随着不同的数字化技术的发展以及步进电机本身技术的提高,步进电机将会在更多的领域得到应用。
2课题研究的意义
对基于单片机控制的步进电机的转速控制进行设计:
一方面是对所学知识的综合运用,可以更好地学习单片机的应用技术,另一方面步进电机可以发挥其结构简单、可靠性高和成本低的特点。
使用恰当的时候,甚至可以和直流伺服电动机性能相媲美。
3课题国内研究现状
上个世纪就出现了步进电动机,它是一种可以自由回转的电磁铁,动作原理和今天的反应式步进电动机没有什么区别,也是依靠气隙磁导的变化来产生电磁转矩。
在本世纪初,由于资本主义列强争夺殖民地,造船工业发展很快,同时也使得步进电动机的技术得到了长足的进步。
到了80年代后,由于廉价的微型计算机以多功能的姿态出现,步进电动机的控制方式更加灵活多样。
原来的步进电机控制系统采用分立元件或者集成电路组成的控制回路,不仅调试安装复杂,要消耗大量元器件,而且一旦定型之后,要改变控制方案就一定要重新设计电路。
计算机则通过软件来控制步进电机,更好地挖掘出电动机的潜力。
因此,用计算机控制步进电机已经成为了一种必然的趋势,也符合数字化的时代趋势.步进电机和普通电动机不同之处是步进电机接受脉冲信号的控制。
步进电机靠一种叫环形分配器的电子开关器件,通过功率放大器使励磁绕组按照顺序轮流接通直流电源。
由于励磁绕组在空间中按一定的规律排列,轮流和直流电源接通后,就会在空间形成一种阶跃变化的旋转磁场,使转子步进式的转动,随着脉冲频率的增高,转速就会增大.步进电机的旋转同时与相数、分配数、转子齿轮数有关.
现在比较常用的步进电机包括反应式步进电机、永磁式步进电机、混合式步进电机和单相式步进电机等。
其中反应式步进电机的转子磁路由软磁材料制成,定子上有多相励磁绕组,利用磁导的变化产生转矩。
现阶段,反应式步进电机获得最多的应用。
4课题研究的目的和主要内容
本文针对步进电机控制的设计,首先介绍了选题的要求,之后详细叙述了软件和硬件的设计过程.
在时钟脉冲的作用下,各个按键都能按照事先设定好的规则进行控制。
确定键能使界面从初始化显示切换到步进电机显示界面,0—9十个数字键用来设置转速,正转和反转控制电机的正反转向,加速和减速键用来控制转速,以十转为基本单位进行递加或递减,设置键可以设置转向、精确的转速、转动时间,当设置完成是可以用启动键启动。
硬件部分是由中央处理器(AT89C51单片机),控制部分(独立式按键系统),显示部分(12864LCD液晶显示模块)组成的,驱动部分(L298芯片);
软件部分的主要内容是通过对步进电机的控制、驱动程序进行编写和调试以实现步进电机的功能。
通过硬件和软件调试,并针对问题分析修改后,步进电机系统可以稳定运行。
步进电机系统中各个部分之间通过数据的传送最终完成了整个步进电机的运行、显示和进行按键的功能.
最后论文对设计进行了总结,对设计中可以进一步改善的地方提出了建议。
第2章步进电机方案设计与分析
2.1方案提出
方案一:
采用基本电路以及相关芯片对步进电机进行控制。
本设计选用PMM8713四相步进电机的脉冲分配器、SI—7300A四相功率驱动器,组成四相步进电机的驱动电路,步进电机的控制框图如图2。
2所示[5][4]:
图2.1方案一框图
方案二:
用单片机作为步进电机的核心控制器件,键盘调节转速、时间等,液晶显示当前状态。
系统框图如图2.2所示[1][2]:
图2。
2方案二框图
相较之下用单片机控制的步进电机要比采用基本电路控制的步进电机要简单很多,在价格上单片机可能稍微高上少许,但用单片机后可以省下许多控制器件,这样看来反而便宜一些了。
另外,在大学中我们已经系统的学习了单片机,对单片机的应用编程比较熟悉。
考虑到以上因素,采用了第二套方案.以下将会对所选方案的可行性和主要芯片的选择做系统的介绍。
2。
2可行性分析
现如今,步进电机广泛应用在生产实践的各个领域,随着步进电动机技术的发展,步进电动机已经能够单独在系统上进行使用,成为了不可替代的执行元件.步进电机结构简单,但是这种简单也是相对的,步进电机本身的代码还是相当繁杂,它要执行一系列指令才能正确的完成一个简单的操作,才能按照设计者的意志工作。
那么步进电机能否用单片机实现呢?
答案是肯定的,现从以下几个方面加以说明.
首先,我们设计的这个电机是一个功能相对比较简单步进电机,不像其他的电机那样功能复杂,它只要控制电机的转速、转动时间及正反转即可,对于实现这样一个功能,程序不是太复杂,用一块单片机足以达到目的。
其次,它的控件也比较少只有10个数字键和6个控制功能键,这些控键在Proteus中用弹跳式按键代替即可。
第三,电机的显示相对比较小、画面简单,只有转向、转速、旋转时间等几个汉字,这些在一块稍大的液晶屏上就足以显示。
第四,就编程语言方面来说,编写这样一个简单的步进电机不需要什么高级的语言,C语言或汇编语言就足以完成,C语言是一种通用型的语言,编程灵活、可读性强、移植性好;
汇编语言是一种直接面向硬件的基础语言,最接近机器语言,执行速度快(本设计采用C语言编写)。
由以上几点可知:
用单片机设计步进电机在硬件和软件两个方面都是可行的。
2.3主要器件选择
2.3。
1单片机的选择
单片机的种类有很多:
通用型单片机按位数分有4位机,8位机,16位机和32位机等等.按厂家分种类就更多,我国目前最常用的单片机有如下几家:
Intel公司的(MCS51系列,MCS96系列);
Atmel公司的(AT89系列,MCS51内核);
Microchip公司的(PIC系列);
Motorola公司的(68HCXX系列);
Zilog公司的(Z86系列);
Philips公司的(87,80系列,MCS51内核);
Siemens公司的(SAB80系列,MCS51内核);
NEC公司的(78系列),每种单片机的都有不同,包括:
I/O口个数、定时/计数器个数、数据/程序存取区大小、中断源个数、有无看门狗中断、有无A/D转化等等[1][2][9]。
基于本电机的设计只用到了不到20个I/O口;
1个定时器断。
所以选择了Atmel公司的AT89C51单片机。
其参数如下:
1、基于8051的全静态CMOS工艺控制器;
2、3级流水线指令执行架构;
3、32个I/O口;
4、2个定时/计数器;
5、6个中断源;
6、4K的闪存程序存储器;
7、128字节的片内数据存取器。
由以上参数可知AT89C51单片机完全满足设计要求,且在成本上较其他类型的单片机有优势.
3.2液晶屏的选择
液晶屏的种类也有很多,我们经常用到的液晶屏包括:
AMPIRE128*64;
LGM12641BS1R;
LM016L;
LM020L;
LM017L等等。
前两种为不带字库的汉字、图形点阵液晶屏,共64行,128列,能显示4行8列32个16*16点阵汉字或4行16列64个16*8点阵字符或者最大128*64点阵图形。
也有带字库的12864,功能一样。
后几种则是带字库的字符点阵,不能显示图形。
LM016L为能显示2行16列32个字符的液晶屏;
LM020L为能显示1行16列16个字符的液晶屏;
LM017L为能显示2行32列16个字符的液晶屏.
由以上介绍可知,AMPIRE128*64液晶显示模块表示横向有128点,纵向有64点,可显示16*16中文字4行,每行8个字,很明显,这块液晶屏满足步进电机设计的显示要求,大小也合适。
如转速显示、时间显示等,完全满足设计要求.这块液晶和以上的很不一样,它基于T6963C内核,引脚更多,功能更复杂,指令集也更多(这些相关内容将在下一章具体介绍)[1][2][3]。
第3章系统硬件设计
本部分内容包括介绍AMPIRE128*64及其引脚功能;
介绍T6963C指令集;
晶振电路、复位电路的硬件设计;
控件及按键电路设计,最后给出步进电机仿真的整体硬件电路图,接下来是具体的说明[1][5][6]。
3。
1AMPIRE128*64液晶屏介绍
AMPIRE128*64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;
其显示分辨率为128×
64,内置8192个16*16点汉字,和128个16*8点ASCII字符集。
利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×
4行16×
16点阵的汉字。
也可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块,其在Proteus中的元器件图形如下[6]:
图3。
1AMPIRE128*64
各引脚的功能描叙如下表
表3。
1AMPIRE128*64引脚功能表
引脚
序列
引脚名称
引脚功能描述
1
CS1
片选择,1有效
2
CS2
3
GND
地引脚,接地
4
VCC
功能不详,在电路连接时悬空
5
V0
对比度调节,输入电压—0~-10V
6
RS
RS=1时DATA为显示数据;
RS=0时DATA为指令数据
7
R\W
RW=1为读LCD内部数据;
RW=0是写数据到LCD
8
E
RW=0、E↓时LCD对RS和数据DATA进行取样和执行;
RW=1、RS=0、E↑时LCD输出数据到DATA
9~16
D0~D7
数据引脚,用于液晶屏与单片机之间的数据通信
17
RST
复位引脚,低电平有效,起复位作用,器件内部集成了上拉电阻,正常工作时此引脚接电源
18
-Vout
负压输出(-10V)
2HD61202及其指令集介绍
2.1HD61202
HD61202及其兼容液晶显示控制驱动器,是一种带有驱动输出的图形液晶显示控制器。
它可直接与8位微处理器相联,可与HD61203配合,对液晶屏进行行列驱动。
内藏64×
64=4096位显示RAM,RAM中每位数据对应LCD屏上一个点的亮、暗状态;
HD61202及其兼容控制驱动器是列驱动器,具有64路列驱动输出;
读、写操作时序与68系列微处理器相符,因此它可直接与68系列微处理器接口相联;
占空比为1/32—-1/64。
该器件支持非常广泛的字符格式,液晶显示器允许通过编程设置选择不同的组合。
它可以用于文字,图形和结合文本模式及其他各种属性的功能。
2HD61202指令集
HD61202及其兼容控制驱动器的指令系统比较简单总共只有七种现在分别介绍如下;
(1)显示开/关指令
R/WD/1
DB7DB6DB5DB4DB3DB2DB1DB0
00
00111111/0
当DB0=1时,LCD显示RAM中的内容;
当DB0=0时,显示关闭.
(2)显示起始行(ROW)设置指令
11显示起始行(0—63)
该指令设置了对应液晶显示屏最上一行的显示RAM的行号,有规律的改变显示起始行,可以使LCD实现显示滚动效果。
(3)页(Page)设置指令
10111页号(0—7)
显示RAM共64行,分8页,每页8行。
(4)列地址(YAddress)设置指令
R/D/1
11显示列地址(0—63)
设置了页地址和列地址,就唯一确定了RAM中的一个单元,这样MPU就可以读、写指令,读出该单元中的内容或向该单元写进一个字节数据。
(5)读状态指令
BUSY0ON/OFFREST0000
该指令用来查询HD61202及其控制驱动器的状态,各参量含义如下;
BUSY:
内部在工作0,正常状态1;
ON/OFF:
显示关闭0,显示打开1;
REST:
复位状态0,正常状态1.
在BUSY和REST状态是,除读状态指令外,其他指令均不对HD61202及其兼容控制驱动器产生作用.
在对HD61202及其兼容控制驱动器操作之前,要查询BUSY状态,以确定是否队HD61202及其兼容控制驱动器进行操作。
(6)写数据指令
01
写数据
(7)读数据指令
10
读显示数据
读、写指令每执行一次读、写操作,列地址就自动增1。
必须注意的是,进行读操作之前,必须有一次空读操作,紧接着再读才会读出所要读的单元中的数据。
3晶振、复位、驱动电路
1晶振电路
单片机的晶振电路如图3。
2所示,其中XTAL1和XTAL2分别为片内振荡电路的输入输出端。
一般电容取20~47uF,本系统晶体的振荡频率为12MHz。
晶振电路产生的振荡脉冲经过内部触发器进行二分频后,成为单片机的时钟脉冲信号,为单片机提供一个基本时钟信号。
图3。
2晶振电路
3.3。
2复位电路
复位操作是单片机的基本操作,单片机在进入运行前和在运行过程中程序出错或操作失误使系统不能正常运行时,需要进行复位操作,复位操作后,程序将从0000H开始重新执行。
复位信号从单片机的RST引脚输入,复位操作有上电自动复位、按键电平复位和外部脉冲复位三种方式,本电路采用了按键电平复位,电路图如图3。
3所示:
图3.3复位电路
3电机驱动电路
步进电动机是一种将电脉冲信号转换成角位移或线位移的精密执行元件,由于步进电机具有控制方便、体积小等特点,所以在数控系统、自动生产线、自动化仪表、绘图机和计算机外围设备中得到广泛应用。
微电子学的迅速发展和微型计算机的普及与应用,为步进电动机的应用开辟了广阔前景,使得以往用硬件电路构成的庞大复杂的控制器得以用软件实现,既降低了硬件成本又提高了控制的灵活性,可靠性及多功能性。
市场上有很多现成的步进电机控制机构,但价格都偏高。
应用SGS公司推出的L298芯片可方便的组成步进电机驱动器,并结合AT89C51单片机进行控制,即可以实现用相对便宜的价格组成一个性能不错的步进电机驱动电路.
4电机驱动电路
4液晶显示屏与单片机接口电路
液晶显示屏共有18个引脚,其中VCC、RST接电源,GND三脚接地,CS1、CS2两脚分别接P2。
4、P2。
3,DB0~DB7分别与单片机P0。
0~P0.7相连接,R\W与P2。
1脚相连,RS与P2。
0脚相连,E与P2。
2脚相连,V0滑动变阻器,电如图见图3。
5所示:
5LCD与单片机接口
5控键与单片机接口电路
本设计共有16个控件,分别是:
0-9十个数字键用来设置转速,正转和反转键控制电机的正反转向,加速和减速键用来控制转速,以十转为基本单位进行递加或递减,设置键可以设置转向、精确的转速、转动时间,当设置完成是可以用启动键启动。
K1~K8分别与P1.0~P1.7相接,键盘如图3。
6所示:
图3。
6键盘接口
第4章系统软件设计
本部分主要介绍步进电机控制的软件部分设计,包括电机流程图、液晶屏驱动代码设计、初始化代码设计、电机时间代码设计、数据表格设计等几个方面,现就对这几个方面做具体分析。
4.1电机流程图
4。
1液晶驱动程序调用规则流程图
本设计用到了液晶AMPIRE128*64,势必用到驱动代码,包括读状态函数;
写指令函数;
读数据函数;
写数据函数;
自动读写函数;
显示汉字、字符函数等等,现以流程图的形式给出其互相调用规则(A函数指向B函数,表示B调用了A)。
图4。
1液晶驱动调用
2主函数流程图
在主函数的运行过程中,程序会随着启动键的按下进入主循环而不断地扫描键盘,判断是否有键按下,再调用相关函数做相应的处理,同时一个定时器中断有条件开启,在中断到来时响应中断,执行相关的中断操作,流程图如下:
图4.2主函数调用
2液晶屏驱动代码设计
4.2。
1判断忙指令
voidBusy()
{
DI=0;
RW=1;
do
{
DB=0xff;
E=1;
DB&
=0x80;
E=0;
}
while(DB!
=0);
}
2写指令程序
voidWrite_com(unsignedcharcom)
Busy();
RW=0;
E=1;
DB=com;
E=0;
4.2.3写数据程序
voidWrite_dat(unsignedchardat)
{
Busy();
DI=1;
DB=dat;