零基础学习8051单片机(六)

发布时间:2024年01月23日

续上一篇文章,继续介绍I/O口的硬件结构

1.P1口


仅作普通I/0口,是准双向口,数字输入输出,字节地址为90H,位地址为 90H~97H。

位电路结构如图

?这个电路相当于把P0口简化,没有总线口。

工作过程:

当做输入口时,先写1然后Q一把为0,场效应管截止,数据从PI.X口进来,如果要读引脚,则通过下面的电路进入片内。读引脚把三态管打开是由指令来决定的。读锁存器,就从上面的电路进入。

注:

P1口无三态,它的电路结构,就是在上面那个地方用上拉电阻替换了场效应管

读锁存器还是读引脚要看指令

输出:CPU发出一个脉冲,锁存器就写入一个脉冲(C1),数据就进入(1D)Q为1,Q一把为0,则场效应管截止,由于由上拉电阻,输出就为1(高电平)。

2.P2口

也是双功能的,既可以做通用的I/O口,也可以做高8位地址口。

结构图如下:

?工作过程:

当做高8位地址总线的时候,由控制信号控制,开关打向地址那一端,发出的地址为1,则其为0,场效应管截止,又由于P2.X有一个上拉电阻,输出就是高电平,为1。当它输出为0时,场效应管导通,引脚接地址线,那么输出就是地址线里面的电瓶。

做数据口,控制信号控制开关打向锁存器,输入时,先写1,后面的电路为0,管子截止,引脚接通,通过读引脚或者锁存器进入片内。做输出CPU发出一个脉冲,写1,使Q为1,后面电路为0,使管子截止,由于上面接上拉电阻,输出为1。

注:

当单片机复位的时候,自动写1

程序运行过程中,已经改为输出了,再改为输入要先写个1。

总结:

作为地址输出线时,P2输出高8位地址,P0输出低8位地址,寻址64KB地址空间。
作为通用1/0口时,P2口为准双向口。功能与P1口一样。一般情况下,P2口大多作为高8位地址总线口使用,这时就不能再作为通用I/0口使用。

3.P3口

也是通用I/O口,但是具有双重功能

(1)通用I/O功能

(2)第二输入、输出功能

结构图:

?工作过程:

第二输出功能一定要先写入1,则与门1端为1、1端为0,与门为0,管子截止,由于存在上拉电阻输出为高电平。输出就是1。如果第二输出时0的话,那么与门输出还为0,管子导通,输出就为0.

第一功能:用作通用的I/O口

当CPU写入0时,场效应管截止,由于上面有一个上拉电阻,为高电平,输出为1。当CPU写入1时,与门打开,场效应管导通,输出为0

注:、

画等效电路,要把上拉电阻折下来,与场效应管另一端相连。

P0做I/O口,不做总线口,那么它一定要外接上拉电阻和正负电源,否则输出不了高电平

注:上述几个口也是特殊功能寄存器

问题:P0口是双向口,其他口都是准双向口

这句话不全面,当P0做通用I/O也是准双向口,只是一般把P0作为总线口来用。

问题:特殊功能是位于哪里,是位于RAM里还是CPU里?

特殊功能寄存器实际上是占用内部RAM里面80H~FH的地址,实际上是一个独立的地址,我们可以认为它在RAM区,只不过每一个RAM有固定的用途,所以说特殊功能寄存器是CPU的一部分,是指在功能上的一部分,而不是在物理上的一部分。

文章来源:https://blog.csdn.net/2401_82720146/article/details/135746315
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。