单片机的管脚输入须要有明确的信号,也就是要么高电平,要么低电平。一般咱们认为,你的输入脚若是和vcc相接,那确定是高电平;和gnd相接,那确定是低电平。然而还有一种状态你可能忽视了,就是管脚悬空的时候。spa
管脚悬空的时候,因为电路中的电磁感应,能够在管脚上随机地感应出时高时低的电平,这就使得在单片机看来,你在随机地输入1或0。这显然也不是你所须要了。你所须要的是明确的高或低电平。对芯片输入管脚, 若在系统板上悬空(未与任何输出脚或驱动相接)是比较危险的.由于此时颇有可能输入管脚内部电容电荷累积使之达到中间电平(好比1.5V), 而使得输入缓冲器的PMOS管和NMOS管同时导通, 这样一来就在电源和地之间造成直接通路, 产生较大的漏电流, 时间一长就可能损坏芯片. 而且由于处于中间电平会致使内部电路对其逻辑(0或1)判断混乱. 时间
故须要外加电阻,若是这个电阻的一端连在了vcc上,那这个电阻就是所谓的上拉电阻,它能够帮助管脚确定处于高电平。若是这个电阻的一端连在了gnd上,那这个电阻就是所谓的下拉电阻,上拉电阻和下拉电阻的目的是帮助电路消灭由于感应电压带来的随机高低电平。co
上拉电阻和下拉电阻的其中一个做用是防止输入端悬空,使其有肯定的状态,减弱外部电流对芯片产生的干扰。数字
上拉就是将不肯定的信号经过一个电阻提高为高电平,通常来讲上拉电阻越小,驱动能力越强,但功耗也越大,同时也须要考虑下级电路对驱动能力的要求,上拉电阻选择的合适才能向下级电路提供足够的电流。另外就是数字电路对高低电平都有一个合适的门槛(零电平门槛)。vc
上拉电阻是用来解决总线驱动能力不足时提供电流的,通常说法是拉电流;下拉电阻是用来吸取电流的,也就是所谓的灌电流。通常来讲灌电流比拉电流要大,也就是灌电流驱动能力强一些系统
1.当用TTL电路驱动CMOS电路时,若是TTL电路的输出高电平低于CMOS电路的最低高电平(通常是3~5V),这是就须要在TTL的输出端接上上拉电阻,以提升输出高电平的值。
2.OC门电路必须加上拉电阻才可使用。
3.为增大输出引脚的输出能力,有的引脚上也会使用上拉电阻。
4.在CMOS芯片上,为了防止静电形成损坏,有的管脚不能悬空,通常接上拉电阻产生下降输出阻抗,提供泄荷通路;
5.芯片管脚加上拉电阻来提升输出电平,从而提升芯片输入信号的噪声容限,加强干扰能力;
6.提升总线的抗电磁抗干扰能力,管脚悬空易受外界的电磁干扰。
1)从节约功耗及芯片的灌电流能力考虑应足够大:电阻大,电流小;
2)从确保足够的驱动电流考虑应足够小:电阻小,电流大;
3)对高速电路,过大的上拉电阻可能边沿变平缓。
综合考虑这三点,一般在1K到10K之间考虑。