深圳市航顺芯片技术研发有限公司
直播中

王萍

7年用户 1314经验值
私信 关注
[问答]

输入输出接口P0~P3看完你就懂了

接口电路的必要性是是什么?
输入输出接口P0~P3看完你就懂了

回帖(1)

李兵

2021-11-2 14:32:16
1. 接口电路 】
接 口 电 路 的 必 要 性 : color{red}{接口电路的必要性:}接口电路的必要性:
 计算机对外设进行数据操作时,外设的数据是不能直接接到CPU的数据线上的,必须经过接口。
 这是由于CPU的数据线是外设或存储器和CPU进行数据传输的唯一公共通道,为了使数据线的使用对象不产生使用总线的冲突,以及快速的CPU和慢速的外设时间上协调,CPU和外设之间必须有接口电路( 简称接口或I/O口)接口起着缓冲、锁存数据,地址译码、信息格式转换、传递状态(外设状态),发布命令等功能。
I / O 接 口 种 类 : color{red}{I/O接口种类:}I/O接口种类:
 I/0接口有并行、串行、定时/计数器、A/D、D/A等接口,根据外设的不同情况和要求选择不同的接口。
 单片机已将这些接口集成在内部,无需外加接口,外设可直接接单片机(有时需加驱动)。
51 单 片 机 的 I / O 接 口 : color{red}{51单片机的I/O接口:}51单片机的I/O接口:
 51单片机有P0、P1、 P2、P3四个8位双向I/O口,每个端口可以按字节输入或输出,也可以按位进行输入或输出 ,用作位控制十分方便。
 P0口为三态双向口,能带8个TTL电路;
 P1、P2、 P3口为准双向口,负载能力为4个TTL电路。
 四个端口的一位结构见下图,四个端口的结构有相同之处:
★都有两个输入缓冲器,分别受内部读锁存器和读引脚控制信号的控制。
★都有锁存器(即专用寄存器P0~P3)
★都是场效应管输出驱动。依据每个端口的不同功能,内部结构亦有不同之处。

2. P0口 】

P0口的输出驱动电路由上拉场效应管T1和驱动场效应T2组成,控制电路包括一个与门、一个非门、一个模拟开关MUX,三态门作用:使能后输出为输入,否则为高阻。

1.P0作I/O口使用:
 CPU发控制电平“0”封锁与门,使T1管截止,同时使MUX开关同下面的触点接通,使锁存器的Q ‾ overline{text{Q}}
Q

与T2栅极接通。
 ① 当CPU向端口输出数据时,写时钟输入到在锁存器的CL上、内部总线的数据经锁存器反相,再经T2管反相,P0口的这一位引脚上出现正好和内部总线同相的数据。由于输出驱动级是漏极开路电路(因T1截止),故P0 在作 I/O 口使用时应外接10K的上拉电阻。
 ② 当输入操作时,端口中两个三态缓冲器用于读操作。
 缓冲器2用于读端口引脚的数据。当执行端口读指令时,读引脚时钟输入并打开三态缓冲器2,于是端口引脚数据经三态缓冲器2送到内部总线;
 缓冲器1用于读取锁存器Q端的数据,当执行“读-修改-写”指令(即读端口信息,在片内加以运算修改后,再输出到该端口的某些指令如:ANL PO,A指令),即是读的锁存器Q的数据。
 用两个缓冲器读取数据的原因: 这是 为了避免错读引脚的电平信号 ,例如用一根口线去驱动一个晶体管基极,当向口线写1”,晶体管导通,导通的PN结会把引脚的电平拉低,如读引脚数据,则会读为0,而实际上原口线的数据为1。因而采用读锁存器Q的值而避免了错读。究竟是读引脚还是读锁存器,CPU内部会自行判断是读引脚脉冲还是读锁存器脉冲,用户不必在意。
 应注意,当作输入端口使用时,应先对“该口写入1”使场效应管T2截止(T2截止了,端口引脚就不会被拉低),再进行读入操作,以防场效应管处于导通状态,使引脚箝位到零,而引起误读。
2. P 0 作 地 址 / 数 据 总 线 使 用 : color{red}{ 2. P0作地址/数据总线使用:}2.P0作地址/数据总线使用:
 作为地址/数据总线,接外围芯片时P0口分时输出低8位地址与数据信号。
 当P0口作地址/数据线使用时,CPU及 内部控制信号为“1”,转换开关MUX打向上面的触点,使反相器的输出端和T2管栅极接通,输出的地址或数据信号通过与门驱动T1管,同时通过反相器驱动T2管完成信息传送,数据输入时,通过缓冲器进入内部总线。


【 3. P1口 】

1.P1口作通用I/0口使用:
 因电路结构上输出驱动部分接有上拉电阻(故不用外加上拉电阻)。
 当作输入读取时,同P0一样,“要先对该口写“1”
2. P 1 口 的 附 加 功 能 : color{red}{ 2. P1口的附加功能:}2.P1口的附加功能:
 在增强型(52系列)和ISP型(在系统编程型)中 P1 口还有如下功能:

【 4. P2口 】

其MUX的的倒向是受CPU内部控制的。P2口的位结构比P1多了一个转换控制部分。




1. P 2 口 作 通 用 I / 0 口 使 用 : color{red}{ 1. P2口作通用I/0口使用:}1.P2口作通用I/0口使用:
 当P2口作通用I/0口时,多路开关MUX倒向左,其余设置与P1口一样。
2. P 2 口 作 高 8 位 地 址 总 线 : color{red}{ 2. P2口作高8位地址总线:}2.P2口作高8位地址总线:
 当扩展片外存储器时,MUX开关打向右,P2口作高八位地址线输出高八位地址信号。
 应当注意:当P2口的几位作地址线使用时,剩下的P2口线不能作I /0口线使用。

【 5. P3口 】
P3口为双功能 I/O 口,内部结构中增加了第二输入/输出功能。

1.P3口作第一功能使用时,其功能为普通输入/输出口:
 当作为普通 I/O 口使用时,第二输出功能端保持 “1”,打开与非门3,用法同P1口。
2. P 3 口 作 第 二 功 能 使 用 时 : color{red}{ 2. P3口作第二功能使用时:}2.P3口作第二功能使用时:

当作第二功能输出时,锁存器输出为“1”打开与非门3,第二功能内容通过与非门J3和T送至引脚。
 输入时,引脚的第二功能信号通过三态缓冲器4进入第二输入功能端。两种功能的引脚输入都应使T截止,此时第二输出功能端和锁存器输出端Q均为高电平。
 P3的各位如不设定为第二功能则自动处于第一功能,在更多情况下,根据需要,把几条口线设为第二功能,剩下的口线可作第一功能(I/O)使用,此时,宜采用位操作形式。


【 6. 小结 】
如果单片机内部有程序存储器,不需要扩展外部存贮器和I/O接口时,单片机的四个口均可作I/O口使用。
四个口在作输入口使用时,均应先对其写“1”’,以避免误读。
P0 口作I/0口使用时应外接10K的上拉电阻,其它口则可不必。
P2 的几根线作地址使用时,剩下的线不能作 I/O 口线使用。
P3 口的某些口线作第二功能时,剩下的口线可以单独作 I/O 口线使用。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分