单片机常用电路3-按键检测、LED驱动电路
在单片机入门学习中,最简单、最常见的两种入门元器件大概就是按键和LED了,围绕按键和LED可以基本上把单片机的功能学很多,例如按键可以用来学习单片机的端口输入功能、端口外部中断功能、定时/计数器的计数功能等等;而LED可以用来学习单片机的端口输出功能,定时/计数器的定时功能、PWM功能,位操作功能,电压比较器功能,以及单片机多种操作控制、流程指示等功能。
现在我们就来简单了解一下按键检测和LED驱动电路。
1、按键检测电路
图1是按键检测电路。该电路图包含两种电路:
图1 按键检测电路
一种是连接按键的单片机端口在按键未按下时,处于低电平状态,当按键按下后,单片机端口变为高电平,也就是说,当单片机端口检测到端口电平由低电平变为高电平后,可以判断为按键按下。
另一种是连接按键的单片机端口在按键未按下时,处于高电平状态,当按键按下后,单片机端口变为低电平,也就是说,当单片机端口检测到端口电平由高电平变为低电平后,可以判断为按键按下。
这种按键检测电路的缺点是没有防抖动功能,所以要实现消抖功能,必须通过单片机软件编程实现。
另外,电路中的电阻的作用是为了保护端口,避免电源直接连到单片机端口导致的烧毁端口情况发生。
2、带消抖功能的按键检测电路
图2是带消抖功能的按键检测电路,同样的,带消抖功能的按键检测电路也分为按键平时处于高电平还是低电平两种。我们以按键未按下时处于高电平,按下后处于低电平为例来了解一下电路原理。
图2 硬件消抖电路
当按键断开时,电源电压通过电阻对电容充电,电容上的电压与电源电压相等,当按键按下时,由于按键内阻很小,电容通过按键迅速放电,按键两端电压迅速降到接近0V,单片机输入端为低电平,在按键按下时,由于抖动导致按键会短时断开,电源电压经电阻对电容充电,由于电阻的阻值较大,短时间内电容充电量很少,所以电容两端电压基本不变,单片机输入端的电平也基本保持不变,从而保证了按键抖动时仍可以使单片机输入端保持稳定的低电平信号。
这种硬件消抖电路需要根据实际情况选择R和C的值,具体请参考我在头条里的文章《基于proteus的51单片机开发实例(7)--按键的检测》。
3、简单的LED驱动电路
图3是一种简单的LED驱动电路。这两个电路一个是LED发光时,电流经过LED流到单片机端口,俗称“灌电流”驱动LED,另一种是LED发光时,电流经过单片机端口流到地,俗称“拉电流”驱动LED。
图3 LED驱动电路
这种电路的缺点是:单片机的驱动能力有限,一般单片机端口驱动电流能力在10mA以下,并且单片机总的驱动电流一般不超过100mA。所以当单片机电路中电路模块较多时,可能会导致驱动能力不足,因此这种方式只适合在学习和实验时,不适合用在单片机产品中。
4、通用LED驱动电路
图4,图5是常用的LED驱动电路。在这两个电路中,单片机端口实际上相当于开关的功能,当单片机输出高(或者低)电平时,LED点亮(或者熄灭);当单片机输出低(或者高)电平时,LED熄灭(或者点亮),驱动LED发光所需的电流由三极管提供,单片机端口只负责控制三极管的导通或者截止就可以了。
图4 LED驱动电路1
图5 LED驱动电路2
5、LED驱动芯片
现在有很多专用的LED驱动芯片,可以直接驱动多路LED,至于LED驱动芯片的电路,每种芯片有各自特点,这里就不多说了。
华维实战小项目:教你如何用51单片机驱动步进电机
前言
步进电机是一种无刷电机,可将电脉冲转换为机械旋转。顾名思义,它根据输入脉冲逐步旋转,是现代数字程序控制系统中的主要执行元件。
步进电机相比其他电机来说,一般具有5个比较明显的特征:
第一,可实现精细,正确的定位
第二,可通过脉冲信号简单控制
第三,体积小型,高转矩
第四,可自行保持停止位置
第五,可进行大惯性负载
广泛应用于工业、医疗、消费电子应用。简而言之,用于任何需要精确旋转或定位对象的地方。
在单片机领域应用比较广泛,在此和大家分享一个小项目。
-操作
步进电机内部线圈原理图:
步进电机通常具有多个励磁线圈(相)和一个带齿转子。电机的步长由相数和转子上的齿数决定。步长是转子一步的角位移。比如一个步进电机有 4 相 50 个齿,则转一圈需要 50×4=200 步。因此步距角为 360/200=1.8°。
本次使用的步进电机有 4 极和一个 1/64 减速齿轮机构,用于增加扭矩。电机的步距角为 5.64°。但在考虑减速齿轮,输出轴的步距角为5.64/64°。
电路原理图:
将步进电机按照电路图连接到 8051 的P1.0、P1.1、P1.2 和 P1.3 引脚分别用于控制步进电机的 A1、A2、A3 和 A4 相。ULN2003 用于驱动步进电机的各个相位。
ULN2003 是一种达林顿晶体管阵列,用于驱动继电器和电机等大电流负载。ULN2003 有 8 个单独的通道,每个通道的容量为 1A,通道可以并联以增加电流容量。每个通道都配有单独的续流二极管,通道通过提供逻辑低电平来激活。例如,我们将 ULN2003 的引脚 1 设为低电平,则步进电机的 A1 接通。
程序设计
按照上图的引线顺序,按时序循环给A1、A2、A3、A4相应的控制。
程序首先将 P1.0 清零以启动步进电机(A1),此状态保持 65ms,然后设置 P1.0 为1以停用电机的第 1 相。然后对 P1.1 到 P1.3 重复相同的过程,并一遍又一遍地重复整个循环,使电机沿顺时针方向旋转。
将定时器 0 配置为模式 1,用于产生 65 毫秒的延迟。65ms 是每个控制脉冲的宽度。
结束
这个小项目非常简单,主要是电机控制在单片机项目中太常见了,很有必要掌握。希望通过这个分享能帮助到有需要的同学。
想要进阶单片机的同学,找我领取入门和进阶教程,加入我们,就可以与导师一对一互动,快速成长。
华维团队
专注单片机十年
物联网 丨 嵌入式 丨 单片机
相关问答
51单片机 电机 驱动 用哪个脚?不知道你想驱动什么类型的电机?需要注意的是,单片机引脚不具备直接驱动各种类型电机的电流能力,都需要外接继电器或者是开关管,至于使用哪个引脚无关紧要,只...
51单片机 如何 驱动 12V继电器?单片机是一个弱电器件,一般情况下它们大都工作在5V.驱动电流在mA级以下,而要把它用于一些大功率场合,比如控制电动机,显然是不行的。所以就要有一个环节来衔...
win10装不上 51单片机 的开发板 驱动 怎么处理-ZOL问答驱动,看看是否可以解决问题。如果还是不行,可以考虑更新电脑的BIOS或者重装系统前备份好数据,因为新系统可能会有更好的设备管理器处理51单片机驱动。但请谨慎...
51单片机 的各个引脚输出高低电平的时候电压和电流是多少?能够带动4个或者是8个ttl负载是什么意思?51单片机输出低电平驱动能力很强,至少可达20mA~50mA。高电平驱动能力很弱,电流在5mA以下。带动4~8个TTL负载是指一个输出类的IO口可与4~8个TTL的输入引脚相连...
win10系统肿么装 51单片机 开发板的 驱动 -ZOL问答将数据线插上win10系统一般会自动安装,如果不能够安装就到开发版时送的资料里面寻找开发版驱动,就是ch开头的那个,然后双击,在弹出的页面点击安装就行了有用...
如何用 51单片机驱动 2相4线步进电机?转速。在...用两个全局变量控制正反转,两个定时器中断分别控制两个电机,或用一个定时器产生一个时间单位,用两个变量计数分别控制两个电机转速。在proteu...
单片机驱动能力 如何提高?最好是电路图。89c52芯片的?单片机是弱电控制中心单片机只是一个控制中心,IO的驱动能力是很弱的,只能用于信号处理或者信号控制,最多是驱动一个LED作为指示灯。驱动负载需要加入三极管、...
单片机 能控制多大的电流和电压?单片机本身并不直接控制电流和电压的大小,它作为一个微控制器,主要负责控制外部器件的开关和逻辑操作。单片机的输出引脚通常具有较小的电流(几毫安级别)和电...
家里有许多手机屏,请问能用 51单片机驱动 ,现实一些简单的图像吗?可是可以,但是涉及到连接口还有其他的问题,51点彩屏我还没学到,但是点大液晶就有点麻烦了,看了一下别人的,估计程序有点麻烦可是可以,但是涉及到连接口还有其...
各位朋友 请教一下,如何用 51单片机 控制伺服电机?伺服控制装...[回答]在伺服系统中控制机械元件运转的发动机,是一种补助马达间接变速装置。无线蓝牙串口透传模块,又叫蓝牙模块,是一种集成蓝牙功能的短距离无...无线蓝...