Zigbee-cc2530笔记------点亮自己的LED
2018-01-21 21:48
826 查看
cc2530芯片使用51增强型的内核,跟51单片机还是有一些区别的,例如:51单片机不需要对IO口进行配置,而cc2530芯片却需要对IO口进行配置,才能对它进行赋值。
cc2530具有21个数字输入/输出引脚, 可以配置为通用数字I/O或外设I/O信号, 配置为连接到ADC、 定时器或USART外设。这些I/O口的用途可以通过一系列寄存器配置,由用户软件加以实现。
I/O端口具备如下重要特性:
1.21个数字I/O引脚
2. 可以配置为通用 I/O或外部设备I/O
3. 输入口具备上拉或下拉能力
4.具有外部中断能力。
21 个I/O引脚都可以用作于外部中断源输入口。因此如果需要外部设备可以产生中断。外部中断功能也可
以从睡眠模式唤醒设备
实验原理图:(我们的LED是P1_1和P1_0口)
![](https://img-blog.csdn.net/20180121222658072?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUF94aWFvamlh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
实验中需要配置的寄存器
PXSEL:设置端口功能,这里设置为通用I/o
![](https://img-blog.csdn.net/20180121213528856?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUF94aWFvamlh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
PXDIR:设置端口数据的方向
![](https://img-blog.csdn.net/20180121213620312?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUF94aWFvamlh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
x可以代表任意IO口,如P1SEL。
代码设置:
1.配置I/O端口属性
P1SEL &= ~0x02;//设置P1_1为通用IO
P1DIR |= 0x02;//设置P1_1数据传输方向为输出
2.点亮LED函数实现(led.c)
void LEDxSet( unsigned char LEDx, unsigned char state )
{
if ( LEDx ==LED0 )
{
if ( state == ON )
LED_0=1;
else
LED_0=0;
}
else if ( LEDx == LED1)
{
if ( state == ON )
LED_1= 1;
else
LED_1= 0;
}
}
3.main函数
{
unsigned int i, j;
for ( i = 0; i< ms; i++ )
for ( j = 0; j < 578; j++ );
}
void main()
{
LEDxInit( LED0 );
LEDxInit( LED1 );
while(1)
{
LEDxSet( LED0,OFF );
LEDxSet( LED1,ON );
Delayms(1000);
LEDxSet( LED0,ON );
LEDxSet( LED1,OFF );
Del
4000
ayms(1000);
}
工程的创建与设置参照上一篇博客。
cc2530具有21个数字输入/输出引脚, 可以配置为通用数字I/O或外设I/O信号, 配置为连接到ADC、 定时器或USART外设。这些I/O口的用途可以通过一系列寄存器配置,由用户软件加以实现。
I/O端口具备如下重要特性:
1.21个数字I/O引脚
2. 可以配置为通用 I/O或外部设备I/O
3. 输入口具备上拉或下拉能力
4.具有外部中断能力。
21 个I/O引脚都可以用作于外部中断源输入口。因此如果需要外部设备可以产生中断。外部中断功能也可
以从睡眠模式唤醒设备
实验原理图:(我们的LED是P1_1和P1_0口)
实验中需要配置的寄存器
PXSEL:设置端口功能,这里设置为通用I/o
PXDIR:设置端口数据的方向
x可以代表任意IO口,如P1SEL。
代码设置:
1.配置I/O端口属性
P1SEL &= ~0x02;//设置P1_1为通用IO
P1DIR |= 0x02;//设置P1_1数据传输方向为输出
2.点亮LED函数实现(led.c)
void LEDxSet( unsigned char LEDx, unsigned char state )
{
if ( LEDx ==LED0 )
{
if ( state == ON )
LED_0=1;
else
LED_0=0;
}
else if ( LEDx == LED1)
{
if ( state == ON )
LED_1= 1;
else
LED_1= 0;
}
}
3.main函数
include
include “leds.h”
void Delayms( unsigned int ms ){
unsigned int i, j;
for ( i = 0; i< ms; i++ )
for ( j = 0; j < 578; j++ );
}
void main()
{
LEDxInit( LED0 );
LEDxInit( LED1 );
while(1)
{
LEDxSet( LED0,OFF );
LEDxSet( LED1,ON );
Delayms(1000);
LEDxSet( LED0,ON );
LEDxSet( LED1,OFF );
Del
4000
ayms(1000);
}
工程的创建与设置参照上一篇博客。
相关文章推荐
- Zigbee-cc2530 笔记---Z-stack 无线传输点亮LED
- 【芝山物联】LM3S811自学笔记-2(从点亮LED灯开始之创建一个空白工程)
- ZigBee-cc2530 笔记---网络管理与拓扑
- stm32学习笔记:新建工程流程,点亮led灯
- ble学习笔记二-----------------点亮led
- stm8单片机点亮LED中断定时串口读写功能测试笔记
- STM32学习笔记之点亮LED灯
- zigbee学习笔记--电源管理OSAL机制的ZigBee低功耗管理(CC2530)
- Zigbee-cc2530 笔记---串口收发
- STM32学习笔记-点亮第一个led
- Zigbee-cc2530 笔记---Z-stack自定义按键(中断式)
- Zigbee-cc2530 笔记 z-tool的使用
- JZ2440开发笔记(5)——通过按键点亮LED
- CC2530与zigbee学习笔记の初识zigbee(1)
- 1.1 zigbee基础(点亮LED灯)
- 【STM32】新手折腾笔记--02:点亮LED灯
- uboot学习笔记(1.2点亮LED灯)
- CC2530之点亮LED
- micropython之动手搭建自己的MQTT服务器并实现通信(点亮led)
- Zigbee-cc2530笔记---按键与外部中断