在proteus无论在模拟中LED灯具为负极连接IO端口,正极通过电阻连接VCC还是LED灯正极连接IO端口,负极通过电阻连接GND,通过模拟可以得到正确的结果。然而,在实际操作过程中,总有一种方法存在问题,这必须提到单片机的驱动能力对实验结果的影响。
如图所示,单片机IO端口输出高电平时,LED灯亮了,电流方向从单片机流向GND(我们为单片机提供高电平,电流方向为单片机从内到外的拉电流)。(2)单片机的方法IO端口输出低电平时,LED灯亮,电流方向由VCC流入单片机内部(我们为单片机提供低电平,电流方向为从外到内输入单片机称为灌电流)。但是在现实中由于单片机驱动能力的影响往往第一种是无法点亮LED灯的。
我们将与单片机连接两种方式IO端口内部简化后,可获得以下两个简图:
单片机输出1时,T断开,这时VCC连接到电阻RIO。上图为拉电流连接方式,T断开时,R、R外、LED串联形成直流通道。I=VCC-Vled/R R外。R作为单片机内部的上拉电阻,电阻值一般是几百上千K,可见电流很小,根本无法点亮LED灯。
单片机输出0时,T闭合连接到GND,这时IO相当于接地。上图为灌电流连接方式,T闭合时形成通路,I=VCC-Vled/R外。LED满足电流要求,LED灯亮。 可见,有时理论是可行的,但现实是不可行的。
单片机驱动较少LED灯还可以,但当需要驱动多个时,必须增加外部驱动,以提供外部所需的电流。常用的方法是外部电路加驱动芯片,74HC三七三、非门、三态门BJT等等。以下是三极管驱动的例子。LED灯路。如图所示:
单片机只控制三极管的通断,而不是提供驱动电路。输出高电时,三极管可形成直流通路LED灯亮;单片机输出低电时三极管的截止日期(可理解为断路)LED灯灭。这样可以连接多个LED了。 但在实际生产中存在缺陷,在系统上电时,采用上述方式连接,LED会闪一下。原因:上电瞬间,单片机IO输出没有在瞬间达到程序中的初始值。此外,由于电源冲击等原因,三极管瞬间导通,使LED灯闪烁。原因:上电瞬间,单片机IO输出没有在瞬间达到程序中的初始值。此外,由于电源冲击等原因,三极管瞬间导通,使LED闪烁的灯。这在生产中是不可接受的,所以我们需要更改,添加电容C,吸收尖峰电压: