51单片机驱动步进电机电路及程序

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

特点:步进电机能接受步进脉冲的控制一步一步地旋转。用途:步进电机成了计算机应用项目中的主要执行元件之一,尤其在精确定位场合中得到了广泛的应用;内容:简述步进电机的工作原理,讨论它与单片机接口的电路以及应用的方法。。91§9.1步进电机简述一、步进电机原理步进电机的转子上均匀地分布着40个齿,齿间(齿距)夹角为9°(360°/40),定子上有6个大齿,相差180°的两个大齿组成一相,共有A、B、C三相。每个大齿上有若干个与转子上一样的小齿。定子的每一相都有励磁绕组。92二、步进电机的运行方式1.三相三拍运行方式(1)当A相通电时,B相、C相不通电:A相定子上的齿与转子上的齿对齐(通电后磁场力作用的结果),迫使电机旋转3°B相定子上的齿顺时针超前转子上相应的齿3°C相定子上的齿顺时针超前转子上相应的齿6°93(2)当B相接通电时,A相、C相不通电:B相齿对齐,电机旋转3°;C相超前3°A相超前6°(3)当C相通电时,B相、A相不通电。C相齿对齐,电机旋转3°;A相超前3°;B相超前6°94因此,如果定子A、B、C三相按A→B→C→A的顺序依次通电,则步进电机将不断地按顺时针方向转动。每一次通电转3°,每三次通电才走完一个齿距,因此叫三相三拍。每一次通电转动的固定角叫步距角。显然,三相三拍运行时,步距角=3°。95假如某次通电后,控制脉冲不再来,则电机转子齿和某相对齐后就停止转动,叫做位状态。如果把顺时针叫正转,那么当通电顺序按A→C→B→A进行时,则电机反时针旋转,叫反转。可见控制步进电机正转反转只是三相绕组通电顺序不同而已。962.三相六拍运行方式当A相通电时,A相定子齿与转子齿对齐,此后,如果让A、B两相同时通电,可以发现转子转动1.5°。再让A相断电、B相通电,又可发现转子再转1.5°。所以按照A→AB→B→BC→C→CA→A的顺序控制,电机将按顺时针方向旋转,每步转动1.5°,即步距角=1.5°,由于要经过6步才走完一个齿距(6×1.5°=9°),所以叫三相六拍。97A→AC→C→CB→B→BA结论错齿是促使步进电机旋转的根本原因讨论98三、步进电机有如下特点•给步进脉冲电机就转,不给步进脉冲电机就不转;•步进脉冲频率高,步进电机转得快;步进脉冲频率低,步进电机转得就慢;•改变各相的通电方式(叫脉冲分配)可以改变步进电机的运行方式;•改变通电顺序,可以控制步进电机的正、反转。99§9.2步进电机与MCS-51单片机的接口步进电机与单片机的连接一般有两种形式一、由硬件完成脉冲分配的功能在这种形式里,脉冲分配器(CH250)、驱动电路由硬件完成。单片机只提供步进脉冲和正、反转控制信号,步进脉冲的产生与停止、步进脉冲的频率和个数都可用软件控制910讨论:•单片机输出步进脉冲后,再由脉冲分配电路按事先确定的顺序控制各相的通断。•一般来说,硬件一旦确定下来,不易更改,这种方案,硬设备成本高,它的应用受到了限制。•怎样用软件产生步进脉冲呢?所谓软件产生就是用软件控制P3.0为1或为0的次序和长短。如果先令P3.0=1,延时一段时间,再令P3.0=0,再延时一段时间后,又令P3.0=1,如此循环,就可构成脉冲序列。延时时间的长短决定了脉冲序列的周期,而脉冲序列的周期又与步进电机的步矩有关。下面提供了一个产生步进脉冲的子程序。911SUB:SETBP3.0SETBP3.0;保证输出高电平的时间5ΜSSETBP3.0CLRP3.0;变为低电平MOVR7,30HLOOP:NOP;软件延时程序:NOP;基本延时(10ΜS×时间常数)NOPDJNZR7,LOOP9122.由软件完成脉冲分配工作特点:硬件的主要任务是完成驱动功能913以A相控制为例:当P1.0输出为1,发光管不发光,因此光敏二极管截止,使担负驱动任务的达林顿管导通。A相绕组通电。相反,当P1.0=0→发光管发光→光敏管导通→达林顿管截止→A相绕组不通电。914•为什么步进电机功率驱动电路采用光电隔离?•怎样用软件完成脉冲分配呢?9151、软件选择单三拍的工作方式P1.2P1.1P1.0编码916在控制字间也应加入软件延时来保证一定的时间间隔。假定要求时间间隔为1MS,控制电机按三相三拍正转的程序是:ZHEN:MOVP1,#01H;A相通电ACALLD1MSMOVP1,#02H;B相通电ACALLD1MSMOVP1,#40H;C相通电ACALLD1MSRETD1MS:MOVR7,#64H;延时1MS子程序D1MS1:NOP;2ΜSNOP;2ΜSNOP;2ΜSDJNZR7,D1MSL;4ΜSRET917要想控制步进电机反转,只需把输出的控制字的次序按:01H(A)→04H(C)→02H(B)→01H(A)→组合即可。反转程序如下:FAN:MOVP1,#01H;A相通电ACALLD1MSMOVP1,#04H;C相通电ACALLD1MSMOVP1,#02H;B相通电ACALLD1MS……9182、软件选择三相六拍的工作方式不难推出与三相六拍相对应的控制字为P1.2P1.1P1.0(C相)(B相)(A相)控制编码导通情况001(01H)A相通电011(03H)AB相通电010(02H)B相通电110(06H)BC相通电100(04H)C相通电101(05H)CA相通电919如果按:001→101→100→110→010→011→001……ACACCBBBAA的次序输出,就可达到反转的目的。[练习1]仿照三相三拍的办法编出反转控制子程序。920FAN:MOVP1,#01H;A相通电ACALLD1MSMOVP1,#05H;CA相通电ACALLD1MSMOVP1,#04H;C相通电ACALLD1MSMOVP1,#06H;CB相通电ACALLD1MSMOVP1,#02H;B相通电ACALLD1MSMOVP1,#03H;BA相通电ACALLD1MSRET921§9.3应用举例——机械手的微机控制随着科学技术的进步、工业自动化的进程,机械手将进一步取代简单而笨重的人工操作,逐步把在恶劣环境下工作的人们解放出来,这对于改善人们的工作条件、提高工作效率,具有一定的现实意义。本例系存取邮件机械手的控制,在邮政部门和立体仓库中作自动存职包裹和货物之用。922一、工作原理通过键盘,将货位(或包位)代码输入微机,启动存(或取)命令键,机械手即可在微机的控制下,作X、Y、Z三个方向的运动,完成存(或取)包操作。控制原理如图所示。系统主要包括微机控制、步进电机控制、机械传动系统、光控音乐电路、工作电源、货架和柜台等七部分组成。微机根据键入的货物代码,产生相应的脉冲信号,经CH250脉冲分配器和驱动电路,输出具有一定功率的脉冲,驱动有关电机正转或反转及其步数,从而实现货物的存取。机械手行进中,光控音乐电路驱动蜂呜器发出乐曲,从而增强了工作的节奏、控制的旋律。923二、系统组成1、硬件设计如图是机械手微机控制系统硬件电路。本系统选用MCS-51系列中的8031芯片,扩展了一片2732,以存放用户程序。由于随机存储的数据不多,只利用片内RAM。采用两位LED显示器和2×8键盘,P3.5、P3.6和P3.7分别输出X、Y、和Z方向的控制脉冲,P1.6和P1.7分别用来控制步进电机的正/反转和产生复位信号。9242、机械传动部分机械传动部分包括导轨、小车、升降盘和机械手等部分。①水平方向位移步进电机MX调通过滑轮和传送带,使小车在导轨上运动,实现X方向上的位移。②垂直方向升降作调方向运动的小车上装有一竖直的六棱金属杆,升降盘套于杆上,杆的顶部装有一定滑轮并配有平衡锤。固定于小车上的步进电机MY带动升降盘,实现Y方向上的位移。925③机械手动作机械手装升降盘上,如图所示。图中A点固定,步进电机MZ带动B点,改变A、B间的较小距离,使得机械手移动较大距离。④货架货架分三层,每层有4个包位,共计12个包位。图中数字为包位编码,编码的个位数表示X位置,十位数表示Y位置(层数),以供计算机查讯、判断之用。926927本例采用SB-2A型步进电机,它工作于三相六拍的工作方式。电机按顺时针方向旋转(即正转)时,各相脉冲顺序为:→A=1→A=1,B=1→B=1→B,C=1→C=1→C=1,A=1电机按逆时针方向旋转(即反转)时,各相脉冲顺序为:→A=1→A=1,C=1→C=1→C=1,B=1→B=1→B=1,A=1三、程序设计系统软件包括:主程序、取包程序、存包程序、货位判断程序、X、Y方向运动和机械手动作子程序等。(1)程序流程图限于篇幅,只给出主要流程图。9282、脉冲序列的生成程序对于步进电机的控制,实际上是控制步进脉冲的个数和步进脉冲的间隔,而步进电机的间隔又可转化为某基准延时子程序的循环次数。因此,可以很方便地用软件来控制步进电机的运行,达到各种控制目的。9292、货位判断程序如图是货位判断程序流程图。功能:根据键入的货位编码判断货位,以确定X、Y方向所需要的脉冲数。930主程序功能:管理键盘和显示以及有关控制。无键按下或执行有关命令后,显示提示符“--”(2)程序清单ORG0000HAJMPMAINMAIN:MOVSP,#60HSUN:SETBP3.5SETBP3.6SETBP3.7CLRP1.6CLRP1.7MOVR0,#40HMOVA,#12H;字符“-”ML0:MOV@R0,A;的编码INCR0CJNER0,#42H,ML0931SETBP1.7;复位信号;键输入/显示/键判断F6H-特殊数据R3-键号暂存器ML1:ACALLDIRACALLKEYADDA,#0F6H;键号+F6用于数字/功能键的判断JCSUN1;功能键转移至SUN1MOV41H,40H;数字键号送显示缓冲区MOVR0,#40HMOVR3,AANLA,#0FH;保留低四位MOV@R0,AAJMPML1932功能键处理程序(A、B、C键)QBCXCBCXSUN933•键盘子程序KS193400HNEXT08H935NEXT•判断键盘有无键按下子程序——无键按下A=00H936•显示子程序P1口-LED位扫描输出口R2-位扫描寄存器初值为01HSBUF-LED段码发送缓冲器DIR:PUSHPSWSETBPSW,4MOVR0,#40HMOVR2,#01HD1:MOVP1,R2MOVA,@R0ADDA,#14HMOVCA,@A+PCMOVSBUF,AMOVR7,#02HD2:MOVR6,#0FFHD3:DJNZR6,D3DJNZR7,D2937INCR0MOVA,R2RLAMOVR2,AJNBACC.2,D1POPPSWRETDB3FH,06H,5BH,4FHDB66H,60H,70H,07HDB7FH,6RH,77H,7CHDB39H,5EH,79H,71HDB31H,6EH,40H,23HDB00H938•延时子程序YSH:PUSHPSWSETBPSW.3MOVR0,#0FFHSH:MOVR1,#0FFHSH0:DJNZR1,#H0DJNZR0,SHPOPPSWRET939•机械手控制示意图940•取包子程序P1.6-正/反转控制30H、31H步进脉冲暂存器(X方向)QBCX:SETBP1.6;正转MOV30H,#04H;X0固定脉冲数MOV31H,#0D8HACALLXYXC;调用X方向运行子程序ACALLCSHC;调用测试子程序MOV30H,33H;X方向列脉冲数MOV31H,34H;送30H、31H单元ACALLXYXC;调用X方向运行子程序MOV30H,35H;Y方向行脉冲数MOV31H,36H;送30H、31H单元ACALLYYXC;调用Y方向运行子程序ACALLQWZC;调用取物子程序CLRP1.6;反转941MOV30H,35HMOV31H,36HACALLYYXC;调用Y方向运行子程序MOV30H,33HMOV31H,34HACALLXYXC;调用X方向运行子程序MOV30H,#04H;X0固定脉冲数MOV31H,#0D8HACALLXYXC;调用X方向运行子程序ACALLFWZC;调用放物子程序AJMPSUN942

1 / 58
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功