zigbee点灯程序—1024程序员节日快乐
最近开始了专业课的学习,我们所使用到的zigbee模块搭载于51芯片,大致的使用与51开发板使用 差不多,不过功能更加的强大,多了很多难记得中断,以及通信协议栈,上升了不少的难度,不过还是有异曲同工之妙。
1.按键控制灯的功能,第一次按键实现亮蓝灯,第二次按键亮黄灯,第三次按键亮流水灯,关键的语句在于计数变量的使用以及对长时间按键的处理。
#include "ioCC2530.h"
#define led1 P1_0
#define led2 P1_1
#define key P1_2
void delay(int i);
void main()
{
//寄存器初始化设置
P1SEL&=~0x04;
P1DIR|=0x04;
P1INP|=0x04;
P1SEL&=~0x03;
P1DIR|=0x03;
int count=0;//计数变量的使用
int op;
while(1)
{
led1=0;
led2=0;
if(key==0)
{
delay(1);//延时用于消抖
while(key==0);//长时间按键用于释放
count++;//按键过后计时器递加
}
op=count%4;
switch(op)
{
case 0:
led2=0;
led1=0;
break;
case 1:
led2=0;
led1=1;
delay(3);
break;
case 2:
led1=0;
led2=1;
delay(3);
break;
case 3:
led2=0;
led1=1;
delay(5);
led1=0;
led2=1;
delay(5);
led2=0;
break;
default:
break;
}
}
}
//延时函数
void delay(int i)
{
int j;
for(;i>0;i--)
for(j=0;j<10000;j++);
}
产生的实验现象