微机原理课程设计 步进电机的正反转及调速控制_第1页
微机原理课程设计 步进电机的正反转及调速控制_第2页
微机原理课程设计 步进电机的正反转及调速控制_第3页
微机原理课程设计 步进电机的正反转及调速控制_第4页
微机原理课程设计 步进电机的正反转及调速控制_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、成绩 课程设计报告 题 目 步进电机正反转及调速 控制系统的设计课 程 名 称 微机原理及应用 院 部 名 称 机电工程学院 专 业 电气工程及其自动化 班 级 10电气1班 学 生 姓 名 管志成 学 号 1004103027 课程设计地点 c304 课程设计学时 20 指 导 教 师 李国利 金陵科技学院教务处制摘 要步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件,具有快速启动能力,定位精度高,能够直接接受数字量,因此被广泛地应用于数字控制系统中,如数模转换装置、精确定位、计算机外围设备等,在现代控制领域起着非常重要的作用。 本设计基于proteus 7.8设计环境,运用了808

2、6 cpu芯片以及74273芯片、74244芯片和步进电机以及7位小功率驱动芯片uln2003a、按钮、指示灯等辅助硬件电路,设计了步进电机正反转及调速系统。绘制软件流程图,进行了软件设计并编写了源程序,最后对软硬件系统进行联合调试。该步进电机的正反转及调速系统具有控制步进电机正反转的功能,还可以对步进电机进行调速,不同的按钮对应不同的速度,并且在没有速度按钮按下的时候,步进电机自动切换到停止状态。关键词:步进电机;正反转;调速控制;uln2003a芯片;8086微机系统目 录一、概述1.1 课程设计的目的·······&#

3、183;······································ 4 1.2课程设计的要求·········&

4、#183;··································4二、总体设计方案及说明 2.1 系统总体设计方案···········

5、·······························52.2系统工作框图·················&#

6、183;····························5三、系统硬件电路设计 3.1 intel 8086 微处理器的简介···············

7、3;···················63.2 步进电机的原理····························

8、3;···············73.3 uln2003a的简介································

9、··········83.4 74154芯片简介·····································

10、3;·······93.5 74ls273芯片简介········································

11、·· 103.6 8086最小系统的设计········································11 3.7 步进电机及其驱动电路的设计·

12、3;······························12 3.8 电机状态显示电路的设计················

13、3;···················12 3.9 输入采样电路的设计····························

14、············13 3.10系统总电路图····································

15、;··········14四、系统软件部分设计 4.1 系统流程图····································&

16、#183;···········15 4.2 系统软件源程序····································

17、;········16 4.2.1电机绕组通电顺序设定····································16 4.2.2 延时子程序设计&

18、#183;········································16 4.2.3 汇编源程序及说明······&#

19、183;·································16五、总结 5.1 系统软硬件的联合调试·············

20、;··························21 5.2 问题分析和解决方案·····················&

21、#183;···················235.3 心得与体会····························&#

22、183;····················23六、参考文献····························

23、··························23附录:总电路图······················

24、83;·····························25一、概述1.1 课程设计的目的通过本课程设计,使学生掌握控制系统设计的一般步骤,掌握系统总体控制方案的设计方法。使学生进一步掌握微型计算机应用系统的硬、软件开发方法,输入/输出(i/o)接口技术,应用程序设计技术,并能结合专业设计简单实用的微

25、型计算机应用系统。针对课堂重点讲授内容使学生加深对微型计算机硬件原理的理解及提高汇编语言程序设计的能力,为以后的毕业设计搭建了微机系统应用平台,提高学生的开发创新能力。1.2 课程设计的要求步进电动机正反转控制系统的设计设计一个步进电动机正反转控制系统,要求:1)系统功能:点动sw1按键控制步进电动机正转,点动sw2按键控制步进电动机反转,点动sw3按键控制步进电动机停止,在进行相应操作时,对应led将被点亮。按下sw4按键使步进电机在所设定的一级速度下运转,按下sw5使步进电机在所设定的二级速度下运转,按下sw6使步进电机在设定的三级速度下运转,按下sw7使步进电机在满转速下运转;2)给出系

26、统设计方案,画出硬件连线图,并说明工作原理;3)画出程序框图并编写程序;4)软硬件联调,完成系统工作调试;在以上工作基础上完成课程设计报告,包括设计任务与要求,总体方案说明,电路原理图与说明,软件流程图和源程序清单,问题分析与解决方案,结论与体会,参考资料等。二、总体设计方案与说明2.1 系统总体设计方案本设计是基于windows环境下的proteus7.8软件,在其中进行硬件电路的的设计,汇编语言源程序的编写以及以上两部分工作完成后的软硬件系统的联合调试。本设计的处理控制系统由intel 8086微处理器在最小模式下组成的单处理器系统构成,用来进行对外围硬件电路进行信息采集、数据处理和控制。

27、由8086芯片来检测外围电路中正反转按键是否按下,若按下,则相应地改变对步进电机的施加的脉冲顺序,实现正转和反转的控制,没有键按下则电机处于停止状态;同样由8086处理器来检测外围电路中的调速按钮是否按下,若有键按下,则调用相应的时间的延时子程序,以对脉冲频率进行控制以实现对步进电机速度的调节。显示电路采用led指示灯来指示电机的运行状态驱动电路采用uln2003a芯片,该芯片的电流增益高,带负载能力强。步进电机采用35by48s03四相步进电机,电压为dc12v,额定转速为360rpm。2.2系统工作框图图1 系统工作框图三、系统硬件部分设计3.1 intel 8086 微处理器的简介int

28、el 8086是intel公司于1978年推出的16位微处理器。它采用hmos工艺制造,片内有2.9万个晶体管,单一电源+5v供电,时钟频率4.77-10mhz,片内数据总线、寄存器和外部数据总线都为16位,最大可寻址的物理地址为1m。要掌握一个cpu的工作性能及使用方法,首先应该了解它的编程结构。在8086cpu的编程结构上,从功能上,分为两部分,即总线接口部件(biu)和执行部件(eu)。8086的逻辑地址为20位,物理地址为16位,对于编程员来说,只需要考虑逻辑地址即可。8086为40只引脚双列直插式封装。intel 8086 可以工作在最大和最小两种模式下,最小模式和最大模式的确定是通

29、过一条mn/mn所接的逻辑电平是“1”还是“0”来完成。在最小方式下,微处理器被用来构成一个小规模的单处理机系统,微处理器本身必须提供全部的的控制信号给外围电路。在最大方式下,微处理器被用来构成一个较大规模的多机系统。在最小模式下的信号如下:(1)ad15ad0(address data bus)地址/数据复用引脚(双向工作) 分时复用的地址/数据线。(2)a19/s6a16/s3(address/status)输出,是分时复用的地址/状态线。用作地址线时,a19a16与a15a0一起构成访问存储器的20位物理地址。(3)bhe/ s7 (bus high enabale/status)总线高

30、字节有效信号。三态输出,低电平有效,用来表示当前高8 位数据线上的数据有效。(4)nmi(non maskable interrupt request)不可屏蔽中断请求信号。由外部输入,上升沿触发,不受中断允许标志的限制。(5)intr(interrupt request)可屏蔽中断请求信号。由外部输入,电平触发,高电平有效。(6)rd(read)读信号。三态输出,低电平有效,表示当前cpu正在读存储器或io端口。(7) clk(clock)主时钟引脚(输入)。由8284时钟发生器输入。8286cpu可使用的最高时钟频率随芯片型号不同而异,8086为5mhz,8086-1为10mhz,8086

31、-2 为8mhz。(8) reset(reset)复位信号。由外部输入,高电平有效。(9) ready(ready)准备就绪信号。由外部输入,高电平有效,表示cpu 访问的存储器或io端口已准备好传送数据。(10) test 测试信号。由外部输入,低电平有效。cpu 执行wait 指令时,每隔5 个时钟周期对test 进行一次测试,若测试test 无效,则cpu 处于踏步等待状态,直到test有效,cpu才继续执行下一条指令。(11) mn/mx 工作模式选择信号。由外部输入,mn/mx 为高电平时,cpu 工作在最小模式;mn/mx为低电平时,cpu工作在最大模式。(12) gnd/vcc电

32、源地和电源。8086cpu只需要单一的+5v电源,由vcc引脚输入。(13) inta 中断响应信号。向外部输出,低电平有效。在中断响应周期,该信号表示cpu响应外部发来的intr信号,用作读中断类型码的选通信号。(14) ale 地址锁存允许信号。向外部输出,高电平有效。在最小模式系统中用作地址锁存器的片选信号。(15) den数据允许信号,三态输出,低电平有效。(16) dt/r 数据发送/接收控制信号(17) m/io 存储器/io 端口访问信号。(18) wr写信号。三态输出,低电平有效,表示当前cpu正在写存储器或io端口。(19) hold总线请求信号。由外部输入、高电平有效。表示

33、有其他共享总线的处理器/控制器向cpu请求使用总线。(20) hlda 总线请求响应信号。向外部输出,高电平有效。cpu 一旦测试到有hold 请求,就在当前总线周期结束后,使hlda有效,表示响应这一总线请求,并立即让出总线使用权。在不要求使用总线的情况下,cpu中指令执行部件可继续工作。hold变为无效后,cpu也将hlda置成无效,并收回对总线的使用权,继续操作。3.2 步进电机的原理步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电

34、机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。本设计采用35by48s03四相八拍型步进电机,电压为dc12v,额定转速为360rpm。步进电机的工作原理示意图如下:图2 四相步进电机步进示意图开始时,开关sb接通电源,sa、sc、sd断开,b相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和c、d相绕组磁极产生错齿,2、5号齿就和d、a相绕组磁极产生错齿。当开关sc接通电源,sb、sa、sd断开时,由于c相绕组的磁

35、力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和c相绕组的磁极对齐。而0、3号齿和a、b相绕组产生错齿,2、5号齿就和a、d相绕组磁极产生错齿。依次类推,a、b、c、d四相绕组轮流供电,则转子会沿着a、b、c、d方向转动。在本设计中,我们使用四相八拍的运行方式,即控制正转时,电机绕组的通电顺序为:ad-d-dc-c-cb-b-ba-a;反转时,电机绕组的通电顺序为a-ab-b-bc-c-cd-d-da。3.3 uln2003a的简介uln2003a是一个7路反向器电路,即当输入端为高电平时uln2003a输出端为低电平,当输入端为低电平时uln2003a输出端为高电平。图3 uln2

36、003a由于集成电路集驱动和保护于一体,作为小功率步进电机的专用驱动芯片,uln2003a是该高耐压、大电流达林顿陈列,由7个硅npn达林顿管组成。该电路的特点如下:uln2003a的每一对达林顿都串联一个2.7k的基极电阻,在5v的工作电压下,它能与ttl、cmos电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。uln2003a工作电压高,工作电流大,灌电流可达500ma,并且能够在关态时承受50v的电压,输出还可以在高负载电流并行运行。uln2003a在各种控制电路中常常作为驱动继电器的芯片,其芯片内部做成一个消线圈反电动势二极管。uln2003a的输出端允许通过ic电流20

37、0ma,饱和压降vce约1v左右,耐压bvceo约为36v。输出电流大,故可以用来直接驱动步进电机。图4 uln2003a内部结构3.4 74154芯片简介74hc154是一款高速cmos器件,74hc154引脚兼容低功耗肖特基ttl(lsttl)系列。74154这种单片4 线16 线译码器非常适合用于 hyperlink " 和g2 为低时, 它可将4 个二进制编码的输入译成16 个互相独立的输出之一。实现解调功能的办法是:用4 个输入线写出输出线的地址,使得在一个选通输入为低时数据通过另一个选通输入。当任何一个选通输入是高时,所有输出都为高。图5 7415474154 的引脚图如

38、右图所示:truth table真值表: inputs 输入selected output 选定输出(l)g1g2dcballlllly0lllllhy1llllhly2llllhhy3lllhlly4lllhlhy5lllhhly6lllhhhy7llhllly8llhllhy9llhlhly10llhlhhy11llhhlly12llhhlhy13llhhhly14llhhhhy15xhxxxxnonehxxxxxnone表1 74154真值表3.5 74ls273芯片简介74hc373是8位数据锁存器。主要用于数码管、按键等等的控制 其真值表如下: dnleoeonhhlhlhll

39、15;llq0××hz表2 74hc373真值表 芯片管脚图如下:图6 74ls273引脚图u2的功能是实现ad0.7的锁存,由于8086 cpu的总线是地址/数据复用总线,因此需要在传送地址信号的时候,将数据信号锁存起来,即将数据信号锁存在74273触发器中,待地址传送完毕后再按需要将数据信号输出。 3.6 8086最小系统的设计8086最小系统原理图如下所示:图7 8086最小系统图8086最小系统由intel 8086微处理器、74273 ttl带公共时钟复位八d触发器、以及74154 ttl 4线16线译码器等组成。8086有20位地址线,其中高4位a19-a16与

40、状态线s6-s3分时复用,低16位ad15-ad0与数据线分时复用。在总线周期的t1时将地址送出后,就必须用锁存器将它们锁存起来,以便在t2及以后搞死位地址线改为状态输出,低16位地址线该做数据线使用。另外,表明八位数据线是否起作用的数据总线允许信号是与状态线s7分时复用的,故也需要锁存。21条线需采用3片8位地址锁存器,这里采用74273。与外围硬件电路的连接的i/o部分由4线-16线译码器74154组成,用来分配i/o硬件地址。3.7 步进电机及其驱动电路的设计步进电机及其驱动电路图如下图所示:图8 步进电机及驱动电路步进电机35by48s03由驱动芯片uln2003a驱动,步进电机脉冲信

41、号由8086芯片发出,由数据线ad0-ad7经过锁存器74273传送到步进电机的驱动芯片,由驱动芯片带动步进电机运转。还有三只反应电机转动方向的led由锁存器直接驱动。3.8 电机状态显示电路的设计电机状态显示电路的电路图如下:图9电机状态显示电路电机状态显示电路由三只led发光二极管串接限流电阻,接在数据锁存器的输出端组成,电机工作时的状态信号由cpu 8086给出,经过数据总线送到数据锁存器输入端,再由锁存器的输出端输出显示在led发光二极管上。3.9 输入采样电路的设计输入采样电路的电路图如下:图10 输入采样电路1(正反转)图11 输入采样电路2 (调速)输入采样电路是由按键sw1-s

42、w7经过上拉电阻与74244 ttl 八同相三态缓冲器-线驱动器相连组成,当地址总线的地址信号经地址译码器译码后,输出地址片选信号,选中相应的总线驱动器,将按键数据读出,并将数据经过地址/数据复用总线ad0-ad3送到8086芯片,由处理器进行处理并做出相应的响应。3.10 系统总电路图系统总电路图如下图所示:图12 系统总电路图系统总电路图由上述的808 cpu组成的最小系统和外围的硬件电路如输入采样电路、电机驱动电路、显示电路、步进电机组成。系统运行时,线初始化电机,使其处于停止等待响应状态,由输入采样电路采集正反转和调速按钮开关状态,若有正反转按钮按下,且有调速按钮按下时,8086 cp

43、u 相应地输出正转或反转的脉冲序列,并调用调速按钮对应的延时子程序,使得步进电机以某一设定的速度正转或反转运行起来,并且响应的正、反转指示灯被点亮,按停止按钮,电机停转。四、系统软件部分设计4.1 系统流程图如下:图13 软件流程图4.2 系统软件源程序4.2.1 电机绕组通电顺序设定: a相接数据线ad0,b相接数据线ad1,c相接数据线ad2,d相接数据线ad3;首先要定义电机顺序运行时正反转的数据表:正转:ad-d-dc-c-cb-b-ba-a根据转动相序可知,若要步进电机正转,则要将正转步数设置为 069h, 068h, 06ch, 064h, 066h, 062h, 063h, 06

44、1h反转:a-ab-b-bc-c-cd-d-da根据转动相序可知,若要步进电机反转,则要将反转步数设置为051h, 053h, 052h, 056h, 054h, 05ch, 058h, 059h 4.2.2 延时子程序设计:延时子程序利用cpu执行指令时所需要耗费的始终周期,来实现延时功能delay1 proc near 所用周期数 push bx push cx mov bx,200 4del1:mov cx,295 4del2:loop del2 17/5 dec bx 2 jnz del11 16/4 pop cx pop bx ret先将bx、cx入栈保护,给cx赋记数初值为295,

45、在loop del2这条指令中,使得上述标注时钟周期的指令执行了295次,此时bxbx-1,重新给cx赋记数初值为295,执行了295次后再bxbx-1,以此类推,直到bx中的数值减至0,将bx、cx弹出栈,返回调用延时子程序处。延时时间的计算:8086 cpu时钟频率f=5mhz,时钟周期为0.2usdelay1=(4+4+17/5+2+16/4)*0.2us*295*25=25ms以此设计其他延时子程序的延时时间,详见汇编源程序。4.2.3汇编源程序及说明:.model small.8086.stack.code.startupmov dx,0200hmov al,00b3h ;电动机停止

46、,指示灯点亮out dx,alagain:mov dx,0400h ;244地址 in al,dx ;读入开关状态 test al,01h jz foreward ;正转 test al,02h jz backward ;反转 jmp againforeward:mov si,0lop0:mov dx,0200h ;输出口地址 mov al,ffwsi out dx,al mov dx,0600h in al,dx ;读入开关状态 test al,01h ;一级调速按钮是否按下 jz speedz1 test al,02h ;二级调速按钮是否按下 jz speedz2 test al,04h

47、;三级调速按钮是否按下 jz speedz3 test al,08h ;满转速按钮是否按下 jz speedz4 jmp stopfore:mov dx,0400h ;244地址 in al,dx ;读开关状态 test al,02h ;反转按钮是否按下 jz backward test al,04h ;停止按钮是否按下 jz stop inc si cmp si,8 jb lop0 jmp forewardbackward:mov si,0lop1:mov dx,0200h ;输出口地址 mov al,revsi out dx,al mov dx,0600h in al,dx ;读入开关状态

48、 test al,01h ;一级调速按钮是否按下 jz speedf1 test al,02h ;二级调速按钮是否按下 jz speedf2 test al,04h ;三级调速按钮是否按下 jz speedf3 test al,08h ;全转速按钮是否按下 jz speedf4 jmp stop back:mov dx,0400h ;244地址 in al,dx ;读入开关状态 test al,01h ;正转按钮是否按下 jz foreward test al,04h ;停止按钮是否按下 jz stop inc si cmp si,8 jb lop1 jmp backwardstop:mov

49、dx,0200h mov al,00b3h ;电动机停止,指示灯点亮 out dx,al jmp againspeedz1:call delay1 ;正转一级转速 jmp forespeedz2:call delay2 ;正转二级转速 jmp forespeedz3:call delay3 ;正转三级转速 jmp forespeedz4:call delay4 ;正转满转速 jmp forespeedf1:call delay1 ;反转一级转速 jmp backspeedf2:call delay2 ;反转二级转速 jmp backspeedf3:call delay3 ;反转三级转速 jmp

50、 backspeedf4:call delay4 ;反转满转速 jmp backdelay4 proc near ;满转速延时子程序 push bx push cx mov bx,25del41:mov cx,295del42:loop del42 dec bx jnz del41 pop cx pop bx retdelay4 endpdelay3 proc near ;三级速延时子程序 push bx push cx mov bx,50del31:mov cx,295del32:loop del32 dec bx jnz del31 pop cx pop bx retdelay3 endpdelay2 proc near ;二级转速延时子程序

温馨提示

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

评论

0/150

提交评论