嵌入式系统 I/O 编程2024 年 8 月 29 日 | 4 分钟阅读 在 8051 单片机中,I/O 操作通过使用四个端口和 40 个引脚来执行。 I/O 操作端口使用 32 个引脚,每个端口有 8 个引脚。 剩余的 8 个引脚用于提供 让我们看看单片机的 40 引脚塑料双列直插式封装 (PDIP) 集成电路 ![]() 注意 - 在单片机的 DIP 结构中,我们可以通过 IC 中间的切口来识别第一个和最后一个引脚,该切口称为单片机的凹口。 第一个引脚位于凹口的左侧,最后一个引脚位于凹口的右侧。 I/O 端口及其功能在单片机中有四个输入/输出端口 P0、P1、P2 和 P3,每个端口都是一个 8 位端口,每个端口有 8 个引脚。 在 RESET 期间,所有端口都用作输入端口。 当端口获得第一个 0 时,它就变成了一个输出端口。 要将其重新配置为输入,必须将高电平信号 (1) 发送到端口。 端口 0(引脚号 32 - 引脚号 39) 端口 0 包含 8 个引脚。 它可以被用作输入或输出。 通常,我们将 P0 连接到 10K 欧姆的上拉电阻,以用作漏极开路输入或输出端口。 它也被称为 AD0-AD7,允许它用作地址和数据传输端口。 当我们想要访问外部 ROM 时,P0 用作数据和地址总线。 地址锁存使能 (ALE) 引脚号 31 指示 PO 是用作地址还是数据。 当 ALE=0 时,它提供数据 D0-D7。 当 ALE=1 时,它提供地址 A0-A7。 让我们看看带有外部连接上拉电阻的端口 0 的结构 ![]() 让我们看一个汇编语言代码,使端口 0 用作输入:- 端口 1(引脚号 1-引脚号 8) 它也是一个 8 位端口,可以用作输入或输出。 它不需要外部连接的上拉电阻,因为它们已经存在于内部。 复位后,端口 1 用作输入端口。 如果端口 1 配置为输出端口,那么要再次使用端口 1 作为输入端口,我们将 1 写入端口 1 的所有位,如下面的代码所示:- 端口 2(引脚号 21-引脚号 28) 端口 2 总共使用 8 个引脚,它也可以用于输入和输出操作。 与端口 1 相同,P2 也不需要外部上拉电阻。 端口 2 可以与 P0 一起使用,为外部存储器提供 16 位地址。 因此,它被指定为 (A0-A7),如引脚图中所示。 如果端口 2 配置为输出端口,那么要再次使用它作为输入端口,我们将 1 写入端口 2 的所有位,如下面的代码所示:- 端口 3(引脚号 10-引脚号 17) 端口 3 也是 8 位的,可以用作输入/输出。 此端口提供了一些重要的信号。 P3.1 和 P3.0 分别是 RxD(接收器)和 TxD(发射器),它们共同用于串行通信。 P3.3 和 P3.2 引脚用作外部中断。 P3.5 和 P3.4 用作定时器 T1 和 T0。 P3.6 和 P3.7 是写 (WR) 和读 (RD) 引脚。 让我们看看显示单个引脚功能的端口 3 表
I/O 端口和位寻址这是为 8051 编写代码时 8051 最常用的功能。 有时只需要使用端口的 1 或 2 位,而不是使用整个 8 位。 8051 单片机提供了使用端口每一位的功能。 以单比特方式使用端口时,我们提供语法“SETB X.Y”,其中 X 是端口号,范围从 0 到 3,Y 是比特号,范围从 0 到 7。 例如:- “SETB P1.3” 将端口 1 的第 3 位设置为高电平。 让我们看一个汇编代码,用于连续切换 P1.5 的位 单比特指令
下一个主题寻址模式 |
我们请求您订阅我们的新闻通讯以获取最新更新。