基于8255的步进电机控制系统设计(共17页).doc





《基于8255的步进电机控制系统设计(共17页).doc》由会员分享,可在线阅读,更多相关《基于8255的步进电机控制系统设计(共17页).doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上基于8255的步进电机控制系统设计一、实验设计的目的与要求通过步进电机控制系统实验设计,用8255扩展端口控制步进电机,编写程序输出脉冲序列到8255的PA口,控制步进电机正传,反转,加速,减速。进一步掌握微机原理与接口的理论和实际方法。培养和锻炼开发控制系统的能力。为今后单片机的学习与应用开发打下良好的基础。要求了解步进电机控制的基本原理,掌握控制步进电机的转动的编程方法,进一步了解单片机控制外部设备的常用电路。二、步进电机原理1.步进电机的工作原理 该步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动
2、。图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相绕组的磁极对齐。而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工
3、作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图2.a、b、c所示:图2.步进电机工作时序波形图a. 单四拍 b. 双四拍c八拍2.步进电机的驱动原理步进电动机是一种数字元件,易于数字电路接口,但一般数字电路的信号的能量远远不足以驱动步进电动机。因此,必须有一个与之匹配的驱动电路来驱动步进电动机。对步进电动机驱动一般有如下要求:(1) 能够提供较快的电流上升和下降速度,使电流波形尽量接近矩形。(2) 具有供截止期间释放电流流
4、通的回路,以降低绕组两端的反电动势,加快电流衰减。(3) 具有较高的功率及效率。步进电动机的驱动方式很多,如单极性驱动、双极性驱动、高低压驱动、斩波驱动、细分驱动、集成电路驱动等。三、步进电机的控制1. ULN2003由于集成电路集驱动和保护于一体,作为小功率步进电动机的专用驱动芯片, ULN2003 是高耐压、大电流达林顿陈列,由七个硅NPN 达林顿管组成。 该电路的特点如下: ULN2003 的每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它能与TTL CMOS 电路 直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。 ULN2003 工作电压高,工作电流大,灌电
5、流可达500mA,并且能够在关态时承受50V 的电压,输出还 可以在高负载电流并行运行。ULN2003A在各种控制电路中常用它作为驱动继电器的芯片,其芯片内部做了一个消线圈反电动势的二极管。ULN2003的输出端允许通过IC 电流200mA,饱和压降VCE 约1V左右,耐压BVCEO 约为36V。输出电流大,故可以用来直接驱动步进电机。项目符号数值单位最大输入电压Vi(max)30V集电极-发射极电压Vo(max)50V最大基极输入电流IB(MAX)25mA输出电流Io500mA贮存温度Ts-65150结温Tj175引线耐焊接温度TD3002、脉冲的形成实现对步进电机的控制,微机应能输出有一定
6、周期的控制脉冲。 步骤是:先输出一个高电平,延时一段时间后,再输入一个低电平,然后再延时。改变延时时间的长短,即可改变脉冲的周期,脉冲的周期由步进电机的工作频率确定。用软件形成环形脉冲的程序流程图 3、正反转控制步进电机的旋转方向和内部绕组的通电顺序及通电方式有密切关系。通过改变各相脉冲的先后顺序,就可以改变电机的旋转方向.4、转速控制 控制步进电机的运行速度,实际上是控制系统发出时钟脉冲的频率或换相的周期,即在升速过程中,使脉冲的输出频率逐渐增加;在减速过程中,使脉冲的输出频率逐渐减少。脉冲信号的频率可以用软件延时和硬件中断两种方法来确定。 采用软件延时,一般是根据所需的时间常数来设计一个子
7、程序,该程序包含一定的指令,设计者要对这些指令的执行时间进行严密的计算或者精确的测试,以便确定延时时间是否符合要求。每当延时子程序结束后,可以执行下面的操作,也可用输出指令输出一个信号作为定时输出。采用软件定时, CPU一直被占用,因此CPU利用率低。可编程的硬件定时器直接对系统时钟脉冲或某一固定频率的时钟脉冲进行计数,计数值则由编程决定。当计数到预定的脉冲数时,产生中断信号,得到所需的延时时间或定时间隔。由于计数的初始值由编程决定,因而在不改动硬件的情况下,只通过程序变化即可满足不同的定时和计数要求,因此使用很方便。五、硬件连接图专心-专注-专业六、 程序设计1、程序流程图 开始8255初始
8、化设初始延时值输出一拍脉冲(A)延时输出下一个脉冲(B)延时输出下个脉冲(C)输出下一个脉冲(D)延时延时值减小是否提速是否最快否是2、程序代码:;*;本程序能实现步进电机的正反转与加速,具体过程如下: ;正转加速一段时间,然后停止5秒,然后反向加速一段时间,然后再正转,如此循环往复.;能实现正-停-反,也能实现正-反-停.;*MODE EQU 080H ;8255方式控制字CTL EQU 8000H ;8255端口A地址CONTRL EQU 8003H ;8255控制寄存器地址A EQU 01HB EQU 02HC EQU 04HD EQU 08HQS EQU 300 ;步进电机转过的圈数D
9、ATA SEGMENT DLY_C DW 0 ;DLY_C用以控制延时的长短以实现步进电机的加速 SOURCE DB A,A+B,B,B+C,C,C+D,D,D+A ;步序表,使电机的工作方式为单/双8拍DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA ;初始化数据段 MOV DS,AX ;* ;初始化8255,使8255的A口输出.;* MOV DX,CONTRL ;8255的控制寄存器地址送DX MOV AL,MODE ;8255的A口输出,故初始化控制字为80H OUT DX,AL ;将控制字从8255输出以配置8
10、255的工作方式 MOV DX,CTL ;将A口地址送DX MOV AL,0 ;将0送AL OUT DX,AL ;8255的端口写0以实现初始化 MOV DLY_C,300H ;延时初始值 MOV CX,QS ;将步进电机的圈数300送CX ;*;以下程序段实现的功能是让电机正向加速,速度达到最大值后匀速转动.;*ZZ:MOV BX,0 ;将0送BX,让电机的初始步为ANEXT1:MOV DX,CTL ;将8255的A口地址送DX MOV AL,SOURCEBX ;将电机的步序送AL OUT DX,AL ;将步序表中的第一个步序通过A口输出 CALL DELAY ;调用延时子程序,用来控制电机
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 8255 步进 电机 控制系统 设计 17

限制150内