ZigBee按键查询实践
按键查询
即硬件上电后,程序开始运行,当检测到按键按下,触发按键语句,执行按键触发的事件;
玩单片机需要清楚两件东西,第一个是单片机的电路图,另一个则是单片机的寄存器;
CC2530是51的升级版,我们的寄存器在网上也有很多,直接百度查就有了;
电路图



寄存器
本实验用到的相关寄存器:
P0DIR(P1DIR相同):设置各个I/O的方向,0为输入,1为输出
|
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
P0_7方向 |
P0_6方向 |
P0_5方向 |
P0_4方向 |
P0_3方向 |
P0_2方向 |
P0_1方向 |
P0_0方向 |
程序
下面来两个程序实例,看看效果吧
//*********************************************
/*使用按键控制LED1的闪烁效果
/*①系统复位后LED熄灭
/*②按下一次SW1按键后,LED开始闪烁
/*③再按下一次SW1按键后,LED停止闪烁并熄灭
/*
/*
//********************************************/ #include "ioCC2530.h"
#define D3 P1_0
#define D4 P1_1
#define D5 P1_3
#define D6 P1_4
#define SW1 P1_2//宏定义需要用到的硬件 typedef unsigned char uint8;
typedef unsigned int uint16; uint8 flag=; void delay(uint16 time)//延时函数
{
uint16 i;
while(time--)
{
for(i=;i<;i++);
}
} void port()//初始化LED和按键
{
P1DIR = 0x1b;//0001 1011 LED灯设置为输出
P1 &=~ 0x1b;//给LED等赋予低电平,初始化为灭
P1DIR &=~ 0x04;//按键口为0,设置为输入
} void Key()//按键查询函数
{
if(SW1==)
{
if(SW1==)
{
while(!SW1);
flag=!flag;
}
}
} void LED_Blink()//按键闪烁
{
P1 = 0x1b;
delay();
P1 &=~ 0x1b;
delay();
} main()
{
port();
while()
{
Key();//调用按键查询函数
if(flag==)
{
LED_Blink();
}
else
{
P1 &=~ 0x1b;
}
}
}
//****************************************
/*使用按键控制LED灯流水效果
/*①系统复位后,LED开始以流水灯的方式进行
/*②当按下按键时,流水灯停止运行,LED保持按键按下时的状态
/*③当按键松开后,流水灯继续之前的运行
/*
/********************************************/ #include"ioCC2530.h"
#define D3 P1_0
#define D4 P1_1
#define D5 P1_3
#define D6 P1_4
#define SW1 P1_2 typedef unsigned char uchar;
typedef unsigned int uint;
uchar flag=; void delay(uint time)
{
uint i;
while(time--)
{
for(i=;i<;i++);
if(SW1==)
{
while(!SW1);
}
}
} void port()
{
P1DIR = 0x1b;
P1 &=~ 0x1b;
P1DIR &=~0x04;
} main()
{
port();
while()
{
if(flag==)
{
D4=;D3=;D6=;D5=;
delay();
flag++;
}
if(flag==)
{
D4=;D3=;D6=;D5=;
delay();
flag++;
}
if(flag==)
{
D4=;D3=;D6=;D5=;
delay();
flag++;
}
if(flag==)
{
D4=;D3=;D6=;D5=;
delay();
flag=;
}
}
}
ZigBee按键查询实践的更多相关文章
- C++中unordered_map几种按键查询比较
unorder_map有3种常见按键查值方法. 使用头文件<unordered_map>和<iostream>,以及命名空间std. 第一种是按键访问.如果键存在,则返回键对应 ...
- 【ARM】2410裸机系列-按键查询式控制led
开发环境 硬件平台:FS2410 主机:Ubuntu 12.04 LTS LED灯原理图 按键原理图 按键的接线资源 KSCAN0 -> GPE11 KSCAN1 -> GPG6 ...
- mysql多对一、多对多查询实践
最近做的功能涉及这方面,算是练了一下. 首先多对一部分较简单.多的那一方表,多设置一个字段是少的那一方的id(主键). 具体查询时候关联查询即可. 可设置外键进行级联操作. 具体以后做到这个功能再更新 ...
- 基于Redis、Storm的实时数据查询实践
通过算法小组给出的聚合文件,我们需要实现一种业务场景,通过用户的消费地点的商户ID与posId,查询出他所在的商圈,并通过商圈地点查询出与该区域的做活动的商户,并与之进行消息匹配,推送相应活动信息到用 ...
- node.js下LDAP查询实践
目标: 从一个LDAP Server获取uid=kxh的用户数据 LDAP地址为:ldap://10.233.21.116:389 在工程根目录中,先npm一个LDAP的访问库ldpajs npm i ...
- ElasticSearch改造研报查询实践
背景: 1,系统简介:通过人工解读研报然后获取并录入研报分类及摘要等信息,系统通过摘要等信息来获得该研报的URI 2,现有实现:老系统使用MSSQL存储摘要等信息,并将不同的关键字分解为不同字段来提供 ...
- Elasticsearch+Mongo亿级别数据导入及查询实践
数据方案: 在Elasticsearch中通过code及time字段查询对应doc的mongo_id字段获得mongodb中的主键_id 通过获得id再进入mongodb进行查询 1,数据情况: ...
- MySQL慢日志查询实践
慢日志查询作用 慢日志查询的主要功能就是,记录sql语句中超过设定的时间阈值的查询语句.例如,一条查询sql语句,我们设置的阈值为1s,当这条查询语句的执行时间超过了1s,则将被写入到慢查询配置的日志 ...
- mysql模糊查询实践总结
%代表任意多个字符 _代表一个字符 在 MySQL中,SQL的模式缺省是忽略大小写的 正则模式使用REGEXP和NOT REGEXP操作符. “.”匹配任何单个的字符.一个字符类 “[...]”匹配在 ...
随机推荐
- SingletonBaseTemplate
public static byte[] writeValueAsZipByte(List<CraneDataDtls> dtls) { ObjectMapper mapper = new ...
- C# WebRequest WebResponse的使用
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- 如何快速生成数据文件(fsutil命令,使用CreateFile和SetEndOfFile API函数,fopen和fseek RTL函数)
1. fsutil 命令 文件会瞬间生成,因为实际上Windows只是分配了名称.地址和空间给该文件,并没有读写任何文件内容 100M=1024x1024x100 fsutil file create ...
- git/github初级运用自如 (good)
三 . 设置用户信息 这一步不是很重要,貌似不设置也行,但github官方步骤中有,所以这里也提一下. 在git中设置用户名,邮箱 $ git config --global user.name &q ...
- WPF 控件 深度克隆
原文:WPF 控件 深度克隆 http://social.msdn.microsoft.com/Forums/zh-SG/wpfzhchs/thread/e5c87129-966a-4d51-a934 ...
- Java泛型和类型安全的容器
示例: public class Apple { private static long counter; private final long id = counter++; public long ...
- Win8 Metro(C#)数字图像处理--4图像颜色空间描述
原文:Win8 Metro(C#)数字图像处理--4图像颜色空间描述 图像颜色空间是图像颜色集合的数学表示,本小节将针对几种常见颜色空间做个简单介绍. /// <summary> / ...
- WPF:通过BitmapSource的CopyPixels和Create方法来切割图片
原文 WPF:通过BitmapSource的CopyPixels和Create方法来切割图片 BitmapSource是WPF图像的最基本类型,它同时提供两个像素相关的方法就是CopyPixels和C ...
- Win10版《芒果TV》全平台直播第89届奥斯卡颁奖典礼,特设第二演播室带来一手资讯
芒果TV为所有中国影迷们带来的:今年的奥斯卡直播与往年格外不同,为了让网友们观看这场盛典得到多维度体验,不管是来看热闹的还是看门道的都看得开心尽兴,芒果TV特设第二演播室,为大家带来第一手新鲜热辣的现 ...
- hadoop(三)
hadoop(三) 1.对MapReduce的认识 MapReduce是运行在yarn上面的一个分布式运算框架,它是用来解决海量的分布式运算的.对于MapReduce来说,我们可以把它分成两部分来 ...