首页 理论教育 单片机应用技术P0口结构及应用

单片机应用技术P0口结构及应用

时间:2023-11-06 理论教育 版权反馈
【摘要】:图4.1是P0口的某一位的结构图,它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路及控制电路组成。图4.1P0口某位结构当CPU使控制线C=0,开关MUX被控为如图所示位置,P0口为通用I/O口;当C=1时,开关拨向反相器③的输出端,P0口分时作为地址/数据总线使用。P0口用作输出地址/数据总线在扩展系统中,以P0口引脚输出低8位地址或数据信息。

单片机应用技术P0口结构及应用

图4.1是P0口的某一位的结构图,它由一个输出锁存器、两个三态输入缓冲器和输出驱动电路及控制电路组成。其工作状态受控制电路与门④、反相器③和转换开关MUX控制。

图4.1 P0口某位结构

当CPU使控制线C=0,开关MUX被控为如图所示位置,P0口为通用I/O口;当C=1时,开关拨向反相器③的输出端,P0口分时作为地址/数据总线使用。

1)P0口作为一般I/O使用

当8051组成的系统无外扩存储器、CPU对片内存储器和I/O口读写时(执行MOV指令或=1,执行MOVC指令),由硬件自动使控制线C=0,开关MUX处于图示位置,它把输出级(T1)锁存器的端接通;同时,因与门④输出为0,输出级中的上拉场效应管T2处于截止状态,因此,输出级是漏极开路的开漏电路。这时P0口可作一般I/O口用。

(1)P0口用作输出口

当CPU执行输出指令时,写脉冲至D锁存器的CP上,这样与内部总线相连的D端的数据取反后就出现在端上,又经输出级FET(T2)反相,在P0端口上出现的数据正好是内部总线的数据。这是一般的数据输出情况。

8051有几条输出指令功能特别强,属于“读—修改—写”指令。例如,执行一条“ANL P0,A”指令的过程是:不直接读引脚上的数据,而是CPU先读P0口D锁存器中的数据,当“读锁存器”信号有效,三态缓冲器①开通,Q端数据送入内部总线和累加器A中的数据进行“逻辑与”操作,结果送回P0端口锁存器。此时,锁存器的内容(Q端状态)和引脚是一致的。

(2)P0口作输入口(www.xing528.com)

图4.1中的缓冲器②用于直接读端口数据。当执行一条由端口输入的指令时,“读引脚”脉冲把该三态缓冲器②打开,这样,端口上的数据经过缓冲器②读入到内部总线。这类操作由数据传送指令实现。

另外,从图4.1中还可看出,在读入端口引脚数据时,由于输出驱动FET(T2)并接在引脚上,如果FET(T2)导通就会将输入的高电平拉成低电平,以致产生误读。所以,在端口进行输入操作前,应先向端口锁存器写入“1”,也就是使锁存器=0,因为控制线C=0,因此T1和T2全截止,引脚处于悬浮状态,可作高阻输入。这就是所谓的准双向口的含义。

2)P0口用为地址/数据总线使用

当用8031外扩存储器(EPROM或RAM)组成系统,CPU对片外存储器读写(执行MOVX指令或=0,MOVC指令)时,由内部硬件自动使控制线C=1,开关MUX拨向反相器③输出端。这时P0口可用地址/数据总线分时使用,并且分为两种情况。

(1)P0口用作输出地址/数据总线

在扩展系统中,以P0口引脚输出低8位地址或数据信息。MUX开关把CPU内部地址/数据线经反向器与驱动效应管FET(T2)栅极接通,从图4.1可以看到,上下两个FET处于反相,构成推拉式的输出电路(T1导通时上拉,T2导通时下拉),大大增加了负载能力。

(2)P0口输入数据

P0口输入数据,即“读引脚”信号有效打开输入缓冲器②使数据进入内部总线。

综上所述,P0既可作一般I/O端口(用8051/8751时)使用,也可作地址/数据总线使用。I/O输出时,输出级属开漏电路,必须外接上拉电阻,才有高电平输出;作I/O输入时,必须先向对应的锁存器写入“1”,FET(T2)截止,不影响输入电平。当P0口被地址/数据总线占用时,就无法再作I/O口使用了。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈