基于直流电机德微机接口课程设计论文.docx
- 文档编号:11290848
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:14
- 大小:54.73KB
基于直流电机德微机接口课程设计论文.docx
《基于直流电机德微机接口课程设计论文.docx》由会员分享,可在线阅读,更多相关《基于直流电机德微机接口课程设计论文.docx(14页珍藏版)》请在冰豆网上搜索。
基于直流电机德微机接口课程设计论文
摘要
本设计主要通过微机原理与接口技术实验箱对直流电机控制进行模拟,使直流电机实验正转、反转、加速、减速等功能。
在现代电子产品中,直流电机广泛应用于ATM机、喷绘机、刻字机、写真机、喷涂设备、医疗仪器及设备、计算机外设及海量存储设备、精密仪器、工业控制系统、办公自动化、机器人等领域。
所以直流电机的控制是一门很实用的技术。
实验主要是通过按键的不同和外部串口程序来设置直流电机的转速。
软件部分采用了汇编语言编写程序代码和MFC编写的串口控制软件,通过判断、跳转、循环、中断、串行通信等基本技术实现。
此系统可以通过键盘输入相关数据,并根据需要,实时对步进电机工作方式进行设置,具有实时性和交互性的特点。
直流电机,将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋转电机。
定义输出或输入为直流电能的旋转电机,称为直流电机,它是能实现直流电能和机械能互相转换的电机。
当它作电动机运行时是直流电动机,将电能转换为机械能;作发电机运行时是直流发电机,将机械能转换为电能。
本次课程设计是采用以8255芯片和微型直流电机为主要元器件,以C语言为编程语言和MF2KP编译软件为基础共同组成的微机控制直流电机电路。
关键词:
直流电动机,汇编,MF2KP
目录
1绪论..................................................3
2课程设计的目的........................................3
3课程设计的内容........................................4
4实验原理和相关电路图..................................4
4.1实验原理..........................................4
4.2实验连线..........................................4
4.3实验电路图........................................5
5程序源代码............................................6
6课设总结.............................................13
7参考文献............................................15
1绪论
汇编语言(AssemblyLanguage)是面向机器的程序设计语言。
在汇编语合中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。
这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。
于是汇编语言亦称为符号语言。
使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。
汇编程序把汇编语言翻译成机器语言的过程称为汇编。
定义输出或输入为直流电能的旋转电机,称为直流电机,它是能实现直流电能和机械能互相转换的电机。
当它作电动机运行时是直流电动机,将电能转换为机械能;作发电机运行时是直流发电机,将机械能转换为电能。
在直流电动机工作时,电枢转动,换向器配合电刷对电流进行换向,直流电流交替地由导体两端流入,保证每个线圈边中的电流始终是一个方向,从而形成一种方向不变的转矩,使电动机能连续地旋转,这就是直流电动机的工作原理。
此次在课程设计之初,我们先是对电路的功能进行必要而完善的分析,再进行对电路连接和程序代码的确定以选择出一种最适合本次课题的方案。
在达到课题要求的前提下保证最经济、最方便、最优化的设计策略。
然后根据电路的功能和元器件的性能进行电路设计,同时调整电路的连接和布局以达到资源最优配置,最后运用MF2PK软件编译源代码,通过微机控制直流电机的运转。
2课程设计的目的
微机原理和接口技术是一门实践性强的学科,相关知识仅靠学习教科书不能很好的掌握,必须通过实践才能比较直观和深刻的理解。
在综合课程设计过程中,给学生提出一个综合性的设计题目,仅提供设计任务和要求,不给出具体的实验原理图与参考程序,学生根据设计要求确定实验方案,选择合适的器件,进行电路设计,实现电路连接,编写调试程序,完成给定的设计任务。
通过课程设计课程,可检验学生在微机原理与接口综合应用方面分析问题与解决问题的能力,从而帮助学生系统地掌握微机原理的接口技术的相关知识,达到将知识融会贯通的目的。
同时给学生提供更多、更好的训练机会,培养学生的创新能力。
本次实验的设计目的归纳为:
一,掌握微机控制直流电机运动的电路的设计方法;二,通过直流电机实验,学习直流电机的控制原理与方法;三,掌握MF2KP汇编软件的使用和利用多功能电路实验箱测试电路及连接的方法;四,程序设计和电路连接的优化达到技术指标。
3课程设计的内容
1.了解直流电机的基本原理,掌握直流电机的转动编程方法;
2.了解影响电机转速的因素有那些;
3.利用实验箱小键盘、直流电机,设计一个具有直流电机控制基本功能的实验装置,实现直流电机正、反向旋转,加速、减速控制;
4.完成接口电路的设计;
5.完成控制程序的编写
4实验原理和相关电路图
4.1实验原理:
可编程并行接口8255是一个具有两个8位(A端口和B端口)和两个4位(C端口)并行I/O端口的芯片。
在与外设进行数据传输时,把A、B、C3个端口分为两组。
A组由A端口和C端口的高4位组成。
B组由B端口和C端口的低4位组成。
为了满足多种数据传输的要求,可以通过对8255的编程用方式控制字设置3种工作方式来实现。
这3种工作方式为:
方式0(基本I/O工作方式);方式1(选通I/O工作方式);方式2(双向传送方式)。
8255的控制字有工作方式控制字和C端口的位置位/复位控制字。
工作方式控制字是必须要预先设定的,C端口的位置位/复位控制字可视需要而定。
一般来说,在方式0中,C端口除在特殊场合用作联络信号外,如:
双机通信,基本上都作为数据端口参与I/O操作。
但在方式1或方式2下,C端口的相应位可用来作为I/O操作的控制和同步信号,也可用作对CPU的中断请求信号。
实验装置直流电机模块共有三个控制输入端,PC0、PC1端控制电机的启停、正反转,DJ端接收直流电机速度控制模拟信号。
当PC0、PC1接收的命令等于00或11时,电机停止运转;当PC0、PC1接收的命令等于10时,电机正转;当PC0、PC1接收的命令等于01时,电机反转。
当电机运转时,调节电位器旋扭,可使直流电机按给定速度运转。
4.2实验连线:
①将JP8加上短路块,为直流电机提供电源。
②PC0------->正极,PC1------->负极
4.3实验电路图:
5程序源代码
//调宽模式控制直流电机转速
#include
#include
#include
char*title="DCmotorusePWMmethod";
#definePC0x302
#defineCR0x303
voidrotate(floatper);//相当于画波形函数
voidmain()
{
charch;
outportb(CR,0x90);
//8255状态字,PC低四位输出
outportb(PC,0xff);
//PC口各位写1,初始化端口C
clrscr();
puts(title);
puts("1------>100%dutycycle");
puts("2------>50%dutycycle");
puts("3------>exit");
while
(1)
if(kbhit())
{
ch=getch();
switch(ch)
{
case'1':
rotate(1.0);break;
case'2':
rotate(0.5);break;
case'3':
return;
default:
break;
}
}
outportb(PC,0xff);
}
voidrotate(floatper)
{
intc,ton,toff;
gotoxy(10,10);
printf("duty:
%2.2f",per);
ton=(int)100*per;
toff=100-ton;
for(c=0;c<20;c++)
{
outportb(PC,0);
delay(ton);
outportb(PC,1);
delay(toff);
}
delay(200);
}
//调频模式控制直流电机运转速度
#include
#include
#include
char*title="DCmotorusePFMmethod";
#definePC0x302
#defineCR0x303
voidrotate();
voidrotate2();
voidrotate4();
voidrotate8();
voidmain()
{
charch;
outportb(CR,0x90);
outportb(PC,0xff);
clrscr();
puts(title);
puts("1------>100%dutycycle");
puts("2------>50%dutycycle");
puts("3------>exit");
while
(1)
if(kbhit())
{
ch=getch();
switch(ch)
{
case'1':
rotate1();break;
case'2':
rotate2();break;
case'3':
return;
default:
break;
}
}
outportb(PC,0xff);
}
voidrotate1()//电机全速运转
{
intc,i,ti=50;
gotoxy(10,10);
printf("duty:
100%");
for(c=0;c<10;c++)
for(i=0;i<8;i++)
{
outportb(PC,0);
delay(ti);
outportb(PC,1);
delay(ti);
}
outportb(PC,1);
}
voidrotate2()//电机以半速运转
{
intc,i,ti=50;
gotoxy(10,10);
printf("duty:
50%");
for(c=0;c<10;c++)
for(i=0;i<4;i++)
{
outportb(PC,0);
delay(ti);
outportb(PC,1);
delay(ti);
}
}
//控制直流电机运动方向程序
#include
#include
#include
char*title="DCmotorforward/backward";
//向端口C输入不同电平控制电机运动状态
/*
PC10
bitr2r1
10forward//正转
//C1高电平C0低电平
01backward//反转
//C1低电平C0高电平
00stop//停止
//C1低电平C0低电平
*/
//定义端口地址
#definePC0x302
#defineCR0x303
//定义控制字
#defineGFOR0x02
#defineGBACK0x01
#defineGSTOP0x00
unsignedcharport;
voidgfor()//正转
{
puts("forward");
port=GFOR;
outportb(PC,port);
delay(500);
}
voidgback()//反转
{
puts("backward");
port=GBACK;
outportb(PC,port);
delay(500);
}
voidgstop()//停止
{
puts("stop");
port=GSTOP;
outportb(PC,port);
}
main()//主函数
{
chark;
outportb(CR,0x90);
outportb(PC,0);
clrscr();
puts(title);
//屏幕提示键入相关数字控制响应动作
puts("1----exit");
puts("2----forward");
puts("3----backward");
puts("4----stop");
while
(1)
{
if(kbhit())//判断键入数字,并调用相关函数作出响应
{
k=getch();
switch(k)
{
case'1':
return0;
case'2':
gfor();break;
case'3':
gback();break;
case'4':
gstop();break;
default:
break;
}
}
}
outportb(PC,0xff);
}
5课设总结
通过这次微机接口课程设计,我们对接口技术知识进行了一次巩固和加深,通过对直流电机原理的熟悉和程序运行编程,我们对直流电机在工业和生活中的应用也有了一定的了解。
接口技术是一门理论性很强,同时实践性也很强的的一门学科。
只有多付出努力,多动手才能有收获,本次接口课程设计就给了我们一个很好的实践的机会。
完成课程设计需要先查资料,再进行方案的选择和设计,最后进行调试。
课设是使我们能够去真正的来动手独立完成整个过程。
这一点正是我们在学习好理论只是后所欠缺的。
通过在实验箱上的调试,我们接触到实体学习,更进一步了解了原理。
在安装调试过程中,可以发现理论上可行电路设计或编程很有可能调试不出结果,这就需要我们来对电路进行整体的分析,考虑到各个环节的影响,才能发现问题。
在课设的整个过程中,同学之间要相互合作,许多资料要通过同学们之间的资源共享可以达到事半功倍的效果。
这就是我们以后必须要学会的团队合作的精神。
一个人的思想不可能面面俱到,相互合作就能弥补这种不足。
相互学习,以达到共同进步。
此次实验共分为二个主要的核心部分,即软件部分和硬件部分,由我们小组的二个成员相互合作共同完成。
通过这次课程设计,让我真正体会到什么是团队协作,真正的了解到团队合作的有利之处,真正感受到团队成员为了共同的目标联合在一起时的强大的力量。
从一开始我们就通过集体商量确定各个成员的分工,接下来每位成员都只用按照自己的任务按部就班的执行下去,效率非常的高。
分配各成员工作时,我们各尽其能,做到资源优化配置。
具体工作时,各成员都频繁交流,避免各自为政,当工作出现问题是,各成员应仔细商讨,尽快找到问题的症结,从而尽快解决问题。
我在完成课程设计的过程中体会到团队合作的乐趣,有什么问题和想法拿出来一起探讨与分享,将会有更好的答案,活跃了一个人的思维,丰富了我们的头脑,学会去接受别人,肯定别人,同样也得到了别人的尊重与肯定,除了讨论之外,还需积极独立思考,唯独通过自己的独立思考,才能解决相关问题,才能提高对专业知识的熟悉程度,以后才能学会用,同样这也是我该努力的两个方向。
一向惯于“独立思考”的我学会了积极的同团队成员交流,取长补短,共同进步。
“独学而无友则孤陋而寡闻”,只有和同学多交流多学习才能不断的提高自身水平。
最重要的一点,我学会了一种快速有效的学习方法。
以往的学习都是老师讲学生记,不懂得地方就靠解答大量习题帮助记忆,学习的主要目的是通过最后的考试。
课程设计使我发现考试真的并不是最重要,最重要的是能运用所学的知识。
我突破了传统学习模式,把被动接受转变为主动学习。
不再是用学到的知识解题,而是在实际运用时遇到什么学什么,重在把知识应用于实际。
我们即将踏入社会,在进入之前我们需要学习的东西还很多,为人处世的各个技能,如何协调彼此的关系值得我们去细细品味。
在课程设计当中合作交流是必不可少的,每个人都把这样一种事情当成是自己的重要任务,并为之付出很大的努力,不断的去思考自己所遇到的问题,不断的去改善自己。
在生活当中,我们面对很多问题的时候所采取的具体行动也是不同的,但是我们面对问题时候的态度是非常重要的,而不是一个人的能力到底有多强,态度决定一切,端正的态度和明确的目标是我们解决问题的关键。
本次课程设计提高了我的接口水平,使我的动手能力增强了,同时为以后做更复杂的硬件设计做好了基础。
希望每次的课程设计都能收到一定的效果,有自己的创新点。
6参考文献
[1]陈红卫,微型计算机基本原理与接口技术,科学出版社,北京市东黄城根北街16号,2009年8月。
[2]宋杰,汪志宏,江敏,微机原理与接口技术课程设计,机械工业出版社,北京市西城区百万庄大街22号,2005年4月。
[3]PeterAbel著,沈美明,温冬婵译,人民邮电出版社,北京市崇文区夕照寺街14号,2004年2月
[4]陈建泽,32位微型计算机原理与接口技术,高等教育出版社,北京市崇文区夕照寺街14号,2006年8月。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 直流电机 微机 接口 课程设计 论文