51单片机内部结构由哪些基本部件组成?各有什么功能?( 四 )


2、作为地址/数据复用口使用时的工作原理
在访问外部存储器时P0口作为地址/数据复用口使用 。
这时多路开关‘控制’信号为‘1’,‘与门’解锁,‘与门’输出信号电平由“地址/数据”线信号决定;多路开关与反相器的输出端相连,地址信号经“地址/数据”线→反相器→V2场效应管栅极→V2漏极输出 。
例如:控制信号为1,地址信号为“0”时,与门输出低电平,V1管截止;反相器输出高电平,V2管导通,输出引脚的地址信号为低电平 。请看下图(兰色字体为电平):

51单片机内部结构由哪些基本部件组成?各有什么功能?

文章插图
反之,控制信号为“1”、地址信号为“1”,“与门”输出为高电平,V1管导通;反相器输出低电平,V2管截止,输出引脚的地址信号为高电平 。请看下图(兰色字体为电平):
51单片机内部结构由哪些基本部件组成?各有什么功能?

文章插图
可见,在输出“地址/数据”信息时,V1、V2管是交替导通的,负载能力很强,可以直接与外设存储器相连,无须增加总线驱动器 。
P0口又作为数据总线使用 。在访问外部程序存储器时,P0口输出低8位地址信息后,将变为数据总线,以便读指令码(输入) 。
在取指令期间,“控制”信号为“0”,V1管截止,多路开关也跟着转向锁存器反相输出端Q非;CPU自动将0FFH(11111111,即向D锁存器写入一个高电平‘1’)写入P0口锁存器,使V2管截止,在读引脚信号控制下,通过读引脚三态门电路将指令码读到内部总线 。请看下图
51单片机内部结构由哪些基本部件组成?各有什么功能?

文章插图
【51单片机内部结构由哪些基本部件组成?各有什么功能?】如果该指令是输出数据,如MOVX @DPTR,A(将累加器的内容通过P0口数据总线传送到外部RAM中),则多路开关“控制”信号为‘1’,“与门”解锁,与输出地址信号的工作流程类似,数据据由“地址/数据”线→反相器→V2场效应管栅极→V2漏极输出 。
如果该指令是输入数据(读外部数据存储器或程序存储器),如MOVX A,@DPTR(将外部RAM某一存储单元内容通过P0口数据总线输入到累加器A中),则输入的数据仍通过读引脚三态缓冲器到内部总线,其过程类似于上图中的读取指令码流程图 。
通过以上的分析可以看出,当P0作为地址/数据总线使用时,在读指令码或输入数据前,CPU自动向P0口锁存器写入0FFH,破坏了P0口原来的状态 。因此,不能再作为通用的I/O端口 。大家以后在系统设计时务必注意,即程序中不能再含有以P0口作为操作数(包含源操作数和目的操作数)的指令 。
二、P1端口的结构及工作原理
P1口的结构最简单,用途也单一,仅作为数据输入/输出端口使用 。输出的信息有锁存,输入有读引脚和读锁存器之分 。P1端口的一位结构见下图.
51单片机内部结构由哪些基本部件组成?各有什么功能?

文章插图
由图可见,P1端口与P0端口的主要差别在于,P1端口用内部上拉电阻R代替了P0端口的场效应管T1,并且输出的信息仅来自内部总线 。由内部总线输出的数据经锁存器反相和场效应管反相后,锁存在端口线上,所以,P1端口是具有输出锁存的静态口 。
由上图可见,要正确地从引脚上读入外部信息,必须先使场效应管关断,以便由外部输入的信息确定引脚的状态 。为此,在作引脚读入前,必须先对该端口写入l 。具有这种操作特点的输入/输出端口,称为准双向I/O口 。8051单片机的P1、P2、P3都是准双向口 。P0端口由于输出有三态功能,输入前,端口线已处于高阻态,无需先写入l后再作读操作 。

推荐阅读