如何使用8051单片机控制双向直流电机

发布者:数字狂舞最新更新时间:2023-10-26 来源: elecfans关键字:单片机控制 手机看文章 扫描二维码
随时随地手机看文章

如何将直流电机连接到8051单片机?在本文中,主要有8051单片机+DC电机系统两个部分。首先是带有控制电机所需程序的8051单片机,其次是合适的驱动电路。


大多数直流电机的功率要求远远超出了单片机的范围,而且在反转旋转方向时产生的电压尖峰更容易损坏单片机。因此将直流电机直接连接到单片机是不明智的,完美的解决方案是在单片机和直流电机之间使用电机驱动电路。


一、L293电机驱动芯片

L293是一款专用的H桥电机驱动器IC,采用16引脚封装。L293的电流容量为600mA/通道,电源电压范围为4.5至36VDC。它们配有内部高速钳位二极管,用于电感尖峰保护。L293的其他优点包括高抗噪性、内部ESD保护、热关断、每个通道的独立输入电源等。L293电机驱动器的引脚排列和真值表如下图所示:

L293-pinout.png

二、使用8051单片机控制双向直流电机

这里的双向直流电机,它在预设时间(约1秒)后自动改变方向。AT89S51是这里使用的单片机,L293构成电机驱动器。电路图如下所示:

interfacing-dc-motor-8051.png

在电路元件R1、S1和C3中形成去抖动复位电路。C1、C2和X1与振荡器有关。端口引脚P1.0和P1.1连接到L293电机驱动器的相应输入引脚。电机连接在L293的输出引脚3和6之间。软件是这样写的,P1.0和P1.1的逻辑组合控制电机的方向。最初接通电源时,P1.0为高电平,P1.1为低电平。该状态保持预设时间(约1S),此时电机将沿顺时针方向运行(参见L293的功能表)。然后P1.0和P1.1的逻辑被交换并且这个条件也保持相同的持续时间。


控制程序1:

ORG 00H

MAIN: MOV P1,#00000001B

ACALL DELAY

MOV P1,#00000010B

ACALL DELAY

SJMP MAIN

DELAY: MOV R4,#0FH

WAIT1: MOV R3,#00H

WAIT2: MOV R2,#00H

WAIT3: DJNZ R2,WAIT3

DJNZ R3,WAIT2

DJNZ R4,WAIT1

RET

END


三、带按钮控制的双向电机

下面显示的电路是基于8051单片机的双向电机,其方向可以使用2个按钮开关控制。除了两个按钮开关之外,该电路与前一个电路非常相似。这些按钮开关连接到单片机的P0rt3。电阻R2和R3分别是P3.0和3.1的下拉电阻

interfacing-dc-motor-8051-push-button.png

上述项目的代码是这样编写的,最初当电源打开时,电机保持关闭。当按下按钮开关S2时,P1.0变为高电平,而P1.1保持低电平。电机按顺时针方向运行,此状态一直保持到按下S3。当按下按钮开关S3时,P1.0和P1.1的逻辑切换,使电机以相反方向运行,这种状态一直保持到下一次按下S2。


控制程序2:

ORG 00H

MOV P3,#00000000B

MOV P1,#00000000B

MAIN:MOV A,P3

CJNE A,#00000001B,LABEL1

MOV P1,#00000001B

LABEL1:CJNE A,#00000010B,LABEL2

MOV P1,#00000010B

LABEL2:SJMP MAIN

END


检查特定按钮是否被按下是使用CJNE(如果不相等则比较并跳转)指令完成的。简而言之,CJNE指令比较两个操作数,如果操作数不相等,则跳转到预定义的LABEL。如果两个操作数相等,则不会发生任何事情并执行下一条指令。每当按下按钮S2时,P3的状态将是00000001B。该状态被移动到累加器A并使用CJNE指令与00000001B进行比较。两个操作数相等表示按下S2,执行下一条使电机顺时针转动的指令(MOV P1,#00000001B)。如果操作数不相等,则表示没有按下S2,控制器跳转到LABEL1以检查S3。要检查S3,P3的状态再次移动到A,并使用CJNE指令与00000010B进行比较。两个操作数相等表示按下S3,执行下一条使电机逆时针运行的指令(MOV P1,#00000010B)。两个操作数不相等意味着S3未被按下,控制器再次检查S2并重复此循环。


关键字:单片机控制 引用地址:如何使用8051单片机控制双向直流电机

上一篇:MAX6900 RTC与8051位控制器的连接
下一篇:如何使用8051定时器生成时间延迟?

推荐阅读最新更新时间:2024-11-12 23:04

【STC单片机学习】第七课:单片机控制静态/动态数码管
1.7.1.什么是数码管 1.7.1.1、几方面看数码管 (1)外观 (2)作用:数码管是显示器件,用来显示数字的:工业场合用的比较多! (3)分类:单个(1位)、联排(2位、4位、8位) 1.7.1.2、工作原理 (1)亮灭原理(其实就是内部的照明LED) 一个数码管里面有8个LED。 (2)显示数字(甚至文字)原理:利用内部的LED的亮和灭让外部的组成数字的笔画显示或者不显示,人看到的就是不同的数字。和点灯很相似!例如下面:显示2、8 1.7.1.3、共阳极和共阴极数码管 (1)驱动方法的差异 必须清楚一个数码管内部的8颗LED是独立驱动的。如果8颗LED的正极接在一起接到VCC上(负极分别接到单
[单片机]
【STC单片机学习】第七课:<font color='red'>单片机控制</font>静态/动态数码管
8051单片机端口结构—P3口
P3口是一个多功能端口,对比P1的结构图不难看出,P3口与P2口的差别在于多了与非门和缓冲器。正是这两个部分,使得P3口除了具有P1口的准双向I/O功能之外,还可以使用各引脚所具有的第二功能。 与非门的作用实际上是一个开关,决定是输出锁存器上的数据还是输出第二功能W的信号。WR和RD三个第二输出功能引脚。当W=1时,输出Q端信号;当Q=1时,可输出W线信号。编程时,可不必事先由软件设置P3口为通用I/O口还是第二功能。 当CPU对P3口进行特殊功能寄存器寻址访问时,由内部硬件自动将第二功能输出线W置1,这时P3口为通用I/O口;当CPU不把P3口作为特殊功能寄存器寻址访问时,即可用作第二功能输出/输入线时,由内部硬件使锁存
[单片机]
<font color='red'>8051</font>单片机端口结构—P3口
PIC单片机控制的小鸭牌药膳煲
  小鸭BD20-A型PIC单片机控制的多功能微电脑药膳煲,煎药或制作膳食时,只要达到定时时间,药膳煲会发出蜂鸣音提示,并自动转入60℃保温状态。   测绘的电路工作原理见附图。   当煎杯压下温度感测盘,感测盘将行程开关压合,上电时药膳煲处于待机状态,切换指示灯亮。按下选择键一次,设定时间累加30分钟。若设定时间为150分钟或180分钟方式,也可通过模式1或2直接选择设定。如需重新设定时间,则需先按切换键。时间设定完成后约5秒钟,单片机发出工作指令,2脚输出高电平,经9014驱动使继电器吸合,加热丝回路接通。每30分钟,时间显示减少30分钟。   变压器次级12V交流电压一路经D4、D2整流、C4滤波得到+14V左右的直流电
[单片机]
PIC<font color='red'>单片机控制</font>的小鸭牌药膳煲
51手记之C8051F
使用Silicon Lab的专利CIP-51微控制器内核,可以使用标准803x/805x的汇编器和编译器进行软件开发,CIP-51采用流水线结构,与标准的8051结构相比指令执行速度有很大的提高,70%的指令的执行时间为1或2个系统时钟周期,只有4条指令的执行时间大于4个系统时钟周期。 CIP-51共有111条指令。下表列出了指令条数与执行时所需的系统时钟周期数的关系。 器件内部包含一个稳压器(REG0)。当被使能时,REG0输出连到VDD引脚,并可为外部器件提供电源。REG0可以被软件使能/禁止。 可在工业温度范围(-45℃到+85℃)内用2.7V-5.25V的电压工作。电源电压大于3.6V时,
[单片机]
51手记之C<font color='red'>8051</font>F
51单片机控制LCD1602模块
(1)LCD1602概述 先来看看LCD1602什么意思?Liquid Crystal Display(LCD)表示液晶显示,1602 表示一行可以显示16个字符,一共有两行。 现在我们来看看如何使用简单的IO控制和延时来实现操作LCD1602液晶模块。既然是用单片机控制LCD1602,那么根据前面的分析,首先要搞清楚谁是控制对象,谁是被控制对象。很显然,LCD1602是被控制对象,那么我们就先从LCD1602开始分析。所谓控制也可以理解为沟通,比如你与室友沟通,希望他帮你买瓶绿茶,那么就表示至少你的室友能听懂你的“指令”,能知道绿茶是什么,如何去买等等信息。好了,那么如何与LCD1602沟通呢?可以想一想,平时人与人是如何沟通
[单片机]
51<font color='red'>单片机控制</font>LCD1602模块
单片机控制的静电除尘电源调压系统
       1. 引言   静电除尘器有除尘效率高、运行和维修费用相对低廉等特点,在减少排放到大气中有害粉尘方面起着十分重要的作用,是当前使用较为广泛的一种环保设备。静电除尘器是利用高压静电吸附带电离子的原理进行除尘。一般来说,静电极板电压越高,对带电离子的吸附能力就越强,除尘效率越高。但电压越高,电场内会出现频繁的火花闪烁,甚至产生电弧,放电过程难以控制,除尘效率明显降低,这种情况应该避免。如果能够控制极板电压长时间维持在临界放电状态,就可以获得最佳的除尘效果并有效节约电力资源。实验证明,基于单片机 80C196KC的静电除尘电源三相交流调压控制系统能够很好实现这一功能。    2. 静电除尘电源主电路及交流调压结
[电源管理]
<font color='red'>单片机控制</font>的静电除尘电源调压系统
C8051F410单片机BootLoader的实现
BootLoader就是单片机在复位后首先执行的一小段引导程序,通过此段程序可以实现硬件初始化、进行“用户程序”更新等功能,本文主要讨论的是通过BootLoader对“用户程序”进行动态更新。 在使用单片机进行产品开发及使用过程中,不可避免的存在更新程序的问题,正常的程序下载是通过单片机仿真器与单片机的特殊I/O口连接来实现。在产品的开发阶段,通过仿真器可以实现程序下载及调试。产品开发完成后,由于单片机已被封装在产品内部,若要进行更新则需要重新打开产品外壳,连接数据线。这对已经批量生产甚至产品已经在最终用户手中的情况下几乎是不可能的,一方面由于这样做效率很低、成本高,另一方面也使用户对产品的整体性能带来很大的负面影响。 1 F
[单片机]
C<font color='red'>8051</font>F410单片机BootLoader的实现
基于单片机控制的出租车计价器
本次出租车计价器设计以AT89C52单片机为中心,采用AMPIRE28*64液晶屏显示出租车计价单价、里程数和金额;采用时钟芯片DS1302来显示时间和在系统需要时进行计时。其中有三个按键代表“开始/暂停”、“清零”和设置“白天/黑夜”。 实验要求 基本功能 1)显示: 可以显示 单价、里程、总金额 2)停车计费功能:中途因故停车超过5分钟后每分钟按当时单价的50%收费 3)自动分时计费功能:白天和夜间应能自动更换单价 4)性能 里程误差小于2% 扩展功能 1)可增加时钟功能 2)可增加数据掉电保护功能 已完成显示、分时计费、时钟三个功能,另外增添了暂停和清零功能。 AMPIRE128*64液晶显示屏 按键电路的设计
[单片机]
基于<font color='red'>单片机控制</font>的出租车计价器
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved