文档介绍:第七章
输入输出端口
◆在PIC16F877单片机中,共有五个I/O端口:端口A、B、C、D和E。
◆端口的一些引脚通过对相应的专用寄存器的设置选择用作多功能复用,既可作为一般通用的I/0引脚,也可作为某些部件特殊功能的输入/输出引脚。
◆一旦作为特殊功能引脚,这些引脚不再用作一般的I/O功能。
I/O端口功能的通用结构
◆PIC16F877单片机有5个I/O端口,它们的设计思想和内部结构都是不同的,即使同一个端口各个引脚的内部结构也存在差异。
◆但就其通用的输入/输出功能,则具有类似的线路结构。
◆基本端口内部结构如下图,主要包括:3个D触发器组成的输入/输出数据锁存电路和方向选择锁存电路;
◆ 2个三态门控电路;
◆二输入“与”门和“或”门组成数据输出的前向通道;
◆由P沟道场效应管和N沟道场效应管构成互补推挽的电流输出级。
I/O Pin
读端口
内部数据总线
读TRIS
D
Q
D
Q
VDD
VSS
P
N
D
Q
写方向控制
写端口控制
&
≥1
1
1
到A/D转换器
模拟输入选择
EN
Q
Q
&
输出锁存D1
方向锁存D2
输入锁存D3
输入缓冲器
◆在PIC系列单片机中,每个端口都至少对应着两个特殊功能寄存器,
◆分别是数据寄存器(PORTX)和方向寄存器(TRISX) ,
◆也就是说PIC单片机把I/O端口当作寄存器来访问(即读出或写入)。
◆I/O端口的方向寄存器是定义其端口引脚的输入/输出状态;
◆而I/O端口的数据寄存器是用于其端口输入/输出数据的桥梁,或称为数据缓冲器。
设置端口的输入/输出状态
◆根据I/O端口引脚的输入/输出状态,对该端口的数据方向控制寄存器(TRISX)进行初始化定义。
◆若把TRIS某位设置为“1”,则相应的PORT端口引脚定义为输入端;
◆若把TRIS某位设置为“0”,则相应的PORT端口引脚定义为输出端。
1、定义输入线
◆当把某个端线定义为输入状态时,信号“1”通过单片机的内部数据总线加至方向锁存器D2的输入端,在写方向控制信号的触发下写入D2锁存。
◆此时,D2的Q=1,上部的“或”门封闭,其输出恒定为“1”,这就导致P沟道场效应管截止;
◆Q=1则Q=0,下部的“与”门封闭,其输出恒定为“0”,这就导致N沟道场效应管截止。
◆正是由于数据输出通道的封闭,数据只能从外部单向输入。