80C51单片机中,使用内部含有程序存储器的单片机,基本上不需要外部扩展程序存储器和数据存储器,这时P0、P2口可用作通用的输入/输出口。若使用内部无程序存储器型号的单片机,就需要通过外部电路扩展程序存储器和数据存储器,此时,P0、P2口作为总线接口使用,即P0口为分时复用的低8位地址/数据总线,P2口作为高8位地址总线。
1.P0口的结构
P0口的位结构如图2-5所示。P0.X位由一个输出锁存器、一个转换开关MUX、两个三态输入缓冲器1、2、输出驱动电路(T1、T2)和一个与门4及一个反相器3组成,图中控制信号C的状态决定转换开关的位置。当C=0时,开关处于图中所示位置;当C=1时,开关拨向反相器输出端位置。
(1)P0作为通用I/O口使用
当单片机系统没有外部扩展ROM/RAM时,P0用作通用I/O口使用。在这种情况下,单片机硬件逻辑自动控制C=0,MUX开关处于当前位置。另外,C=0,与门4的输出为“0”,使输出驱动器的上拉场效应晶体管T1处于截止状态。因此,输出驱动级工作在需要外接上拉电阻的漏极开路方式。
作输出口时,CPU执行口的输出指令,内部数据总线上的数据在“写锁存器”信号的作用下由D端进入锁存器,经锁存器的Q端送至场效应晶体管T2,再经T2反相,在P0.X引脚出现的数据正好是内部总线的数据。
作输入口时,数据可以读自口的锁存器,也可以读自口的引脚。这要根据输入操作采用的是“读锁存器”指令,还是“读引脚”指令来决定。
CPU在执行“读—修改—写”类输入指令时(如ANL P0,A),内部产生的“读锁存器”操作信号,使锁存器Q端数据进入内部数据总线,在与累加器A进行逻辑运算之后,结果又送回P0口锁存器并出现在引脚上。读端口锁存器可以避免因外部电路原因造成的误读。
图2-5 P0口的位结构
CPU在执行“MOV”类输入指令时(如MOV A,P0),内部产生的操作信号是“读引脚”。注意,在执行该类输入指令前要先给锁存器写入“1”,目的是使场效应晶体管T2截止,从而使引脚处于悬浮状态,可以作为高阻抗输入。否则,在作为输入方式之前曾向锁存器输出过“0”,T2导通会使引脚钳位在“0”电平,使输入高电平“1”无法读入。所以,P0口在作为通用I/O口时,属于准双向口。
(2)P0作为地址/数据总线口使用
当系统扩展片外ROM/RAM时,P0作为地址/数据总线使用。在这种情况下,单片机内硬件逻辑自动使MUX开关控制端C=1,则MUX开关接到反相器3的输出端,这时与门4的输出由地址/数据线的状态决定。
CPU在执行输出指令时,低8位地址和数据信息分时地出现在地址/数据总线上。若地址/数据总线的状态为“1”,则场效应晶体管T1导通、T2截止,引脚状态为“1”;若地址/数据总线的状态为“0”,则场效应晶体管T1截止、T2导通,引脚状态为“0”。可见P0.X引脚的状态正好与地址/数据线的信息相同。
CPU在执行输入指令时,首先低8位地址信息出现在地址/数据总线上,P0.X引脚的状态与地址/数据总线的地址信息相同。然后,CPU自动地使转换开关MUX拨向锁存器,并向P0口写入FFH,同时“读引脚”信号有效,数据经缓冲器进入内部数据总线。(www.xing528.com)
由此可见,P0口作为地址/数据总线使用时是一个真正的双向口。
2.P2口的结构
P2口的位结构如图2-6所示,P2.X位由一个输出锁存器、一个转换开关MUX、两个三态输入缓冲器、输出驱动电路和一个反相器组成。图中控制信号的状态决定转换开关的位置。当控制信号为0时,开关处于图中所示位置;当控制信号为1时,开关拨向地址线位置。
由图可见,P2口的输出驱动电路与P0口不同,只使用一个场效应晶体管,其内部设有上拉电阻。
图2-6 P2口的位结构
(1)P2作为通用I/O口使用
当单片机系统没有外部扩展ROM/RAM时,P2可以作为通用I/O口使用。
CPU在执行输出指令时,内部数据总线的数据在“写锁存器”信号的作用下由D端进入锁存器,经反相器反相后送至场效应晶体管T2,再经T2反相,在P2.X引脚出现的数据正好是内部总线的数据。
P2口用作输入时,数据可以读自口的锁存器,也可以读自口的引脚。这要根据输入操作采用的是“读锁存器”指令还是“读引脚”指令来决定。
CPU在执行“读一修改一写”类输入指令时(如ANL P2,A),内部产生的“读锁存器”操作信号,使锁存器Q端数据进入内部数据总线,在与累加器A进行逻辑运算之后,结果又送回P2口的锁存器并出现在引脚。
CPU在执行“MOV”类输入指令时(如MOV A,P2),内部产生的操作信号是“读引脚”。应在执行输入指令前对锁存器写入“1”,目的是使场效应晶体管T2截止,从而使引脚处于高阻抗输入状态。所以,P2口在作为通用I/O口时,属于准双向口。
(2)P2口作为地址总线接口使用
当需要在单片机外部扩展程序存储器或数据存储器时,单片机内部硬件逻辑自动控制MUX开关接向地址线,这时P2.X引脚的状态正好与地址线输出的信息相同。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。