单片机P0 口是双相口,而P1P2P3 是准双相口
举个例子:相信大家都理解准妈妈,就是怀孕的女人,当然这里也是这样的,就不是真正的双相口了
为什么 P0 是双向口,这里的差别是什么呢
最主要原因是:P0 没有上拉电阻,所以当 P0最 IO 口的时候一定要加上上拉电阻,否则的话,你输出的 1 就是无效了,这样 T2 截止了,那么 P0 都就是呈现高阻状态了
下图分别是P0,P1P2P3 的读写数据,红线表示输出,蓝线表示输入(读引脚) 还有一个就是读锁存器的,没画出来
在读引脚的时候,有一点注意:每当读引脚的时候要确保场效应管T2 是截止的,否则的话1(高电平)外部数据读不出来,T2 会把它拉低,所以通过MOV PX,FFH,把T2 截止,就完美了
在单片机学习、开发和应用中,IO 口的配置对功能的实现起着重要的作用,下面介绍常见的四种配置,而现在很多单片机都兼有这四种配置,可供选择
准双向口配置 如下图,当IO 输出为高电平时,其驱动能力很弱,外部负载很容易将其拉至低电平
当IO输出为低电平时,其驱动能力很强,可吸收相当大的电流
准双向口有三个上拉晶体管,一个“极弱上拉”,当端锁存器为逻辑“1”时打开,当端口悬空时,“极弱上拉”将端口上拉至高电平
第二个上拉晶体管为“弱上拉”,当端口锁存器为逻辑“1”且端口本身也为“1”时打开,此上拉提供的电流,使准双向口输出为“1”
如果此时端口被外部装置拉到逻辑“0”时,通过施密特触发器,控制“弱上拉”关闭,而“极弱上拉”维持开状态,为了把这个端口拉低,外部装置必须有足够的灌电流能力,使管脚上的电压,降到门槛电以下
第三个上拉晶体管为“强上拉”,当端口锁存器由“0”跳变到“1”时,这个上拉用来加快端口由逻辑“0”到逻辑“1”的转换速度
准双向口做为输入时,通个一个施密特触如器和一个非门,用以干扰和滤波
准双向口用作