51单片机的四个端口其内部电路的不同导致了它们在扩展外部电路时候也会出现不同的结果,其中P0口就表现出非常有趣的现象。
通常我们说P0口需要接上拉电阻才能正常工作,是因为其内部结构与其他三个端口存在差别,没有上拉电阻的缘故,所以如果不接上拉电阻,P0口的状态就不会得到预期的结果,或许是某个中间电压的值,而不是高电平的5V或者低电平的0V。在我的“单片机做的时钟闹钟”一文中提到的硬件电路设计时,当时曾经没有在P0口接入上拉电阻而得不到正确的显示结果,数码管上得不到稳定的“数值”,总是在闪烁,当时这样做的原因会在后面提及。后来在P0口加入上拉电阻后,显示就正常了。
然而所说的“必需在P0口接入上拉电阻”是在一定的前提下的,那就是把P0口当作了通用的I/O口,而如果不是作为通用I/O口,而是作为数据地址复用端口,是否就必须要接入上拉电阻了呢?回答是否定的。这时我曾经用过的数码管静态硬件译码、静态显示的电路图:
图中是用写总线数据的方式来控制数码管的,可以看出P0口上并没有使用上拉电阻,但显示部分仍然是正常的。正因为当初是使用总线方式来写数码管的,P0口并未接入上拉电阻,所以在后来改用I/O口方式写数码管时就先入为主的认为不用接入上拉电阻了。
writed by eleclike 2007-10-17
文章评论(0条评论)
登录后参与讨论