《ZigBee开发笔记》第二部分 基础篇-第2章 CC2530按键

1 理论分析

1.1 CC2530 通用 IO 详解

用作通用 I/O 时,引脚可以组成 3 个 8 位端口,端口 0、端口 1 和端口 2,表示为 P0、P1 和 P2。其中,P0 和 P1 是完全的 8 位端口,而 P2 仅有 5 位可用。所有的端口均可以通过 SFR 寄存器 P0、P1 和 P2 位寻址和字节寻址。每个端口引脚都可以单独设置为通用 I/O 或外部设备 I/O。

除了两个高驱动输出口 P1.0 和 P1.1 各具备 20 mA 的输出驱动能力之外,所有的输出均具备 4 mA 的驱动能力。

寄存器 PxSEL,其中 x 为端口的标号 0~2,用来设置端口的每个引脚为通用 I/O或者是外部设备 I/O 信号。作为缺省的情况,每当复位之后,所有的数字输入/输出引脚都设置为通用输入引脚。

在任何时候,要改变一个端口引脚的方向,就使用寄存器 PxDIR 来设置每个端口引脚为输入或输出。因此只要设置 PxDIR 中的指定位为 1,其对应的引脚口就被设置为输出了。

当读取端口寄存器 P0、P1 和 P2 的值,不管引脚配置如何,输入引脚上的逻辑值都被返回。这在执行读-修改-写指令期间不适用。读-修改-写指令是:ANL,ORL,XRL,JBC,CPL,INC,DEC,DJNZ,MOV,CLR 和 SETB。在一个端口寄存器上操作,以下是正确的:当目标是端口寄存器 P0、P1 或 P2 中一个独立的位,寄存器的值,而不是引脚上的值,被读取、修改并写回端口寄存器。

用作输入时,通用 I/O 端口引脚可以设置为上拉、下拉或三态操作模式。作为缺省的情况,复位之后,所有的端口均设置为带上拉的输入。要取消输入的上拉或下拉功能,就要将 PxINP 中的对应位设置为 1。I/O 端口引脚 P1.0 和 P1.1 没有上拉/下拉功能。

注意:配置为外设 I/O 信号的引脚没有上拉/下拉功能,即使外设功能是一个输入。在电源模式 PM1、PM2 和 PM3 下 I/O 引脚保留当进入 PM1/PM2/P

你可能感兴趣的:(《嵌入式》ZigBee开发笔记)