ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:152.33KB ,
资源ID:23549669      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23549669.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(步进电机转速实时控制课程设计.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

步进电机转速实时控制课程设计.docx

1、步进电机转速实时控制课程设计计算机原理与接口技术课程设计报告题目:步进电机转速实时控制课程设计学生姓名: 专 业: 班 级: 学 号: 指导教师: 起止时间:电子信息工程学院目录一 方案设计二 硬件系统的基本原理(一)步进电机35BYJ46(二)8255A可编程并行接口芯片(三)74LS138译码芯片简介三 软件框图及设计思想四 软件清单及程序流程图五 心得体会六 主要参考资料附:proteus仿真原理图一 方案设计本设计采用电压为DC12V的四相八拍步进电机35BYJ46型电机,用ULN2003作为步进电动机驱动电路主芯片,以8255A作为8086并行输出接口,8086对步进电机的控制信号则

2、通过8255A送到ULN2003.关于转向与转速,通过查表的方式实现,以逐次递增方向查表,依次输出表中数据,则步进电机正转;以逐次递减方向查表,则步进电机反转,即通过一个表实现步进电机的正转与反转。转速则通过调用延时子程序,当调用延时较长的子程序时,则步进电机转速慢,当调用延时较短的子程序时,步进电机转速加快。二 硬件系统的基本原理(一) 步进电机35BYJ46 1. 励磁线圈及其励磁顺序如下图及下表所示:123456785+4-3-2-1- 2. 工作原理:4相步进电机示意图见下左图,转子由一个永久磁铁构成,定子分别由4组绕组构成电机定子和转子示意图 电气连接示意图当S1连通电源后,定子磁场

3、将产生一个靠近转子为N极,远离转子为S极才磁场,这样的定子磁场和转子的固有磁场发生作用,转子就会转动,正确地S1、S4的送电次序,就能控制转子旋转的方向。例如:若送电的顺序为S1闭合断开S2闭合断开S3闭合断开S4闭合断开,周而复始的循环,在定子和转子共同作用下,电机就瞬时针旋转:若送电的顺序为S4闭合断开S3闭合断开S2闭合断开S1闭合断开,周而复始的循环,则电机就逆时针旋转,原理同理。 3步进电机与8255A接口关系(二)8255A可编程并行接口芯片1.8255简介Intel 8086/8088 系列的可编程外设接口电路(Programmable Peripheral Interface)

4、简称 PPI,型号为8255(改进型为8255A及8255A-5),具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。 8255A在使用前要写入一个方式控制字,选择A、B、C三个端口各自的工作方式,共有三种; 方式0 :基本的输入输出方式,即无须联络就可以直接进行的 I/O方式。其中A、B、C口的高四位或低四位可分别设置成输入或输出。 方式1 :选通I/O,此时接口和外围设备需联络信号进行协调,只有A口和B口可以工作在方式1,此时C口的某些线被规定为A口或B口

5、与外围设备的联络信号,余下的线只有基本的I/O功能,即只工作在方式0. 方式2: 双向I/O方式,只有A口可以工作在这种方式,该I/O线即可输入又可输出,此时C口有5条线被规定为A口和外围设备的双向联络线,C口剩下的三条线可作为B口方式1的联络线,也可以和B口一起方式0的I/O线。 8255A是一个并行输入、输出器件,具有24个可编程设置的I/O口,包括3组8位的I/O为PA口、PB口、PC口,又可分为2组12位的I/O口:A组包括A口及C口高4位,B组包括B口及C组的低4位。2.8255的编码与工作方式选择(1)8255A的工作方式控制字8255A工作方式控制字 (2)8255A的端口地址编

6、码:需要根据实际电路而定例如图示的接法:它的A口、B口、C口和控制口的编码如下A7A6A5A4A3A2A1A0地址A口111100000F0HB口111100100F2HC口111101000F4H控制口111101100F6H(三)74LS138译码芯片简介74LS138 为3 线8 线译码器,共有 54/74S138和 54/74LS138 两种线路结构型式。 其工作原理: 当一个选通端(E3)为高电平,另两个选通端(E1)和/(E2))为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。比如:A0A1A2=011时,则Y6输出端输出低电平信号。上图

7、所示,输出为Y4,即A0A1A2=001,对应于CBA三位输入,C和B为低电平,A为高电平时,Y4输出低电平。三、软件框图及设计思想 根据步进电机的励磁顺序列写控制步进电机顺序转动的输出的数据表 初始化8255A的工作方式 设定需要步进电机转过的步数 顺序依次逐个延时(调用延时函数1:延时较长,实现慢转)输出表中数据 设定需要步进电机快速转过的步数顺序依次逐个延时(调用延时函数2:延时较短,实现快转)输出表中数据 设定需要反向转过的步数 逆序依次逐个延时(调用延时函数1,慢速)输出表中数据 设定需要步进电机快速反向转过的步数 逆序依次逐个延时(调用延时函数2,快速)输出表中数据。以此循环,则可

8、实现让步进电机先低速正转到高速正转,再从高速正转到低速反转,再高速反转,周而复始。主函数四软件清单及流程图给定正转数据表tableSTACK SEGMENT STACK初始化5255工作方式 DW 256 DUP(?)STACK ENDS设慢速正转动步数DXDATA SEGMENTTABLE DB 01H,03H,02H,06H,04H,0CH,08H,09H; BX=table首地址DATA ENDSCX=table数据表的字节个数CODE SEGMENT输BX到B口 ASSUME CS:CODE,DS:DATA调用延时dallySTART: MOV AX,DATA MOV DS,AXBX=

9、BX+1MAIN: MOV AL,80H DX=DX-1 OUT 0F6H,AL是零标志位为0? MOV DX,20否A1: MOV BX,OFFSET TABLECX=cx-1Cx=0? MOV CX,0008H 否A2: MOV AL,BX 是 OUT 0F2H,AL CALL DALLY Cx=cx-1 , (修正CX,使CX与BX对应,让变速连惯) INC BX DEC DX JZ D1 LOOP A2 JMP A1 设快速正转动步数DXd1: dec cx;修正输(BX)到B口 mov dx,20a3: MOV AL,BX调用延时函数dally_k OUT 0F2H,ALBX=BX+

10、1 CALL DALLY_k INC BXDX=DX-1 DEC DX零标志位为0? JZ D2是 LOOP A3否 JMP m3否CX=cx-1Cx=0?d2: dec bx;修正 MOV DX,20是BX=Table首地址a4: MOV AL,BX OUT 0F2H,ALCX=table数据表字节个数 CALL DALLY DEC BXBx=bx-1 ;修正BX,使BX与CX对应,让换向连惯 DEC DX JZ D3 LOOP A4 JMP M1 d3: dec cx;修正设置反向转动步数DX MOV DX,40输出(BX)到B口a5: MOV AL,BX OUT 0F2H,AL调用延时函

11、数dally CALL DALLY_kBX=BX-1 dec BXDX=DX-1 DEC DX是零标志位为0? JZ D4 LOOP A5否CX=cx-1Cx=0? JMP m2否d4: jmp main是M1: MOV BX,OFFSET TABLEBX=table 首地址 MOV AX,0007H ADD BX,AXAX=0007h MOV CX,0008HAdd bx,.ax;(把table尾地址给BX) JMP A4M2: MOV BX,OFFSET TABLECX=table数据表的字节个数 MOV AX,0007H ADD BX,AXCX=;(修正CX,使CX与BX对应,让反向加速

12、连惯) MOV CX,0008H JMP A5M3: MOV BX,OFFSET TABLE设置反向加速转过步数DX MOV CX,0008H JMP A3输出(BX)到B口DALLY: PUSH CX MOV CX,5000H调用延时函数dally_kA9: PUSH AXBX=BX-1 POP AXDX=DX-1 LOOP A9 POP CX是零标志位为0? RET否DALLY_K: PUSH CX否CX=cx-1Cx=0? MOV CX,0F00H是A10: PUSH AXBX=table 首地址 POP AXAX=0007h LOOP A10 POP CXAdd bx,ax;(使BX=

13、table的尾地址) RETCX=table数据表的字节数CODE ENDS结束 END START出栈AX延时函数CX=CX-1入栈CX保护现场Cx=0?(CX)=F000H返回是否出栈CX入栈AX五心得体会通过这次课程设计,我了解了步进电动机的工作原理及接口电路原理,学会了用编程实现步进电动机正反转及加速的方法。通过汇编实现让8086控制步进电动机正转、反转、变速,巩固了对步进电动机的编程控制的理论基础,并从中获得了初步的应用经验。在编程的过程中,我巩固了用汇编语言处理数据的能力,特别是对数表数据的灵活运用能力。在调试及试运行的过程中也遇到不少问题,最后都通过查阅课本及网络一一解决了。刚开

14、始的时候,为了实现反转,设置了两个数据表:一个表实现正转,一个表实现反转。但是在让步进电机改变运行状态(正转变反转、低速正转变高速正转、低速反转变高速反转)的时候,会出现抖动,总是不能进行平缓地过渡,经过EMU8086软件和proteus仿真软件的多次调试发现是在换状的时候重先给BX赋了初值,导致步进电机从前一个状态换到后一个状态的时候,两个状态的控制数据不连惯,所以会有跳动。后来,我去掉一个数据表,用一个表实现正反转(通过从低地址向高地址递加读数据实现正转,通过从高地址向低地址读数据实现反转),在换状态的时候不重赋初值,让步进电机紧接着上一个状态的终止位置进入下一个状态,即实现各个状态的平缓转换。这次经过调试后发现步进电机在改变状态的时候会出现停滞问题,再经过EMU8086对程序的调试,发现是在换状态的时候CX的值和BX的值出现偏差引起的,后来在每次改变状态的时候,加入一个修正值(根据不同的切换修正BX或修正CX),即实现了步进电机从一个状态到另一个状态的平缓过渡。通过一系列故障的分析与排除,让我既提升了对实际步进电动机编程应用的能力,又巩固了8086的接口扩展技术编程技术。六.主要参考资料微型计算机原理与接口技术 张荣标 编著微机原理及应用 实验指导书 成都大学实验教材 附:proteus 仿真原理图

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1