8051单片机I/O端口结构与原理

1. P1端口

图1.1 P1.X的内部结构示意图

  P1口是一个8位双向并行I/O口,每位的内部结构如图1.1所示,P1口由8组这样的结构组成。

1.1 P1口作为输出口

  当CPU执行写端口指令时,在指令执行期间,“写锁存器”脉冲信号出现,数据经内部总线送入锁存器。
  向P1.X写“0”时(例如P1.0 = 0)时,数据“0”经内部总线送入锁存器,锁存器的反相输出端Q‾\overline{\text{Q}}Q​为“1”,场效应管VT导通,引脚与GND连接,引脚向外部电路输出低电平,即“0”,如图1.2所示。

图1.2 向P1.X写“0”

  向P1.X写“1”时(例如P1.0 = 1)时, 数据“1”经内部总线送入锁存器,锁存器的反相输出端Q‾\overline{\text{Q}}Q​为“0”,场效应管VT截止,引脚与GND断开连接,引脚利用内部上拉电阻向外部电路输出高电平,即“1”,如图1.3所示。

图1.3向P1.X 写“1”

1.2 P1口作为输入口

  当CPU执行读端口指令时(例如a = P1.0),内部硬件自动使“读引脚”信号有效,输入缓冲器2导通,引脚上的数据经输入缓冲器2送入内部总线,此为读引脚,如图1.4所示。在读引脚之前,需先向P1.X写“1”,使锁存器反相输出端Q‾\overline{\text{Q}}Q​为0,场效应管VT截止,断开引脚与GND的连接,否则读到的引脚状态都为低电平,即“0”,从而引起误读。如果引脚没有连接外部电路(即悬空),由于引脚连接内部上拉电阻,此时读到的引脚状态为高电平,即“1”。

图1.4 读P1.X引脚

  当CPU执行“读-修改-写”端口指令时(即将读到的值进行修改后再写回,例如 P1.0 = ~ P1.0),在执行其中的读操作期间,内部硬件自动使“读锁存器”信号有效,输入缓冲器1导通,锁存器输出端Q上的数据经输入缓冲器1送入内部总线,此为读锁存器,如图1.5所示。

图1.5 读P1.X锁存器

  读引脚还是读锁存器,CPU会根据具体执行的指令自行进行判断。
  

2. P2端口

图2.1 P2.X的内部结构示意图

  P2口是一个8位双向并行I/O口,每位的内部结构如图2.1所示,P2口由8组这样的结构组成。P2口有两种用途:通用I/O口、地址总线。P2口作为通用I/0口使用时,硬件自动使“控制”线为“0”,使多路开关MUX拨向锁存器的输出端Q。

2.1 P2口作为输出口

  当CPU执行写端口指令时,在指令执行期间,“写锁存器”脉冲信号出现,数据经内部总线送入锁存器。
  向P2.X写“0”时(例如P2.0 = 0),数据“0”经内部总线送入锁存器,锁存器的输出端Q为“0”,经非门后输出为“1”,场效应管VT导通,引脚与GND连接,引脚向外部电路输出低电平,即“0”,如图2.2所示。

图2.2 向P2.X写“0”

  向P2.X写“1”时(例如P2.0 = 1),数据“1”经内部总线送入锁存器,锁存器的输出端Q为“1”,经非门后输出为“0”,场效应管VT截止,断开引脚与GND的连接,引脚利用内部上拉电阻向外部电路输出高电平,即“1”,如图2.3所示。

图2.3 向P2.X写“1”

2.2 P2口作为输入口

  P2口作为输入口使用时工作方式与P1口类似。

2.3 P2口作为地址总线

  单片机芯片外接存储器时,P2口引脚与存储器相连。P2口作为地址总线,在CPU访问外部存储器时用于输出高8位地址信息。
  CPU执行访问外部存储器的指令时,内部硬件自动使“控制”线为“1”,使多路开关MUX拨向地址线,如图2.4所示。当“地址”线输出“0”时,引脚输出“0”;当“地址”线输出“1”时,引脚输出“1”。

图2.4 P2口作为地址总线

3. P3端口

图3.1 P3.X的内部结构示意图

  P3口是一个8位双向并行I/O口,每位的内部结构如图3.1所示,输入缓冲器3一直处于导通状态,P3口由8组这样的结构组成。P3口有两种用途:通用I/O口、第二功能。

3.1 P3口作为通用I/0口

  P3口作为通用I/0口使用时,硬件自动使“第二功能输出”为“1”,与非门的输出状态完全由锁存器输出端Q的状态决定,Q为“0”时,与非门输出为“1”,Q为“1”时,与非门输出为“0”。P3口作为通用I/0口使用时工作方式与P1口类似。

3.2 P3口作为第二功能

  P3口的每位都有对应的第二功能,如表3.1所示,有些位作为第二功能输出,比如P3.1作为串行输出TXD,有些位作为第二功能输入,比如P3.0作为串行输入RXD。

表3.1 P3口的第二功能


(1)作为第二功能输出
  P3.X作为第二功能输出使用时,需先向其写“1”,使锁存器的输出端Q为“1”,这样与非门的输出状态完全由“第二功能输出”的状态决定,“第二功能输出”为“0”时,与非门输出为“1”,“第二功能输出”为“1”时,与非门输出为“0”。
  例如:P3.1作为第二功能TXD,当TXD输出“0”时,与非门输出“1”,使场效应管VT导通,引脚与GND连接,引脚向外部电路输出低电平,即“0”;当TXD输出“1”时,与非门输出“0”,场效应管VT截止,引脚与GND断开连接,引脚利用内部上拉电阻向外部电路输出高电平,即“1”,如图3.2所示。

图3.2 P3.1的第二功能TXD

(2)作为第二功能输入
  P3.X作为第二功能输入使用时,需先向其写“1”,使锁存器的输出端Q为“1”,与非门输出为“0”,场
效应管VT截止,断开引脚与GND的连接,否则“第二功能输入”都为“0”。
  例如:P3.0作为第二功能RXD,外部电路通过引脚输入“0”时,RXD为“0”;外部电路通过引脚输入“1时,RXD为“1”,如图3.3所示。

图3.3 P3.0的第二功能RXD
  

4. P0端口

图4.1 P0.X的内部结构示意图
  P0口是一个8位双向并行I/O口,每位的结构如图4.1所示,即P0口由8组这样的结构组成。P0口有两种用途:通用I/O口;地址/数据总线。P0口作为通用I/0口使用时,硬件自动使“控制”线为“0”,使多路开关MUX拨向锁存器的反相输出端 Q‾\overline{\text{Q}}Q​,同时与门被锁定输出“0”,场效应管VT0截止。

4.1 P0口作为输出口

  P0口作为输出口时,属于漏级开路输出,引脚只能输出低电平或高阻状态。当VT1导通时,引脚与GND连接,引脚输出低电平;当VT1截止时,引脚与GND断开连接,处于高阻状态,因此P0口要输出高电平,需要在外部电路加上拉电阻。
  当CPU执行写指令时,在指令执行期间,“写锁存器”脉冲信号出现,数据经内部总线送入锁存器。向P0.X写 “0”时(例如P0.0 = 0),数据“0”经内部总线送入锁存器,锁存器的反相输出端Q‾\overline{\text{Q}}Q​为“1”,场效应管VT1导通,引脚与GND连接,引脚向外部电路输出低电平,即“0”,如图4.2所示。

图4.2 向P0.X写“0”
  向P0.X写 “1”时(例如P0.0 = 1),数据“1”经内部总线送入锁存器,锁存器的反相输出端 Q‾\overline{\text{Q}}Q​为“0”,场效应管VT1截止,引脚与GND断开连接,由于外部电路加了上拉电阻,引脚利用外部上拉电阻输出高电平,即“1”,如图4.3所示。
图4.3 向P0.X写“1”

4.2 P0口作为输入口

  当CPU执行读端口指令时(例如a = P0.0),内部硬件自动使“读引脚”信号有效,输入缓冲器2导通,引脚上的数据经输入缓冲器2送入内部总线,此为读引脚,如图4.4所示。在读引脚之前,需先写“1”,使锁存器反相输出端Q‾\overline{\text{Q}}Q​为0,场效应管VT截止,断开引脚与GND的连接,否则读到的引脚状态都为低电平,即“0”,从而引起误读。

图4.4 读P0.X引脚

  当CPU执行“读-修改-写”端口指令时(即将读到的值进行修改后再写回,例如 P0.0 = ~ P0.0),在执行其中的读操作期间,内部硬件自动使“读锁存器”信号有效,输入缓冲器1导通,锁存器输出端Q上的数据经输入缓冲器1送入内部总线,此为读锁存器,如图4.5所示。

图4.5读P0.X锁存器

4.2 P0口作为地址/数据总线

  单片机芯片外接存储器时,将P0口引脚与存储器连接。P0口作为地址/数据总线,在CPU访问外部存储器时用于输出数据信息以及低8位地址信息。
  CPU执行访问外部存储器的指令时,内部硬件自动使“控制”线为“1”,多路开关MUX拨向非门输出端。上下两个场效应管VT0、VT1处于反向,构成了推拉式的输出电路,其负载能力大大增强。
  当“地址/数据”输出“0”时,与门输出“0”,场效应管VT0截止,非门输出“1”,场效应管VT1导通,引脚与GND连接,引脚输出低电平,即“0”,如图4.6所示。

图4.6 “地址/数据”输出“0”

  当“地址/数据”输出“1”时,与门输出“1”,场效应管VT0导通,非门输出“0”,场效应管VT1截止,引脚与GND断开连接,引脚输出高电平,即“1”,如图4.7所示。

图1.6 “地址/数据”输出“1”

  CPU写外部存储器时,P0口先输出低8位地址信息(高8位地址信息由P2口输出),再输出数据信息。CPU读外部存储器时,P0口输出低8位地址信息后(高8位地址信息由P2口输出),P0口作为输入口使用,从引脚处读取外部储存器输出的数据信息。

8051单片机I/O端口结构与原理相关推荐

  1. 8051单片机的片外总线结构

    文章目录 8051单片机的片外总线结构 1. 地址总线(AB) 2. 数据总线(DB) 3. 控制总线(CB) 8051单片机的片外总线结构 1. 地址总线(AB) 地址总线宽度为16位,由P0口经地 ...

  2. 8051单片机的内核的结构及运行过程解析

    一.内核框架 1.ROM:只读存储器,单片机的只读存储区大多用于存储程序固又称程序存储器.51单片机是EPROM,所谓的EPROM是可擦除的只读存储器.可以把原来的程序擦除了,再写一个新的进去.断电后 ...

  3. C51端口结构和工作原理(转)

    一.P0端口的结构及工作原理 P0端口8位中的一位结构图见下图:   由上图可见,P0端口由锁存器.输入缓冲器.切换开关.一个与非门.一个与门及场效应管驱动电路构成.再看图的右边,标号为P0.X引脚的 ...

  4. 第5章 8051单片机工作原理

    通过前面4位计算机的结构.指令和程序,我们对计算机这一事物有了比较深入的理解,但这个4位机结构简单.指令集不丰富.运算速度慢.不支持高级语言编程,基本没有多少实际应用价值,仅能用来理解计算机工作原理. ...

  5. 51单片机I/O端口的结构和工作原理

    目录 1.概述 2.P0端口 2.1 概述 2.2 P0端口用作输出端口的工作原理 2.3 P0端口用作输入端口的工作原理 2.4 P0端口用作地址/数据总线的工作原理 3.P1端口 3.1 概述 3 ...

  6. 8051单片机的存储器结构

    MCS-51单片机在物理结构上有四个存储空间: 1.片内程序存储器 2.片外程序存储器 3.片内数据存储器 4.片外数据存储器 但在逻辑上,即从用户的角度上,8051单片机有三个存储空间: 1.片内外 ...

  7. 【51单片机】定时器/计数器的工作原理和结构(一)

    [51单片机]定时器/计数器的工作原理和结构 回看下单片机中断系统内部结构: 分析内部中断触发: 先看图 TCON:和外部中断相比少了IT位设置触发方式 :1跳沿触发 0电平触发:此处我的理解是:就好 ...

  8. 嵌入式开发 1 -8051单片机的结构体系(待更)

    1.单片机按存储类型分类: 冯诺依曼结构:数据存储器和程序存储器统一编址 哈佛结构:数据存储器和程序存储器分别编址 8051单片机属于哈佛结构 2.8051单片机的主要特性 针对控制应用而优化的8位C ...

  9. 【自学51单片机】9 -- 步进电机原理、蜂鸣器原理,单片机IO口的结构,上下拉电阻

    目录 1.单片机IO口的结构 2.上下拉电阻 3.电机 3.1 电机分类 3.2 28BYJ-48型步进电机 3.2 28BYJ-48电机转动原理 3.3 28BYJ-48电机工作模式 3.4 步进电 ...

最新文章

  1. 一个SQL性能问题的优化探索(二)(r11笔记第38天)
  2. Linux端口号总结
  3. jsp文件上传_文件上传
  4. 创建一个简单的JAX-RS MessageBodyWriter
  5. 大津阈值分割matlab实验,OTSU(大津法)分割源程序(MATLAB版)
  6. wordpress在前台文章界面添加编辑按钮
  7. spring之@value设置默认值
  8. 95-150-020-源码-Sink-PrintSinkFunction
  9. 必看!程序员逃生指南!
  10. 5.5 tensorflow2实现多项式回归与神经网络、未来一个月购买量预测——python实战
  11. CTF杂项题解题思路与方法
  12. 计算机科学与技术专业毕业答辨问题,计算机科学与技术毕业论文题目参考
  13. 计算机系统硬盘内存主频,内存时序和频率_内存硬盘-中关村在线
  14. 用ZeroTier搭建属于自己的虚拟局域网(VLAN)
  15. 计算机粘贴不起作用,教您复制粘贴不能用怎么解决
  16. PS176替代方案| DP转HDMI2.0音视频转换芯片CS5263
  17. He's a Pirate---David Garrett
  18. 我对于部门经理、项目经理与技术经理的理解
  19. 高项 案例分析重点知识 进度成本质量
  20. 关于删除一条动态的同时删除这条动态的所有评论

热门文章

  1. php 无法添加ico 图标,PHP 保存到桌面的代码,怎么加ICO图标跟乱码问题呢
  2. 增加字段sql,SQL语句增加列、修改列、删除列
  3. 11个提高开关电源效率的小技巧
  4. android rom 刷机出现的错误
  5. java 代码模板_请按模板要求,将【代码】替换为Java程序代码
  6. 任正非竟然要炸掉华为「研发金字塔」,到底怎么回事?
  7. (FSRCNN)_Accelerating the Super-Resolution Convolutional Neural Network——超分辨率(三)
  8. ASCII - 美国信息交换标准代码
  9. CRUISE纯电动车仿真模型,simulink DLL联合仿真,实现电制动优先能量回收策略
  10. 2000-2019 年制造业各细分行业数据库