准双向口和双向口的区别
时间:08-27 10:03 阅读:10077次
*温馨提示:点击图片可以放大观看高清大图
简介:本文介绍了51单片机IO口的准双向口、双向口之间的区别。
在最初的51系列单片机中
P0口:双向8位三态I/O口
P1口:准双向8位I/O口
P2口:准双向8位I/O口
P3口:准双向8位I/O口
这里特别要主要准双向与双向三态I/O的区别:
P1口,P2口,P3口是3个8位准双向的I/O口,各口线在片内均有固定的上拉电阻,当这三个准双向I/O口作输入口使用时,要想该口先写1,另外准双向I/O口无高阻的“浮空”状态。
而双向口P0口线内无固定上拉电阻,由两个MOS管串接,既可开漏输出(开漏输出,本博客有解释)有可处于高阻的“浮空”状态,故称为双向三态I/O口。
"准"就是"基本上"的意思.
P0口是双向指的是它被用作地址/数据端口时,只有在这个时候,P0口才处于两个开关管推挽状态,当两个开关管都关闭时,才会出现高阻状态.
当P0口用于一般I/O口时,内部接Vcc的那个开关管是与引脚(端口)脱离联系的,这个时候,只有拉地的那个开关管其作用,P0口作为输出,是必须外接上拉电阻的,不然就无法输出高电平;如果P0口作为输入,则必须先对端口写1,使拉地的开关管断开,这个时候,如果不接上拉电阻,则是高阻状态,就是一个双向口,如果接上拉电阻,则本身输出高电平,对输入信号的逻辑无影响(注意是对逻辑无影响,对实际参数有无影响我不确定,但是我认为是有的).
双向与准双向,根本原则是双向包含了高阻这个状态,而不在于是否需要先写1或者不写,P1~P3口因为有内部上拉电阻,因此无论如何不是双向;P0口内部无上拉电阻,在处于数据/地址功能时,自动完成3态的转换,是双向,处于一般I/O口时,如果不接外部上拉,而且先向端口写了1,那么就处于高阻状态,此时,它也是一个人为的双向口,这与它处于地址/数据功能时的自动双向有区别,以及与P1~P3处于输入时输出锁存器为1是有区别的。