基于51单片机的步进电机控制系统设计及应用内容摘要:

步进电机 的单片机 控制系统 采用单片机来控制步进电机,其控制方法为软件与硬件相结合的方法。 环形分配器被软件代替,使对步进电机的控制达到最佳。 系统中采用并行控制,步进电机各相驱 动电路由单片机接口线直接控制。 通过软件的控制,要控制电机的转动,就要单片机按顺序给绕组施加有序的脉冲电流,进而实现数字一角度的转换。 步距角的大小与发送的脉冲个数成正比,转动的速度与脉冲频率也是成正比,而转动的方向则与脉冲的顺序有关。 例如三相步进电机,电流脉冲有 3 种方式施加。 (1)单相三拍方式:→A→ B→ C→正转; → A→ C→ B→反转。 (2)双相三拍方式: → AB→ BC→ CA→正转;→ AC→ CB→ AB→反转。 (3)三相六拍方式:→ A→ AB→ B→ BC→ C→ CA→正转;→A→ AC→ C→ CB→ B→ BA→反转。 以单 片机作为整个系统核心,设计出硬件系统。 驱动电路则由其中的几个口控制,步进电机工作时,电机绕组内的电流值一般都能达到数安培,控制电机绕组内电流变化的控制信号都是由电压一般比较低的逻辑电路产生的数字信号,单片机或控制信号等经常受到后级模拟电路影响,则设计驱动电源时需要设计电压隔离接口,以实现数字信号与模拟信号的隔离。 所以在驱动电路和单片机出口之间接光电隔离电路。 由于单片机的强大功能可以设计大量的外围电路,键盘和单片机端口连接是一个外部中断源,设置了电机正转、反转、加速、减速等功能,调用中断服务程序以完成对步 进电机的最佳控制通常是由中断和查询相结合的方法来实现,数码管能及时显示正转、反转速度等状态。 单片机系统代替环形分配器实现其功能,并用软件编程办机械 装置 单片机 系统 驱动 电路 步进 电机 外围 电路 7 法来实现脉冲的分配。 一个完整的步进电机控制系统是由待驱动、晶振、复位、键盘、显示各个驱动电路的设计完成之后,进行硬件合成。 系统的软件设计通常采用模块化结构,软件系统总体框架由主程序、中断服务子程序和其他相应的辅助子程序。 系统功能 通过对其它单片机控制步进电机系统的分析,本论文的控制系统采用基于单片机的控制方案。 系统应用了一片 AT89C51 单片机作为步进电机 控制器的核心运算器件,采用了电机驱动芯片 UM2020 及其外围电路构成了整个系统的驱动部分,再加上作为执行部件的步进电机来构成一个基本的步进电机控制系统 ,本设计想使此系统具有以下功能和要求 : (1)步进 电机运行于 单八拍 的方式 (亦称为半步工作方式 ); (2)有 加速、减速、正转和反转四种模式 ; (3)预置步数运行模式时,步数设置范围为 0~600 步 ; (4)连续运行模式时速度 8 档可调 (0~8); (5)可以预置 改变方向 或者在运行时转向 ; (6)共有 四 个按键来输入,操作方便 ; (7)整个系统为 +5V 低电压供电。 8 第 3 章 系统硬件设计 硬件是整个系统的平台,各种功能的实现和软件的运行都是以硬件为基础的,所以硬件设计的合理与否从根本上决定了整个系统的质量。 系统组成 系统的实现如图 所示: 图 系统框图 本系统由电源模块,步进电机驱动模块,电机控制模块,数码管显示模块几部分组成,电源模块供电给单片机最小系统,通过单片机最小系统的控制协调各个模块之间的联系,通过控制模块传输命令值到系统上,通过系统编码控制电机的运转方式,将运行的参数和指令返回至数码管上显示。 通过单片机上的外部中断来实现电机的几种运行方式,能有效的利用片内资源,节省了单片机的功耗。 系统核心 —— AT89C51 AT89C51 简介 AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储( FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压, 128 字节内部 RAM, 32 个I/O 口线,两个 16 位定时 /计数器,一个 5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。 高性能 CMOS8 位微处理器单片机的可擦 除只读存储器可以反复擦除 100 次。 该器件采用 ATMEL高密度非易失存储器制造技术制造,与工业标准的 MCS51 指令集和输出管脚相兼容。 由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中, ATMEL 的 AT89C51 是一种高效微控制器 , 同时, AT89C51可降至 0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。 空闲方式 单片机 电源 1 七段LED 及运行状态指示 电机驱动电路 按键 电源 2 步进电 机 9 停止 CPU 的工作,但允许 RAM,定时 /计数器,串行通信口及中断系统继续工作。 AT89c51u 单片机引脚图如 所示。 图 AT89C51 的引脚图 AT89C51 主要特性: (1)与 MCS51 兼容 ; (2)4K 字节可编程闪烁存储器 ; (3)寿命: 1000 写 /擦循环 ; (4)数据保留时间: 10 年 ; (5)全静态工作: 0Hz24Hz; (6)三级程序存储器锁定 ; (7)128*8 位内部 RAM; (8)32 可编程 I/O 线 ; (9)两个 16 位定时器 /计数器 ; (10)5 个中断源 ; (11)可编程串行通道 ; (12)低功耗的闲置和掉电模式 ; (13)片内振荡器和时钟电路 ; AT89C51 管脚说明 : (1)VCC:供电电压。 10 (2)GND:接地。 (3)P0 口: P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。 当P1 口的管脚第一次写 1 时,被定义为高阻输入。 P0 能够用于外部程序数据存储 器,它可以被定义为数据 /地址的第八位。 在 FIASH 编程时, P0 口作为原码输入口 , 当FIASH 进行校验时, P0 输出原码,此时 P0 外部必须被拉高。 (4)P1 口: P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口, P1 口缓冲器能接收输出 4TTL 门电流。 P1 口管脚写入 1 后,被内部上拉为高,可用作输入, P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。 在 FLASH 编程和校验时, P1 口作为第八位地址接收。 (5)P2 口: P2 口为一个内部上拉电阻的 8 位双向 I/O 口, P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写 “1”时,其管脚被内部上拉电阻拉高,且作为输入。 并因此作为输入时, P2 口的管脚被外部拉低,将输出电流。 这是 由于内部上拉的缘故。 P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时, P2 口输出地址的高八位。 在给出地址 “1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时, P2 口输出其特殊功能寄存器的内容。 P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。 (6)P3 口: P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL门电流。 当 P3 口写入 “1”后,它们被内部上拉为高电平,并用作输入。 作为输入,由于外部下拉为低电平, P3 口将输出电流 ( ILL)这是由于上拉的缘故。 P3 口也可作为 AT89C51 的一些特殊功能口,如下表所示: RXD(串行输入口) ; TXD( 串行输出口) ; /INT0(外部中断 0) ; /INT1(外部中断 1) ; T0(记时器 0 外部输入) ; T1(记时器 1 外部输入) ; /WR(外部数据存储器写选通) ; /RD(外部数据存储器读选通) ; P3 口同时为闪烁编程和编程校验接收一些控制信号。 11 (7)RST:复位输入。 当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。 (8)ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。 在 FLASH 编程期间,此引脚用于输入编程脉冲。 在平时 ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。 因此它可用作对外部输出的脉冲或用于定时目的。 然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE 脉冲。 如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。 此时, ALE 只有在执行 MOVX, MOVC 指令是 ALE 才起作用。 另外,该引脚被略微拉高。 如果微处理器在外部执行状态 ALE 禁止,置位无效。 (9)/PSEN:外部程序存储器的选通信号。 在由外部程序存储器取指期间,每个机器周期两次 /PSEN 有效。 但在访问外部数据存储器时,这两次有效的 /PSEN 信号将不出现。 (10)/EA/VPP :当 /EA 保 持 低 电 平 时 , 则 在 此 期 间 外 部 程 序 存 储 器( 0000HFFFFH),不管是否有内部程序存储器。 注意加密方式 1 时, /EA 将内部锁定为 RESET;当 /EA 端保持高电平时,此间内部程序存储器。 在 FLASH 编程期间,此引脚也用于施加 12V 编程电源( VPP)。 (11)XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 (12)XTAL2:来自反向振荡器的输出。 (13)AT89C51 振荡器特性: 系统端口分配 (1) 一 : 输出 数据到 UM2020,用于控制 步进电机的四相; (2) 一 :按键控制输入; (3) :数码管位端扫描控制线; (4)P0:数码管段端扫描控制线。 详细接线见附录系统原理图。 外围电路设计 外围电路包括显示电路、键盘电路和驱动电路。 12 显示电路设计 由 LED 组成的 7 段发光管显示器是不太复杂的单片机应用系统常用外部设备之一。 (1)7 段发光管显示器由 7 段发光线段组成,并按“日”字形排列,每一段都是一个发光二极管。 将 7 个 LED 的阴极连在一起,称之为共阴极接法。 反之为共阳极接法。 (2)如果将公共阴极接地,而在 a~ g 各段的阳极加上不同的电压,就会使各段的发光情况不同,形成不同的发光字符。 加在 7 段阳极上的电压可以用数字量表示,如果某一段的阳极为数字量 1,则这个段就发光;如为 0,则不发光。 数码管的驱动电路 在本设计中使用了八个 7 段 LED 显示器,采用动态显示。 即将多个 7 段 LED 的段选端复接在一起,只用一个 8 位输出口控制段选,段选 码同时加到各个 7 段 LED 显示器上,通过控制各个显示器公共阳极轮流接高电平的办法,逐一轮流地启动各个 LED。 第一、二位数码管显示步进电机现在所在的状态;第三位数码管显示步进电机加减速的档位;剩下的数码管用来显示步进电机设置的步数。 13 图 数码管驱动电路图 键盘电路设计 图 键盘电路 一般键盘电路设计有矩阵键盘和独立键盘两种形式,本系统由于控制的按键比较少,就采用独立键盘方式。 由若干按键组成的独立键盘,使最简单的单片机输入设备, 14 通过键盘输入数据或命令,实现人机对话。 单片机定时检测哪个按键按下,再 执行相关操本系统的按键是低电平有效。 键盘电路如图 所示。 JP1 键预置步数键,可以设置步数一步一步增加, JP2 是加减速的档位开关,可以实现档位由 0- 8 之间变化, JP3 是电机反转开关,当按下一次时,实现电机的正常反转方式,当再按下一次时,则进入反转预置步数方式,可以预置步数并进行反转运行,运行设置的步数后自动停止,并有暂停的可能, JP4 是电机正转开关,其原理与 JP3 相似。 在处理按键程序前就先去抖动,防止因按键时产生的机械抖动而错误的重复执行相应程序。 所有按键处理程序都是在等按下的键松开后才执行的。 这些在 软件编设计部分都会有说明。 驱动电路 图 驱动电路 驱动电路采用了步进电机专用控制器 UM2020 组合电路。 这时一种很好的方案,可以有效地、准确的控制步进电机正反转、加减速等功能。 用两个块来控制步进电机很简单方便。 硬件总体实现 以上 各个单元电路分别设计论证通过后,对电路进行总和,分为系统主体和驱动电路两大块。 15 系统原理图和驱动电路原理图见附录。 在绘制电路时,充分利用了 Proteus,从原理图绘制到各驱动电路和外围电路图都是以 Proteus 为平台的。 使整个系统的设计开发过程更为规范,大大提高了效率。 16 第 4 章 系统软件设计 本系统的软件主要分。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。