题目:Zigbee节点板通电,程序开始运行时D5闪烁,2S后该LED变常亮,其余灯灭单击模块上的SW1(按下时间不超过1秒),D5、D6、D3、D4、依次闪烁1s后变常亮;长按“SW”,所有灯灭

本题难点是判断短按还是长按,所以我使用了一个计时器来判断。
核心代码是判断,返回temp

uint8 scankey()
{if(KEY1==0){delay(100);count1=0;if(KEY1==0){while(!KEY1){temp=count1;if(temp==100){break;}}return 1;}}return 0;
}
#include "hal_defs.h"
#include "hal_cc8051.h"
#include "hal_int.h"
#include "hal_mcu.h"
#include "hal_board.h"
#include "hal_led.h"
#include "hal_rf.h"
#include "basic_rf.h"
#include "hal_uart.h"
#include "sensor_drv/sensor.h"
#include <stdio.h>
#include <string.h>
#include <stdarg.h>
/*****点对点通讯地址设置******/
#define RF_CHANNEL                22         // 频道 11~26
#define PAN_ID                    0x8888     //网络id
#define MY_ADDR                   0x1015     //本机模块地址
#define SEND_ADDR                 0xAC3A     //发送地址
/**************************************************/
static basicRfCfg_t basicRfConfig;
// 无线RF初始化
#define LED3 P1_0
#define LED4 P1_1
#define KEY1 P1_2
#define LED5 P1_3
#define LED6 P1_4uint8 txdata_1[1]={1};
uint8 txdata_2[1]={2};uint8 rxdata[1];uint8 count_stat=0;
long long count_timer=0;
long long count1=0;
long long temp=0;
void ConfigRf_Init(void)
{basicRfConfig.panId       =   PAN_ID;basicRfConfig.channel     =   RF_CHANNEL;basicRfConfig.myAddr      =   MY_ADDR;basicRfConfig.ackRequest  =   TRUE;while(basicRfInit(&basicRfConfig) == FAILED);basicRfReceiveOn();
}void init()
{P1SEL &=~0X1f;P1DIR |=0X1b;//ledP1DIR &=~0x04;//keyLED4=LED5=LED3=LED6=0;T3CTL |=0X06;//0000 0110 溢出中断屏蔽,模式是模模式T3CTL |=0X08;// 0000 1000 出中断屏蔽EA=1;T3IE=1;T3CTL |=0Xe0;//1110 0000 128分频T3CTL &=~0x03;T3CC0 =0Xfa;//250T3CTL |=0X10;//启动定时器
}void delay(int xms)
{int i,j;for (i=0;i<xms;i++)for (j=0;j<240;j++){asm("NOP");asm("NOP");asm("NOP");}
}uint8 scankey()
{if(KEY1==0){delay(100);count1=0;if(KEY1==0){while(!KEY1){temp=count1;if(temp==100){break;}}return 1;}}return 0;
}void main(void)
{halBoardInit();//选手不得在此函数内添加代码ConfigRf_Init();//选手不得在此函数内添加代码init();while(1){/* user code start */if(scankey()){if(temp<=50){halMcuWaitMs(350);basicRfSendPacket(SEND_ADDR,txdata_1,1);temp=0;}else if(temp==100){halMcuWaitMs(350);basicRfSendPacket(SEND_ADDR,txdata_2,1);temp=0;}}if(basicRfPacketIsReady()){halMcuWaitMs(350);if((basicRfReceive(rxdata,1,NULL)>0)){if(rxdata[0]==1){LED4=1;}else if(rxdata[0]==2){LED4=0;}}}/* user code end */}
}#pragma vector=T3_VECTOR
__interrupt void T1_int (void)
{ IRCON =0X00;count_timer++;if (count_timer==10){count1++;count_timer=0;}if(count1>1500)count1=0;
}

zigbee(题型整理4)相关推荐

  1. pwn学习总结(五) —— 堆溢出经典题型整理

    pwn学习总结(五) -- 堆溢出经典题型整理 fastbin + 栈溢出 fastbin + 函数构造 fastbin + 堆执行 fastbin + malloc_hook fastbin + 栈 ...

  2. pwn学习总结(三) —— 栈溢出经典题型整理

    pwn学习总结(三) -- 栈溢出经典题型整理 ret2text ret2shellcode rop ret2libc 使用DynELF实现远程libc泄露 ret2syscall ret2libc ...

  3. 由于计算机主板的闪烁存储器中固化了,(大学信息技术题型整理.doc

    (大学信息技术题型整理 1.处理指的是与信息的收集.传递.加工.存储和施用相关的行为和活动,信息技术则泛指用来扩展人们信息器官功能.协助人们更有效地进行信息处理的一类技术.(Y) 2.集成电路根据它所 ...

  4. 江苏大学885程序设计历年代码题题型整理

    江苏大学885程序设计代码题题型整理 1.结构体相关 2.计算一个公式 3.求特殊数字 4.矩阵 1.结构体相关 →2004年第三题 →2005年第四题 →2008年第三题 →2014年第三题 →20 ...

  5. 最值得收藏的 数据结构 全部知识点思维导图整理(王道考研), 附带经典题型整理

    本文的思维导图根据王道的数据结构书本整理而来并标记出重点内容,包括了知识点和部分课后习题 思维导图源文件已经发布在我的资源当中, 点击获取全部导图和配套OneNote笔记, 有需要的可以去 我的主页 ...

  6. MISC常见题型整理

    题目打包在这里 提取码:fhkb MISC 流量包分析 流量包_1 流量包_2 流量包_3 图片隐写 图片隐写_1 图片隐写_2 图片隐写_3 图片隐写_4 图片隐写_5 图片隐写_6 音频隐写 音频 ...

  7. 高中数学题型整理(高一年级)

    1 曲线过一个定点 [题1]已知函数 g ( x ) = ( a + 1 ) x − 2 + 1 ( a > 0 ) g(x) = (a+1)^{x-2} + 1 (a > 0) g(x) ...

  8. CTF中SQL注入常见题型整理

    前言 SQL在CTF每一次比赛中基本上都会出现,所以有了这一篇总结,防忘. 简而言之:SQL注入用户输入的数据变成了代码被执行. 这一篇这要写的是sql注入中各种经典类型的案例.暂时只写这么一点,后面 ...

  9. [leetcode] 题型整理之图论

    图论的常见题目有两类,一类是求两点间最短距离,另一类是拓扑排序,两种写起来都很烦. 求最短路径: 127. Word Ladder Given two words (beginWord and end ...

最新文章

  1. 职场:5种幼稚表现,好多工作十年的人还在犯
  2. docker部署springboot_创建SpringBoot项目部署到docker全过程
  3. 数据结构之链式队列的优化
  4. amd显卡更新最新驱动鼠标顿卡的解决方法
  5. 752. [BJOI2006] 狼抓兔子
  6. 对抗机器学习—— 迭代FGSM
  7. ToLua 入门06_LuaCoroutine
  8. 期权期货及其它衍生品笔记——第三章利用期货的对冲策略
  9. Spring-AOP切入点表达式详解
  10. warning: LF will be replaced by CRLF in ****. The file will have its original line endings in y
  11. python名片管理系统难点总结_Python学习笔记之名片管理系统
  12. 程序员老了怎么办?做什么好?
  13. ipad开发开发之区别于iphone
  14. x-window简介
  15. 软碟通UltraISO 制作u盘系统启动盘!
  16. 微处理器系统结构与嵌入式系统设计笔记(一)
  17. 解决65535的方法
  18. 中科院院士谈量子技术发展 20年后黑客消失
  19. Code Review 是软件开发中必不可少的一步
  20. 民安汇智开展家庭医生有效签约、满意度回访工作

热门文章

  1. 【Ubuntu】Ubuntu16.04安装及通过win10远程访问、传输文件
  2. nwjs macos 签名 公证
  3. Redmine项目管理工具安装
  4. python 物理实验_基于Python和梯度下降算法的物理实验数据一元线性拟合方法
  5. XDAG: PoW + DAG
  6. 互联网的挖角大战与竞业诉讼:腾讯百度最不好惹,华为阿里最本分?
  7. mysql查询学生平均成绩及其名次_数据库面试题:数据库查询语句
  8. RFIC(AD9361)助力无线通信
  9. 谷歌浏览器提示:无法访问此网站网址为 http://localhost:6667/XXX/XXX 的网页可能暂时无法连接,或者它已永久性地移动到了新网址
  10. DM8(达梦数据库)基于建库SQL生成ER图,基于ER图生成数据库文档