微型计算机控制技术课程设计 设计题目:步进电机控制系统_第1页
微型计算机控制技术课程设计 设计题目:步进电机控制系统_第2页
微型计算机控制技术课程设计 设计题目:步进电机控制系统_第3页
微型计算机控制技术课程设计 设计题目:步进电机控制系统_第4页
微型计算机控制技术课程设计 设计题目:步进电机控制系统_第5页
已阅读5页,还剩8页未读, 继续免费阅读

下载本文档

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

文档简介

1、微型计算机控制技术课程设计设计题目:步进电机控制系统班 级:电升本1103 姓 名:何世宁 学 号:29小型步进电机控制系统一、 课程设计目的课程设计是本科教学全过程中的重要环节。微机应用系统设计与综合实验(实践)课程设计主要培养我们自动化专业学生,运用所学知识解决计算机应用领域内实际问题能力,进一步提高学生运用计算机编程语言综合编程能力、程序调试技能和微机系统接口综合应用及电路设计能力。1、学习在PC系统中扩展简单的IO接口的方法。2、熟练掌握和运用汇编和C语言编写程序控制8255各口的输入输出,并正确带动数码管及步进电机;能熟练运用汇编和C语言实现8254的定时功能,以确保8255输出的脉

2、冲频率稳定。3、熟练掌握ISA总线配置方式下硬件实验的调试,并能独立的排除故障,以确保实验的顺利进行。4、.巩固和加深课堂所学知识;5、学习掌握一般的软硬件的设计方法和查阅、运用资料的能力;6、通过步进电机控制系统设计与制作,深入了解与掌握步进电机的运行方式、方向、速度、启/停的控制。二、 设计的题目名称及要求设计题目:小型步进电机控制系统设计。设计要求:(1)分别用C语言和汇编语言编程完成硬件接口功能设计;(2)基于80x86微机接口硬件电路设计调试;(3)控制功能要求:小键盘给定分段速度,数码管显示当前步进电机启动与停止、方向、速度信息;(4)具有本地与远程(串行方式下)功能。三、实验设备

3、PC机一台(装有TDPIT软件)、唐都AEDK8688ET实验箱。使用硬件:8086 PC,8255芯片,键盘数码管,步进电机驱动电路,步进电机。系统设计:键盘采用实验板提供的4*4键盘,使用4个数码管实时显示系统当前状态。四、设计的思想和实施方案4.1.2 步进电机的工作原理步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单

4、。步进电机动态指标及术语: 1、步距角精度:步进电机每转过一个步距角的实际值与理论值的误差。用百分比表示:误差/步距角*100%。不同运行拍数其值不同,四拍运行时应在5%之内,八拍运行时应在15%以内。2、失步:电机运转时运转的步数,不等于理论上的步数。称之为失步。3、失调角:转子齿轴线偏移定子齿轴线的角度,电机运转必存在失调角,由失调角产生的误差,采用细分驱动是不能解决的。4、电机正反转控制:当电机绕组通电时序为AB-BC-CD-DA或()时为正转,通电时序为DA-CA-BC-AB或()时为反转。驱动控制系统组成:使用、控制步进电机必须由环形脉冲,功率放大等组成的控制系统,其方框图如下:脉冲

5、信号的产生:脉冲信号一般由单片机或CPU产生,一般脉冲信号的占空比为0.3-0.4左右,电机转速越高,占空比则越大。下图步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。图1是该四相反应式步进电机工作原理示意图。 图1 四相步进电机步进示意图开始时,开关sb接通电源,sa、sc、sd断开,b相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和c、d相 绕组磁极产生错齿,2、5号齿就和d、a相绕组磁极产生错齿。当开关sc接通电源,sb、sa、sd断开时,由于c相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和c

6、相绕组的磁极对齐。而0、3号齿和a、b相绕组产生错齿,2、5号齿就和a、d相绕组磁极产生错齿。依次类推,a、b、c、d四相绕组轮流供电,则转子会沿着a、b、c、d方向转动。四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图2.a、b、c所示:a. 单四拍 b. 双四拍 c八拍图2.步进电机工作时序波形图 4.1.2 8255A的功能简介 Intel 8086/80

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

8、外围设备需联络信号进行协调,只有A口和B口可以工作在方式1,此时C口的某些线被规定为A口或B口与外围设备的联络信号,余下的线只有基本的I/O功能,即只工作在方式0.方式2: 双向I/O方式,只有A口可以工作在这种方式,该I/O线即可输入又可输出,步进电机8086CPULED数码显示模块小键盘输入模块8255模块电机状态显示模块CPU 8255LED显示模块 步进电机模块 键盘扫描模块本次设计,对8255的使用是这样的:8255工作于方式0,A口低四位接键盘及数码管显示单元的X1X4;C口低四位接键盘及数码管显示单元的Y1Y4; C口高四位接步进电路的驱动电路,使电机转动起来;B口接数码管的A、

9、B、C、D、E、F、G和DP,以使数码管显示电机的转向和转速。8255的A口高四位本次课程设计没有用到。此外,本次设计还用到了实验箱中的键盘及数码管显示单元:方向键:控制步进电机运行方向,无论电机处于运行或停止状态,每按下一次,电机转动方向反向;运行/暂停键:控制电机运行与否。电机转动时按下,电机暂停,当前电机运行参数不变,再次按下时,电机继续按暂停前参数运行;停止键:无论电机处于任何状态,按下此键,电机停止转动,电机各运行参数复位,默认参数为:“顺时针,停止状态,1档”;档位键:无论电机处于任何状态,均可设定电机档位。数码管显示信息: 左起第一个数码管显示当前电机的运行状态:S(Stop)表

10、示当前电机为停止状态;E(Enable)表示当前电机为运行状态;P(Pause)表示当前电机为暂停状态。第二个数码管未使用,只有小数点点亮。第三个数码管显示电机运行方向:C(Clockwise)表示电机运行方向为顺时针;A(Anti-clockwise)表示电机运行方向为逆时针。第四个数码管显示电机的档位:1、2、3、4分别表示1、2、3、4档。键盘数码管内部连线如下图:五、硬件电路原理图图 步进电机控制系统硬件电路原理如上图示:该原理图涉及到系统总线、可编程外围接口芯片8255、键盘及数码管显示单元和步进电机及其驱动电路8255的D0D7 依次接系统总线的XD0XD7,A1和A0依次接系统总

11、线的XA3和XA2;WR和RD 依次接系统总线上的XIOW和XIOR;8255的CS接系统总线的IOY0, 8255的A口低四位PA0PA4依次接小键盘的X1X4(列);C口低四位PC0PC3分别接小键盘的Y1Y4(行); C口高四位PC4PC7依次接驱动电路的A、B、C和D;B口PB0PB7分别接数码管的A、B、C、D、E、F、G和DP;A口高四位没用到。图 步进电机模块此模块的主要功能是通过接收8255的C口输入信号来控制步进电机的转动,A,B,C,D分别代表不同的四个相位,分别接入到PC0,PC1,PC2和PC3,实现转动控制。 图 LED模块六、课程设计中遇到的问题及解决方法在本次课程

12、设计过程中,我遇到了一下问题:首先,在显示模块中,在做数码管显示时,每次可以输出四位信息,而且要输出的字符须转化为相应的ASCII才行,否则就不能输出想要的东西。显示模块的调试一般是程序问题,硬件连接很简单,一般不会出错,我在调试时,开始没有初始化8255,导致结果不能输出。再就是相应的端口一定不能定义错误。这在显示模块调试中应该多注意。在刚开始编程时,各种功能大部分是由主程序来完成的。由于主程序过于复杂,可读性不高。使得在以后的程序的调试中遇到了很大的麻烦。后来把主程序的部分功能转化成子程序来实现,并在一些重要的地方增加了注释,使的程序的可读性大大加强。调试也变的比较简单了。其次,在使用小键

13、盘时容易死机。出现死机的原因有很多,有时候同一个程序换台机子运行就会死机,有时候同一台机子同一个程序运行多次就会死机,不过总的来看死机的出现多少是和所编写的程序有关,记得我以前用小键盘时就是很容易就死机了,不过在这次的课程设计中 我把所有的和小键盘有关的程序都用了子函数代替,大大简化了主程序的结构,这样就基本再也没发生过死机现象了。再者,当小键盘按下不松时电机也停止转动这种情况出现在电机的加速、减速和改变转向中,这主要是在原有的keyscan程序中有一段判断按键是否弹起的程序,将此段换成一个合适的软件延时便可以起到很好的效果(按键不松时可以连续的加速和减速)。再就是寄存器的使用问题。在编程时,

14、子程序的调试也是相当重要,由于子程序不可避免的使用AXBXCXDX通用寄存器一个或几个。使得原主程序中的通用寄存器的内容很容易被覆盖,对子程序中所有的通用寄存器出入栈即可以避免上诉的问题,不用考虑使用的是哪几个寄存器,使用起来又比较简单方便。数码转换问题,首先查找许多相关的典型程序,例如:十六位二进制数转换为10进制BCD码,可将AX中的二进制数先后除以1000,100,10,每次除法所得的商,即是BCD的千位、百位和十位数,余数是个位。TRAN: PUSH CX SHL DX,CL PUSH DX XCHG AL,AH SUB DX,DX SUB AH,AH MOV CX,1000 MOV

15、CL,10 DIV CX DIV CL XCHG AX,DX ADD DL,AL MOV CL,4 MOV CL,4 SHL DX,CL SHL DX,CL MOV CL,100 ADD DL,AH DIV CL MOV AX,DX ADD DL,AL POP DX MOV CL,4 POP CX而在算术运算方面也遇到了不少的问题,由于设计过程中存在着小数所以很多时候总会出现算术方面错误,具体表现为结果的溢出或者结果小数点位置错误。解决的方法通常是先将所要计算的数值乘以10、100等使得数值为整数,然后再进行计算,而在结果输出时再除以相映的数值从而实现小数的算术运算功能,而不需要采用定义浮点型

16、去计算小数以避免出现数值定义的错误。另一个常见的错误就是自定义存储空间之间的数值存放,因为在许多时候总是需要将结果保存在某一段存储空间里面,由于对存储空间的定义使得其大小范围各有不同,所以对其赋值时总是会出现溢出或数值转换的错误。而在子程序调用以循环方面存在的问题是指针的计数以及标志位清零或置1搞错从而使子程序运算错误或者进入死循环等。所采取的解决方法是对指针计数值在各个部分运算结束后进行清零以保证指针初值的正确。最后的问题就是DOS系统功能调用和BIOS中断调用,因为本课题设计中要实现软件时钟,所以需要对软件延迟以及中断调用有一定的了解,对此在设计时查阅了一些相关的软件中断命令。当个模块都调

17、试成功后,即可合成到一起运行。本系统电机的速度可以通过速度增减键来控制。通过验证各按键是否被有效采用,来检验该系统是否正确的完成了指定的功能。七、收获与体会通过本次微机应用系统的课程设计,我对这学期学习的微型计算机原理有了一个良好的、整体的认识。同时对微机原理相关知识进行了一次系统总结。还挺高了自己的动手能力,和运用理论来指导实践的能力。本次是微机原理的实践学习阶段,通过查阅相关资料,我对理论的认识加深不少。在整个过程中,查阅了不少资料,例如数码管的显示原理及编程方法等是通过自学完成.知道如何尽快读懂别人写的源程序,从中借鉴好的地方来完善自己的程序。同时,我对利用汇编语言设计程序有了一定的认识

18、。平时在书本学习的都是一条一条的指令,没有很清楚地理解指令的真正含义。在这次课程设计中我们在老师的指导下学习了很多课堂上没有学习到的知识也体会到同学之间合作的重要性,体会到只有平时多练习,多看程序才能自己编写程序,自己调试程序。通过这次的课程设计使我对汇编语言有了更加深入的学习,通过几天的设计,我掌握了DOS和BIOS各个功能调用的同时,还对子程序的调用有了很深的理解,也学到了自己以前从没学过的东西。通过这次实验我学会了灵活应对实验中突发的各种错误和故障(比如:死机),始终保持大脑的清醒和敏捷,冷静地分析和排除出现错误的各种原因(当然有时也离不开老师的认真指导),并最终顺利地完成了实验。再有以前对C语言的一些标准库函数不太了解,通过实践,使我在这个方面的

温馨提示

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

评论

0/150

提交评论