基于单片机的步进电机控制系统的研制(1)

第 26 卷第 4 期 2010 年 7 月

齐 齐 哈 尔 大 学 学 报 Journal of Qiqihar University

Vol.26,No.4 July,2010

基于单片机的步进电机控制系统的研制
郑宝瑞 1,陆仲达 2
(1.齐重数控装备股份有限公司, 黑龙江 齐齐哈尔 161000; 2.齐齐哈尔大学 计算机与控制工程学院, 黑龙江 齐齐哈尔 161006) 摘要:以 AT89S51 单片机为核心构成步进电机的控制系统。设计了步进电机驱动电路、键盘设定与显示电路,并 进行了系统软件设计。重点阐述了脉冲产生电路以及对速度的控制。该系统成本低、控制方便、控制精度高。 关键词:步进电机;单片机;调速; 驱动 中图分类号:TP273 .5
+

文献标识码:A

文章编号:1007-984X(2010)04-0046-04

步进电机是一种将电脉冲信号变换成相应的角位移或直线位移的机电执行元件。传统的步进电机控制 方法是由触发器产生控制脉冲来进行控制的,当步进电机参数发生变化时,需要重新进行控制器的设计。 而且,传统的触发器构成的控制系统,控制电路复杂、控制精度低、生产成本高。以微电子芯片为控制核 心,以电力电子功率变换器为执行机构,在自动控制理论的指导下组成的控制系统,能通过控制电机转速 或转矩进而控制生产机械或运动部件按照人们所希望的规律运动。克服了传统控制器的缺点,满足工业生 产新的控制要求,体现了更大的优越性,因此广泛应用于数字控制系统中。如今各领域步进电机无处不在, 高精度,实时监控的步进电机控制系统具有重要意义和实用价值。

1 系统原理
步进电机控制系统主要由AT89S51单片机及单片机工作外围电路和放大电路组成 。采用8155作为 AT89S51单片机的扩展I/O口来连接键盘和LED显示器。 单片机的P1.0、 P1.1、 P1.2分别连到步进电机的A、 B、 C三相绕组,单片机的控制信号经信号放大驱动电路输出到步进电机绕组就可以驱动步进电机运转。系统 结构如图1所示。在LED显示器的提示下,由键盘设置步进电机运行的转速和步数;由各个功能键控制系统 的运行,按启动键后,步进电机按照输入的参数运行。
键盘输入 8155 I/O 扩 展 驱 动 电 路 步 进 电 机

LED显示

单 片 机

图 1 系统结构图

系统以 AT89S52 为核心, 利用 4 个 DS18B20 通过单总线与单片机连接构成温度采集部分; 智能温度巡 检仪的人机界面由 5 个高亮 LED 和一个五个按键的键盘,外加指示灯组成,五个按键分别是“进入”“确 、 认”“△”“ ”和“返回” 、 、 ,与 LED 显示组成交互式人机交流界面(HCI) 。同时系统拥有温度上下限报 警电路,看门狗电路及时钟电路,系统还设计了一个 RS232 通信模块,能将实时测量数据提供给任何支持 RS232 通信的设备。

2 系统的硬件构成
2.1 步进电机的驱动电路设计 步进电机驱动电路由 AT89S51 的 P1 口作为输出通道的控制端口,采用三相六拍的步进电机进行并行
收稿日期:2010-03-20 作者简介:郑宝瑞(1965-) ,男,齐齐哈尔人,工程师,大学本科,主要从事计算机控制、自动检测、数控机床设计等研究。

第4期

基于单片机的步进电机控制系统的研制

·47·

控制需要单片机 P1 口中的三位 P1.0、P1.1、P1.2,分别接三相步进电机的 A、B、C 三相。另外,单片机 与步进电机的接口由驱动电路来实现。步进电机的脉冲分配由单片机通过软件控制构成环行分配器,功率 放大器选用单电压功率放大电路。如图 2 所示,当单片机 I/O 口输出为 1 时,经反相器 74LS14 后变成低电 平,发光二极管不发光,光敏三极管截止,从而使三极管截止,电机绕组不通电,反之单片机 I/O 口输出 为 0 时,经反相器后变成高电平,三极管导通,电机绕组通电。循环使三个绕组通电就可以驱动电机,只 要按照一定的顺序改变三位 I/O 口的通电的顺序就可以控制步进电机按照一定的方向转动。利用光隔离器 组成的光电隔离电路将控制器与外部的驱动电路隔离开来,使得外部电路的变化不至于影响或者损坏控制 系统,从而提高系统的可靠性,增强抗干扰能力。图中电阻 R14、R21、R22 为 50 起限流作用。D1~D3 为续流二极管,使电机绕组产生的反电动势通过续流二极管而衰减掉,从而保护了步进电机,也保护了功 率管 TIP122 不受损坏。在 R14、R21、R22 外接电阻上并联一个 200 μF 电容,可以改善注入步进电机绕组 的电流脉冲前沿,提高了步进电机的高频性能。与续流二极管串联的 200 电阻可减少回路的放电时间常 数,使绕组中电流脉冲的后沿变陡,电流下降时间变小,也起到提高高频工作性能的作用。
+40V D1 +5V C4 200μF R16 50 R3 1K 74LS14 OPTOISO1 GND GND VCC R4 470 R5 VCC OPTOISO1 GND GND R6 470 R7 1K 74LS14 OPTOISO1 GND GND Q6 TIP122 Q5 9013 GND 1K Q4 TIP122 C6 200μF R20 50 Q3 9013 GND Q2 TIP122 C5 200μF R18 50 D3 D2 Q1 9013

R17 200 A

R2 470 VCC U1 1 2 3 4 5 6 7 8 13 12 15 14 19 18 9 17 16 20 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 INT1 INT0 T1 T0 X1 X2 RESET RD WR GND AT89S51 RXD TXD ALE/P PSEN VCC P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 EA/VP P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 40 39 38 37 36 35 34 33 32 31 21 22 23 24 25 26 27 28 10 11 30 29 U3A U6

U4A

R19 200 B

57BYG350

U7

74LS14

U5A

R21 200 C

U8

GND

图 2 步进电机驱动电路

2.2 键盘电路设计 键盘部分,完成参数设定、正/反转和启动、停止等功能操作。本系统在启动电机之前要求输入步进电 机匀速的运行速度,所以要进行按键输入数值以传入参数。为了实现系统的启动、停止和正、反转,要设 置相应的按键和开关进行功能键处理。选用 8155 接口芯片作为键盘与显示接口,可以实现 16 个键的键盘 和 8 位的 LED 数码显示的扩展。8155 芯片的片选信号 CE 与高位地址 P2.7 连接。另外由于考虑停机时中 断的需要,由 PC3 引出键盘的行扫描线和 PA2 引出的键盘列扫描线通过“或”门接到单片机的外部中断信 号输入端。如硬件电路图 3 所示。
U1 1 2 3 4 5 6 7 8 13 12 15 14 Y1 12MHz C2 30pF C3 +5V 1p R10 1K +5V R9 10K R15 10K R16 10K R17 10K U9 19 18 9 17 16 20 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 INT1 INT0 T1 T0 X1 X2 RESET RD WR GND AT89S51 VCC P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 EA/VP P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 RXD TXD ALE/P PSEN 40 39 38 37 36 35 34 33 32 31 21 22 23 24 25 26 27 28 10 11 30 29 VCC 12 13 14 15 16 17 18 19 7 9 10 11 8 6 3 4 20 U2 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 IO/M RD WR ALE CE TMROUT TMRIN RESET GND 8155 VCC PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 VCC 40 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 1 2 5

C1 30pF

图 3 键盘输入电路

·48·

齐 齐 哈 尔 大 学 学 报

2010 年

在行线上有上拉电阻连接电源,因此无键按下时,各行线均为高电平。当列线输出低电平时,有键按 下相应行线上会出现低电平。根据此原理,单片机对整个键盘进行扫描,即单片机不断对列线逐列置低电 平,然后检查行线输入状态,确定按键情况。若无键按下时,行线与列线断开,行线上全是高电平,当有 键按下时,总有键把某行某列短接,使行线端口不全为高电平,即不全为 1。此时读到的键值就是按下的 键。扫描全部键盘时间很短,仅 10 微秒,而按键时间一次至少几十毫秒,所以只要有键按下,都能被扫描 到。键是机械开关结构,由于机械触点的弹性及电压突跳等原因,在触点闭合或断开的瞬间会出现电压抖 动,所以要进行键的去抖动处理。用软件延时可以躲过抖动,大约延时 10ms 即可。 2.3 显示电路设计 采用发光二极管 LED 作为显示器件,通过单片机 I/O 扩展芯片 8155 来点亮 LED 数码管的。点亮 LED 数码管之前,需将数字转换为 LED 段码。在显示程序中根据要通过执行一段查表程序进行转换。LED 显示 的方法有两种静态显示和动态显示,本系统选用动态显示方式。8155A 的 PB0~PB7 作为段选码口,经驱 动器与 LED 的段相连;8155 的 PA4~PA7 和 PC4 作为位选码口,经驱动器与 LED 的位相连。如图 4 所示。
1 2 3 4 5 6 7 8 13 12 Y1 12MHZ 15 14 19 18 9 C3 +5V 1P R10 1K 17 16 20 U1 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 INT1 INT0 T1 T0 X1 X2 RESET RD WR GND AT89S51 VCC P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 EA/VP P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 RXD TXD ALE/P PSEN 40 39 38 37 36 35 34 33 32 12 21 22 23 24 25 26 27 28 10 11 30 29 VCC U2 12 13 14 15 16 17 18 19 7 9 10 11 8 6 3 4 20 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 IO/M RD WR ALE CE TIMEROUT TIMERIN RESET GND 8155 VCC PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 40 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 1 2 5 VCC

12

9

8 D3

2

D1

D2

30PF C2 30PF

R8 R7 R6 R5 R4 R3 R2 R1

1K 1K 1K 1K 1K 1K 1K 1K

11 7 4 2 1 10 5 3

a b c d e f g dp

1

7SEGX4_CA

图 4 显示电路

系统设置上下限温度值报警系统,如果测量的温度超过系统设置的温度值的范围,则报警系统开始发 出提示,为了双重保险,在电路中进行发光和蜂鸣报警,这样可以通过视觉和听觉两种方式发现系统报警。 键盘电路中键盘直接接到单片机 I/O 口,小按键抖动极大,必须做硬件上的消抖处理,一般在设计的时 候都使用 4*4 键盘,在这里使用 5 个按键,节省了硬件开销。5 个按键分别是“进入”“确定”“△”“ ” 、 、 、 和“返回” 个按键分别接入 P3.2、P1.0—P1.3I/O 口。有键按下时,输入口被置为高电平(TTL) 。5 ,无按 键事件发生时,输入口为低电平(TTL) 。1.0μF 电容用于键盘消抖。绿、黄两个指示灯分别指示温度源的 状态:自动、手动。高电平有效(TTL) ,分别接入单片机 P1.4、P1.5I/O 口。

3 系统的软件设计
系统的软件设计包括:主程序、中断子程序、键盘子程序、显示子程序、报警子程序、步进电机控制 子程度。整个系统的主程序框图如图 5。在系统上电后,首先对系统进行初始化,然后扫描键盘,使最低 位 LED 显示器显示“0” ,以提示输入数据。如果按下输入参数键,可以输入参数,则显示该输入的数值并 对连续的输入的数值进行处理,直到输入“确认”键确认后表明参数值设定完毕,在内存中保存该参数, 进行其它的处理。通过键盘可以进行正、反转的设置,如按下一次正/反转键,则变量值改变一次,即每按 下一次正/反转键,系统的设置在正、反转之间进行转换,相应的在显示器上显示设置的是正转还是反转。 用户可以通过键盘查询参数的值,在待机状态下连续按两次参数键,则在 LED 显示器上显示出输入的参数 值,以供用户查询输入的参数正确与否。如果输入错误,可以再按下输入参数键重新输入,直到正确为止。 如果输入的参数不符合条件,则显示器会提示用户重新输入。参数设定好后,按下“启动”键,系统开始 计算运行参数,然后显示运行状态,启动定时器,开中断,电机启动,经过升速过程、匀速过程和降速过 程直至一次的走步结束。回到待机状态下,等待下次输入再进行走步。在电机正常运行期间,如果想停机 按“停止”键,则程序转到中断服务函数,在中断服务函数中进行“停止”键的处理,停止电机的运行。

D4

6

C1

第4期

基于单片机的步进电机控制系统的研制
主程序

·49·

初始化

扫描键盘 ,等待输入

N

是否有键按下 ? Y

显 示 该 参 数 值 Y

输入参数键

正/反转键

启动键

扫描键盘

查询参数值 ? N

正 反 转 处 理

N

fg 是否合适? Y 计算参数

N

Y

sn是否合适 ? Y

确认输入值 N

N

开定时器和中断

是否为数字键 Y 数字键处理 一次步进结束 指向下一个数字 步进电机进行走步

图5

主程序框图

4 结束语
基于单片机的步进电机控制系统实现了键盘进行输入运行参数、启动、停止等操作;显示器能够显示 输入数据及运行状态;通过键盘的输入,控制电机带动负载进行预定的工作,使得单片机对电机的控制更 易实现,性能价格比更高。本设计的步进电机单片机控制系统实现了步进电机速度控制,大大改善了步进 电机的运行的平稳性,减小了驱动器的体积,增强了抗干扰性能,可以满足更多场合的需要。 参考文献
[1] P.Krishnamurthy,F.Khorrami.Voltage-fed permanent-magner stepper motor control viaposition-only feedback[J].Control Theory Appl,2004,7:499-510. [2] 魏守山,莫以为,黄云奇.基于单片机和驱动芯片的步进电机控制系统设计[J].机床 电器,2008,1:43-47. [3] Guido Remmerie. Driver ICs Elevate Design of Stepper-Motor Control[J].Power Electronics Technology,2007,8:16-20.

Study of step motor control system based on single chip microcomputer ZHENG Bao-rui1,LU Zhong-da2
(1.Qiqihar Heavy CNC Equipment Co. Ltd, Heilongjiang Qiqihar 161006,China ; 2. Computer and Control Engineering College, Qiqihar University, Heilongjiang Qiqihar 161006, China)

Abstract: The design using AT89S51 single chip to made up control system of step motor. driving circuit, keyboard setting circuit, display circuit and system software are designed. The circuit to produce pulse and the speed control were expatiated emphatically. The system is low cost, easy to control, high control precision. Key words: step motor; single chip microcomputer; speed control; driving


相关文档

基于单片机的步进电机控制系统设计与研究[1]
基于单片机的步进电机控制系统1
基于单片机的步进电机控制系统的研制
基于单片机的步进电机控制系统
基于单片机的步进电机控制系统(1)
基于单片机的步进电机控制系统研制
基于单片机的步进电机控制系统设计1
基于单片机的步进电机控制系统设计(1)
一种基于单片机的步进电机控制器的研制
单片机的步进电机控制系统设计与实现[1].
电脑版