微机原理与接口课程设计直流电机控制_第1页
微机原理与接口课程设计直流电机控制_第2页
微机原理与接口课程设计直流电机控制_第3页
微机原理与接口课程设计直流电机控制_第4页
微机原理与接口课程设计直流电机控制_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课题名称:直流电机控制 摘要本设计主要通过微机原理与接口技术实验箱对直流电机控制进行模拟,使直流电机实验正转、反转、加速、减速等功能。在现代电子产品中,直流电机广泛应用于atm机、喷绘机、刻字机、写真机、喷涂设备、医疗仪器及设备、计算机外设及海量存储设备、精密仪器、工业控制系统、办公自动化、机器人等领域。所以直流电机的控制是一门很实用的技术。实验主要是通过按键的不同和外部串口程序来设置直流电机的转速。软件部分采用了汇编语言编写程序代码和mfc编写的串口控制软件,通过判断、跳转、循环、中断、串行通信等基本技术实现。此系统可以通过键盘输入相关数据, 并根据需要, 实时对步进电机工作方式进行设置,

2、具有实时性和交互性的特点。直流电机, 将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋转电机。定义输出或输入为直流电能的旋转电机,称为直流电机,它是能实现直流电能和机械能互相转换的电机。当它作电动机运行时是直流电动机,将电能转换为机械能;作发电机运行时是直流发电机,将机械能转换为电能。本次课程设计是采用以8255芯片和微型直流电机为主要元器件,以c语言为编程语言和mf2kp编译软件为基础共同组成的微机控制直流电机电路。关键词:直流电动机,汇编,mf2kp目录1绪论.32课程设计的目的.33课程设计的内容.44实验原理和相关电路图.4 4.1实验原理.4 4.2实验

3、连线.4 4.3实验电路图.55程序源代码.66课设总结.137 参考文献.151 绪论 汇编语言(assemblylanguage)是面向机器的程序设计语言。在汇编语合中,用助记符(memoni)代替操作码,用地址符号(symbol)或标号(label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编程序把汇编语言翻译成机器语言的过程称为汇编。定义输出或输入为直流电能的旋转电机,称为直流

4、电机,它是能实现直流电能和机械能互相转换的电机。当它作电动机运行时是直流电动机,将电能转换为机械能;作发电机运行时是直流发电机,将机械能转换为电能。在直流电动机工作时,电枢转动,换向器配合电刷对电流进行换向,直流电流交替地由导体两端流入,保证每个线圈边中的电流始终是一个方向,从而形成一种方向不变的转矩,使电动机能连续地旋转,这就是直流电动机的工作原理。此次在课程设计之初,我们先是对电路的功能进行必要而完善的分析,再进行对电路连接和程序代码的确定以选择出一种最适合本次课题的方案。在达到课题要求的前提下保证最经济、最方便、最优化的设计策略。然后根据电路的功能和元器件的性能进行电路设计,同时调整电路

5、的连接和布局以达到资源最优配置,最后运用mf2pk软件编译源代码,通过微机控制直流电机的运转。 2课程设计的目的微机原理和接口技术是一门实践性强的学科,相关知识仅靠学习教科书不能很好的掌握,必须通过实践才能比较直观和深刻的理解。在综合课程设计过程中,给学生提出一个综合性的设计题目,仅提供设计任务和要求,不给出具体的实验原理图与参考程序,学生根据设计要求确定实验方案,选择合适的器件,进行电路设计,实现电路连接,编写调试程序,完成给定的设计任务。通过课程设计课程,可检验学生在微机原理与接口综合应用方面分析问题与解决问题的能力,从而帮助学生系统地掌握微机原理的接口技术的相关知识,达到将知识融会贯通的

6、目的。同时给学生提供更多、更好的训练机会,培养学生的创新能力。本次实验的设计目的归纳为:一,掌握微机控制直流电机运动的电路的设计方法;二,通过直流电机实验,学习直流电机的控制原理与方法;三,掌握mf2kp汇编软件的使用和利用多功能电路实验箱测试电路及连接的方法;四,程序设计和电路连接的优化达到技术指标。3课程设计的内容1. 了解直流电机的基本原理,掌握直流电机的转动编程方法;2. 了解影响电机转速的因素有那些;3. 利用实验箱小键盘、直流电机,设计一个具有直流电机控制基本功能的实验装置,实现直流电机正、反向旋转,加速、减速控制;4. 完成接口电路的设计;5. 完成控制程序的编写4实验原理和相关

7、电路图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端口

8、除在特殊场合用作联络信号外,如:双机通信,基本上都作为数据端口参与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-负极

9、4.3实验电路图:5程序源代码code segment assume cs:code,ds:codestart: mov ch,00h ;键值左移4位存ch用,先初始化 mov cl,00h ;控制步进电机单步走用作标志 mov dx,203h ;置8255a控制口地址 mov al,90h ;a口输入,c口输出 out dx,alloop1: mov dx,202h ;8255a的c口 mov ah,00000110bmov al,00000110b ;键盘第一行out dx,al mov dx,200h ;8255a的a口in al,dx ;获取列码cmp al,0ffh jne loop

10、2 ;有键按下mov dx,202h ;列码全1无键按下扫描第二行mov ah,00000101bmov al,00000101b out dx,almov dx,200hin al,dxcmp al,0ffhjne loop2mov dx,202h ;第三行mov ah,00000011bmov al,00000011b out dx,almov dx,200hin al,dxcmp al,0ffhjne loop2jmp loop1loop2: call delay ;消除抖动in al,dxcmp al,0ffhje loop1mov bl,0feh ;确定有键按下则求列值mov bh,

11、0 ;bh存键值loop3:cmp al,bl ;扫描列值je onecmp bh,7 ;所有列码都扫描完je loop1 ;重新检测按键inc bhrol bl,1 ;列码循环左移一位jmp loop3one: cmp ah,00000110b ;第一行按键 je one2 cmp ah,00000101b ;第二行按键 je two2 cmp ah,00000011b ;第三行功能键 je three2 call jump jmp wait1one2: call first ;调用第一行处理程序 jmp wait1two2: call second ;调用第二行处理程序 jmp wait1

12、three2:call third ;调用第三行处理程序wait1: mov dx,200hwait2: in al,dx cmp al,0ffh jne wait2 ;等待按键 jmp loop1org 200hnum db ? ;存步进电机步数first proc near mov dx,203h ; 开控制口 mov al,90h ;a口输入,c口输出 out dx,al cmp ch,0 ;第一次执行按键 jz ch0 ; add bh,ch ;显示八位,ch0: mov dx,201h ;b口 mov al,bh ;键值送al out dx,al ;在二极管上显示bh即输入的键值 m

13、ov dx,208h ;打开d/a out dx,al ;控制直流电机转速 mov num,al ;步进电机转的步数 mov cl,4 sal bh,cl; bh值左移四位 mov ch,bh ;bh值送ch mov cl,0 ;cl清零,不影响步进电机单步走 retfirst endpsecond proc near add bh,8h ;扫描第二行 mov dx,203h mov al,90h out dx,al cmp ch,0 ; jz ch1 add bh,chch1: mov dx,201h ;8255a的b口输出 mov al,bh out dx,al ;输出键盘的值 mov d

14、x,208h out dx,al mov num,al ;步进电机步数 mov cl,4 sal bh,cl ;左移4位 mov ch,bh mov cl,0 retsecond endpthird proc near add bh,10h ;扫描第三行 mov dx,203h ;设置方式控制字 mov al,90h out dx,al mov dx,201h ;二极管显示为全0;b口 mov al,00h ; out dx,al cmp bh,13h ;比较键值13h为”+” jz done2 ;正转 cmp bh,12h ;12h为”-” jz done3 ;反转 cmp bh,11h ;

15、11h为”,” jz done4 ;正向一步一步转 cmp bh,10h ;10h 为”.” jz done5 ;反向一步一步转retthird endpdone2: call program1done3:call program2done4:call program3done5:call program4 delay proc near ; 键盘 延时子程序 push cx mov cx,1800hnext: dec cx jne next pop cx retdelay endp delay2 proc near ;电机 延时子程序 push cx mov cx,5000hnext2: d

16、ec cx jne next2 pop cx retdelay2 endpjump proc near retjump endpprogram1 proc near ;正向连续转 push cx mov dx,203hmov al,90hout dx,almov dx,202h; c口mov cl,num ;电机步数zheng:mov al,10h ;正向out dx,al ;给a相通电call delay2dec cl ;计算已进步数jz done1 ;步数已完成,返回mov al,20h ;输出第二拍模型out dx,al ;给b相通电call delay2 ;延迟;dec cljz do

17、ne1mov al,40h ;输出第三拍模型out dx,al ;给c相通电call delay2dec cljz done1mov al,80h ;输出第四拍out dx,al ;给d相通电call delay2dec cljz done1mov al,10h ;回到原点out dx,alcall delay2dec cljnz zheng ;abcda循环通电 jmp loop1 pop cxretprogram1 endpdone1:jmp loop1program2 proc near ;反向连续转 push cx mov dx,203hmov al,90hout dx,al mov

18、dx,202h ;c口mov cl,num ;设置转的步数fan: mov al,10h ;反向转动out dx,al ;给a通电call delay2dec cljz done1mov al,80h ;给d通电out dx,al call delay2dec cljz done1mov al,40h ;给c通电out dx,alcall delay2dec cljz done1mov al,20h ;给b通电out dx,alcall delay2dec cl待添加的隐藏文字内容2jz done1mov al,10h ;给a通电out dx,alcall delay2dec cljnz fa

19、n ;adcba通电jmp loop1pop cx retprogram2 endpprogram3 proc near ;正向单步走 mov dx,203h mov al,90h out dx,al mov dx,202h ;c口 cmp cl,00h ;第一次按,给a通电转一步 jz aa1; cmp cl,01h ;cl=1,b通电 jz bb1 cmp cl,02h ;cl=2,c通电 jz cc1 cmp cl,03h ;cl=3,d通电 jz dd1 jmp loop1 ;检测键盘aa1: mov al,10h out dx,al call delay2 inc cl ;自动加一,

20、cl为01h jnz donebb1: mov al,20hout dx,alcall delay2inc cljnz donecc1: mov al,40hout dx,alcall delay2inc cljnz done dd1: mov al,80hout dx,alcall delay2mov cl,00h;jz donejmp loop1 program3 endpprogram4 proc near ;反向单步走 mov dx,203h mov al,90h out dx,al mov dx,202h ;mov cl,0 cmp cl,00h ;cl=0,a通电 jz aa2 c

21、mp cl,01h ;cl=1,d通电 jz dd2 cmp cl,02h ;cl=2,c 通电 jz cc2 cmp cl,03h ;cl=3,b 通电 jz bb2 jmp loop1 ;检测键盘aa2: mov al,10h out dx,al call delay2 inc cl jnz donedd2: mov al,80hout dx,alcall delay2 inc cljnz donecc2: mov al,40hout dx,alcall delay2inc cljnz done bb2: mov al,20hout dx,alcall delay2mov cl,00h ;

22、cl重新置0;jz donejmp loop1program4 endpdone: jmp loop1 ;扫描键盘code endsend start5 课设总结 通过这次微机接口课程设计,我们对接口技术知识进行了一次巩固和加深,通过对直流电机原理的熟悉和程序运行编程,我们对直流电机在工业和生活中的应用也有了一定的了解。接口技术是一门理论性很强,同时实践性也很强的的一门学科。只有多付出努力,多动手才能有收获,本次接口课程设计就给了我们一个很好的实践的机会。完成课程设计需要先查资料 ,再进行方案的选择和设计,最后进行调试。课设是使我们能够去真正的来动手独立完成整个过程。这一点正是我们在学习好理论

23、只是后所欠缺的。通过在实验箱上的调试,我们接触到实体学习,更进一步了解了原理。在安装调试过程中,可以发现理论上可行电路设计或编程很有可能调试不出结果,这就需要我们来对电路进行整体的分析,考虑到各个环节的影响,才能发现问题。在课设的整个过程中,同学之间要相互合作,许多资料要通过同学们之间的资源共享可以达到事半功倍的效果。这就是我们以后必须要学会的团队合作的精神。一个人的思想不可能面面俱到,相互合作就能弥补这种不足。相互学习,以达到共同进步。此次实验共分为二个主要的核心部分,即软件部分和硬件部分,由我们小组的二个成员相互合作共同完成。通过这次课程设计,让我真正体会到什么是团队协作,真正的了解到团队

24、合作的有利之处,真正感受到团队成员为了共同的目标联合在一起时的强大的力量。从一开始我们就通过集体商量确定各个成员的分工,接下来每位成员都只用按照自己的任务按部就班的执行下去,效率非常的高。分配各成员工作时,我们各尽其能,做到资源优化配置。具体工作时,各成员都频繁交流,避免各自为政,当工作出现问题是,各成员应仔细商讨,尽快找到问题的症结,从而尽快解决问题。我在完成课程设计的过程中体会到团队合作的乐趣, 有什么问题和想法拿出来一起探讨与分享,将会有更好的答案,活跃了一个人的思维,丰富了我们的头脑,学会去接受别人,肯定别人,同样也得到了别人的尊重与肯定,除了讨论之外,还需积极独立思考,唯独通过自己的独立思考,才能解

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论