究竟为什么连接到P1.0口的LED会常亮及其解决办法
这段时间比较忙,准备六级啊,哈哈!不过断断续续也把PCB板焊接完毕了,也从根本上解决了P10口LED常亮的问题。现在把个人见解和大家分享一下。
今晚浏览帖子的时候发现有位大虾说了以下理由:由原理图看出三极管是NPN型的,采用的是共射极放大电路,于是我们发现,为了实现有效的放大功能,必有 集电极(c)电压 > 基极(b)电压 > 射极(e)电压,由于c 端电压 为5V左右,那么b极电压约在2.5V左右,发光二极管管压降0.5V-0.7V ,这样算下来,按0.7V计算,通过二极管电流为5.5mA,由于发光二极管在5mA就能发光,这5.5mA的电流刚好使二极管发光,这也是为什么它的发亮但亮度不高的原因。
大虾很细心,说得有一定道理,不过我不完全认同大虾的说法,而且大虾也没有给出解决办法。
我也查看了资料,还和研究室的师兄们简单讨论了一下。理论上P口输出高电平,通过器件(4.7K电阻和NPN)到地后应该还是高电平,但是查看确实只有2.5V,那就奇怪了,究竟为什么电平被拉低了呢?是不是简单的“必有 集电极(c)电压 > 基极(b)电压 > 射极(e)电压”的问题呢?
讨论后发现,罪魁祸首是51单片机本身P口的输出电流不够大,也就是驱动能力不足,这就是往往需要加上拉电阻的原因。它的输出电流只有几个mA,最多也就十几mA。这样,当输出电流经过通过了4.7K限流电阻和9014 NPN之后,为了NPN为了得到足够大的电流去驱动蜂鸣器,不得不一直向P10口索取电流,这样一来,压降就基本降落在电阻和PN结上了,但是索取的电流不够啊,根据V=IR,自然压降也不够5V了。这就是LED灯一直亮的根本原因,并且不那么亮。但是AVR单片机P口输出电流足够大,可以直接驱动LED灯,一般不会遇到类似51的问题。那有什么办法不用像某些同仁说的割线、更换器件之类,就可以解决常亮问题呢?
很简答,拿一个几K的电阻,在PCB板底部,直接连接VCC(40脚)和P1.0引脚,也就是P1.O接了个上拉电阻。大家都知道,接上拉电阻并不会影响P口的正常工作。为了使8个LED灯的亮度基本一致,应该选择大一点的上拉电阻。本人验证过,完全可以解决问题。
关于有人说蜂鸣器一直响的问题:其实并非一直响,它也是完全可控的,只是当初设计PCB板,应该考虑高电平对应响还是不响的问题。不过最好还是像那位大虾说的,用排阵选择最好了。看看电路原理图,大家想改也可以,把NPN换成PNP应该就可以,不过PNP的引脚要对应起来,我还没去试,试过成功的希望分享一下,谢谢。
话说回来,这个PCB板为我们考虑了很多,希望给我们学到更多东西,加了很多功能模块上去,例如光敏电阻、热敏电阻的模数转换练习等等,还有很多常用芯片的使用,我觉得我们应该好好把握,多多分享,提出存在的问题和解决办法,互相交流,大胆提出自己的看法,共同提升,共同进步。
以上都是个人解决和讨论所得,还望多多指教。
共5条
1/1 1 跳转至页
连接到P1.0口的LED会常亮根本原因及其解决办法
5楼
我已经把9014换成8550了,这样一来,蜂鸣器在上电之后不会一直响了,led2也不会一直半亮。但是出现另一种情况——只要led2亮,蜂鸣器就会响,只不过不是很响。正在寻求解决方法……
共5条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图四被打赏50分 | |
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 |