高职22年物联网职业技能竞赛国赛样题第一套第一题,zigbee编程

难点:点对点按键呼吸灯维持当前亮度

题目要求

  • 使用两块黑色ZigBee开发板,分别命名为A、B并用标签纸贴上。
  • 实现功能:长按板A的SW1键不松开,板B上D4灯可以实现呼吸灯效果。此时松开板A的SW1键,板B上D4灯维持当前亮度。
  • 实现功能:连续点击板B的SW1键2次,板A上D4、D3、D6、D5可以实现跑马灯效果。

题目分析

题目并不难,基础的点对点basicrf工程通用就行,先将A板与B板的按键写出来,再编写相对应的响应程序,确保两块板子能通讯上就行。

代码实现

将要实现的功能拆分成一个个函数,先写A板上的发送与接收的相应功能,KeyLong()函数是按键长按的效果,led()为流水灯的效果,RFrec()为接收函数,最后在while中调用各个效果就OK。

/*网络配置*/
#define RF_CHANNEL                14         // 频道 11~26
#define PAN_ID                    0xaaaa     //网络id
#define MY_ADDR                   0xaa12     //本机模块地址
#define SEND_ADDR                 0xaa21     //发送地址char flag=0;
char count=0;
char rfBuf[32];//接收数据缓冲区void KyeLong() //按键长按
{if(P1_2==0){halMcuWaitMs(10);while(P1_2==0){basicRfSendPacket(SEND_ADDR,"A1Start",sizeof("A1Start")); //长按的时候发送halMcuWaitMs(5);}if(P1_2==1){ halMcuWaitMs(20);basicRfSendPacket(SEND_ADDR,"A1Stop",sizeof("A1Stop"));//松开的时候发送}}
}void led()//流水灯
{halMcuWaitMs(2);count+=1;if(count==100)P1=0x02;if(count==200)P1=0x01;if(count==300)P1=0x10;if(count==400){P1=0x08;count=0;}
}void RFrec()//数据接收
{if(basicRfPacketIsReady()){basicRfReceive(rfBuf,32,NULL);if(strcmp(rfBuf,"B1Go")==0){flag=!flag;}}if(flag)led();elseP1=0x00;
}while(1)//主循环{/* user code start */KyeLong();rec();    /* user code end */}

zigbee板B代码

上面的是A代码,下面的是B板代码,函数效果看注释,最后同样是在while中调用

/*****点对点通讯地址设置******/
#define RF_CHANNEL                14         // 频道 11~26
#define PAN_ID                    0xaaaa     //网络id
#define MY_ADDR                   0xaa21     //本机模块地址
#define SEND_ADDR                 0xaa12     //发送地址void T1_pwm_init
{T1CTL|=0X01;PERCFG|=0X40;P1SEL|=0X01;//pwm引脚  /*通道0:主P0.2 备P1.3通道1:主P0.3 备P1.1通道2:主P0.4 备P1.0通道3:主P0.5 备P1.7通道4:主P0.6 备P1.6*///01100100T1CCTL2=0X64;T1CC2L=0XFF;T1CC2H=h;
}void KeyDouble()//按键双击发送数据
{if(P1_2==0){halMcuWaitMs(10);while(P1_2==0);if(P1_2==1){key_count=0;key_flag=1;mode+=1;}}if(key_flag){halMcuWaitMs(1);key_count++;if(key_count>300){key_flag=0;if(mode==2){basicRfSendPacket(SEND_ADDR,"B1Go",4);}mode=0;}}
}void led() //呼吸灯效果
{if((T1STAT&0x04)>0){T1STAT=T1STAT&0xfb;if(a==1)h+=1;elseh-=1;T1CC2L=0XFF;T1CC2H=h;if(h>254)a=0;if(h==0)a=1;}
void led2() //维持当前亮度
{T1CC2L=0XFF;T1CC2H=h;
}void rec() //接收函数
{if(flag==1)led();if(flag==2)led2();if(basicRfPacketIsReady()){basicRfReceive(rfBuf,32,NULL);if(strcmp(rfBuf,"A1Go")==0){flag=1;}if(strcmp(rfBuf,"A1St")==0){flag=2;}}
}while(1){/* user code start */KeyDouble();rec();/* user code end */}

【22物联网国赛样题】zigbee点对点呼吸灯,按键长按双击效果,物联网竞赛今年历年国赛样题真题代码相关推荐

  1. NOIP历年第二轮入门组真题集合

    NOIP历年第二轮入门组真题集合 年份 题目 题解链接 2000 T1-计算器的改良 T2- 税收与补贴问题 T3-乘积最大 T4-单词接龙 题解链接 2001 T1-数的记数 T2-最大公约数和最小 ...

  2. 历年计算机office试题及答案,历年计算机二级MS Office真题及答案

    <历年计算机二级MS Office真题及答案>由会员分享,可在线阅读,更多相关<历年计算机二级MS Office真题及答案(80页珍藏版)>请在人人文库网上搜索. 1.基础一. ...

  3. 赛元微SC92F7352 PWM呼吸灯应用

    赛元微SC92F7352 PWM呼吸灯应用 单片机脚位图 #include <SC92F735X_C.H> #include "intrins.h" #define u ...

  4. 历年计算机一级笔试考试真题及答案解析,全国计算机等级考试上机考题全真笔试历年题...

    全国计算机等级考试上机考题全真笔试历年题 语音 编辑 锁定 讨论 上传视频 本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 2010年计算机等级考试在新大纲标准下实施,为了帮 ...

  5. 清华计算机考研复试机试,清华大学历年考研复试机试真题 - 论文

    题目描述 Time Limit: 1000 ms Memory Limit: 256 mb 小H为了完成一篇论文,一共要完成n个实验.其中第i个实验需要ai的时间去完成. 小H可以同时进行若干实验,但 ...

  6. 西建大历年电子与通信工程复试真题_历年复试试题回忆

    1 .发电机定子绕组三相短路定子转子回路各有哪些分量,分别按照什么时间常 数衰减: 2 ,比较 Xd ,Xd',Xd'', X σ 的大小, Eq ,Eq',Eq''的大小,并且简要 说明其理由: 3 ...

  7. 西建大历年电子与通信工程复试真题_学姐分享2020年西安电子科技大学电子与通信工程考研初复试经验指导...

    大家好,我是西安电子科技大学电子工程学院上岸的研一学姐,专业是电子与通信工程,考研一路走来,通过自己摸索,掌握了一些必不可少的经验,写此经验贴,如果看到的学弟学妹读完之后会有一点收获,那就有所值了. ...

  8. 西建大历年电子与通信工程复试真题_2018年上海大学电子与通信工程考研初试+复试经验贴...

    本文来源于公众号:中传考研联盟[ zckylm ] 2018 年上海大学电子与通信工程考研初试 + 复试经验贴 首先考研真的很累很辛苦,坚持.自律.用心真的是非常重要的.个人建议可以找一个或 者两个同 ...

  9. 历年计算机二级等级考试真题,[历年全国计算机等级考试二级QBASIC部分真题]全国计算机二级...

    计算机等级网权威发布历年全国计算机等级考试二级QBASIC部分真题,更多历年全国计算机等级考试二级QBASIC部分真题相关信息请访问计算机等级考试网. 一.选择题((1)-(40)题每题1分,(41) ...

最新文章

  1. 用 Label 控制 Service 的位置 - 每天5分钟玩转 Docker 容器技术(106)
  2. 堆(heap)与栈(stack)的区别(一)
  3. 学习python需要什么基础-python编程学习需要哪些基础和准备工作?
  4. [置顶] Linux协议栈代码阅读笔记(一)
  5. 5G是卡位未来的重要基础设施 物联网已成为新的攻击入口
  6. 精密空调内部培训资料
  7. 基于Asp.Net Core打造轻量级内部服务治理RPC(二 远程服务设计)
  8. 计算机组成原理实验三报告,计算机组成原理实验三报告
  9. 【转】C++学习二 vector的用法(使用sort对于vector排序)
  10. 51nod1238. 最小公倍数之和 V3(数论)
  11. Java开发工具(Eclipse工作空间的基本配置)
  12. mysql确定数据表中是否存在某字段_MySQL判断表是否存在某个列
  13. 2002年4月计算机二级c语言题,全国计算机等级考试二级C语言真题2004年4月
  14. BatchPhoto Pro for Mac(照片批量处理软件)
  15. 微博数据:如何在西瓜微数平台使用「热门话题分析」功能?
  16. Android Jetpack 六大架构组件全面了解
  17. 小程序源码:全新动态视频壁纸-多玩法安装简单
  18. 黑马程序员--技术网站网址2
  19. 客运综合管理系统项目—售票管理(售票)
  20. [杀鸡用鸡刀]扯谈“快准狠”的去服务化商业模式

热门文章

  1. ARM Cortex M3M4处理器复位流程
  2. 金融科技大数据产品推荐:荣之联·风报—人工智能企业情报分析系统
  3. 【不懂就问】互联网、因特网和万维网到底是什么
  4. 生态伙伴开发实践 | 智慧检测实验室应用系统快速接入指令集数字底座
  5. Matlab:实现绘制启动超音速风洞的稳定条件(附完整源码)
  6. 同济大学软件学院万院长谈择业(转载)
  7. 整理在小程序页面样式中引入阿里巴巴字体图标
  8. 框架与设计模式的区别
  9. js中的contains
  10. Debian 一些基础操作