具有特殊的电路结构,每位均有自己的锁存器、输出驱动器和输入缓冲器。这种
结构,在数据输出时可锁存,即输出新的数据之前,通道口上原数据一直保持不
变,但对输入信息是不锁存的,因此从外部输入的信息必须保持到取数指令执行
完为止。在这四个8位双向并行I/O通道口中,我们应该选择哪一个通道口作为输
入信号和输出信号的端口呢?下面我们先来了解一下四个通道口的结构。
(1)P0口介绍
P0口在访问外部存储器时,P0口既是一个真正的双向数据总线口,又是从分
时输出8位地址口。它包括一个输出锁存器,两个三态缓冲器,一个输出驱动电
路和一个输出控制电路
(2)P1口介绍
P1口是专门为用户使用的I/O口,是准双向口,P1口为8位准双向口,每一位
均可单独定义为输入或输出口。在编程校验期间,用做输入低位字节地址。P1口
可以驱动4个LSTTL负载。
(3)P2口介绍
P2口也是双向口。它是供系统扩展时输出高8位地址。如果没有系统扩展时
也可以作为用户的I/O口使用。P2口作为外部数据存储器或程序存储器的地址总
线的高8位输出口AB8-AB15,P0口由ALE选通作为地址总线的低8位输出口
AB0-AB7。外部的程序存储器由PSEN信号选通,数据存储器则由WR和RD读写
信号选通,因为2
16
=64k,所以89S51最大可外接64kB的程序存储器和数据存储器
(4)P3口介绍
P3口是个双功能口,第一功能作通用I/O口,第二功能是作变异功能用,为
适应引脚的第二功能的需要,增加了第二功能控制逻辑,在真正的应用电路中,
第二功能显得更为重要。由于第二功能信号有输入输出两种情况,我们分别加以
说明。
P3口的输入输出及P3口锁存器、中断、定时/计数器、串行口和特殊功能寄
存器有关,P3口的第一功能和P1口一样可作为输入输出端口,同样具有字节操作
和位操作两种方式,在位操作模式下,每一位均可定义为输入或输出。
表1 P3口的第二功能
端口引脚 功能特征
P3.0 串行输入口(RXD)
P3.1 串行输出口(TXD)
P3.2 外中断0(INT0)
P3.3 外中断1(INT1)
P3.4 定时/计数器0的外部输入口(T0)
P3.5 定时/计数器1的外部输入口(T1)
P3.6 外部数据存储器写选通(WR)
P3.7 外部数据存储器读选通(RD)
现在我们已经对四个8位双向并行I/O口有了初步的了解。根据以上的介绍我
们知道只有P1口是标准的I/O口,所以我们选用P0口作为数据端口,P0口可逐位
分别定义各口线为输入或输出线。