目录
- 1. LED
-
- 1.1.什么是LED/li>
- 1.2.LED的种类
- 1.3.LED的主要参数
- 1.4.LED的主要特性
- 1.5.LED引脚极性识别方法
- 1.6.电压控制型和闪烁型LED
- 2.单片机控制LED
-
- 2.1.点亮一个LED
-
- 2.1.1程序的编写
- 2.1.2程序的编译
- 2.1.3.程序的烧录
- 2.2.闪烁灯
-
- 2.2.1.延时函数
- 2.2.2.闪烁灯的实现
- 2.3.流水灯
1. LED
1.1.什么是LED/h2>
LED(light-emitting diode),即发光二极管,俗称LED小灯,是一种由磷化镓(GaP)等半导体材料制成的、能直接将电能转变成光能的发光显示件。当LED内部有一 定电流通过时,它就会发光,不同LED能发出不同颜色的光,常见的有红色、黄色等,如图:
1.3.LED的主要参数
-
电参数:
(1)正向工作电流IF。它是指发光二极管正常发光时的正向电流值。发光二极管工作电流一般为 10~20mA。
(2)正向工作电压UF。它是在给定正向电流下的发光二极管两端正向工作电压。一般是在 IF=20mA 时测量,发光二极管正向工作电压为 1.4~3V 。外界温度升高时,发光二极管正向工作电压会下降。
(3)伏 – 安特性。它是指发光二极管电压 与电流之间的关系。 -
极限参数:
(1)允许功耗 Pm。它是允许加于发光二极管两端正向直流电压与流过它的电流之积的最大值,超过此值时发光二极管发热、损坏。
(2)最大正向直流电流 IFm。它是允许加的最大正向直流电流,超过此值会损坏二极管。
(3)最大反向电压 URm。它是所允许加的最大反向电压,超过此值发光二极管可能被击 穿损坏。
(4)工作环境 topm。它是发光二极管可正常工作的环境温度范围。低于或高于此温度范围,发光二极管将不能正常工作,效率大大降低。
1.4.LED的主要特性
-
在这个区段内要特别注意,如果不加任何保护,当正向电压增加到一定值后, 那么LED的正向电压减小,而正向电流加大。 如果没有保护电路,会因电流增大而烧坏LED。
(3)OC 段。这是反向死区,发光二极管加反向电压是不发光的(不工作),但有反向电流。这个反向电流通常很小,一般在几微安之内。在 1990~1995 年,反向电流定为 10μA; 在 1996~2000 年,反向电流定为 5μA,目前反向电流一般是在 3μA 以下,但是基本上是 0μA。
(4)CD 段。这是反向击穿区,LED的反向电压一 般不要超过10V,最大不得超过 15V。超过这个电压,就会出现反向击穿,导致发光二极管 废。在这个区段,LED存在较大的反向击穿电流(为几毫安)。这种击穿不是热击穿,不会损坏,一部分交流插座、 交流电源开关上的交流指示灯就是采用LED,在交流电的负半周期间LED就是工作在这一区段。
-
正向电阻和反向电阻特性
LED正向和反向电阻均比普通二极管的大得多,了解这一点对检测二极管有重要指导意义。 -
1.5.LED引脚极性识别方法
为了不影响LED的正常发光, 在外壳上不标出型 和极性。所以识别LED正、负引脚主要靠外形特征和万用表的检测来进行。
-
闪烁型LED
闪烁型LED是一种由 CMOS 集成电路和LED组成的特殊发光器件。下图所示是闪烁型LED实物图和内电路,它可用于 警指示及欠压、超压指示等。
2.单片机控制LED
写了那么多的LED介绍,我们对LED应该有了一个清楚的认识,现在我们开始对单片机编写程序来控制LED。
2.1.点亮一个LED
2.1.1程序的编写
首先我们在Proteus 8 Professional中搭建一个如图所示的电路原理图
2.1.3.程序的烧录
如果没有硬件设备的小伙伴可以使用Proteus 8 Professional来对程序进行模拟仿真。
在Proteus 8 Professional中双击需要烧录程序的单片机,点击文件夹的图标,找到编译的 . hex 文件,点击打开即可,如图:上图为仿真软件中的仿真结果。
至此,点亮一个LED的实验就完成了。2.2.闪烁灯
在2.1.中点亮一个LED就是令“LED = 0”即可,熄灭一个LED的程序也很简单就令“LED = 1”。现在熄灭和点亮都会了,那么如何让LED闪烁呢很简单,在点亮后延迟几秒再熄灭,不断重复即可。
2.2.1.延时函数
实现延时通常有两种方法:一种是硬件延时,要用到定时器/计数器,这种方法可以提高CPU的工作效率,也能做到精确延时;另一种是软件延时,这种方法主要采用循环体进行。在此我们主要研究软件延时。
在很多情况下,定时器/计数器经常被用作其他用途,这时候就只能用软件方法延时。下面介绍几种软件延时的方法。
方法一:
短暂延时:可以在C文件中通过使用带_NOP_( )语句的函数实现,定义一系列不同的延时函数,如Delay10us( )、Delay25us( )、Delay40us( )等存放在一个自定义的C文件中,需要时在主程序中直接调用。如延时10 μs的延时函数可编写如下:Delay10us( )函数中共用了6个_NOP_( )语句,每个语句执行时间为1 μs。主函数调用Delay10us( )时,先执行一个LCALL指令(2 μs),然后执行6个_NOP_( )语句(6 μs),最后执行了一个RET指令(2 μs),所以执行上述函数时共需要10 μs。
方法二:
循环空语句延时:在程序中编写一个空的循环语句,让单片机在空循环中“发呆”。编写大约1ms的代码如下:在 n 为1时,该代码大概运行1ms左右。
该延时方法在非精确延时是最常用的方法。
或者两者都使用:2.2.2.闪烁灯的实现
我们已经掌握了延时函数的写法,就可以开始写闪烁灯了。
电路原理图和2.1的一样,代码如下:声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!
-
正向电阻和反向电阻特性