微机电流电机控制第三组.docx
- 文档编号:30126892
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:18
- 大小:78.92KB
微机电流电机控制第三组.docx
《微机电流电机控制第三组.docx》由会员分享,可在线阅读,更多相关《微机电流电机控制第三组.docx(18页珍藏版)》请在冰豆网上搜索。
微机电流电机控制第三组
湖南人文科技学院
课程设计报告
课程名称:
微机接口技术与应用课程设计
设计题目:
微机直流电机控制
系别:
计算机科学技术系
专业:
计算机科学与技术专业
组别:
09级本科二班第三组
组员:
吴通朱韬周思亮杨晨杨金
学号:
09408214、16、15、13、12
起止日期:
2012.6.15-2012.6.28
指导教师:
刘庆
课程设计题目
微机直流电机控制
组号
第三组
班级
09计科二班
系别
计算机科学技术系
专业
计算机科学与技术专业
组长
吴通(09408214)
组员
朱韬(09408216)、周思量(09408215)、杨晨(09408213)、杨金(09408212)
指导教师
刘庆
课程设计目的
通过直流电机,学习直流电机的控制原理与方法。
课程设计环境
1.PC兼容机
2.Windows2000
3.MFID多功能微机实验平台(含PCI总线驱动板)
4.MF2KI集成开发环境
5.VC++6.0
课程设计要求
1.掌握接口硬件开发平台的使用方法,利用现有的实验平台和PC机,组成一个微机模拟应用系统,结合一个实际的接口技术问题在实验台上编程模拟实现。
2.由一个主控机监控和若干个下位机组成,主控机负责数据处理,下位机负责访问接口。
3.掌握基本接口电路的综合应用。
4.掌握接口电路的驱动程序和界面软件的设计与编制,学会调试与测试接口软件的一般方法。
5.微机接口技术及接口芯片的综合应用。
课程
设计
工作
进度
计划
日期
工作内容
2012.6.15-6.18
搜集相关的设计资料,确定选题;
20012.6.19-6.20
搜集并熟悉相关课题资料,整理出设计思路;
20012.6.21
将整体思路模块化,并对本组成员进行工作分组;
2012.6.22-6.23
整理思路,画出工作流程图和设计原理图
2012.6.24-2012.6.25
着重编写和调试运行程序
2012.6.26-6.27
结合硬件配置系统环境,并进行系统验证
2012.6.28
整理所有资料撰写电子文档
目录
一、课程设计目的和要求:
3
二、课程设计题目:
4
三、课程设计平台环境:
4
四、实现功能及特色:
4
五、任务分配:
4
六、客户端程序设计内容分析:
4
1、总电路功能介绍4
2、原理图、流程图6
3、实验资源配置8
4、直流电机运行及方向控制程序:
8
七、感想体会:
14
八、参考文献14
课程设计任务书及成绩评定15
一、课程设计目的和要求:
1、掌握接口硬件开发平台的使用方法,利用现有的实验平台和PC机,组成一个微机模拟应用系统,结合一个实际的接口技术问题在实验台上编程模拟实现。
2、由一个主控机监控和若干个下位机组成,主控机负责数据处理,下位机负责访问接口。
3、掌握基本接口电路的综合应用。
4、掌握接口电路的驱动程序和界面软件的设计与编制,学会调试与测试接口软件的一般方法。
5、微机接口技术及接口芯片的综合应用。
二、课程设计题目:
第3题:
微机直流电机控制
设计一直流电机控制系统,实现对电机的正转,反转和速度控制。
三、课程设计平台环境:
Windows2000+实验台+VC++6.0
四、实现功能及特色:
采用MFID实验平台和直流电机模块进行硬件的连接及编写软件控制方向,使直流电机可以进行正反方向运转。
五、任务分配:
1.画出工作流程图和设计原理图(吴通)
2.着重编写和调试运行程序(吴通、朱韬)
3.结合硬件配置系统环境,并进行系统验证(周思亮、杨晨)
4.整理所有资料撰写电子文档(朱韬、杨金)
六、客户端程序设计内容分析:
1、总电路功能介绍
1)直流电机PWM调制控制系统具有加速、减速、正转、反转、停止控制功能。
操作开关通过中断控制直流电机的加速、减速、正转、反转、停止控制功能,并通过LCD液晶显示。
振荡、时钟电路和复位电路由80C51单片机内部给出。
直流电机转动速度由LCD液晶显示。
操作开关状态由液晶显示器显示。
2)直流电机转速
直流电机的数学模型可用下图表示,电机的电枢电动势Ea的正方向与电枢电流Ia的方向相反,Ea为反电动势;电磁转矩T的正方向与转速n的方向相同,是拖动转矩;轴上的机械负载转矩T2及空载转矩T0均与n相反,是制动转矩。
直流电机的数学模型
根据基尔霍夫第二定律得U=Ea-Ia(Ra+Rc)得直流电机的转速公式n=Ua-IR/CeΦ,推出n=Ea/CeΦ,可以看出,对于一个已经制造好的电机,当励磁电压和负载转矩恒定时,它的转速由回在电枢两端的电压Ea决定,电枢电压越高,电机转速就越快,电枢电压降低到0V时,电机就停止转动;改变电枢电压的极性,电机就反转。
2、原理图、流程图
1)整个工程的原理接线图:
直流电机实原理图
2)流程图:
实验框图:
3)实验平台与扩展板用26芯排线相连
3、实验资源配置
1)电源:
机内供电,将平台的电源开关拔到“内”的位置上。
2)本实验所涉及的资源:
8255,直流电机,4只TIP122,1K电阻6只,500Ω电阻2只,ø5红色发光二极管1只,ø5绿色发光二极管1只,C1815三极管4只,IN4004二极管4只。
3)I/O端口地址:
8255的4个端口地址为300H~303H。
其中A口=300H,B口=301H,C口=302H,命令口=303H
4)软件资源:
MF2KI集成开发环境软件提供了丰富的汇编语言和C/C++语言程序开发工具
4、直流电机运行及方向控制程序:
#include
#include
#include
#include
#include
#definePAXBYTE[0x1FFF]//A口地址;
#definePBXBYTE[0x3FFF]//B口地址;
#definePCXBYTE[0x5FFF]//C口地址;
#defineCONXBYTE[0x7FFF]//*控制字地*/;
ucharkey=0;//定义key为全局变量
uinta=100;
ucharn=5;//单次增加的步长,用于输出脉冲占空比控制
uintk1=0,mn=10;//设置mn为转向标志位
ucharbai,shi,ge;
uintseg_code[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98,0xff};//0~9的七段显示代码;
/*THEMAINPROCESS*/
voidmain()
{
CON=0x80;
P1_5=0;//使电机停转;
TMOD=0x15;//定时器1工作在模式1
TH1=0xFF;//定时器1的溢出中断时间为50ms;
TL1=0xb0;
ET1=1;
TR1=1;
while
(1)
{
key=GetKey();
/*case1~case9是预先设定的速度,方便电机直接调节到该速度,避免通过’+’键调节*/
switch(key)
{case'1':
{a=10;break;}
case'2':
{a=25;break;}
case'3':
{a=40;break;}
case'4':
{a=55;break;}
case'5':
{a=70;break;}
case'6':
{a=90;break;}
case'7':
{a=110;break;}
case'8':
{a=130;break;}
case'9':
{a=150;break;}
case'+':
{P1_4=0;control();break;}//电机加速
case'-':
{control();break;}//’-‘代表减速
case'=':
{P1_7=0;P1_6=1;mn=0;control();break;}//电机顺时针转
case'c':
{P1_7=1;P1_6=0;mn=1;control();break;}//逆时针转
case'/':
{control();}//‘/‘键按下时,电机开始转动
default:
break;//不影响电机运行
}
}
}
/*THEENDOFMAINPROCESS*/
/*THEINTERRUPTIONFUNCTION*/
voidtime()interrupt3//中断号为3,即是定时器1溢出中断
{//此处是计时50ms中断一次
TR1=0;//此函数用于显示速度
k1+=TL0;
display(a/100,a%100/10,a%10,mn);
/*if(count==51)
{
sprintf(s,"%04d",k1%1000);//注意sprintf的用法;//确保有四位输出
count=1;
k1=0;
}
display(a,bai,shi,ge);*/
TH1=0x3c;
TL1=0xb0;
TH0=0x00;
TL0=0x00;
TR1=1;
}
/*THEINTERRUPTIONFUNCTION*/
/*THEGETKEYFUNCTIONWHICHWASUSEDTOGETTHEINFORMATIONFROMTHEKEY*/
/*行信号从P1口的低四位读进,列信号从P2口的高四位读进*/
ucharGetKey()
{
P1_0=0;
P1_1=1;
P1_2=1;
P1_3=1;
P2_0=1;
P2_1=1;
P2_2=1;
P2_3=1;
_nop_();_nop_();//适当的延时以便消除抖动
if(!
P2_0)return'7';
if(!
P2_1)return'8';
if(!
P2_2)return'9';
if(!
P2_3)return'/';
P1_0=1;
P1_1=0;
P1_2=1;
P1_3=1;
_nop_();_nop_();
if(!
P2_0)return'4';
if(!
P2_1)return'5';
if(!
P2_2)return'6';
if(!
P2_3){P1_4=0;return'*';}
P1_0=1;
P1_1=1;
P1_2=0;
P1_3=1;
_nop_();_nop_();
if(!
P2_0)return'1';
if(!
P2_1)return'2';
if(!
P2_2)return'3';
if(!
P2_3)return'-';
P1_0=1;
P1_1=1;
P1_2=1;
P1_3=0;
_nop_();_nop_();
if(!
P2_0)return'c';
if(!
P2_1){P1_4=0;return'0';}//P1_4和P1_5脚通过一个“与”门用来防止误启动
if(!
P2_2)return'=';
if(!
P2_3)return'+';
return0;
}
/*延时程序*/
/*THEDELAYFUNCTION*/
voiddelay(uinti)
{
uintj,k;
for(;i>0;i--)
for(j=10;j>0;j--)
for(k=10;k>0;k--);
}
/*THEDISPLAYFUNCTION*/
voiddisplay(ucharbai,ucharshi,ucharge,uintmn)
{
PB=0x08;//00001000
PA=seg_code[ge];
delay
(2);
PB=0x04;//00000100
PA=seg_code[shi];
delay
(2);
PB=0x02;//00000010
PA=seg_code[bai];
delay
(2);
PB=0x01;//00000001
PA=seg_code[mn];
delay
(2);//注意这儿的延时越短越好,应为处理终端的时间越短,对电机//的实时性显示就越好;
}
/*THECONTROLFUNCTION*/
/*
由于参数a是一个全局变量,代表着脉冲的占空比,每次调用函数时;
必须注意参数a值;
*/
/*如果按键为‘-’,‘+’(加速减速)以及‘c',’=‘(正转反转)时,不需跳出循环,按其他键时,需要跳出循环,必须需要重新设置占空比*/
/*P1_4和P1_5脚通过一个“与”门用来防止误启动*/
voidcontrol()
{
EA=1;
while
(1)
{
if(a>=150)
a=150;//设置了a的最大值,限定了电机的最高速度
if(a<=10)
a=10;//设置了a的最小值,限定了电机的最高速度
P1_5=1;//与P1_4信号形成控制L298的控制信号达到控制转速的目的
delay(a);//调用延时,形成脉宽的调节
P1_5=0;//电机逐渐停转;
delay(160-a);
/*以下的程序改变a的值达到改变脉冲宽度的目的*/
key=GetKey();
if(key=='-')//减速
a=a-n;
elseif(key=='+')
{a=a+n;}//加速
elseif(key=='=')//如果按下’=‘键,则电机顺时针转;
{
P1_6=1;
P1_7=0;
mn=0;
}
elseif(key=='c')//反转
{P1_7=1;
P1_6=0;
P1_4=1;
mn=1;
}
elseif(key=='*'||key=='0')//如果按下停止键’*‘或者’0’;
{P1_5=0;P1_4=1;//ENA=0(P1_5=0)电机停转;
break;
}
elseif(key!
=0)//如果没有按键按下,则继续在此while循环中运行
{
switch(key)
{
case'1':
{a=10;break;}
case'2':
{a=25;break;}
case'3':
{a=40;break;}
case'4':
{a=55;break;}
case'5':
{a=70;break;}
case'6':
{a=90;break;}
case'7':
{a=110;break;}
case'8':
{a=130;break;}
case'9':
{a=150;break;}
default:
break;
}
}
}
EA=1;
}
七、感想体会:
1、这次课程设计是一次非常好的锻炼机会,历时一个星期左右,通过这一个星期的学习,发现了自己的很多不足,自己知识的不怎么牢固,看到了自己的实践经验更是比较缺乏,理论联系实际的能力还急需提高。
2、课程设计是培养学我们综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们实际工作能力的具体训练和考察过程.此次直流电机控制课程设计,我仍体会颇深。
从中学到很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的很多的不足,自己知识的很多漏洞,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
虽然这只是一次的较简单的课程设计,可是也耗费了我们不少的心血。
3、感激学校让我有这次学习设计的机会,让我受益匪浅,这次学习对于我们没有真正实践经验的同学来说,绝对是一次成长的机会。
八、参考文献
[1]微型计算机接口技术及应用刘乐善等华中科技大学出版社2000年
[2]计算机控制技术朱玉玺等电子工业出版社2006年
[3]微机汇编语言基础教程网络教程2007年
[4]汇编语言与微机原理教程(第二版)顾元刚等2003年
课程设计任务书及成绩评定
课题名称:
微机直流电机控制
完成者:
吴通朱韬周思量杨晨杨金
1、设计的目的与要求。
1、掌握接口硬件开发平台的使用方法,利用现有的实验平台和PC机,组成一个微机模拟应用系统,结合一个实际的接口技术问题在实验台上编程模拟实现。
2、由一个主控机监控和若干个下位机组成,主控机负责数据处理,下位机负责访问接口。
3、掌握基本接口电路的综合应用。
4、掌握接口电路的驱动程序和界面软件的设计与编制,学会调试与测试接口软件的一般方法。
5、微机接口技术及接口芯片的综合应用。
2、设计进度及完成情况
日期
内容
2012.6.15-6.18
搜集相关的设计资料,确定选题;
20012.6.19-6.20
搜集并熟悉相关课题资料,整理出设计思路;
20012.6.21
将整体思路模块化,并对本组成员进行工作分组;
2012.6.22-6.23
整理思路,画出工作流程图和设计原理图
2012.6.24-2012.6.25
着重编写和调试运行程序
2012.6.26-6.27
结合硬件配置系统环境,并进行系统验证
2012.6.28
整理所有资料撰写电子文档
3、成绩评定
学号
姓名
设计成绩(老师填写)
09408214
吴通
09408216
朱韬
09408215
周思亮
09408213
杨晨
09408212
杨金
评定老师:
(签字)
二00年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 电流 电机 控制 第三