2015年(29)
分类: 嵌入式
2015-04-12 20:08:26
P1口时4组Parallel Ports中最简单的。其结构图如下:
与P0口的区别是,由于没有端口复用功能,所以,P0口的V1变成了一个上拉电阻。
由于内部就有上拉电阻,所以,作为GPIO时,P1口不需要接上拉电阻,当然,您接了也没关系啦,就相当于两个上拉电阻并联嘛。读端口、读引脚、写功能在P0中已经讲得非常详细了,此处略过一万字。
P2口的原理图如下图:
和P0口有点像,都有控制信号,选择作为“地址/数据”总线还是作为GPIO;又和P0口有些不同,P2口没有推挽式输出的结构,即没有V1 MOS管,我们说过,P0在作为“地址/数据”总线时,之所以会被称为双向口而非准双向口,就是因为推挽式结构的存在,那么,难道P2口不需要成为双向口?
的确如此,其实,上图中说的“地址/数据”线的说法不太准确,因为,P2口在进行外部存储器读写时,只是作为地址线的高8位,按理来讲,应该称为“地址高8位”线。
当控制信号为0时,与P1口完全一样,当控制信号为1时,与P0口的分析一致,而且更简单。此处不再重复说明。
P3口为多功能口,其结构如下图所示:
先罗列一下P3口的第二功能:
P3.0:RXD 串行通信数据接收引脚
P3.1:TXD 串行通信数据发送引脚
P3.2:/INT0 外部中断0输入引脚
P3.3:/INT1 外部中断1输入引脚
P3.4:T0 定时/计数器0外部事件计数输入引脚
P3.5:T1 定时/计数器1 外部事件计数输入引脚
P3.6:/WR 外部数据存储单元写选通信
P3.7:/RD 外部数据存储单元读选信号
当P3口作为第二功能使用时,Q始终为1,此时,引脚与第二功能输出端的电平相同。那是使用第一功能还是第二功能是谁来控制的呢?还是指令集的微构架,比如你通过串口指令向外传送数据,P3.1自动选择第二功能,您就不用操心了。