Zigbee协议栈无线通信系统

Zigbee协议栈无线通信系统使用两块ZigbeCC2530黑色板

实现的功能如下:

<1> Zigbee网络号PAN ID、信道号Channel ID请参考纸质附件给定的值。
<2> 程序开始运行Zigbee节点盒LED1、LED2灯亮,Zigbee模块D4、D3、D6、D5灯亮;
<3> 单击Zigbee节点盒SW1后,板上的LED1、LED2灯进入交替亮灭状态(如LED1亮则LED2灭,LED2亮则LED1灭);同时发送一个信息给Zigbee模块,当Zigbee模块收到这个信息后Zigbee模块板上的D4、D3、D6、D5灯进入流水灯状态。
<4> 单击Zigbee模块上的SW1后,板上的D5、D6、D3、D4灯进入流水状态;同时发送一个信息给Zigbee节点盒,当Zigbee节点盒收到这个信息后Zigbee节点盒板上的LED1、LED2进入呼吸灯状态;
<5> 单击Zigbee模块上的SW2后,重置两个Zigbee板上的灯,Zigbee模块D4、D3、D6、D5灯亮;Zigbee节点盒LED1、LED2灯亮。
<6> 能重复实现以上步骤。

首先根据要求写出等会要使用的函数

//延时函数
void Delay(unsigned int t)
{
  while(t--);
}

灯光交替闪烁

{
  switch(led)
  {
    case 0:D3=1;D4=0;break;
    case 1:D4=1;D3=0;break;
  }
}

按键扫描函数

void Scan_KeySW1A()
{
   if(SW1==0)
   {
     Delay(100);
     if(SW1==0)
     {
       while(SW1==0);
       sys_stat=1;
       basicRfSendPacket(0x1015,"1",1);
     }
   }
}

流水灯

void liusuiA(int led)
{
   switch(led)
  {
    case 0:setled(0x02);
    break;
    case 1: setled(0x01);
    break;
    case 2: setled(0x08);
    break;
    case 3: setled(0x04);
    break;
  }
   halMcuWaitMs(500);
}

呼吸灯

void huxiLed()
{
   
   for(PWM_LOW=1;PWM_LOW<PWM_CYCLE;PWM_LOW++)
   {
     D3=0;
     D4=0;
     Delay(PWM_LOW);
     D3=1;
     D4=1;
     Delay(PWM_CYCLE-PWM_LOW);
   }
   
   
   for(PWM_LOW=PWM_CYCLE-1;PWM_LOW>0;PWM_LOW--)
   {
     D3=0;
     D4=0;
     Delay(PWM_LOW);
     D3=1;
     D4=1;
     Delay(PWM_CYCLE-PWM_LOW);
   }
}

无线通信接收函数

void Basi_RecvA()
{
 if(basicRfPacketIsReady())
   {
     rlen=basicRfReceive(rbuff,1,NULL);
     if(rlen>0)
     {
       if(rbuff[0]=='1')
       {
         sys_stat=2;
       }else if(rbuff[0]=='2')
       {
         sys_stat=0;
       }
     }
   }
}

代码源工程下载:资源上传中…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值