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

续上一篇,依旧学习8051单片机的硬件结构以及I/O口的电路结构。

1.概念

(1)UART是 通用的异步的接收发送串口。

2.位地址空间


211个寻址位的位地址,位地址范围为00H~FFH,其中00H~7FH 这128位处于片内RAM字节地址20H~2FH单元中,每一位都可以进行置1或清0,每一位也可以进行读和写。

如图:

其余的83个可寻址位分布在特殊功能寄存器SFR中,如图:

可被位寻址的特殊寄存器有11个,共有位地址88个,5个位未用,其余83个位的位地址离散地分布于片内数据存储器区字节地址为80H~FFH的范围内,其最低位的位地址等于其字节地址,且其字节地址的末位都为0H或8H。

存储器结构图:

 注:关键在于EA引脚怎么接,在用proteus仿真时,默认为高电平(=1)

3.并行1/0端口

4个8位并行1/0端口,为P0、P1、P2和P3,其输出锁存器属特殊功能寄存器
端口组成:每位均由输出锁存器、输出驱动器和输入缓冲器组成
4个端口均可位寻址。

(1) PO口

双功能的8位并行端口,字节地址为80H,位地址为80H~87H,在端口的地方有一个锁存器其实就是特殊功能寄存器。

PO口某一位的位电路结构,如图:

 要求:必须掌握P0口的工作过程

回顾:P0口是分时服用的并行I/O口,一是做总线口,另外做A/O口

总线口:

先发出低8位地址后,被外部的8地锁存器能锁住,然后再作为数据端口,由于单片机引脚树目有限,所以是分时服用的,当作为总线口时,先发低8位地址,在往外发数据。

1)位电路结构

P0口位电路包括:

  (1)1个数据输出的锁存器。

  (2)2个三态的数据输入缓冲器,分别是用于读锁存器数据的输入缓冲器BUF1和读引脚数据的输入缓冲器BUF2。

  (3)一个多路转接开关MUX,它的一个输入来自锁存器的 Q*端,另一个输入为地址/数据信号的反相输出。MUX由“控制”信号控制,实现锁存器输出和地址/数据信号间转接。

  (4)数据输出的控制和驱动电路,由2个场效应管(FET)组成。

2)工作过程:

做总线口:

开关MUX由控制信号控制,打到了地址/数据的另一端,控制信号的另一端由于片内硬件结构使其为1,所以与门打开,地址和数据那端,就是要发的地址或者数据,当它发出为1时,另一端为0,MUX开关打向这里,进而使得场校应管截止,控制信号的输入与门为1,数据那端输入也为1,所以与门的输出为1,加到长向管上吗,使得其导通,由于下面那个长向管截止,那么在下面那个长向管上面的一段为高电平(=1),那么他(P0)的输出就为1,这是做总线口时的工作状态。

做数据I/O口:

控制信号为0,开关MUX与锁存器一端相连接,然后CPU自动往D写个1,则对面的Q也为1,则Q一把为0,与下面的场效应管相连,使得其截止,由于控制信号为0,只要开关与锁存器相连,那么地址/数据那一端也为0,则与门为0,上面的场效应管也截止,所以做输入时两个场效应管都截止,那么数据就通过PO口进入单片机内,由于他俩都截止了,所以从引脚往里看,都是悬浮态,是高阻态,使得其余外部隔绝。

所以P0口与另外三个口不同,是双向口,双向口的最大特点就是具有高阻悬浮态。

数据进来之后,还有一个三态门,这个三态门,由执行的指令来控制,往里面读入数据有两种可能,一种是读引脚,另一种是读锁存器,硬件通过所编写的指令来进行区分。

读引脚:

信号有效,三态门打开进到片内。

读锁存器:

读的是,刚才输入进去的0或1的状态,读Q端通过三态门进去,进入片内。

注:PO做输入数据的I/O口,必须外接一个上拉电阻,才能使其端口为高电平。

差别:

直接读引脚并不能反映,刚刚是往锁存器写的是0还是1,这就会出错。所以读引脚还是读锁存器,单片机有自己的汇编指令。

注:

(1)在实际中,进行设计时,只要外部扩有外部RAM和I/O口,只要他们是统一编制的,就要用P0口作为总线口,作总线口就不会做I/0口,做I/0口,一定要接上拉电阻,是准双相口,这样才有高电平输出。但是做总线口,作为低8位地址和数据端口,不用外加,是双相口。

(2)如果有一个上拉电阻连到Vcc,然后从引脚看等效输入阻抗,没有高阻态,是一个准双向口,做I/O口。

(3)单片机复位时,锁存器自动写1

(4)由输出转为输入的时候,一定要写1,目的就是把下面场效应管截止,处于输入状态

  • 36
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值