基于单片机的电机控制.docx
《基于单片机的电机控制.docx》由会员分享,可在线阅读,更多相关《基于单片机的电机控制.docx(16页珍藏版)》请在冰豆网上搜索。
![基于单片机的电机控制.docx](https://file1.bdocx.com/fileroot1/2022-12/28/7b3ae450-fd42-416b-933c-9ce1ac0e1249/7b3ae450-fd42-416b-933c-9ce1ac0e12491.gif)
基于单片机的电机控制
基于单片机的电机控制
学生姓名:
郭磊
学生学号:
K031041549
院(系):
信息工程学院
年级专业:
电气工程与自动化
指导教师:
高仕红
摘要
本文是对直流电机PWM调速器设计的研究,主要实现对电机的控制。
本课程设计主要是实现PWM调速器的加速、减速、停止等操作。
并实现电路的仿真。
为实现系统的微机控制,在设计中,采用了AT89C51单片机作为整个控制系统的控制电路的核心部分,配以各种显示、驱动模块,实现对电动机转速参数的显示和测量;由命令输入模块、光电隔离模块及H型驱动模块组成。
采用带中断的独立式键盘作为命令的输入,单片机在程序控制下,不断给光电隔离电路发送PWM波形,H型驱动电路完成电机正反转控制.在设计中,采用PWM调速方式,通过改变PWM的占空比从而改变电动机的电枢电压,进而实现对电动机的调速。
设计的整个控制系统,在硬件结构上采用了大量的集成电路模块,大大简化了硬件电路,提高了系统的稳定性和可靠性,使整个系统的性能得到提高。
关键词AT89C51单片机,L298,直流电机
1绪论
1.1课题背景
本文讨论的单片机多功能定时器的核心是目前应用极为广泛的51系列单片机,配置了外围设备,构成了一个可编程的计时定时系统,具有体积小,可靠性高,功能强等特点。
不仅能满足所需要求而且还有很多功能可供开发,有着广泛的应用领域。
20世纪80年代中期以后,Intel公司以专利转让的形式把8051内核技术转让给许多半导体芯片生产厂家,如ATMEL、PHILIPS、ANALOG、DEVICES、DALLAS等。
这些厂家生产的芯片是MCS-51系列的兼容产品,准确地说是与MCS-51指令系统兼容的单片机。
这些兼容机与8051的系统结构(主要是指令系统)相同,采用CMOS工艺,因而,常用80C51系列来称呼所有具有8051指令系统的单片机,它们对8051单片机一般都作了一些扩充,更有特点。
其功能和市场竞争力更强,不该把它们直接称呼为MCS-51系列单片机,因为MCS只是Intel公司专用的单片机系列型号。
MCS-51系列及80C51单片机有多种品种。
它们的引脚及指令系统相互兼容,主要在内部结构上有些区别。
目前使用的MCS-51系列单片机及其兼容产品通常分成以下几类:
基本型、增强型、低功耗型、专用型、超8位型、片内闪烁存储器型。
1.2课题来源
在日常生活和工作中,我们常常用到定时控制,如扩印过程中的曝光定时等。
早期常用的一些时间控制单元都使用模拟电路设计制作的,其定时准确性和重复精度都不是很理想,现在基本上都是基于数字技术的新一代产品,随着单片机性能价格比的不断提高,新一代产品的应用也越来越广泛,大可构成复杂的工业过程控制系统,完成复杂的控制功能。
小则可以用于家电控制,甚至可以用于儿童电子玩具。
它功能强大,体积小,质量轻,灵活好用,配以适当的接口芯片,可以构造各种各样、功能各异的微电子产品。
随着电子技术的飞速发展,家用电器和办公电子设备逐渐增多,不同的设备都有自己的控制器,使用起来很不方便。
根据这种实际情况,设计一个单片机控制直流电机的转速,来方便生活。
2系统论述
2.1设计思路
直流电机PWM控制系统的主要功能包括:
直流电机的加速、减速以及电机的正转和反转,并且可以调整电机的转速,还可以方便的读出电机转速的大小,能够很方便的实现电机的智能控制。
其间,还包括直流电机的直接清零、启动(置数)、暂停、连续功能。
该直流电机系统由以下电路模块组成:
振荡器和时钟电路:
这部分电路主要由80C51单片机和一些电容、晶振组成。
设计输入部分:
这一模块主要是利用带中断的独立式键盘来实现。
设计控制部分:
主要由80C51单片机的外部中断扩展电路组成。
设计显示部分:
包括液晶显示部分和LED数码显示部分。
液晶显示部分由1602LCD液晶显示模块组成;LED数码显示部分由七段数码显示管组成。
直流电机PWM控制实现部分:
主要由一些二极管、电机和L298直流电机驱动模块组成。
2.2总设计框图
系统组成:
直流电机PWM调速方案如图2.1所示:
方案说明:
直流电机PWM调速系统以AT89C2051单片机为控制核心,由命令输入模块、LCD显示模块及电机驱动模块组成。
采用带中断的独立式键盘作为命令的输入,单片机在程序控制下,定时不断给直流电机驱动芯片发送PWM波形,H型驱动电路完成电机正,反转控制;同时单片机不停的将从键盘读取的数据送到LCD显示模块去显示,从中不仅能读取其速度,而且能知晓其转向及一些温心提示。
AT89C51
直流电机
驱动模块
直流
电机
AT89C51
直流电机
驱动模块
直流
电机
AT89C51
直流电机
驱动模块
直流
电机
加速控制端
减速控制端
停止控制端
LCD
液晶显示
P0
口
P2
口
P1
口
单片机
图2.1直流电机PWM调速方案
3直流电机单元电路设计与分析
3.1直流电机驱动模块
主要由一些二极管、电机和L298直流电机驱动模块(内含CMOSS管、三太门等)组成。
3.1.1直流电机工作原理
直流电机电路模型如图3.1所示,磁极N、S间装着一个可以转动的铁磁圆柱体,圆柱体的表面上固定着一个线圈abcd。
当线圈中流过电流时,线圈受到电磁力作用,从而产生旋转。
根据左手定则可知,当流过线圈中电流改变方向时,线圈的受方向也将改变,因此通过改变线圈电路的方向实现改变电机的方向。
图3.1直流电动机电路模型
3.1.2直流电机PWM调速原理
(1)直流电机转速
直流电机的数学模型可用图3.2表示,由图可见电机的电枢电动势Ea的正方向与电枢电流Ia的方向相反,Ea为反电动势;电磁转矩T的正方向与转速n的方向相同,是拖动转矩;轴上的机械负载转矩T2及空载转矩T0均与n相反,是制动转矩。
图3.2直流电机的数学模型
根据基尔霍夫第二定律,得到电枢电压电动势平衡方程式1.1:
U=Ea-Ia(Ra+Rc)……………………………………………式1.1
式1.1中,Ra为电枢回路电阻,电枢回路串联保绕阻与电刷接触电阻的总和;
Rc是外接在电枢回路中的调节电阻。
由此可得到直流电机的转速公式为:
n=Ua-IR/CeΦ……………………………………………式1.2
式1.2中,Ce为电动势常数,Φ是磁通量。
由1.1式和1.2式得
n=Ea/CeΦ………………………………………………式1.3
由式1.3中可以看出,对于一个已经制造好的电机,当励磁电压和负载转矩恒定时,它的转速由回在电枢两端的电压Ea决定,电枢电压越高,电机转速就越快,电枢电压降低到0V时,电机就停止转动;改变电枢电压的极性,电机就反转。
(2)PWM电机调速原理
对于直流电机来说,如果加在电枢两端的电压脉动电流压(要求脉动电压的周期远小于电机的惯性常数),可以看出,在T不变的情况下,改变T1和T2宽度,得到的电压将发生变化。
图3.3为施加不同占空比时实测的数据绘制所得占空比与转速的关系图。
图3.3占空比与电机转速的关系
由图看出转速与占空比D并不是完全速的线性关系(图中实线),原因是电枢本身有电阻,不过一般直流电机的内阻较小,可以近视为线性关系。
由此可见,改变施加在电枢两端电压就能改变电机的转速成,这就是直流电机PWM调速原理。
3.1.3电机驱动模块的电路设计
根据直流电机的工作原理,从PROTEUS选取元器件如下,放置元器件、放置电源和地]连线,我们参此设计的直流电机驱动模块电路如图3.4所示
●2SK1058:
CMOSS管
●74L26:
三太门
●1N4006:
二极管
●VSCOURCE:
电源
●MOTOR-ENCODER:
直流电机
●RES:
电阻
●AT89C51:
单片机(在此并未显示)
图3.4直流电机驱动电路
然而考虑市场的行情,既然已有专门地为电机驱动而设计的芯片,就没必要再从新来设计;选用L298芯片来构成的电路结构基本上跟上图一样,由L298芯片组装的驱动模块如图3.5所示。
所用元器件如下所示:
●1N4006:
二极管
●AT89C51:
单片机(在此并未显示)
●RES:
电阻
●MOTOR-ENCODER:
直流电机
●L298:
电机驱动芯片
●RESPACK-8:
排阻
图3.5直流电机及其驱动电路
3.2直流电机的中断键盘控制模块
3.2.1外部中断设置.
(1)外部中断允许设置
中断控制寄存器IE的EX0对应INT0,EX1对应INT1,EA为中断的总开关,若要开放外部中断,只要将IE对应的位和总开关EA置1即可。
如:
开放外部中断0的设置:
SETBEX0
SETBEA
开放外部中断0和1的设置:
SETBEX0
SETBEX1
SETBEA
(2)外部中断触发方式设置
单片机外部中断有两种触发方式,一种是电平触发方式,另一种是脉冲触发方式,单片机外部中断触发方式与TCON的IT位有关。
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
电平触发设置方法:
CLRITX,为低电平触发方式。
脉冲触发设置方法:
SETBITX=1,为脉冲下降沿触发方式。
在使用外部中断时,如果不进行设置,则为电平触发方式。
(3)外部优先级设置
外部中断IN0、INT1的中断优先级的设置是通过设置IP寄存器实现的,IP的PX0对应INT0,PX1对应INT1。
PX置1为高级中断,PX为0为低级中断。
×
×
×
PS
PT1
PX1
PT0
PX0
4直流电机PWM控制系统的实现
4.1总电路图
图4.1直流电机
4.2总电路功能介绍
直流电机PWM调制控制系统具有加速、减速、正转、反转、停止控制功能。
操作开关通过中断控制直流电机的加速、减速、正转、反转、停止控制功能,并通过LCD液晶显示。
振荡、时钟电路和复位电路由80C51单片机内部给出。
直流电机转动速度由LCD液晶显示。
操作开关状态由液晶显示器显示。
4.3直流电机控制程序
ORG0000H
SJMPDISPLAY
ORG0003H
LJMPBUTTON;外部0中断入口地址
ORG000BH
LJMPDINGSHI;定时中断T0入口地址
RSEQUP3.0
RWEQUP3.1
EEQUP3.4
ORG0030H;此次直流电机的设计以LCD字符夜晶的
;显示程序为主程序
DISPLAY:
SETBEA;打开中断总开关
SETBEX0;打开外部中断0开关
SETBIT0;打开外部中断0下降沿触发
MOVTMOD,#01H;设置定时工作方式
MOVTL0,#0FFH;设置定时初值
MOVTH0,#0FFH
SETBET0;打开定时中断T0开关
CLRP0.5
CLRP0.6
CLRP0.7
SETBTR0;定时器T0开始定时
MOVDPTR,#TAB;夜晶显示的字符首地址
MOVR0,#00H;脉宽的初值
MOVR1,#16;"SETSPEEDPLEASE"的字符个数
MOVR3,#00H
MOVR4,#00H
LP9:
LCALLCHUSHI
LP2:
ACALLBUSY
MOVA,#00H
MOVCA,@A+DPTR
MOVP1,A
ACALLDATAS
INCDPTR
DJNZR1,LP2
LP3:
CJNER3,#00H,LP4
CJNER4,#00H,LP4
SJMPLP3
LP4:
MOVR7,#00H;中断的标志
MOVR5,#09H;CURRENT:
的字符个数
ACALLBUSY
MOVP1,#0C0H
ACALLENABLE
MOVDPTR,#MMTAB
ACALLBUSY
LP5:
MOVA,#00H
MOVCA,@A+DPTR
MOVP1,A
INCDPTR
ACALLDATAS
ACALLBUSY
DJNZR5,LP5
MOVDPTR,#STAB
MOVA,R2
MOVP1,A
ACALLDATAS
ACALLBUSY
MOVA,R3;显示速度的十位
MOVCA,@A+DPTR
MOVP1,A
ACALLDATAS
ACALLBUSY
MOVA,R4;显示速度的个位
MOVCA,@A+DPTR
MOVP1,A
ACALLDATAS;使夜晶始终显示当前电机的速度
LP8:
CJNER7,#00H,LP7;速度不变时等待
LJMPLP8;速度变时重新读入速度
LP7:
SJMPLP4
CHUSHI:
;使夜晶显示的一些初始设置
ACALLBUSY
MOVP1,#00000001B;清屏并光标复位
ACALLENABLE
ACALLBUSY
MOVP1,#00111000B;设置显示模式:
8位2行5x7点阵
ACALLENABLE
ACALLBUSY
MOVP1,#00001111B;显示器开、光标开、光标允许闪烁
ACALLENABLE
ACALLBUSY
MOVP1,#00000110B;文字不动,光标自动右移
ACALLENABLE
ACALLBUSY
MOVP1,#80H;写入显示起始地址
ACALLENABLE
RET
ENABLE:
;写入控制命令的子程序
SETBE
CLRRS
CLRRW
CLRE
RET
DATAS:
;写入数据子程序
SETBE
SETBRS
CLRRW
CLRE
RET
BUSY:
;准备写入数据
CLRE
MOVP1,#0FFH
CLRRS
SETBRW
SETBE
JBP1.7,BUSY
RET
ORG2000H
DINGSHI:
;定时中断服务程序
CPLP0.7
JNBP0.7,Z1;周期一定
MOVA,#0FFH
SUBBA,R0
MOVTH0,A
SETBTR0
RETI
Z1:
MOVTH0,R0;脉宽
SETBTR0
RETI
BUTTON:
;从控制键盘中读取操作命令
PUSHACC
CLREX0
CLREA
INCR7;
MOVA,#0FFH
MOVP2,A
MOVA,P2
JNBACC.0,AA0
JNBACC.1,KK0
JNBACC.2,ZZ
JNBACC.3,FF
JNBACC.4,WW0
AJMPQQ
AA0:
CJNER0,#0FFH,AA1;加速操作
AJMPQQ
AA1:
MOVA,R0
ADDA,#5
MOVR0,A
AJMPQQ
KK0:
CJNER0,#00,MM;减速操作
AJMPQQ
MM:
MOVA,R0
SUBBA,#5
MOVR0,A
AJMPQQ
QQ:
MOVA,R0
MOVB,#5
DIVAB
MOVB,#10
DIVAB
MOVR3,A
MOVR4,B
SETBEX0
LCALLDELAY
LCALLDELAY
LCALLDELAY
LCALLDELAY
SETBEA
POPACC
RETI
WW0:
CLRP0.5;停止操作
CLRP0.6
LCALLDELAY
LCALLDELAY
LCALLDELAY
SETBEX0
SETBEA
POPACC
RETI
DELAY:
;延时子程序
MOVR5,#0E0H
MM0:
MOVR6,#30H
MM1:
DJNZR6,MM1
DJNZR5,MM0
RET
TAB:
DB53H,45H,54H,20H
DB53H,50H,45H,45H;"SETSPEEDPLEASE"代码
DB44H,20H,50H,4CH
DB45H,41H,53H,45H
STAB:
DB30H,31H,32H,33H
DB34H,35H,36H,37H;"0,1,2,3,4,5,6,7"代码
DB38H,39H,41H,42H;"8,9,A,B,C,D,E,F"
DB43H,44H,45H,46H
MMTAB:
DB43H,4FH,52H,52H
DB45H,4EH,54H,20H;"CURRENT:
"代码
DB3AH
END
5系统仿真
键盘向单片机输入相应控制指令,由单片机通过P2.0与P2.1其中一口输出与转速相应的PWM脉冲,另一口输出低电平,经过信号放大、光耦传递,驱动H型桥式电动机控制电路,实现电动机转向与转速的控制。
电动机的运转状态通过LED显示出来。
电动机所处速度级以速度档级数显示。
正转时数字向右移动,反转时数字向左移动。
移动速度分7档,快慢与电动机所处速度级快慢一一对应。
每次电动机启动后开始计时,停止时LED显示出本次运转所用时间,时间精确到0.1s。
本实验是由组员共同完成,我主要负责的是调试。
为了确保设计项目能够最终得到实现,要先将他在电脑进行仿真再连接单片机输入程序进行调试。
1.输入程序:
将同学已经写好的,并且无错误的程序输入到单片机中。
2.调试:
输入程序后,连接直流电机,对直流电机进行控制。
3.修改:
看键盘能否对直流电机进行控制,如果不能再对程序及其它做出改。
4.修改后再进行同样的操作,一直得到键盘能对直流电机进去控制。
LCD液晶显示电路的系统仿真与调试:
在PROTEUS运行环境中首先检验LCD显示电路,添加程序,运行LCD液晶显示电路能,在之前的电路基础之上再拓展带中断的独立式键盘,调试成功后的电路如图5.1所示
图5.1带中断控制的LCD液晶显示
6结论
通过这次课程设计,我得到了一次非常好的锻炼机会,,一步一步从完全不懂到最后的实物制造。
通过这一个星期的学习,发现了自己的很多不足,自己知识的不牢固,知识面太狭窄。
看到了自己的实践经验更是缺乏,理论联系实际的能力急需提高。
这次设计就我个人而言,除了认识自己的许多不足,还有很多经验值得以后学习。
就比如说在这次实验中遇到的问题,如电机在测速模块中,假如电机在运行的过程不稳定,特别是在换向过程很容易产生误脉冲。
经过小组的共同努力也克服了一些困难,同时自己也学会了很多软件的使用和程序调试的小技巧,可以说是让我受益匪浅。
当今社会科技日新月异,数字系统的更新换代速度不断加快,因此仅仅满足教学上的内容还远远不够,必须及时汲取新的知识充实自己这样在以后的工作生活中才会更加容易的面对种种困难。