11
基于单片机的电机控制
学生姓名: ** 学生学号: K********* 院 (系): 信息工程学院 年级专业: 电气工程与自动化 指导教师: ***
摘 要
本文是对直流电机PWM调速器设计的研究,主要实现对电机的控制。本课程设计主要是实现PWM调速器的加速、减速、停止等操作。并实现电路的仿真。为实现系统的微机控制,在设计中,采用了AT89C51单片机作为整个控制系统的控制电路的核心部分,配以各种显示、驱动模块,实现对电动机转速参数的显示和测量;由命令输入模块、光电隔离模块及H型驱动模块组成。采用带中断的独立式键盘作为命令的输入,单片机在程序控制下,不断给光电隔离电路发送PWM波形,H型驱动电路完成电机正反转控制.在设计中,采用PWM调速方式,通过改变PWM的占空比从而改变电动机的电枢电压,进而实现对电动机的调速。设计的整个控制系统,在硬件结构上采用了大量的集成电路模块,大大简化了硬件电路,提高了系统的稳定性和可靠性,使整个系统的性能得到提高。
关键词 AT89C51单片机, L298,直流电机
22
目 录
摘 要 .............................................................................................................................................. 2 1 绪论............................................................................................................................................. 4
1.1课题背景 ............................................................................................................................. 4 1.2课题来源 ............................................................................................................................. 4 2 系统论述 ..................................................................................................................................... 5
2.1设计思路 ............................................................................................................................. 5 2.2总设计框图 ......................................................................................................................... 5 3 直流电机单元电路设计与分析 ................................................................................................. 6
3.1直流电机驱动模块 ............................................................................................................. 6
3.1.1直流电机工作原理 .................................................................................................. 7 3.1.2直流电机PWM调速原理 ...................................................................................... 7 3.1.3电机驱动模块的电路设计 ...................................................................................... 9 3.2直流电机的中断键盘控制模块 ....................................................................................... 10
3.2.1外部中断设置. ....................................................................................................... 10
4 直流电机PWM控制系统的实现 ........................................................................................... 12
4.1总电路图 ........................................................................................................................... 12 4.2总电路功能介绍 ............................................................................................................... 12 4.3直流电机控制程序 ........................................................................................................... 13 5 系统仿真 ................................................................................................................................... 17 6 结论........................................................................................................................................... 19 33
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课题来源
在日常生活和工作中,我们常常用到定时控制,如扩印过程中的曝光定时等。早期常用的一些时间控制单元都使用模拟电路设计制作的,其定时准确性和重复精度都不是很理想,现在基本上都是基于数字技术的新一代产品,随着单片机性能价格比的不断提高,新一代产品的应用也越来越广泛,大可构成复杂的工
44
业过程控制系统,完成复杂的控制功能。小则可以用于家电控制,甚至可以用于儿童电子玩具。它功能强大,体积小,质量轻,灵活好用,配以适当的接口芯片,可以构造各种各样、功能各异的微电子产品。
随着电子技术的飞速发展,家用电器和办公电子设备逐渐增多,不同的设备都有自己的控制器,使用起来很不方便。根据这种实际情况,设计一个单片机控制直流电机的转速,来方便生活。
2 系统论述
2.1设计思路
直流电机PWM控制系统的主要功能包括:直流电机的加速、减速以及电机的正转和反转,并且可以调整电机的转速,还可以方便的读出电机转速的大小,能够很方便的实现电机的智能控制。其间,还包括直流电机的直接清零、启动(置数)、暂停、连续功能。该直流电机系统由以下电路模块组成:振荡器和时钟电路:这部分电路主要由80C51单片机和一些电容、晶振组成。设计输入部分:这一模块主要是利用带中断的独立式键盘来实现。设计控制部分:主要由80C51单片机的外部中断扩展电路组成。设计显示部分:包括液晶显示部分和LED数码显示部分。液晶显示部分由1602LCD液晶显示模块组成; LED数码显示部分由七段数码显示管组成。直流电机PWM控制实现部分:主要由一些二极管、电机和L298直流电机驱动模块组成。
2.2总设计框图
系统组成:直流电机PWM调速方案如图2.1所示:
55
方案说明:直流电机PWM调速系统以AT89C2051单片机为控制核心,由命令输入模块、LCD显示模块及电机驱动模块组成。采用带中断的独立式键盘作为命令的输入,单片机在程序控制下,定时不断给直流电机驱动芯片发送PWM波形,H型驱动电路完成电机正,反转控制;同时单片机不停的将从键盘读取的数据送到LCD显示模块去显示,从中不仅能读取其速度,而且能知晓其转向及一些温心提示。
直流电机 P0 口 驱动模块 直流 电机 AT89C51 单片机 AT89C51 LCD 液晶显示 P1 口 P2 口 加速控制端 减速控制端 停止控制端
图 2.1 直流电机PWM调速方案
3 直流电机单元电路设计与分析
3.1直流电机驱动模块
主要由一些二极管、电机和L298直流电机驱动模块(内含CMOSS管、
66
三太门等)组成。
3.1.1直流电机工作原理
直流电机电路模型如图3.1所示,磁极N、S间装着一个可以转动的铁磁圆柱体,圆柱体的表面上固定着一个线圈abcd。当线圈中流过电流时,线圈受到电磁力作用,从而产生旋转。根据左手定则可知,当流过线圈中电流改变方向时,线圈的受方向也将改变,因此通过改变线圈电路的方向实现改变电机的方向。
aN+-bAcBdS图3.1 直流电动机电路模型 图1.1 直流电机工作3.1.2直流电机PWM调速原理
(1)直流电机转速
直流电机的数学模型可用图3.2表示,由图可见电机的电枢电动势Ea的正方向与电枢电流Ia的方向相反,Ea为反电动势;电磁转矩T的正方向与转速n的方向相同,是拖动转矩;轴上的机械负载转矩T2及空载转矩T0均与n相反,是制动转矩。
I T1 U T2 T0 Ea ra Φ Rc 77
n 说明: U ………………> 电压 Ea ……… >电枢电动势 n …………………>转速 I………………>电枢电流 ra ……… >电枢回路电阻 Rc……… >外在电枢电阻 T1,T2………>负载转矩 T0………… > 空载转矩 Φ………………> 磁通量
图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为施加不同占空比时实测的数据绘制所得占空比与转速的关系图。
88
图3.3 占空比与电机转速的关系
由图看出转速与占空比D并不是完全速的线性关系(图中实线),原因是电枢本身有电阻,不过一般直流电机的内阻较小,可以近视为线性关系。
由此可见,改变施加在电枢两端电压就能改变电机的转速成,这就是直流电机PWM调速原理。
3.1.3电机驱动模块的电路设计
根据直流电机的工作原理,从PROTEUS选取元器件如下,放置元器件、放置电源和地]连线,我们参此设计的直流电机驱动模块电路如图3.4所示
● 2SK1058 : CMOSS管 ● 74L26 : 三太门 ● 1N4006 : 二极管 ● VSCOURCE : 电源
● MOTOR-ENCODER : 直流电机 ● RES : 电阻
● AT89C51 : 单片机 (在此并未显示)
直流电机驱动电路V1R11KU174126+9V3AQ1AIN12Q32SK1058D11N4006D21N40061直流电机+88.82SK1058ENA1Q23BIN22Q42SK1058BU274126D31N4006D41N40062SK1058 图3.4 直流电机驱动电路
然而考虑市场的行情,既然已有专门地为电机驱动而设计的芯片,就没必要
99
再从新来设计;选用L298芯片来构成的电路结构基本上跟上图一样,由L298芯片组装的驱动模块如图3.5 所示。所用元器件如下所示:
● 1N4006 : 二极管
● AT89C51 : 单片机 (在此并未显示) ● RES : 电阻
● MOTOR-ENCODER : 直流电机 ● L298 : 电机驱动芯片 ● RESPACK-8: 排阻
RP1RESPACK-8+12V+12V直流电机驱动芯片987654321D1+88.8D31N40039571012611115IN1IN2IN3IN4ENAENBVCC4VSOUT1OUT2OUT3OUT4GND8U223R4R61001N4003R5100100直流电机1314D41N4003D21N4003SENSASENSBL298
图3.5 直流电机及其驱动电路
3.2直流电机的中断键盘控制模块
3.2.1外部中断设置.
(1) 外部中断允许设置
中断控制寄存器IE的EX0对应INT0,EX1对应INT1,EA为中断的
1010
总开关,若要开放外部中断,只要将IE对应的位和总开关EA置1即可。
如:开放外部中断0的设置:
SETB EX0 SETB EA
开放外部中断0和1的设置:
SETB EX0 SETB EX1 SETB EA
(2) 外部中断触发方式设置
单片机外部中断有两种触发方式,一种是电平触发方式,另一种是脉冲触发
方式,单片机外部中断触发方式与TCON的IT位有关。 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 电平触发设置方法:CLR ITX,为低电平触发方式。
脉冲触发设置方法:SETB ITX=1,为脉冲下降沿触发方式。 在使用外部中断时,如果不进行设置,则为电平触发方式。 (3) 外部优先级设置
外部中断
IN0、INT1的中断优先级的设置是通过设置IP寄存器实现的,
IP的PX0对应INT0,PX1对应INT1。PX置1为高级中断,PX为0为低
级中断。
×
× × PS PT1 PX1 PT0 PX0 1111
4 直流电机PWM控制系统的实现
4.1总电路图
LCD1LM016LLCD液晶显示1918VEEVDDVSSERWRSRP1U1XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617RESPACK-8+12V+12V直流电机驱动芯片987654321D1+88.8D31N40039571012611115IN1VCCIN2IN3IN4ENAENBSENSASENSB4VSOUT1OUT2OUT3OUT4GND8U223XTAL2R4R61001N4003D7D6D5D4D3D2D1D0R5100加速减速正转反转停止100直流电机1413121110987E6RW5RS43219RST1314D41N4003D21N4003RV11k293031PSENALEEAL29812345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51RSRW加速减速加速减速EU?加速减速正转反转停止正转正转反转AND_5反转停止停止 图4.1 直流电机
4.2总电路功能介绍
直流电机PWM调制控制系统具有加速、减速、正转、反转、停止控制功能。操作开关通过中断控制直流电机的加速、减速、正转、反转、停止控制功能,并通过LCD液晶显示。振荡、时钟电路和复位电路由80C51单片机内部给出。直流电机转动速度由LCD液晶显示。操作开关状态由液晶显示器显示。
1212
4.3直流电机控制程序
ORG 0000H SJMP DISPLAY ORG 0003H
LJMP BUTTON ; 外部0中断入口地址 ORG 000BH
LJMP DINGSHI ; 定时中断T0入口地址 RS EQU P3.0 RW EQU P3.1 E EQU P3.4
ORG 0030H ; ; DISPLAY:
SETB EA ; SETB EX0 ; SETB IT0 MOV TMOD,#01H ; MOV TL0,#0FFH ; MOV TH0,#0FFH
SETB ET0 ; CLR P0.5 CLR P0.6 CLR P0.7
SETB TR0 ; MOV DPTR,#TAB MOV R0,#00H ; MOV R1,#16 ; \"MOV R3,#00H MOV R4,#00H LP9:
LCALL CHUSHI LP2:
ACALL BUSY MOV A,#00H
MOVC A,@A+DPTR MOV P1,A ACALL DATAS INC DPTR DJNZ R1,LP2 LP3:
1313
此次直流电机的设计以LCD字符夜晶的显示程序为主程序 打开中断总开关 打开外部中断0开关
; 打开外部中断0下降沿触发 设置定时工作方式 设置定时初值 打开定时中断T0开关 定时器T0开始定时
; 夜晶显示的字符首地址 脉宽的初值
SET SPEED PLEASE\"的字符个数
CJNE R3,#00H,LP4 CJNE R4,#00H,LP4 SJMP LP3
LP4: MOV R7,#00H ; 中断的标志
MOV R5,#09H ; CURRENT : 的字符个数 ACALL BUSY MOV P1,#0C0H ACALL ENABLE
MOV DPTR,#MMTAB ACALL BUSY LP5:
MOV A,#00H
MOVC A,@A+DPTR MOV P1,A INC DPTR ACALL DATAS ACALL BUSY DJNZ R5,LP5
MOV DPTR,#STAB MOV A,R2 MOV P1,A ACALL DATAS ACALL BUSY
MOV A,R3 ; 显示速度的十位 MOVC A,@A+DPTR MOV P1,A ACALL DATAS ACALL BUSY
MOV A,R4 ; 显示速度的个位 MOVC A,@A+DPTR MOV P1,A
ACALL DATAS ; 使夜晶始终显示当前电机的速度 LP8:
CJNE R7,#00H,LP7 ; 速度不变时等待
LJMP LP8 ; 速度变时重新读入速度 LP7:
SJMP LP4
CHUSHI: ; 使夜晶显示的一些初始设置 ACALL BUSY
MOV P1,#00000001B ; 清屏并光标复位 ACALL ENABLE ACALL BUSY
1414
MOV P1,#00111000B ; 设置显示模式:8位2行5x7点阵 ACALL ENABLE ACALL BUSY
MOV P1,#00001111B ; 显示器开、光标开、光标允许闪烁 ACALL ENABLE ACALL BUSY
MOV P1,#00000110B ; 文字不动,光标自动右移 ACALL ENABLE ACALL BUSY
MOV P1,#80H ; ACALL ENABLE RET
ENABLE: ; SETB E CLR RS CLR RW CLR E RET
DATAS: ; SETB E SETB RS CLR RW CLR E RET
BUSY: ; CLR E
MOV P1,#0FFH CLR RS SETB RW SETB E
JB P1.7,BUSY RET
ORG 2000H
DINGSHI: ; CPL P0.7
JNB P0.7,Z1 ; MOV A,#0FFH
SUBB A,R0 MOV TH0,A SETB TR0 RETI
Z1: MOV TH0,R0 1515
写入显示起始地址 写入控制命令的子程序 写入数据子程序 准备写入数据 定时中断服务程序 周期一定 脉宽
;
SETB TR0 RETI
BUTTON: ; 从控制键盘中读取操作命令 PUSH ACC CLR EX0 CLR EA
INC R7 ; MOV A,#0FFH MOV P2,A MOV A,P2
JNB ACC.0,AA0 JNB ACC.1,KK0 JNB ACC.2,ZZ JNB ACC.3,FF JNB ACC.4,WW0 AJMP QQ
AA0: CJNE R0,#0FFH, AA1 AJMP QQ
AA1: MOV A,R0 ADD A,#5 MOV R0,A AJMP QQ
KK0: CJNE R0,#00,MM ; AJMP QQ
MM: MOV A,R0 SUBB A,#5 MOV R0,A AJMP QQ
QQ: MOV A,R0 MOV B,#5 DIV AB MOV B,#10 DIV AB MOV R3,A MOV R4,B SETB EX0
LCALL DELAY LCALL DELAY LCALL DELAY LCALL DELAY SETB EA POP ACC
1616
; 加速操作 减速操作
RETI
WW0: CLR P0.5 ; 停止操作 CLR P0.6
LCALL DELAY LCALL DELAY LCALL DELAY SETB EX0 SETB EA POP ACC RETI
DELAY: ; 延时子程序 MOV R5,#0E0H
MM0: MOV R6,#30H MM1: DJNZ R6,MM1 DJNZ R5,MM0 RET
TAB: DB 53H,45H,54H,20H
DB 53H,50H,45H,45H ; \"SET SPEED PLEASE\" 代码 DB 44H,20H,50H,4CH DB 45H,41H,53H,45H
STAB: DB 30H,31H,32H,33H
DB 34H,35H,36H,37H ; \"0,1,2,3,4,5,6,7\" 代码 DB 38H,39H,41H,42H ; \"8,9,A,B,C,D,E,F\" DB 43H,44H,45H,46H
MMTAB: DB 43H,4FH,52H,52H
DB 45H,4EH,54H,20H ; \" CURRENT : \" 代码 DB 3AH
END
5 系统仿真
键盘向单片机输入相应控制指令,由单片机通过P2.0与P2.1其中一口输出与转速相应的PWM脉冲,另一口输出低电平,经过信号放大、光耦传递,驱动H型桥式电动机控制电路,实现电动机转向与转速的控制。电动机的运转状态通过LED显示出来。电动机所处速度级以速度档级数显示。正转时数字向右移动,反转时数字向左移动。移动速度分7档,快慢与电动机所处速度级快慢一一对应。每次电动机启动后开始计时,停止时LED显示出本次运转所用时间,时间精确到
1717
0.1s。
本实验是由组员共同完成,我主要负责的是调试。为了确保设计项目能够最终得到实现,要先将他在电脑进行仿真再连接单片机输入程序进行调试。
1.输入程序:将同学已经写好的,并且无错误的程序输入到单片机中。 2.调试:输入程序后,连接直流电机,对直流电机进行控制。
3.修改:看键盘能否对直流电机进行控制,如果不能再对程序及其它做出改。4.修改后再进行同样的操作,一直得到键盘能对直流电机进去控制。
LCD液晶显示电路的系统仿真与调试:在PROTEUS运行环境中首先检验LCD显示电路,添加程序,运行LCD液晶显示电路能,在之前的电路基础之
上再拓展带中断的独立式键盘,调试成功后的电路如图5.1所示
LCD1LM016LLCD液晶显示1918U1XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617XTAL2VEEVDDVSSERWRSD7D6D5D4D3D2D1D01413121110987E6RW5RS43219RSTRV11k293031PSENALEEA加速减速正转反转停止12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51RSRW加速减速加速减速EU?加速减速正转反转停止正转正转反转AND_5反转停止停止
图5.1 带中断控制的LCD液晶显示
1818
6 结论
通过这次课程设计,我得到了一次非常好的锻炼机会,,一步一步从完全不懂到最后的实物制造。通过这一个星期的学习,发现了自己的很多不足,自己知识的不牢固,知识面太狭窄。看到了自己的实践经验更是缺乏,理论联系实际的能力急需提高。
这次设计就我个人而言,除了认识自己的许多不足,还有很多经验值得以后学习。就比如说在这次实验中遇到的问题,如电机在测速模块中,假如电机在运行的过程不稳定,特别是在换向过程很容易产生误脉冲。经过小组的共同努力也克服了一些困难,同时自己也学会了很多软件的使用和程序调试的小技巧,可以说是让我受益匪浅。
当今社会科技日新月异,数字系统的更新换代速度不断加快,因此仅仅满足教学上的内容还远远不够,必须及时汲取新的知识充实自己这样在以后的工作生活中才会更加容易的面对种种困难。
1919
因篇幅问题不能全部显示,请点此查看更多更全内容