直流电机智能化控制设计论文.docx
《直流电机智能化控制设计论文.docx》由会员分享,可在线阅读,更多相关《直流电机智能化控制设计论文.docx(13页珍藏版)》请在冰豆网上搜索。
直流电机智能化控制设计论文
单片机课程设计报告书
课题名称
直流电机控制
姓名
学号
2
院、系、部
电气系
专业
指导教师
2011年7月3日
一、设计任务及要求:
利用实验仪上的D/A变换电路,输出-8V至+8V电压,控制直流电机。
改变输出电压值,改变电机转速,用P3.4读回脉冲计数,计算电机转速。
再用八段管显示速度。
指导教师签名:
2011年月日
二、指导教师评语:
指导教师签名:
2011年月日
三、成绩
指导教师签名:
2011年月日
直流电机控
一、设计目的
1.了解直流电机控制原理。
2.学习单片机控制直流电机的编程方法。
3.了解单片机控制外部设备的常用电路。
4.学习和掌握单片机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。
5.通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。
二、设计要求
1、利用D/A电路,输出-8V到+8V的电压,控制直流电机。
2、电机速度可调,具有启动键、方向控制键及提示灯、加速键、减速键及停止键:
S0键-升速,每按一次,电压值增大一个定值,转速提高。
S1键-减速,每按一次,电压值减小一个定值,转速降低。
3、利用霍尔元件感应电机转速,读出感应脉冲,从而计算出电机转速,用数码管显示出来。
三、电路及连线设计
DA_CS------CS1脉冲输出------P3.4-8到+8------直流电压
P1.0------K0启动P1.1------K1停止P1.2------K2反方向运动
P1.3------K3正方向减速P1.4------K4正方向增速P1.7------方向灯亮
P1.5------K5反方向减速P1.6------K6反方向加速CS0地址译码------KEY/LED-CS
四、使用说明
在电压允许范围内,直流电机的转速随着电压的升高而加快,若加上的电压为负电压,则电机会反向旋转。
本实验仪的D/A变换可输出-8V到+8V的电压,将电压经驱动后加在直流电机上,使其运转。
通过单片机输出数据到D/A变换电路,控制电压的高低和正负,观察电机的旋转情况。
在电机转盘上安装一个小磁芯,用霍尔元件感应电机转速,用单片机控制读回感应脉冲,从而测算出电机的转速。
有兴趣的同学,可以做一个恒速的试验,即让电机转速保持一定。
若电机转速偏低,则提高输出电压,若电机转速偏高,则降低输出电压。
首先给电机一定的阻力,让转速保持一定,然后稍微给加大阻力,观察D/A输出的电压是否能做出反应,再减小阻力,也观察D/A电压,有何变化。
注意所加的阻力不能过大,以免电机烧毁。
五、流程图设计
否
是
是
是
否
六、程序设计如下:
CS0832EQU09000H
OUTBITEQU08002H;位控制口
OUTSEGEQU08004H;段控制口
LEDBUFEQU60H;显示缓冲
NUMEQU70H;显示的数据
ORG0000H
SJMPSTART
ORG0030H
START:
CLRP1.7;指示是否反转
MOVDPTR,#CS0832;DPTR指针到电机控制口
MOVA,#080H;零电压对应值给寄存器A
MOVX@DPTR,A;电机转速为零
LJMPSUDUXIANSHI;速度显示
ZZ:
CLRP1.7;正传开始反转指示灯灭
MOVDPTR,#CS0832;DPTR指针到电机控制口
MOVA,#0B0H;电机最小启动电压对应值给寄存器A
MOVX@DPTR,A;给电机初始速度
LCALLDELAY;等待电机运转稳定
LJMPSUDUXIANSHI;速度显示
FZ:
SETBP1.7;反转开始反转指示灯亮
MOVDPTR,#CS0832;DPTR指针到电机控制口
MOVA,#050H;反转时电机最小启动速度
MOVX@DPTR,A;反转初始速度
LCALLDELAY;等待电机运转稳定
LJMPSUDUXIANSHI;速度显示
JY:
JBP1.1,TZ;停止键按下到停止程序
JBP1.0,ZZ;启动按钮到正传程序
JBP1.6,FPDJ;反转的检测加速键按下到加速程序
JBP1.5,FPDJN;减速键按下到减速程序
JBP1.4,ZPDJ;正转的检验加速键按下到加速
JBP1.3,ZPDJN;减速键按下到减速
JBP1.2,FZ;反转键按下到反转程序
LJMPSUDUXIANSHI;速度显示
TZ:
LJMPSTART;停止重新开始
ZPDJ:
CJNEA,#0F0H,JIA0;正转的最大速度判断
LJMPJY;已是最大不再加速回到检验
JIA0:
JNCJY;超过最大不加速
MOVDPTR,#CS0832;DPTR指针到电机控制口
ADDA,#05H;加一定速度
MOVX@DPTR,A;电机速度增加
LCALLDELAY;等待电机运转稳定
LJMPSUDUXIANSHI;速度显示
ZPDJN:
CJNEA,#080H,JIAN0;正传最小速度判断
LJMPJY;已是最小不再减速
JIAN0:
JCJY;超过最小不减速
MOVDPTR,#CS0832;DPTR指针到电机控制口
SUBBA,#05H;减一定速度
MOVX@DPTR,A;电机速度减小
LCALLDELAY;等待电机运转稳定
LJMPSUDUXIANSHI;速度显示
FPDJ:
CJNEA,#10H,JIA1;反转的最大速度判断
LJMPJY;已是最大不再加速
JIA1:
JCJY;超过最大不加速
MOVDPTR,#CS0832;DPTR指针到电机控制口
SUBBA,#05H;加一定速度
MOVX@DPTR,A;电机速度增加
LCALLDELAY;等待电机运转稳定
LJMPSUDUXIANSHI;速度显示
FPDJN:
CJNEA,080H,JIAN1;反转最小速度判断
LJMPJY;已是最小不再减速
JIAN1:
JNCJY;超过最小不减速
MOVDPTR,#CS0832;DPTR指针到电机控制口
ADDA,#05H;减一定速度
MOVX@DPTR,A;电机速度减小
LCALLDELAY;等待电机运转稳定
LJMPSUDUXIANSHI;速度显示
SUDUXIANSHI:
MOV76H,A;将当前寄存器A中的内容给76H单元进行保存
MOVTMOD,#05H;方式控制字T0设为计数器
MOVTH0,#00H;计数初值为0
MOVTL0,#00H
SETBTR0;开计数器
MOV55H,#4;延时约1S
D01:
MOV56H,#250
D02:
MOV57H,#248
D03:
DJNZ57H,D03
DJNZ56H,D02
DJNZ55H,D01
CLRTR0;1S到关计数器
MOVR1,TH0;送数
MOVR0,TL0
MOV70H,R0
MOV71H,R1
START2:
MOVR4,#100;显示次数
START02:
MOVSP,#40H;堆栈指针
MOVA,70H;计数得到的低4位数给A
MOVR0,#LEDBUF;缓冲地址
ANLA,#0FH;屏蔽高位,传送低位
MOVDPTR,#LEDMAP;表地址
MOVCA,@A+DPTR;数字转换成显示码
MOV@R0,A;显示码填入显示缓冲
INCR0;缓冲地址加1
MOVA,70H;计数得到的低4位数给A
ANLA,#0F0H;屏蔽地位,传送高位
MOVDPTR,#LEDMAP;表地址
MOVCA,@A+DPTR;数字转换成显示码
MOV@R0,A;显示码填入显示缓冲
INCR0;缓冲地址加1
MOVA,71H;计数得到的高4位给A
ANLA,#0FH;屏蔽高位,传送地位
MOVDPTR,#LEDMAP;表地址
MOVCA,@A+DPTR;数字转换成显示码
MOV@R0,A;显示码填入显示缓冲
INCR0;缓冲地址加1
MOVA,71H;计数得到的高4位给A
ANLA,#0F0H;屏蔽低位,传送高位
MOVDPTR,#LEDMAP;表地址
MOVCA,@A+DPTR;数字转换成显示码
MOV@R0,A;显示码填入显示缓冲
LJMPDISPLAYLED;到显示程序
LEDMAP:
;八段管显示码表格
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H
DISPLAYLED:
MOVR0,#LEDBUF;缓冲地址
MOVR1,#4;共4个八段管
MOVR2,#00000001B;从右边开始显示
MOVDPTR,#OUTBIT;位选
MOVA,#0
MOVX@DPTR,A;关所有八段管
LOOP:
MOVA,@R0
MOVDPTR,#OUTSEG;段选
MOVX@DPTR,A
MOVDPTR,#OUTBIT
MOVA,R2
MOVX@DPTR,A;显示一位八段管
MOV4AH,#10
DL2:
MOV4BH,#200
DL1:
DJNZ4BH,DL1
DJNZ4AH,DL2
MOVA,R2;显示下一位
RLA
MOVR2,A
INCR0
DJNZR1,LOOP
DJNZR4,START02
MOVA,76H
LJMPJY;显示完成,跳回检验处
DELAY:
MOVR5,#12;延时子程序约3S
D1:
MOVR6,#250
D2:
MOVR7,#248
D3:
DJNZR7,D3
DJNZR6,D2
DJNZR5,D1
RET
七、设计总结:
1、熟悉掌握了伟福单片机试验箱,对单片机汇编语言的编写,试验箱的操作有进一步的了解。
2、在学习实验的过程中,遇到了很多以前没遇到的问题。
1)在开始写程序的时候,没有或加错加主程序与子程序的地址,是程序没法执行。
2)有些情况下把语句写错如TMOD写成TOMD。
使程序无法运行。
3)八段管的位控制和段控制的地址开始不知