您的位置:首页 > 其它

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口)



实验中需要配置的寄存器

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);

}

工程的创建与设置参照上一篇博客。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: