利用外围电路控制单片机的引脚电平
前几天帮一个朋友处理一些电路,正好解决了自己以前经常遇到的一个问题:传感器检测信号传送给单片机,如何改变单片机引脚电平信号,使之可在程序中直接读取,进而实现对外部环境的检测。
以前的思路:
(1)最初,我将检测信号直接传入控制器,由于外围电路的驱动能力不够,不足以拉高单片机的电平,一直都是失败的。
(2)经过查找资料后,单片机的大部分引脚均可做I/O口,默认高电平,并且在做输入口时,必须先将该引脚设置为高电平。我用三极管做了个开关电路,由于当时只焊接了电路,没有画电路图,所以现在也忘记了是如何实现的,但是三极管的开关电路方面的资料有很多,有需要可自行查找。
当下实现方案:使用继电器,实现开关
(1)思路分析:
法很简单,既然单片机的引脚默认高电平,接地后就能满足低电平了。那么,就用继电器开关控制引脚与地的连接,传感器的检测信号控制继电器的开关状态,间接控制单片机的引脚电平。
其实,这也是继电器的小电流控制大电流的思想,与三极管的开关电路的思想基本一致,只是三极管的电阻电容需要选择合适大小,而继电器就没有什么需要太多考虑的了,可能需要考虑成本。
(2)电路图及仿真分析:
红色标记第一处为传感器检测信号输出口;
第二处是NPN三极管,信号驱动三极管的基极,当第一处信号为高是,三极管导通,使第三处的继电器开关换向;
当第三处开关换向后,第四处与单片机连接的引脚电平被拉低
仿真效果图
无检测信号时,单片机引脚P3.0为高电平
当有检测信号时,单片机引脚P3.0为地点低电平