51单片机驱动步进电机电路及程序.ppt_第1页
51单片机驱动步进电机电路及程序.ppt_第2页
51单片机驱动步进电机电路及程序.ppt_第3页
51单片机驱动步进电机电路及程序.ppt_第4页
51单片机驱动步进电机电路及程序.ppt_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

9 1 第九章MCS 51单片机与步进电机接口 特点 步进电机能接受步进脉冲的控制一步一步地旋转 用途 步进电机成了计算机应用项目中的主要执行元件之一 尤其在精确定位场合中得到了广泛的应用 内容 简述步进电机的工作原理 讨论它与单片机接口的电路以及应用的方法 9 2 9 1步进电机简述一 步进电机原理步进电机的转子上均匀地分布着40个齿 齿间 齿距 夹角为9 360 40 定子上有6个大齿 相差180 的两个大齿组成一相 共有A 三相 每个大齿上有若干个与转子上一样的小齿 定子的每一相都有励磁绕组 9 3 二 步进电机的运行方式1 三相三拍运行方式 1 当A相通电时 B相 相不通电 A相定子上的齿与转子上的齿对齐 通电后磁场力作用的结果 迫使电机旋转3 B相定子上的齿顺时针超前转子上相应的齿3 C相定子上的齿顺时针超前转子上相应的齿6 9 4 2 当B相接通电时 A相 C相不通电 B相齿对齐 电机旋转3 C相超前3 相超前 3 当C相通电时 B相 A相不通电 C相齿对齐 电机旋转3 A相超前3 相超前6 9 5 因此 如果定子A B C三相按A B C A的顺序依次通电 则步进电机将不断地按顺时针方向转动 每一次通电转 每三次通电才走完一个齿距 因此叫三相三拍 每一次通电转动的固定角叫步距角 显然 三相三拍运行时 步距角 9 6 假如某次通电后 控制脉冲不再来 则电机转子齿和某相对齐后就停止转动 叫做位状态 如果把顺时针叫正转 那么当通电顺序按A C B A进行时 则电机反时针旋转 叫反转 可见控制步进电机正转反转只是三相绕组通电顺序不同而已 9 7 2 三相六拍运行方式当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 所以叫三相六拍 9 8 如果要使步进电机反转 只要按A AC C CB B BA顺序通电就行了 结论 从上面两种运行方式可看出 错齿是促使步进电机旋转的根本原因 当某相通电 相应的齿对齐 迫使电机旋转一个步距角 未通电的各相的齿出现了新的错位 改变通电的顺序和通电的相数 可组合出其它的运行方式 讨论 三项三拍和三项六拍运行方式 哪种定位更精确 9 9 三 步进电机有如下特点 给步进脉冲电机就转 不给步进脉冲电机就不转 步进脉冲频率高 步进电机转得快 步进脉冲频率低 步进电机转得就慢 改变各相的通电方式 叫脉冲分配 可以改变步进电机的运行方式 改变通电顺序 可以控制步进电机的正 反转 9 10 9 2步进电机与MCS 51单片机的接口步进电机与单片机的连接一般有两种形式一 由硬件完成脉冲分配的功能在这种形式里 脉冲分配器 CH250 驱动电路由硬件完成 单片机只提供步进脉冲和正 反转控制信号 步进脉冲的产生与停止 步进脉冲的频率和个数都可用软件控制 9 11 讨论 单片机输出步进脉冲后 再由脉冲分配电路按事先确定的顺序控制各相的通断 一般来说 硬件一旦确定下来 不易更改 这种方案 硬设备成本高 它的应用受到了限制 怎样用软件产生步进脉冲呢 所谓软件产生就是用软件控制P3 0为1或为0的次序和长短 如果先令P3 0 1 延时一段时间 再令P3 0 0 再延时一段时间后 又令P3 0 1 如此循环 就可构成脉冲序列 延时时间的长短决定了脉冲序列的周期 而脉冲序列的周期又与步进电机的步矩有关 下面提供了一个产生步进脉冲的子程序 9 12 SUB SETBP3 0SETBP3 0 保证输出高电平的时间 5 sSETBP3 0CLRP3 0 变为低电平MOVR7 30HLOOP NOP 软件延时程序 NOP 基本延时 10 s 时间常数 NOPDJNZR7 LOOPRET 时间常数事先可装入30H单元 改变30H单元的内容就可改变延时长短P3 0输出脉冲波形 9 13 2 由软件完成脉冲分配工作特点 由软件完成脉冲分配工作 不仅使线路简化 成本下降 而且可根据应用系统的需要 灵活地改变步进电机的控制方案 硬件的主要任务是完成驱动功能 如图单片机直接带动步进电机的一种接口方案 接口并不复杂 单片机P1的低三位被设成输出位 P1 0控制A相绕组通断 P1 1控制B相 P1 2控制C相 9 14 以A相控制为例 当P1 0输出为1 发光管不发光 因此光敏二极管截止 使担负驱动任务的达林顿管导通 A相绕组通电 相反 当P1 0 0 发光管发光 光敏管导通 达林顿管截止 A相绕组不通电 9 15 为什么步进电机功率驱动电路采用光电隔离 步进电机功率驱动电路工作在较大脉冲电流状态 采用光电耦合器将单片机与步机电机隔离可以避免单片机与步进电机功率回路的共地干扰 此外 万一驱动电路发生故障 也不致让功放中较高的电压串入单片机而使其损坏 怎样用软件完成脉冲分配呢 所谓脉冲分配就是用软件改变P1口低三位的输出值 进而达到控制三相绕组的通电顺序和通电方式之目的 9 16 1 软件选择单三拍的工作方式单三拍的通电方式为A B C A 要想达到这个目的 只需依次向P1口输出如下控制字 P1 2P1 1P1 0编码 C相 B相 A相 001 01H A相通 B C相断010 02H B相通 A C相断100 04H C相通 A B相断 9 17 在控制字间也应加入软件延时来保证一定的时间间隔 假定要求时间间隔为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 sRET 9 18 要想控制步进电机反转 只需把输出的控制字的次序按 01H A 04H C 02H B 01H A 组合即可 反转程序如下 FAN MOVP1 01H A相通电ACALLD1MSMOVP1 04H C相通电ACALLD1MSMOVP1 02H B相通电ACALLD1MS 9 19 2 软件选择三相六拍的工作方式不难推出与三相六拍相对应的控制字为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相通电 9 20 如果按 001 101 100 110 010 011 001 ACACCBBBAA的次序输出 就可达到反转的目的 练习1 仿照三相三拍的办法编出反转控制子程序 9 21 FAN MOVP1 01H A相通电ACALLD1MSMOVP1 05H CA相通电ACALLD1MSMOVP1 04H C相通电ACALLD1MSMOVP1 06H CB相通电ACALLD1MSMOVP1 02H B相通电ACALLD1MSMOVP1 03H BA相通电ACALLD1MSRET 9 22 9 3应用举例 机械手的微机控制随着科学技术的进步 工业自动化的进程 机械手将进一步取代简单而笨重的人工操作 逐步把在恶劣环境下工作的人们解放出来 这对于改善人们的工作条件 提高工作效率 具有一定的现实意义 本例系存取邮件机械手的控制 在邮政部门和立体仓库中作自动存职包裹和货物之用 9 23 一 工作原理通过键盘 将货位 或包位 代码输入微机 启动存 或取 命令键 机械手即可在微机的控制下 作X Y Z三个方向的运动 完成存 或取 包操作 控制原理如图所示 系统主要包括微机控制 步进电机控制 机械传动系统 光控音乐电路 工作电源 货架和柜台等七部分组成 微机根据键入的货物代码 产生相应的脉冲信号 经CH250脉冲分配器和驱动电路 输出具有一定功率的脉冲 驱动有关电机正转或反转及其步数 从而实现货物的存取 机械手行进中 光控音乐电路驱动蜂呜器发出乐曲 从而增强了工作的节奏 控制的旋律 9 24 二 系统组成1 硬件设计如图是机械手微机控制系统硬件电路 本系统选用MCS 51系列中的8031芯片 扩展了一片2732 以存放用户程序 由于随机存储的数据不多 只利用片内RAM 采用两位LED显示器和2 8键盘 P3 5 P3 6和P3 7分别输出X Y 和Z方向的控制脉冲 P1 6和P1 7分别用来控制步进电机的正 反转和产生复位信号 9 25 2 机械传动部分机械传动部分包括导轨 小车 升降盘和机械手等部分 水平方向位移步进电机MX调通过滑轮和传送带 使小车在导轨上运动 实现X方向上的位移 垂直方向升降作调方向运动的小车上装有一竖直的六棱金属杆 升降盘套于杆上 杆的顶部装有一定滑轮并配有平衡锤 固定于小车上的步进电机MY带动升降盘 实现Y方向上的位移 9 26 机械手动作机械手装升降盘上 如图所示 图中A点固定 步进电机MZ带动B点 改变A B间的较小距离 使得机械手移动较大距离 货架货架分三层 每层有4个包位 共计12个包位 图中数字为包位编码 编码的个位数表示X位置 十位数表示Y位置 层数 以供计算机查讯 判断之用 9 27 本例采用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 9 28 三 程序设计系统软件包括 主程序 取包程序 存包程序 货位判断程序 X Y方向运动和机械手动作子程序等 1 程序流程图限于篇幅 只给出主要流程图 9 29 2 脉冲序列的生成程序对于步进电机的控制 实际上是控制步进脉冲的个数和步进脉冲的间隔 而步进电机的间隔又可转化为某基准延时子程序的循环次数 因此 可以很方便地用软件来控制步进电机的运行 达到各种控制目的 9 30 2 货位判断程序如图是货位判断程序流程图 功能 根据键入的货位编码判断货位 以确定X Y方向所需要的脉冲数 9 31 主程序功能 管理键盘和显示以及有关控制 无键按下或执行有关命令后 显示提示符 2 程序清单ORG0000HAJMPMAINMAIN MOVSP 60HSUN SETBP3 5SETBP3 6SETBP3 7CLRP1 6CLRP1 7MOVR0 40HMOVA 12H 字符 ML0 MOV R0 A 的编码INCR0CJNER0 42H ML0 9 32 SETBP1 7 复位信号 键输入 显示 键判断F6H 特殊数据R3 键号暂存器ML1 ACALLDIRACALLKEYADDA 0F6H 键号 F6用于数字 功能键的判断JCSUN1 功能键转移至SUN1MOV41H 40H 数字键号送显示缓冲区MOVR0 40HMOVR3 AANLA 0FH 保留低四位MOV R0 AAJMPML1 9 33 功能键处理程序 A B C键 SUN1 MOVA R3 CJNEA 0AH SUN2AJMPQBCXSUN2 CJNEA 0BH SUN3AJMPCBCXSUN3 CJNEA 0CH ML1AJMPSUN 9 34 键盘子程序P1口 P1 6正 反转P1 7复位P3口 P3 3P3 4键盘行输入口R3 列扫描寄存器初值FEHR4 列号计数器SBUF 发送缓冲器发送列扫描信号KEY ACALLKS1JNZLK1NI ACALLDIRAJMPKEYLK1 ACALLDIRACALLDIRACALLKS1JNZLK2AJMPNILK2 MOVP1 00HMOVR3 0FEHMOVR4 00HLK4 MOVSBUF R3 9 35 MOVR6 05H 延时等待发送DK6 DJNZR6 DK6JBP3 3LONEMOVA 00HAJMPLKPLONE JBP3 4 NEXTMOVA 08HLKP ADDA R4PUSHACCLK3 ACALLDIR 仅做一次处理ACALLKS1JNZLK3POPACC 取键值于ACCRET 9 36 NEXT INCR4MOVA R3JNBACC 7 KEDRLAMOVR3 AAJMPLK4KED AJMPKEY判断键盘有无键按下子程序 无键按下A 00HKS1 MOVSBUF 00HMOVR6 05HDS6 DJNZR6 DS6MOVA P3CPLAANLA 18HRET 9 37 显示子程序P1口 LED位扫描输出口R2 位扫描寄存器初值为01HSBUF LED段码发送缓冲器DIR PUSHPSWSETBPSW 4MOVR0 40HMOVR2 01HD1 MOVP1 R2MOVA R0ADDA 14HMOVCA A PCMOVSBUF AMOVR7 02HD2 MOVR6 0FFHD3 DJNZR6 D3DJNZR7 D2 9 38 INCR0MOVA R2RLAMOVR2 AJNBACC 2 D1POPPSWRETDB3FH 06H 5BH 4FHDB66H 60H 70H 07HDB7FH 6rH 77H 7CHDB39H 5EH 79H 71HDB31H 6EH 40H 23HDB00H 9 39 延时子程序YSH PUSHPSWSETBPSW 3MOVR0 0FFHSH MOVR1 0FFHSH0 DJNZR1 H0DJNZR0 SHPOPPSWRET 9 40 机械手控制示意图 9 41 取包子程序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 反转 9 42 MOV30H 35HMOV31H 36HACALLYYXC 调用Y方向运行子程序MOV30H 33HMOV31H 34HACALLXYXC 调用X方向运行子程序MOV30H 04H X0固定脉冲数MOV31H 0D8HACALLXYXC 调用X方向运行子程序ACALLFWZC 调用放物子程序AJMPSUN 9 43 存包子程序P 6 正 反转控制30H 31H步进脉冲暂存器 X方向 33H 34H 35H 36HCBCX ACALLQWZCSETBP1 6MOV30H 04H X0固定脉冲数MOV31H 0D8H ACALLXYXCACALLCSHCMOV30H 33HMOV31H 34HACALLXYXCMOV30H 35HMOV31H 36HACALLYYXCACALLFWZCCLRP1 6 9 44 MOV30H 35HMOV31H 36HACALLYYXCMOV30H 33HMOV31H 34HACALLXYXCMOV31H 04HMOV31H 0D8HACALLXYXCAJMPSUN 9 45 X方向运行程序P3 5 脉冲信号输出线 控制MX电机XYXC PU3HPSWSETBPSW 4MOVR0 30HABC0 MOVR1 31HABC1 CLRP3 5ACALLYSHSETBP3 5ACALLYSHDJNZR1 ABC1DJNZR1 ABC0POPPSWRET 9 46 Y方向运行程序P3 6 脉冲信号输出线 控制MY电机YYXC PUSHPSWSETBPSW 4MOVR0 30HADC2 MOVR1 31HADC3 CLRP3 6ACALLYSHSETBP3 6ACALLYSHDJNZR1 ADC3DJNZR0 ADC2POPPSWRET 9 47 取物子程序P1 6 正 反转P3 6 Y方向脉冲输出 40H P3 7 Z方向脉冲输出 66H QWZC PUSHPSWSETBPSW 4SETBP1 6MOVR0 66HABC4 CLRP3 7ACALLYSHSETBP3 7ACALLYSHDJNZR0 ADC4MOVR0 40HABC5 CLRP3 6ACALLYSHSETBP3 6ACALLYSHDJNZR0 ABC5 9 48 CLRP1 6MOVR0 66HABC6 CLRP3 7ACALLYSHSETBP3 7ACALLYSHDJNZR0 ABC6MOVR0 40HABC7 CLRP3 6ACALLYSHSETBP3 6ACALLYSHDJNZR0 ABC7POPPSWRET 9 49 放物子程序P1 6 正 反转P3 6 Y方向脉冲输出 40H P3 7 Z方向脉冲输出 66H FWZC PUSHPSWSETBPSW 4SETBP1 6MOVR0 40HABC8 CLRP3 6ACALLYSHSETBP3 6ACALLYSHDJNZR0 ADC8 9 50 MOVR0 66HABC9 CLRP3 7ACALLYSHDJNZR0 ABC9CLRP1 6MOVR0 40HABC10 CLRP3 6ACALLYSHSETBP3 6ACALLYSHDJNZR0 ADC10 9 51 MOVR0 66HABC11 CLRP3 7ACALLYSHSETBP3 7ACALLYSHDJNZR0 ADC11POPPSWRET 9 52 测试子程序41H 货位列号暂存单元40H 货位层号暂存单元41H

温馨提示

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

评论

0/150

提交评论