历史上的今天
返回首页

历史上的今天

今天是:2026年03月07日(星期六)

2023年03月07日 | 89C51单片机的步进电动机控制系统设计

2023-03-07 来源:elecfans

本文为大家带来两个89C51单片机的步进电动机控制系统设计。


89C51单片机的步进电动机控制系统设计一

系统整图如图1所示,本系统采用外部中断方式,p0口作为信号的输入部分,p1口为发光二极管显示部分,p2口作为电机的驱动部分。

89C51单片机的步进电动机控制系统设计

图1 系统整图

电源部分

利用LM7812和LM7805芯片得到12V和5V的电压,它们的应用要注意以下几点:

(1)输入输出压差不能太大,太大则转换效率急速降低,而且容易击穿损坏;

(2)输出电流不能太大,1.5A 是其极限值。大电流的输出,散热片的尺寸要足够大,否则会导致高温保护或热击穿;

(3)输入输出压差也不能太小,大小效率很差。 其中12V电压给步进电机供电,5V电压则给单片机供电。分别如图2、图3所示。

(1)产生12V的电压给步进电机供电

89C51单片机的步进电动机控制系统设计

图2 12V电路部分

(2)产生5V的电压给单片机供电

89C51单片机的步进电动机控制系统设计

图3 5V电路部分

按键部分

本次设计选用的是单片机的P0口来控制信号的输入,所以把按键开关和P0口连接起来,当按下开关S1时,相当于给P0.0口一个低电平;当按下开关S2时,相当于给P0.1口一个低电平;当按下开关S3时,相当于给P0.2口一个低电平;当按下开关S4时,相当于给P0.3口一个低电平;当按下开关S5时,相当于给P0.4口一个低电平。然后通过单片机实行相应的操作。如图4。

89C51单片机的步进电动机控制系统设计

图4 按键部分电路

驱动部分

此电路是步进电机的驱动部分,我选用的是ULN2004芯片来驱动的,ULN2004系列是一款高耐压,大电流达林顿管驱动器,包含7个NPN达林顿管。如图5。

89C51单片机的步进电动机控制系统设计

图5 驱动部分电路

状态指示部分

状态指示用P1口控制发光二极管的显示,如果相应端口是低电平,相应的发光二极管就会亮,用它来表示步进电机所处的状态。

时钟部分

时钟电路是计算机的心脏,它控制着计算机的工作节奏,可以通过提高时钟频率来提高CPU的速度,本次设计采用的晶振为12MHz。如图6。

89C51单片机的步进电动机控制系统设计

图6 时钟部分电路


系统软件设计

系统主程序

系统分为电机正转、电机反转、电机加速与电机减速的几部分组成,其主程序框图如图7所示。

89C51单片机的步进电动机控制系统设计

图7 主程序框图

查键部分

查键程序用于判断P0.0口与P0.1口的值,当p0.0口为0时,电机正转,当p0.0口为1时,继续判断p0.1口的值,p0.1口为0时,电机反转。如图8所示。

89C51单片机的步进电动机控制系统设计

图8 查键部分流程图

前进部分

系统初始化之后,前进子程序R0用于给P2口送不同的值,根据电机转动的相序,使电机正向转动,P2口的值分别为01H,03H,02H,06H,04H,0CH,08H,09H。流程图如图9所示。

89C51单片机的步进电动机控制系统设计

图9 前进部分流程图

后退部分

电机反转原理与正转相似,此时P2口的值分别为09H,08H,0CH,04H,06H,02H,03H,01H。流程图如图10所示。

89C51单片机的步进电动机控制系统设计

图10 后退部分流程图

加速部分

当电机正转或反转的时候,按下加速键,调用加速子程序,使电机每转动一步的延时时间变短,从而实现电机的加速。流程图如图11所示。

89C51单片机的步进电动机控制系统设计

图11 加速部分流程图

减速部分

电机正转或反转的时候,按下减速键,通过改变电机每转动一步的延时时间,使时间变长,从而实现电机减速。流程图如图12所示。

89C51单片机的步进电动机控制系统设计

图12


89C51单片机的步进电动机控制系统设计二

控制系统设计

步进电机控制系统主要由单片机、PC上位机、驱动电路、步进电动机、4*4键盘和LED显示等模块组成,下图为步进电机控制系统是总体结构图。单片机产生脉冲信号并将脉冲信号传送给步进电动机,完成对步进电动机的步数和圈数的准确计数,从而实现对步进电动机的转速控制。PC上位机模块是系统的核心,通过串口向单片机发送控制命令,实现PC机对步进电动机的实时控制,并实时显示步进电动机的运行状态。4*4键盘模块实现指令输入,LED显示模块可显示步进电动机的转速和转向等运行状态。为保护单片机控制系统硬件电路,在单片机和步进电机之间增加过驱动电路。

89C51单片机的步进电动机控制系统设计

系统总体结构图

由于步进电动机的驱动电流比较大,步进电动机较大驱动电流的通断会造成电磁干扰,进而会影响单片机的正常工作。因而单片机与步进电动机之间的驱动电路就显得尤为重要。本系统采用74LS04非门与有光电隔离的4N29达林顿管组成驱动电路,这样不仅避免了在驱动电路发生故障,造成高电压、大电流进入单片机而烧毁器件。同时割断了驱动电路与单片机控制电路之间的电气连接。另外步进电动机的启停和正反转分别由S1,S2控制。硬件接线图如下图所示。

89C51单片机的步进电动机控制系统设计

步进电机与单片机硬件接线图

软件实现

单片机程序判断步进电机是否启动;若启动则进一步判断其旋转方向;然后按照既定的旋转方向传送控制脉冲序列,再加上脉宽延时即可。每走一步步数减1,并判断步数是否为零,从而决定是否送下一个脉冲序列。其控制状态如下表所示。

89C51单片机的步进电动机控制系统设计

三相单三拍控制模式

由上表可以看出,输出的不同状态字,表示不同的励磁方式。P1=0x06H,表示A相通电,其它两相断电:P1=0x05H,表示B相通电,其它两相断电;P1=0x03H,表示C相通电,其它两相断电。若以次给P1口送0X06H,0X05H,0X03H,则步进电机通电顺序为A——B——C——A相。反之若以次给P1口送0X03H,0X05H,0X06H,则步进电机通电顺序为C——B——A——C相。从而用软件实现了步进电机的正反转控制。步进电机的旋转速度可以用脉冲宽度,即送出控制状态字后的延时时间长短来控制。

软件设计流程框图如下图所示。

89C51单片机的步进电动机控制系统设计

步进电动机控制流程图


推荐阅读

史海拾趣

Altus Technology Inc公司的发展小趣事

随着公司规模的不断扩大,Altus开始实施全球化战略,积极拓展海外市场。公司通过与国际知名企业的合作,成功将产品打入国际市场,并建立了完善的销售网络和客户服务体系。同时,Altus还积极参与国际电子行业的交流和合作,不断吸收和引进国际先进技术和管理经验,提升了公司的整体竞争力。

上海双岭电子(Double-peak)公司的发展小趣事

在保持核心技术优势的同时,双岭电子也积极探索跨界合作的可能性。通过与国内外知名企业和研发机构的合作,公司成功将场效应半导体器件应用于传感器、仪器仪表和自动化控制等领域。这种跨界合作不仅拓宽了公司的市场渠道,也提升了产品的附加值。同时,双岭电子还积极参与各类行业展会和交流活动,与业界同行建立了良好的合作关系。

Bomar公司的发展小趣事

在环保意识日益增强的今天,Bomar公司积极响应全球环保号召,开始研发并应用环保材料。公司推出的生物基低聚物产品,完全或部分提取自植物或农作物等可再生原料,不仅降低了对石油产品的依赖,还具有低刺激性和低毒性的优势。这一创新举措不仅有助于提升Bomar公司产品的环保性能,也符合了市场对环保产品的需求趋势,为公司的可持续发展注入了新的动力。

这五个故事只是Bomar公司在电子行业发展过程中的一部分,但它们却展示了公司在技术创新、市场拓展、合作发展以及环保责任等方面的努力和成就。通过这些故事,我们可以看到Bomar公司如何紧跟时代步伐,不断适应和引领电子行业的发展趋势。

Auctor Corp公司的发展小趣事

Auctor Corp公司的创始人,一群富有远见和冒险精神的工程师,怀揣着对电子技术的热情和对市场的敏锐洞察,决定共同创办这家公司。在创业初期,公司面临着资金紧张、技术储备不足等多重困难。然而,团队成员们凭借着坚韧不拔的精神和对技术的执着追求,通过自主研发和不断改进,逐渐在市场上站稳了脚跟。

EFINIX公司的发展小趣事

经过深入研发,EFINIX公司成功推出了Quantum™可编程加速器技术。与传统的FPGA技术相比,Quantum™技术可将面积利用率提高4倍,使得ASIC、ASSP和FPGA领域的高级可编程硅产品得以实现。该技术使EFINIX的产品在面积、功耗、性能等方面具有显著优势,吸引了众多客户的关注。

BETA Transformer Technology Corp公司的发展小趣事

随着电子行业的快速发展和变革,BETA Transformer Technology Corp公司面临着前所未有的挑战。为了应对这些挑战,公司不断加大研发投入,加强技术创新,推出了一系列符合市场需求的新产品。同时,BETA公司还积极调整生产结构,优化供应链管理,降低成本,提高产品质量。这些举措使得BETA公司在激烈的市场竞争中保持了领先地位。

问答坊 | AI 解惑

一个免费液晶样品的机会

附件是申请方法和选型表。 该液晶被网友选为09年电子技术应用最佳产品 …

查看全部问答>

如何检测串口接收到什么数据?

我现在用一个GPS芯片接收卫星传下来的数据,用万用表测量,发现电压为2.45V,提供的电压是3.3V,应该是接收到了数据,但是用MiniCDU就是无法现实接收到的数据,用系统的超级终端还是无法检测到是否接收到数据了,请问高手,这是什么原因啊?…

查看全部问答>

有什么方法可以判断某仪器的空间位置.

比如一个仪器,在一个房间里移动,需要什么技术得对这个仪器对房间的空间坐标.…

查看全部问答>

新手求助,ld命令的问题.

我建立了一个工程,生成目标文件mutex.o.启动vxsim目标服务器,名称为vism@zxj. 在shell里面输入ld vism@zxj mutex.提示mutex未定义符号?要怎么输入呢? 刚开始学一天,问这个白痴问题,请大家不要见笑.…

查看全部问答>

wince注册表设置的疑问:

在注册表中偶然看到这个一段:   \"DevConfig\"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00请问这个设置 是根据什么来设的呀?作用是什么呀?…

查看全部问答>

庆祝一下有人倒分被抓!SF

以后要加小心了,呵呵。…

查看全部问答>

用IAR建立工程不成功,请大家帮助。

用IAR自己建立一STM32工程,编译提示找不到*.h文件。自己觉得可能是c/c++ compiler下Proprocess处设置的原因,目前是参考万利的设置: $PROJ_DIR$.. $PROJ_DIR$....Libraryinc 不成功,烦请高手指点下。 工程在此: ...…

查看全部问答>

DSP不停复位,求助!

我现在的板子,JTAG可以烧写程序,可以调试。复位芯片用的MAX708R,用JTAG仿真,F5运行, / RESET 引脚上常为高,DSP2812正常工作,但是拔掉仿真器,断电后,用示波器检测/RESET(MAX708R) 检测到有200HZ的复位信号,。XCLKOUT 输出为3.75M,奇怪了 ...…

查看全部问答>

设计一个定时中断程序

急急急,帮忙设计一个10ms定时中断程序!!!跪谢!!!…

查看全部问答>