ZIGBEE通讯-5.点亮LED灯

CC253x有21个数字输入/输出引脚,可以配置为通用数字I/O,也可以作为外部I/O信号连接到ADC、定时器或者USART等外部设备。这些I/O口的用途,可以通过一系列寄存器配置,由用户软件加以实现。

I/O口具备如下重要特性:

  1. 21个数字输入/输出引脚
  2. 可以配置为通用I/O或外部设备I/O
  3. 输入口具备上拉或下拉能力
  4. 具有外部中断能力

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,其对应的引脚口就被设置为输出了。

首先根据开发板硬件原理图确定LEDCC2530芯片的连接引脚,如图所示。

 

从图中可以看出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亮灭:

#include <ioCC2530.h>
#define LED1 P1_3    //定义P1.3口为D4(LED1)控制端
#define LED2 P1_2    //定义P1.2口为D5(LED2)控制端
void main(void)
{
  P1SEL &= ~(1<<2 | 1<<3); // P1.2 P1.3口作为普通IO口,P1SEL寄存器上电默认为0x00
  P1DIR |= 1<<2 | 1<<3;    // P1.2 P1.3定义为输出
  LED1 = 0;                // 输出低电平
  LED2 = 1;                // 输出高电平
  while(1);
}

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值