直流电机控制器设计.docx
《直流电机控制器设计.docx》由会员分享,可在线阅读,更多相关《直流电机控制器设计.docx(20页珍藏版)》请在冰豆网上搜索。
直流电机控制器设计
单片机课程设计报告书
课题名称
直流电机控制器设计
姓名
学号
院、系、部
电气工程系
专业
电气工程及其自动化
指导教师
焦永梅
2014年6月26日
直流电机控制器设计
一、设计目的
1、能够根据题目要求实掌握编写程序、调试程序、软件仿真及与硬件结合。
2、掌握并熟练使用protues绘图软件。
3、了解直流电机控制原理。
4、学习单片机控制直流电机的编程方法。
5、了解数码管动态显示的原理。
6、掌握按键扫描的工作原理。
二、设计要求
1、利用D/A电路,输出-8V到+8V的电压,控制直流电机。
2、电机速度可调,具有启动键、方向控制键及提示灯、加速键、减速键及停止键:
S0键-升速,每按一次,电压值增大一个定值,转速提高。
S1键-减速,每按一次,电压值减小一个定值,转速降低。
利用霍尔元件感应电机转速,读出感应脉冲,从而计算出电机转速(转/分),用数码管显示出来。
三、硬件电路设计
3.1系统结构框图
直流电机控制器系统由单片机、数码管显示模块、按键控制模块、霍尔元件和直流电机模块四部分组成。
系统框图如图3-1所示。
图3-1系统结构框图
3.2 系统电路原理图
系统电路原理图如下图所示
图3-2系统电路原理图
3.3 AT89C51单片机介绍
AT89C51单片引脚如下图所示
图3-3AT89C51单片机引脚图
XTAL1:
输入到单片微机内部振荡器的反相放大器。
当采用外部振荡器时,对HMOS单片微机,是引脚应接地:
对CHMOS单片微机,此引脚作驱动端。
XTAL2:
反相放大器的输出,输入到内部时钟发生器。
当采用外部振荡器时,XTAL2接收振荡器信号,对CHMOS单片微机,此引脚悬浮。
I/O共4个口,32根I/O线:
P0:
8位、漏极开路的双向I/口。
P1:
8位、准双向I/O口。
在编程/校验期间,用作输入低位字节地址。
P1口可以驱动4个LSTTL负载。
P2:
8位、准双向I/O口。
当使用片外存储器时,输出高8位地址。
在编程/校验期间,接收高位字节地址。
P2口可以驱动4个LSTTL负载。
P3:
8位、准双向I/O口,具有内部上拉电路。
P3提供各种替代功能。
P3口可以驱动4个LSTTL负载。
串行口:
P3.0:
RXD串行输入口。
P3.1:
TXD串行输出口。
中断:
P3.2:
INT0外部中断0输入。
P3.3:
INT1外部中断1输入。
定时器/计数器:
P3.4:
T0定时器/计数器0的外部输入。
P3.5:
T1定时器/计数器1的外部输入。
数据存储器选通:
P3.6:
WR低电平有效,输出,片外数据存储器或I/O端口写选通。
P3.7:
RD低电平有效,输出,片外数据存储器或I/O端口读选通。
RST:
复位输入信号,高电平有效。
EA/VPP:
片外程序存储器访问允许信号,低电平有效。
EA=1选择片内程序存储器;EA=0,则程序存储器全部在片外,而不管片内是否有程序存储器。
ALE:
地址锁存允许信号,输出。
由于ALE以1/6振荡器频率的固定速率输出,可作为对外输出的时钟或用作外部定时脉冲。
PSEN:
片外程序存储器读选通信号,低电平有效。
EA:
片外程序存储器访问允许信号,低电平有效。
EA=1选择片内程序存储器;EA=0,则程序存储器全部在片外,而不管片内是否有程序存储器。
3.5数模转换芯片介绍
数模转换芯片如图所示
图3-4数模转换芯片
D0~D7:
8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);
ILE:
数据锁存允许控制信号输入线,高电平有效;
CS:
片选信号输入线(选通数据锁存器),低电平有效;
WR1:
数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。
由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;
XFER:
数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;
WR2:
DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。
由WR2、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。
IOUT1:
电流输出端1,其值随DAC寄存器的内容线性变化;
IOUT2:
电流输出端2,其值与IOUT1值之和为一常数;
Rfb:
反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;
Vcc:
电源输入端,Vcc的范围为+5V~+15V;
VREF:
基准电压输入线,VREF的范围为-10V~+10V;
AGND:
模拟信号地;
DGND:
数字信号地。
3.5谐振电路
谐振电路如图所示
图3-5谐振电路
谐振电路用于产生一个特定的时钟频率,使AT89C51单片机能正常的工作。
晶振片用于产生时钟频率,该晶振能产生11.0592MHZ的频率。
两个旁路电路,有频率微调的作用,主要是让电路更容易起振,两个电容值要求一样,否则容易使谐振不平衡,造成停振或不起振的现象。
本设计中采用的是两个1nF的电容。
3.6 L298芯片介绍
图3-6L298芯片
引脚
符号
功能
1
15
SENSINGA
SENSINGB
此两端与地连接电流检测电阻,并向驱动芯片反馈检测到的信号
2
3
OUT1
OUT2
此两脚是全桥式驱动器A的两个输出端,用来连接负载
4
Vs
电机驱动电源输入端
5
7
IN1
IN2
输入标准的TTL逻辑电平信号,用来控制全桥式驱动器A的开关
6
11
ENABLEA
ENABLEB
使能控制端.输入标准TTL逻辑电平信号;低电平时全桥式驱动器禁止工作。
8
GND
接地端,芯片本身的散热片与8脚相通
9
Vss
逻辑控制部分的电源输人端口
10
12
IN3
IN4
输入标准的TTL逻辑电平信号,用来控制全桥式驱动器B的开关
13
14
OUT3
OUT4
此两脚是全桥式驱动器B的两个输出端,用来连接负载
四、流程图设计
4.1 总体设计思路
在矩阵键盘中,开辟出“c”键为模式键,第一次按下为模式1,此时除加减速按键“A”“B”键和模式键“C”外所有按键均被屏蔽,实现加减速模式,并通过数码管实时显示实际转速。
当再次按下模式键“C”时,进入模式2,此时屏蔽加减速按键,此模式为自设定转速模式,首先选择正转还是反转按键“E”和“F”键,数码管显示“E””F”,再选择速度,按下“0-9”按键进行速度设定,设定顺序为从高位到低位,为两位并实时显示,多余的输入数字将被屏蔽,只取最后两位。
完成设置后,按下确定键“D”键,电机开始转动。
此时除确认键“D”键外所有键均被屏蔽。
再次按下确认键,电机停止转动。
此时只开放模式按键“C”。
从设置模式开始入口系统功能。
数码管除了现实实时转速外,在模式2中,设定转速时起到显示设定值的作用。
4.2 流程图
利用光电测速法得出实际转速:
使用栅格圆盘和光电门组成测速系统。
当直流电机通过传动部分带动栅格圆盘旋转时,测速光电门获得一系列脉冲信号。
这些脉冲信号通过单片机两个定时/计数器配合,一个计数,一个定时。
计算出单位时间内的脉冲数m,经过单位换算,就可以算得直流电机旋转的速度。
本实验采用以r/sec为单位的转速加以显示。
将采集到的实际速度与程序给定速度数据比较,假定设定值为正转,则如果实际速度小于设定速度,那么将运行函数中速度形参自加1;相反,如果实际速度大于设定速度,将运行函数中速度形参自减一。
如果设定值反转,则同上,只需将运行函数中形参由自加改为自减,自减改为自加即可。
主程序流程图如下图所示
图4-1主流程图
五、源程序
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-1按下加速键,直流电机有图4-2的正运行效果。
向加速运行结果。
图4-1电机正常运转图4-2电机正转加速
按下减速键,直流电机有图4-3正按下反转键,直流电机有图4-4反向加速运行结果。
向减速运行结果。
图4-3电机正转减速图4-4电机反转加速
按下急停键,直流电机有图4-5的
停止运行结果。
图4-5电机停转
七、设计总结
通过这次的课程设计,我学会了用C语言编译程序,学会了用protues软件绘图仿真,明白了控制之交流电动机速度的原理,从中还获得了许多知识。
本次课程设计采用简单的C语言编程,程序系统结构优化,控制精度高,满足了直流电机的调速要求。
对单片机实现直流电机调速系统进行研究和设计,能够满足设计要求。
将所学的理论知识和时间相结合,为以后在此基础上结合相关领域设计具有很好的实践意义
八、参考文献
[1]高峰.单片微型计算机原理与接口技术.科学出版社,2007.
[2]胡汉才.单片机原理及其接口技术.清华大学出版社,2004.
[3]李勋.单片机微型计算机大学读本.北京航空航天大学出版社, 2002.
[4]王幸之.单片机应用系统抗干扰技术.北京航空航天大学出版社, 2001.
[5]张毅刚.单片机原理及应用.高等教育出版社, 2004.