首页 理论教育 单片机教程:P0端口解决P0端口问题

单片机教程:P0端口解决P0端口问题

时间:2023-11-16 理论教育 版权反馈
【摘要】:如果锁存器之前锁存的为“0”,即Q=0、Q=1,其中Q=1会使VT2导通,P0端口被钳在“0”电平上,“1”将无法送入P0端口。

单片机教程:P0端口解决P0端口问题

P0端口有P0.0~P0.78个引脚,这些引脚除了可作输入/输出引脚外,在外接存储器时,还可作地址/数据总线引脚。P0端口每个引脚的内部电路结构都相同,其内部电路结构如图2-8所示。

978-7-111-43252-4-Chapter02-8.jpg

图2-8 P0端口内部电路结构

1.当P0端口用作输出端口时

如果要将P0端口用作输出端口,单片机内部的CPU会发出一个“0”到与门的控制端。控制端“0”一方面关闭与门(即与门的一端为“0”时,不管另一端输入何种信号,输出都为“0”),使地址/数据总线送来的信号无法通过与门;另一方面控制电子开关,让电子开关与锁存器的右端接通。

此时若给锁存器的写锁存器端送写脉冲信号,内部总线送来的数据就可以通过D端进入锁存器并从Q和Q端输出,如D端输入“1”,则Q端输出“0”(Q端输出“1”),该“0”经电子开关送到场效应晶体管VT2的栅极,VT2截止,从P0端口输出“1”。也就是说,当给P0端口内部的与门控制端送“0”,同时给写锁存器端送写脉冲信号时,单片机内部总线的信号就可以通过接口电路从P0端口输出。

应当注意的是P0端口都是漏极开路输出,内部没有上拉电阻,作为输出功能时,外部必须接上拉电阻(5~10kΩ即可)。

2.当P0端口用作输入端口时(www.xing528.com)

当将P0端口用作输入端口时,P0端口的信号既送到三态门,又送到VT2的漏极。如果锁存器之前锁存的为“0”,即Q=0、Q=1,其中Q=1会使VT2导通,P0端口被钳在“0”电平上,“1”将无法送入P0端口。

解决这个问题的方法是:在将数据输入P0端口前,先通过内部总线向锁存器写“1”,即让Q=0,VT2截止,P0端口输入的“1”就可以送到三态门的输入端,此时再给三态门的读引脚送一个读控制信号,“1”就可以通过三态门送到内部总线。

也就是说,要将P0端口作为输入端口,先要将P0端口的锁存器写“1”,然后再给输入三态门送读控制信号,P0端口的数据就可以通过接口电路,送到单片机内部的总线上。

3.当P0端口用作地址/数据总线引脚时

如果要将P0端口用作地址/数据总线引脚,先要给与门的控制端送“1”,于是与门开,同时电子开关和非门输出端接通。当地址/数据总线为“1”时,“1”一方面通过与门送到VT1的栅极,VT1导通,另一方面送到非门,经反相变为“0”,再经电子开关送到VT2的栅极,VT2截止,VT1导通,VT2截止使P0端口输出为“1”;当地址/数据总线为“0”时,VT1导通,VT2截止,P0端口输出为“0”。

也就是说,当给与门的控制端送“1”时,内部地址/数据总线上的信号就可以从P0端口输出,P0端口就可当做地址/数据总线引脚使用。

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

我要反馈