51单片机IO口图解资料

上传人:f****u 文档编号:128284762 上传时间:2020-04-20 格式:PDF 页数:10 大小:254.16KB
返回 下载 相关 举报
51单片机IO口图解资料_第1页
第1页 / 共10页
51单片机IO口图解资料_第2页
第2页 / 共10页
51单片机IO口图解资料_第3页
第3页 / 共10页
51单片机IO口图解资料_第4页
第4页 / 共10页
51单片机IO口图解资料_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《51单片机IO口图解资料》由会员分享,可在线阅读,更多相关《51单片机IO口图解资料(10页珍藏版)》请在金锄头文库上搜索。

1、 一 P0 端口的结构及工作原理一 P0 端口的结构及工作原理 P0 端口 8 位中的一位结构图见下图 由上图可见 P0 端口由锁存器 输入缓冲器 切换开关 一个与非门 一 个与门及场效应管驱动电路构成 再看图的右边 标号为 P0 X 引脚的图标 也 就是说 P0 X 引脚可以是 P0 0 到 P0 7 的任何一位 即在 P0 口有 8 个与上图相同 的电路组成 下面 我们先就组成 P0 口的每个单元部份跟大家介绍一下 先看输入缓冲器 先看输入缓冲器 在 P0 口中 有两个三态的缓冲器 在学数字电路时 我们已 知道 三态门有三个状态 即在其输出端可以是高电平 低电平 同时还有一种 就是高阻状态

2、 或称为禁止状态 大家看上图 上面一个是读锁存器的缓冲器 也就是说 要读取 D 锁存器输出端 Q 的数据 那就得使读锁存器的这个缓冲器的 三态控制端 上图中标号为 读锁存器 端 有效 下面一个是读引脚的缓冲器 要读取 P0 X 引脚上的数据 也要使标号为 读引脚 的这个三态缓冲器的控制 端有效 引脚上的数据才会传输到我们单片机的内部数据总线上 D 锁存器 D 锁存器 构成一个锁存器 通常要用一个时序电路 时序的单元电路在学数字 电路时我们已知道 一个触发器可以保存一位的二进制数 即具有保持功能 在 51 单片机的 32 根 I O 口线中都是用一个 D 触发器来构成锁存器的 大家看上 图中的

3、D 锁存器 D 端是数据输入端 CP 是控制端 也就是时序控制信号输入端 Q 是输出端 Q 非是反向输出端 对于 D 触发器来讲 当 D 输入端有一个输入信号 如果这时控制端 CP 没有信号 也就是时序脉冲没有到来 这时输入端 D 的数据是无法传输到输出端 Q 及反 向输出端 Q 非的 如果时序控制端 CP 的时序脉冲一旦到了 这时 D 端输入的数 据就会传输到 Q 及 Q 非端 数据传送过来后 当 CP 时序控制端的时序信号消失 了 这时 输出端还会保持着上次输入端 D 的数据 即把上次的数据锁存起来了 如果下一个时序控制脉冲信号来了 这时 D 端的数据才再次传送到 Q 端 从而改 变 Q

4、端的状态 多路开关 多路开关 在 51 单片机中 当内部的存储器够用 也就是不需要外扩展存储器 时 这里讲的存储器包括数据存储器及程序存储器 时 P0 口可以作为通用的 输入输出端口 即 I O 使用 对于 8031 内部没有 ROM 的单片机或者编写的 程序超过了单片机内部的存储器容量 需要外扩存储器时 P0 口就作为 地址 数据 总线使用 那么这个多路选择开关就是用于选择是做为普通 I O 口使用还 是作为 数据 地址 总线使用的选择开关了 大家看上图 当多路开关与下面 接通时 P0 口是作为普通的 I O 口使用的 当多路开关是与上面接通时 P0 口 是作为 地址 数据 总线使用的 输出

5、驱动部分 输出驱动部分 从上图中我们已看出 P0 口的输出是由两个 MOS 管组成的推拉 式结构 也就是说 这两个 MOS 管一次只能导通一个 当 V1 导通时 V2 就截止 当 V2 导通时 V1 截止 前面我们已将 P0 口的各单元部件进行了一个详细的讲解 下面我们就来研究一 下 P0 口做为 I O 口及地址 数据总线使用时的具体工作过程 1 P0 作为 I O 端口使用时的工作原理1 P0 作为 I O 端口使用时的工作原理 P0 口作为 I O 端口使用时 多路开关的控制信号为 0 低电平 多路开 关的控制信号同时与与门的一个输入端是相接的 我们知道与门的逻辑特点是 全 1 出 1

6、有 0 出 0 那么控制信号是 0 的话 这时与门输出的也是一个 0 低 电平 与门的输出是 0 V1 管就截止 在多路控制开关的控制信号是 0 低电 平 时 多路开关是与锁存器的 Q 非端相接的 即 P0 口作为 I O 口线使用 P0 口用作 I O 端口线 其数据总线向引脚输出 即输出状态 Output 的工作过 程 P0 口用作 I O 端口线 其数据总线向引脚输出 即输出状态 Output 的工作过 程 当写锁存器信号 CP 有效 数据总线的信号 锁存器的输入端 D 锁存器的反向 输出 Q 非端 多路开关 V2 管的栅极 V2 的漏极到输出端 P0 X 前面我们已讲 了 当多路开关的

7、控制信号为低电平 0 时 与门输出为低电平 V1 管是截止的 所以作为输出口时 P0 是漏极开路输出 类似于 OC 门 当驱动上接电流负载时 需要外接上拉电阻 下图就是由内部数据总线向 P0 口输出数据的流程图 红色箭头 P0 口用作 I O 端口线 其引脚向内部数据总线输入 即输入状态 Input 的工 作过程 P0 口用作 I O 端口线 其引脚向内部数据总线输入 即输入状态 Input 的工 作过程 数据输入时 读 P0 口 有两种情况 1 读引脚 1 读引脚 读芯片引脚上的数据 读引脚数据时 读引脚缓冲器打开 即三态缓冲器 的控制端要有效 通过内部数据总线输入 请看下图 红色简头 2

8、读锁存器 2 读锁存器 通过打开读锁存器三态缓冲器读取锁存器输出端 Q 的状态 请看下图 红色箭 头 在输入状态下 从锁存器和从引脚上读来的信号一般是一致的 但也有例 外 例如 当从内部总线输出低电平后 锁存器 Q 0 Q 非 1 场效应管 T2 开通 端口线呈低电平状态 此时无论端口线上外接的信号是低电乎还是高电平 从引脚读入单片机的信号都是低电平 因而不能正确地读入端口引脚上的信号 又如 当从内部总线输出高电平后 锁存器 Q 1 Q 非 0 场效应管 T2 截止 如外接引脚信号为低电平 从引脚上读入的信号就与从锁存器读入的信号不同 为此 8051 单片机在对端口 P0 一 P3 的输入操作

9、上 有如下约定 凡属于读 修 改 写方式的指令 从锁存器读入信号 其它指令则从端口引脚线上读入信号 读 修改 写指令的特点是 从端口输入 读 信号 在单片机内加以运算 修改 后 再输出 写 到该端口上 下面是几条读 修改 写指令的例子 ANL P0 立即数 P0 立即数 P0 ORL P0 A P0 AP0 INC P1 P1 1 P1 DEC P3 P3 1 P3 CPL P2 P2 P2 这样安排的原因在于读 修改 写指令需要得到端口原输出的状态 修改后 再输出 读锁存器而不是读引脚 可以避免因外部电路的原因而使原端口的状态 被读错 P0 端口是 8031 单片机的总线口 分时出现数据 D

10、7 一 D0 低 8 位地址 A7 一 AO 以及三态 用来接外部存储器 外部电路与外部设备 P0 端口是使用最 广泛的 I O 端口 2 作为地址 数据复用口使用时的工作原理 2 作为地址 数据复用口使用时的工作原理 在访问外部存储器时 P0 口作为地址 数据复用口使用 这时多路开关 控制 信号为 1 与门 解锁 与门 输出信号电 平由 地址 数据 线信号决定 多路开关与反相器的输出端相连 地址信号经 地址 数据 线 反相器 V2 场效应管栅极 V2 漏极输出 例如 控制信号为 1 地址信号为 0 时 与门输出低电平 V1 管截止 反相 器输出高电平 V2 管导通 输出引脚的地址信号为低电平

11、 请看下图 蓝色字 体为电平 反之 控制信号为 1 地址信号为 1 与门 输出为高电平 V1 管导通 反相器输出低电平 V2 管截止 输出引脚的地址信号为高电平 请看 下图 蓝色字体为电平 可见 在输出 地址 数据 信息时 V1 V2 管是交替导通的 负载能力很强 可以直接与外设存储器相连 无须增加总线驱动器 P0 口又作为数据总线使用 在访问外部程序存储器时 P0 口输出低 8 位 地址信息后 将变为数据总线 以便读指令码 输入 在取指令期间 控制 信号为 0 V1 管截止 多路开关也跟着转向 锁存器反相输出端 Q 非 CPU 自动将 0FFH 11111111B 即向 D 锁存器写入一个

12、高电平 1 写入 P0 口锁存器 使 V2 管截止 在读引脚信号控制下 通过读 引脚三态门电路将指令码读到内部总线 请看下图 如果该指令是输出数据 如 MOVX DPTR A 将累加器的内容通过 P0 口 数据总线传送到外部 RAM 中 则多路开关 控制 信号为 1 与门 解 锁 与输出地址信号的工作流程类似 数据据由 地址 数据 线 反相器 V2 场效应管栅极 V2 漏极输出 如果该指令是输入数据 读外部数据存储器或程序存储器 如 MOVX A DPTR 将外部 RAM 某一存储单元内容通过 P0 口数据总线输入到累加器 A 中 则输入的数据仍通过读引脚三态缓冲器到内部总线 其过程类似于上图

13、中的读取 指令码流程图 通过以上的分析可以看出 当 P0 作为地址 数据总线使用时 在读指令码 或输入数据前 CPU 自动向 P0 口锁存器写入 0FFH 破坏了 P0 口原来的状态 因 此 不能再作为通用的 I O 端口 大家以后在系统设计时务必注意 即程序中不 能再含有以 P0 口作为操作数 包含源操作数和目的操作数 的指令 二 P1 端口的结构及工作原理二 P1 端口的结构及工作原理 P1 口的结构最简单 用途也单一 仅作为数据输入 输出端口使用 输出的 信息有锁存 输入有读引脚和读锁存器之分 P1 端口的一位结构见下图 由图可见 P1 端口与 P0 端口的主要差别在于输出的信息仅来自内

14、部总线 由内部总线输出的数据经锁存器反相和场效应管反相后 锁存在端口线上 所以 P1 端口是具有输出锁存的静态口 由上图可见 要正确地从引脚上读入外部信息 必须先使场效应管关断 以便由外部输入的信息确定引脚的状态 为此 在作引脚读入前 必须先对该端 口写入 l 具有这种操作特点的输入 输出端口 称为准双向 I O 口 8051 单片 机的 P1 P2 P3 都是准双向口 P0 端口由于输出有三态功能 输入前 端口线 已处于高阻态 无需先写入 l 后再作读操作 书本上说也应该先写端口 1 后再 读 赞同先写 1 P1 口的结构相对简单 前面我们已详细的分析了 P0 口 只要大家认真的 分析了 P

15、0 口的工作原理 P1 口我想大家都有能力去分析 这里我就不多论述了 单片机复位后 各个端口已自动地被写入了 1 此时 可直接作输入操作 如果在应用端口的过程中 已向 P1 一 P3 端口线输出过 0 则再要输入时 必须 先写 1 后再读引脚 才能得到正确的信息 此外 随输入指令的不同 P1 端口 也有读锁存器与读引脚之分 三 P2 端口的结构及工作原理 三 P2 端口的结构及工作原理 P2 端口的一位结构见下图 由图可见 P2 端口在片内既有上拉电阻 又有切换开关 MUX 所以 P2 端口 在功能上兼有 P0 端口和 P1 端口的特点 这主要表现在输出功能上 当切换开关 向下接通时 从内部总

16、线输出的一位数据经反相器和场效应管反相后 输出在端 口引脚线上 当多路开关向上时 输出的一位地址信号也经反相器和场效应管反 相后 输出在端口引脚线上 对于 8031 单片机必须外接程序存储器才能构成应用电路 或者我们的应用电路 扩展了外部存储器 而 P2 端口就是用来周期性地输出从外存中取指令的地址 高 8 位地址 因此 P2 端口的多路开关总是在进行切换 分时地输出从内部 总线来的数据和从地址信号线上来的地址 因此 P2 端口是动态的 I O 端口 输 出数据虽被锁存 但不是稳定地出现在端口线上 其实 这里输出的数据往往也 是一种地址 只不过是外部 RAM 的高 8 位地址 在输入功能方面 P2 端口与 P0 和 P1 端口相同 有读引脚和读锁存器之分 并且 P2 端口也是准双向口 可见 P2 端口的主要特点包括 不能输出静态的数据 自身输出外部程序存储器的高 8 位地址 执行 MOVX 指令时 还输出外部 RAM 的高位地址 故称 P2 端口为动态地址端口 1 作为 I O 端口使用时的工作过程 1 作为 I O 端口使用时的工作过程 当没有外部程序存储器或虽然有外部数据存储器 但

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号