产品选型

单片机驱动led 单片机常用电路3-按键检测,LED驱动电路

小编 2024-10-05 产品选型 23 0

单片机常用电路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驱动芯片的电路,每种芯片有各自特点,这里就不多说了。

如何用单片机点亮一个LED灯(入门基础篇)

这几天主要为大家分享一些元件的基础知识以及在电路的应用,一开始没直接就写单片机之类的,对于单片机来说的,需要我们有一些基础,在应用中不但涉及到模拟电子技术也包括数字电子技术,对于从未接触这方面的人员来说,理解起来是有些难度的,为了能让大家都明白,我们还是先学习下它的基础应用。

今天我们使用的单片机芯片为STC89C52,他和俗称51单片机使用方法一样,就是内存大小不一样而已,在我国大部分人入门单片机是从51开始的,在国外用的最多的是Arduino,这也不是绝对的,考虑到大部分人群,我们今天就用51单片机来讲解。

一提到单片机,没有接触过的会产生一个疑问 ,什么是单片机?

STC89C52芯片

官方解释为:单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。

简单的理解他就是一个集成电路(内部有很多复杂电路),他能控制许多模块,单片机就像人的大脑,我们做什么是都是由大脑控制,因此单片机的发明使自动化智能化更近了一步。

如果问你如何让一个LED亮的话,可能你想到最直接的方法就是把LED的正极连在VCC,负极连在GND,如果电流太大,可以串联一个电阻起到限制电流的作用;在单片机中道理也是如此,通常我们把LED正极经过串联一个电阻直接连在电源正极,然后另一端接在单片机上。

由原理图可以看出,只要我们把P1^0这个端口接地就行了,因此我们所做的工作就是用单片机能够理解的语言把P1^0这一个端口接地,这就得需要编程,这里就不多介绍编程,回来专门写一篇文章关于编程的文章,这里把程序直接展示出来。

#include<reg52.h>

sbit LED=P1^0;

main()

{

while(1)

{

LED=0;

}

}

这个程序很简单,单片机会一直循环执行LED=0这个语句(在数电中可以简单理解为=0就是接电源负=1就是接电源正),意思就是让P1^0这个端口接地,这样就能使LED一直点亮。

用的贴片展示的效果

一开始学单片机的时候都会从点亮一个LED灯开始做起,就像我们学编程输出一个HELLO WORD一样,大家也不要小瞧LED灯,其实我们生活中很多地方都用到了,像流水灯,交通信号灯,广告牌,甚至连显示屏都会用到LED灯,如果你能够足够熟练操作LED,还是前途无量的。

单片机入手还是比较容易的,如果想熟练应用的话,还是有一定难度的,但是只要我们坚持下来,我相信你就能够熟练开发应用,我会每天发布一些这方面的文章,大家可以关注下,我祝大家能够取得成功!

相关问答

怎样用STM32点亮 LED 灯?怎样用STM32让 LED 闪烁?

对于单片机编程而言,点亮LED是单片机编程的入门操作。对于STM32,本人习惯使用寄存器操作,所以本文将以KEIL4.12作为开发环境,以寄存器操作试验为编程思路讲...

单片机 实现 led 优点?

300个肯定用串联了。。有专门的LED控制器单卖6块钱一个,最多可串联2000个LED。。控制器功能,可间隔0.5S闪烁,可变换光色(仅限于多色LED),可以一直亮着。...

单片机led 灯要加电阻吗?

对于单片机控制的LED灯,需要加电阻来保护LED,防止LED过电流烧坏。具体来说,LED为半导体器件,其工作电流应该控制在额定电流以下,而单片机IO引脚输出的电流较...

用keil设置51 单片机 p2口0 1 2作为开关控制8个 led 灯亮?

使用软件简单的控制,根据P2端口的数值作为依据去控制8个LEd灯亮,比如当P2=000控制一个,P2=001控制另外一个,以此类推。。使用软件简单的控制,根据P2端口的数...

51 单片机 做为输出高电平 驱动LED 或是三极管基极,需不需要加限流电阻?

51单片机高电平驱动能力很弱,输出电流只有300到500uA因此直接接LED的话,电流很小,亮度很低,就别提加限流电阻了负载电流大时,需加三极管驱动,但也要求三...

单片机 设计中多个 LED 灯如何连接?

因为LED是非线性元件,每个元件的制造不可能100%都一样(跟线性元件一样),所以每个LED灯的在压降不相同,并一起会亮暗不均匀,所以要分开各支路供电,另外是LED...

单片机 设计8个 led 灯同时闪烁的程序?

八个灯接在单片机的P1口(P0,P2,P3,P4都一样)while(1){delay(你想要延时的时间);P1=0xff;delay(你想要延时的时间);P1=0;}注意led最好加驱...

如何让 单片机 灯亮?

让单片机控制LED灯亮的实现方法很多,下面是其中一种基于AVR单片机和汇编语言的控制方法:1.准备材料:ATmega32单片机(或其他型号的AVR单片机)、一个...

LED 显示屏和 单片机 是怎么串行连接的?

LED显示屏硬件实现对LED灯的驱动并提供控制接口。驱动芯片也称LEDDRIVER,不同的DRIVER有不同的控制方式。DRIVER之间有并行或串行连接。你所说的与单片机的...

单片机驱动 交流接触器的方法

[回答]在各种自动控制设备中,都存在一个低压的自动控制电路与高压电气电路的互相连接问题,一方面要使低压的电子电路的控制信号能够控制高压电气电路的执...

猜你喜欢