CC253x有21个数字输入/输出引脚,可以配置为通用数字I/O,也可以作为外部I/O信 连接到ADC、定时器或者USART等外部设备。这些I/O口的用途,可以通过一系列寄存器配置,由用户软件加以实现。
I/O口具备如下重要特性:
- 21个数字输入/输出引脚
- 可以配置为通用I/O或外部设备I/O
- 输入口具备上拉或下拉能力
- 具有外部中断能力
21个I/O引脚都可以用于外部中断源输入口,因此如果需要,外部设备可以通过这些I/O产生中断。外部中断功能也可以唤醒睡眠模式。
当用作通用 I/O 时,引脚可以组成 3 个 8 位口 ,端 口 0~2,定义为 P0 、 P1 和 P2。其中 ,P0 和 P1 是完全的 8 位口,而 P2 仅有 5 位可用。所有的口均可以位寻址,或通过特殊功能寄存器由 P0 、 P1 和 P2 字节寻址。每个端口引脚都可以单独设置为通用 I/O 或外部设备 I/O 。
除了两个高输出口 P1 .0 和 P1 .1 之外,所有的口用于输出,均具备 4mA 的驱动能力;而P1 .0 和 P1 .1 具备 20mA 的驱动能力。
寄存器 PxSEL(其中 x 为口的标志,其值为 0~2 ),用来设置 每个端口引脚为通用 I/O引脚或者是外部设备 I/O 信 。作为缺省的情况,每当复位之后,所有的数字输入/输出引脚都设置为通用输入引脚。
在任何时候,要改变一个引脚口的方向,使用寄存器 PxDIR 即可。只要设置 PxDIR 中的指定位为 1,其对应的引脚口就被设置为输出了。
首先根据开发板硬件原理图确定LED与CC2530芯片的连接引脚,如图所示。
从图中可以看出D4、D52个LED灯分别连接到ZB_LED1和ZB_LED2上。同时根据原理图可知ZB_LED1和ZB_LED2分别连接到核心板的10、11引脚,如图所示。
根据引脚定义参照表中可知核心板的10、11引脚分别连接到CC2530单片机的P1.3和P1.2引脚上,如图所示。
根据以上可知,当控制P1.3为低电平时LED1会点亮,P1.3为高电平时LED1会熄灭。同理P1.2为低电平时LED2会点亮,P1.2为高电平时LED2会熄灭。
要使芯片P1引脚输出低电平需要配置三个IO口配置寄存器 P1SEL、P1DIR、P1INP,如图2-1-4所示。
P1SEL |
端口1功能选择寄存器 |
0:通用IO;1:外设功能 |
P1DIR |
端口1方向选择寄存器 |
0:输入;1:输出 |
P1INP |
端口1输入模式寄存器 |
0:上拉/下拉;1:三态 |
P1 |
端口1 IO寄存器 |
|
在main.c中编写如下代码实现控制LED亮灭:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!