任务1
|
|
1.LED简介
发光二极管(Light Emitting Diode,LED)是一种由磷化镓(GaP)等半导体材料制成的能直接将电能转变成光能的发光显示器件。当其内部有一定电流通过时,它就会发光。LED的“心脏”是一个半导体LED芯片,芯片的一端附在一个支架上,一端是负极,另一端连接电源的正极,整个芯片被环氧树脂封装起来,其构成如图3-1所示。
图3-1 LED构成
LED芯片由两部分组成,一部分是p型半导体(空穴占主导地位),另一部分是n型半导体(自由电子占主导地位)。当这两种半导体连接起来时,它们之间就形成一个pn结。当电流通过导线作用于这个芯片时,自由电子就会被推向p区,在p区里自由电子与空穴复合,然后就会以光子的形式发出能量,这就是LED发光的原理。而光的波长(也就是光的颜色)是由形成pn结的材料决定的。
LED可分为普通单色LED、高亮度LED、超高亮度LED、变色LED、闪烁LED、电压控制型LED、红外LED和负阻LED等。本项目使用的是普通单色LED,所以,在此只介绍普通单色LED的相关知识。
普通单色LED主要有发红光、绿光、蓝光、黄光的LED。它们具有体积小、工作电压低、工作电流小、发光均匀稳定、响应速度快、寿命长等优点,可用各种直流、交流、脉冲等电源驱动点亮。它们属于电流控制型半导体器件,使用时需串接合适的限流电阻。
普通单色LED的发光颜色与发光波长有关,而发光波长又取决于制造LED所用的半导体材料。红色LED的发光波长为650~700nm,琥珀色 LED 的发光波长为 630~650nm,橙色LED的发光波长为610~630nm,黄色 LED 的发光波长约为585nm,绿色 LED 的发光波长为555~570nm。
常用的国产普通单色LED有BT(厂标型号)系列、FG(部标型号)系列和2EF系列。常用的进口普通单色LED有SLR系列和SLC系列等。
2.利用STC89C51单片机I/O端口控制LED的方法
以前,由于80C51单片机的4组I/O端口不能承受LED导通时的电流输入,所以在设计单片机控制电路时,不能由80C51单片机的I/O引脚直接驱动LED,而要使用集电极开路门电路(如7405等)作为LED驱动电路。
随着新技术的应用和单片机集成技术的不断发展,现在大部分单片机(如STC89系列单片机)的I/O端口均具备一定的外部驱动能力。
STC89单片机有4个双向8位I/O端口(P0~P3)和1个双向4位I/O端口(P4),共36根I/O引线。每个双向I/O端口都包含一个锁存器(即专用寄存器 P0~P4)、一个输出驱动器和输入缓冲器,I/O端口的每一位均可作为准双向/弱上拉的I/O端口使用。
准双向端口输出类型无须重新配置端口线的输出状态,可以直接作为I/O功能使用。这是因为当端口线输出为“1”时,驱动能力很弱,允许外部装置将其拉低;当端口线输出为“0”时,它的驱动能力很强,可吸收相当大的电流。
准双向端口的输出结构如图3-2所示。它有3个上拉场效应管(FET)以适应不同的需求。在3个上拉FET中,有1个上拉FET称为“弱上拉”,当端口线寄存器为“1”且引脚本身也为“1”时打开,此上拉FET提供基本驱动电流,使准双向端口输出为“1”。如果一个引脚输出为“1”而由外部装置下拉到低时,“弱上拉”关闭而“极弱上拉”维持开状态,为了将这个引脚强拉为低,外部装置必须有足够的灌电流能力,使引脚上的电压降到门槛电压以下。
图3-2 准双向端口的输出结构
第2个上拉FET称为“极弱上拉”,当端口线锁存为“1”时打开。当引脚悬空时,这个极弱的上拉FET产生很弱的上拉电流,将引脚上拉为高电平。
第3个上拉FET称为“强上拉”。当端口线锁存器由“0”跳变到“1”时,这个上拉FET用于加快准双向端口由逻辑“0”向逻辑“1”转换。发生这种情况时,“强上拉”打开约2个机器周期,以使引脚能够迅速上拉到高电平。
P0~P4端口都是准双向I/O端口,作为输入端口时,必须先向相应端口的锁存器写入“1”,使驱动FET截止。P0端口作为输入端口时呈高阻态,而 P1~P4 端口内部有上拉负载电阻,当系统复位时,P0~P4端口锁存器全为“1”。
P0端口的输出级与P1~P3端口的输出级在结构上是不同的,因此它们的负载能力和接口要求也各不相同。P 0端口的每一位输出可驱动8个 LSTTL负载,P 0 端口作为通用 I/O端口时,输出级是开漏电路,当它驱动NMOS或其他拉电流负载时,需要外接上拉电阻才能输出高电平。
1 ) 上拉电阻的选取 STC89单片机的P0端口包括1个输出锁存器、2个三态缓冲器、1个输出驱动电路和1个输出控制端,如图3-3所示。锁存器是由D触发器组成的;输出驱动电路由一对FET(F 1 和F 2 )组成,其工作状态受输出控制端的控制,它包括1个与非门、1个反相器和1个转换开关MUX。
图3-3 P0端口某位结构
P0端口可作为普通I/O端口使用,此时CPU发出控制低电平“0”信号封锁与门,使输出上拉FET(F 1 )截止,同时转换开关MUX把输出锁存器端与输出FET(F 2 )栅极连通。
当P0端口作为输出端口时,内部数据总线上的信息由写脉冲锁存至输出锁存器。当D=0时,Q=0 而 =1,F 2 导通,P0 口引脚输出“0”;当 D=1 时,Q=1 而 =0,F 2 截止,P0口引脚输出“1”。由此可见,内部数据总线与 P0 端口是同相位的。输出驱动级是漏极开路电路,若要驱动NMOS或其他拉电流负载时,需要外接上拉电阻。
P0端口驱动LED时,用约1kΩ的上拉电阻即可。如果希望亮度大一些,可减小上拉电阻,但最好不要小于200Ω,否则电流太大;如果希望亮度小一些,可增大上拉电阻。一般来说,当上拉电阻超过3kΩ时,亮度就很弱了,但是对于超高亮度的LED,有时上拉电阻为10kΩ时觉得亮度还够用。通常,用P0端口驱动LED时,上拉电阻选用1kΩ。
2 ) 限流电阻的选取 P1~P3端口的输出级都接有内部上拉电阻,它们的每一位输出可以驱动4个LSTTL负载。P 1~P 3 端口的输入端都可以被集电极开路或漏极开路电路所驱动,而无须外接上拉电阻。
STC89单片机的P1~P3端口的灌电流为6mA,虽然它们具备一定的外部驱动能力,但使用STC89单片机的P1~P3端口直接驱动 LED 时,外接的 LED 电路还必须使用电阻进行限流,否则容易损坏STC89单片机的I/O端口。
此外,如果没有限流电阻,LED在工作时也会迅速发热。为了防止LED过热而损坏,必须串联限流电阻以限制LED的功耗。表3-1所列为典型的LED功率指标。
表3-1 典型的LED功率指标
LED的发光功率可以由其两端的电压和通过LED的电流来计算得到,即
P d = U d × I d
式中, U d 为LED上的正向电压, I d 为流过LED的正向电流。
普通单色LED的正向压降一般为 1.5~2.0V (其中,红色 LED 约为 1.6V,绿色 LED约为1.7V,黄色LED约为1.8V,蓝色LED为2.5~3.5V 等),反向击穿电压约5V,正向工作电流一般为5~20mA。
LED的典型 U-I 特性曲线如图3-4所示。从图中可以看出,LED的 U-I 特性曲线很陡,使用时,根据LED亮度的需要而串联限流电阻以控制通过LED的电流大小。为了保护单片机的驱动输出引脚,通过LED的正向工作电流一般应限制在约10mA,正向电压限制在约2V。
限流电阻 R 可用下式计算:
R =( E -U d )÷ I d
图3-4 LED的典型 U-I 特性曲线
式中, E 为电源电压。由于单片机使用的电压通常为5V,因此 E =5V。
例如,若限制电流 I d 为10mA,LED的正向电压 U d 约为2V,从而得到限流电阻值 R =(5V-2V)÷10mA=300Ω。
在实际应用中,为了有效保护单片机驱动输出引脚,应预留一定的安全系数,一般对LED驱动采用的限流电阻都要比采用10mA计算出的大,常用的典型值为470Ω。