zigbee按键点灯

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

}

产生的实验现象

在这里插入图片描述在这里插入图片描述在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值