单片机的直流电机控制器的设计方案.docx
《单片机的直流电机控制器的设计方案.docx》由会员分享,可在线阅读,更多相关《单片机的直流电机控制器的设计方案.docx(22页珍藏版)》请在冰豆网上搜索。
单片机的直流电机控制器的设计方案
1.1设计思路1
1.2基本原理1
1.3总体设计框图1
2直流电机单元电路设计与分析2
2.1直流电机驱动模块2
2.2直流电机的中断键盘控制模块7
2.31602LCD液晶显示模块9
3直流电机PWM控制系统的实现11
3.1总电路图11
3.2总电路功能介绍12
3.3直流电机控制程序12
4系统仿真19
1系统论述
1.1设计思路
直流电机PWM控制系统的主要功能包括:
直流电机的加速、减速以及电机的正转和反转,并且可以调整电机的转速,还可以方便的读出电机转速的大小,能够很方便的实现电机的智能控制。
其间,还包括直流电机的直接清零、启动(置数)、暂停、连续功能。
该直流电机系统由以下电路模块组成:
振荡器和时钟电路:
这部分电路主要由80C51单片机和一些电容、晶振组成。
设计输入部分:
这一模块主要是利用带中断的独立式键盘来实现。
设计控制部分:
主要由80C51单片机的外部中断扩展电路组成。
设计显示部分:
包括液晶显示部分和LED数码显示部分。
液晶显示部分由1602LCD液晶显示模块组成。
LED数码显示部分由七段数码显示管组成。
直流电机PWM控制实现部分:
主要由一些二极管、电机和L298直流电机驱动模块组成。
1.2基本原理
主体电路:
即直流电机PWM控制模块。
这部分电路主要由80C51单片机的I/O端口、定时计数器、外部中断扩展等控制直流电机的加速、减速以及电机的正转和反转,并且可以调整电机的转速,还可以方便的读出电机转速的大小和了解电机的转向,能够很方便的实现电机的智能控制。
其间,还包括直流电机的直接清零、启动(置数)、暂停、连续功能。
其间是通过80C51单片机产生脉宽可调的脉冲信号并输入到L298驱动芯片来控制直流电机工作的。
该直流电机PWM控制系统由以下电路模块组成:
设计输入部分:
这一模块主要是利用带中断的独立式键盘来实现。
设计控制部分:
主要由80C51单片机的外部中断扩展电路组成。
设计显示部分:
包括液晶显示部分和LED数码显示部分。
液晶显示部分由1602LCD液晶显示模块组成。
直流电机PWM控制实现部分:
主要由一些二极管、电机和L298直流电机驱动模块组成。
1.3总体设计框图
系统组成:
直流电机PWM调速方案如图1.1所示:
方案说明:
直流电机PWM调速系统以AT89C2051单片机为控制核心,由命令输入模块、LCD显示模块及电机驱动模块组成。
采用带中断的独立式键盘作为命令的输入,单片机在程序控制下,定时不断给直流电机驱动芯片发送PWM波形,H型驱动电路完成电机正,反转控制;同时单片机不停的将从键盘读取的数据送到LCD显示模块去显示,从中不仅能读取其速度,而且能知晓其转向及一些温心提示。
图1.1直流电机PWM调速方案
2直流电机单元电路设计与分析
2.1直流电机驱动模块
主要由一些二极管、电机和L298直流电机驱动模块(内含CMOSS管、三太门等)组成。
现在介绍下直流电机的运行原理
2.1.1直流电机类型
直流电机可按其结构、工作原理和用途等进行分类,其中根据直流电机的用途可分为以下几种:
直流发电机(将机械能转化为直流电能)、直流电动机(将直流电能转化为机械能)、直流测速发电机(将机械信号转换为电信号)、直流伺服电动机(将控制信号转换为机械信号)。
下面以直流电动机作为研究对象。
2.1.2直流电机结构
直流电机由定子和转子两部分组成。
在定子上装有磁极(电磁式直流电机磁极由绕在定子上的磁绕提供),其转子由硅钢片叠压而成,转子外圆有槽,槽内嵌有电枢绕组,绕组通过换向器和电刷引出,直流电机结构如图2.1所示。
图2.1直流电动机结构
2.1.3直流电机工作原理
直流电机电路模型如图2.2所示,磁极N、S间装着一个可以转动的铁磁圆柱体,圆柱体的表面上固定着一个线圈abcd。
当线圈中流过电流时,线圈受到电磁力作用,从而产生旋转。
根据左手定则可知,当流过线圈中电流改变方向时,线圈的受方向也将改变,因此通过改变线圈电路的方向实现改变电机的方向。
图2.2直流电动机电路模型
2.1.4直流电机主要技术参数
直流电机的主要额定值有:
额定功率Pn:
在额定电流和电压下,电机的负载能力。
额定电压Ue:
长期运行的最高电压。
额定电流Ie:
长期运行的最大电流。
额定转速n:
单位时间内的电机转动快慢。
以r/min为单位。
励磁电流If:
施加到电极线圈上的电流。
2.1.5直流电机PWM调速原理
(1)直流电机转速
直流电机的数学模型可用图2.3表示,由图可见电机的电枢电动势Ea的正方向与电枢电流Ia的方向相反,Ea为反电动势;电磁转矩T的正方向与转速n的方向相同,是拖动转矩;轴上的机械负载转矩T2及空载转矩T0均与n相反,是制动转矩。
图2.3直流电机的数学模型
根据基尔霍夫第二定律,得到电枢电压电动势平衡方程式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电机调速原理
对于直流电机来说,如果加在电枢两端的电压为2.3所示的脉动电流压(要求脉动电压的周期远小于电机的惯性常数),可以看出,在T不变的情况下,改变T1和T2宽度,得到的电压将发生变化,下面对这一变化进一步推导。
图2.3施加在电枢两端的脉动电压
设电机接全电压U时,其转速最大为Vmax。
若施加到电枢两端的脉动电压占空比为D=t1/T,则电枢的平均电压为:
U平=U·D……………………………………………式1.4
由式1.3得到:
n=Ea/CeΦ≈U·D/CeΦ=KD;
在假设电枢内阻转小的情况下式中K=U/CeΦ,是常数。
图2.4为施加不同占空比时实测的数据绘制所得占空比与转速的关系图。
图2.4占空比与电机转速的关系
由图看出转速与占空比D并不是完全速的线性关系(图中实线),原因是电枢本身有电阻,不过一般直流电机的内阻较小,可以近视为线性关系。
由此可见,改变施加在电枢两端电压就能改变电机的转速成,这就是直流电机PWM调速原理。
2.1.6电机驱动模块的电路设计
根据直流电机的工作原理,从PROTEUS选取元器件如下,放置元器件、放置电源和地]连线,我们参此设计的直流电机驱动模块电路如图2.5所示
●2SK1058:
CMOSS管
●74L26:
三太门
●1N4006:
二极管
●VSCOURCE:
电源
●MOTOR-ENCODER:
直流电机
●RES:
电阻
●AT89C51:
单片机(在此并未显示)
图2.5直流电机驱动电路
然而考虑市场的行情,既然已有专门地为电机驱动而设计的芯片,就没必要再从新来设计;选用L298芯片来构成的电路结构基本上跟上图一样,由L298芯片组装的驱动模块如图2.6所示。
所用元器件如下所示:
●1N4006:
二极管
●AT89C51:
单片机(在此并未显示)
●RES:
电阻
●MOTOR-ENCODER:
直流电机
●L298:
电机驱动芯片
●RESPACK-8:
排阻
图2.6直流电机及其驱动电路
2.1.7程序设计流程图
图2.7定时中断服务流程图
2.2直流电机的中断键盘控制模块
2.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
2.2.2外部中断扩展方法
在图2.8为外部中断扩展方法,设X1、X2、X3、X4、X5为外部警情信号,X1代表是加速信号,X1=0表示加速;X2代表减速信号,X2=0表示减速;X3代表正转信号,X3=0表示正转;X4代表反转信号,X4=0表示反转;X5代表停止信号,X5=0表示停止处理。
图2.8外部中断扩展电路
当系统检测到有中断请求时,响应如下中断服务流程图2.9。
图2.9中断服务流程
2.31602LCD液晶显示模块
2.3.1引脚分布和接口信号说明
(1)引脚分布
1602液晶显示共有16个引脚,其引脚分布如图2.5所示。
图2.101602液晶显示模块引脚分布
(2)引脚功能
1602引脚功能如表2.1所示
表2.11602引脚功能
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
VSS为地电源
9
D2
DataI/O
2
VDD
VDD接5V正电源
10
D3
DataI/O
3
VEE
液晶显示偏压信号
11
D4
DataI/O
4
RS
0输入指令,1输入数据
12
D5
DataI/O
5
R/W
0写入指令或数据,1读信息
13
D6
DataI/O
6
E
1读取信息,1→0执行指令
14
D7
DataI/O
7
D0
DataI/O
15
BLA
背光源正极
8
D1
DataI/O
16
BLK
背光源负极
2.3.2LCD液晶电路
图2.111602液晶显示模块组成
2.3.3显示程序流程图如3.12所示
图2.12
3直流电机PWM控制系统的实现
3.1总电路图
图3.1直流电机
3.2总电路功能介绍
直流电机PWM调制控制系统具有加速、减速、正转、反转、停止控制功能。
操作开关通过中断控制直流电机的加速、减速、正转、反转、停止控制功能,并通过LCD液晶显示。
振荡、时钟电路和复位电路由80C51单片机内部给出。
直流电机转动速度由LCD液晶显示。
操作开关状态由液晶显示器显示。
3.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
ZZ:
SETBP0.5。
正转操作
CLRP0.6
MOVR2,#2BH。
正转标志"+"
LCALLDELAY
LCALLDELAY
LCALLDELAY
SETBEX0
SETBEA
POPACC
RETI
FF:
CLRP0.5。
反转操作
SETBP0.6
MOVR2,#2DH。
反转标志"-"
LCALLDELAY
LCALLDELAY
LCALLDELAY
SETBEX0
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
4系统仿真
LCD液晶显示电路的系统仿真与调试:
在PROTEUS运行环境中首先检验LCD显示电路,添加程序,运行LCD液晶显示电路能,系统若运行成功将得到如图4.1。
此后在之前的电路基础之上再拓展带中断的独立式键盘,调试成功后的电路如图4.2所示。
图4.1LCD液晶显示字符初步调试
图4.2带中断控制的LCD液晶显示
调试用带中断的键盘来控制直流电机驱动模块的部分电路,若按要求调试成功,将得到图4.3。
图4.3用带中断的键盘来控制的电机
启动目标系统,按正转,然后接加速开关,我们观察到电机开始运转,每按一次加速,电机的速度都要增加,此时如果按减速,则电机的转速慢慢地减小。
同样按反转转键也看到同样的结果,当按停止键时,电机慢慢停下来,图4.4是在目的电路刚启动时未设置命令之前的状态,图4.5是在正转情况下的仿真结果,图4.6是在反转情况下的仿真结果。
图4.4未按键时的初始状态
图4.5电机正转时的状态
图4.6电机反转时的状态