按键查询

即硬件上电后,程序开始运行,当检测到按键按下,触发按键语句,执行按键触发的事件;

玩单片机需要清楚两件东西,第一个是单片机的电路图,另一个则是单片机的寄存器;

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按键查询实践的更多相关文章

  1. C++中unordered_map几种按键查询比较

    unorder_map有3种常见按键查值方法. 使用头文件<unordered_map>和<iostream>,以及命名空间std. 第一种是按键访问.如果键存在,则返回键对应 ...

  2. 【ARM】2410裸机系列-按键查询式控制led

    开发环境   硬件平台:FS2410 主机:Ubuntu 12.04 LTS LED灯原理图 按键原理图 按键的接线资源 KSCAN0 -> GPE11    KSCAN1 -> GPG6 ...

  3. mysql多对一、多对多查询实践

    最近做的功能涉及这方面,算是练了一下. 首先多对一部分较简单.多的那一方表,多设置一个字段是少的那一方的id(主键). 具体查询时候关联查询即可. 可设置外键进行级联操作. 具体以后做到这个功能再更新 ...

  4. 基于Redis、Storm的实时数据查询实践

    通过算法小组给出的聚合文件,我们需要实现一种业务场景,通过用户的消费地点的商户ID与posId,查询出他所在的商圈,并通过商圈地点查询出与该区域的做活动的商户,并与之进行消息匹配,推送相应活动信息到用 ...

  5. node.js下LDAP查询实践

    目标: 从一个LDAP Server获取uid=kxh的用户数据 LDAP地址为:ldap://10.233.21.116:389 在工程根目录中,先npm一个LDAP的访问库ldpajs npm i ...

  6. ElasticSearch改造研报查询实践

    背景: 1,系统简介:通过人工解读研报然后获取并录入研报分类及摘要等信息,系统通过摘要等信息来获得该研报的URI 2,现有实现:老系统使用MSSQL存储摘要等信息,并将不同的关键字分解为不同字段来提供 ...

  7. Elasticsearch+Mongo亿级别数据导入及查询实践

    数据方案: 在Elasticsearch中通过code及time字段查询对应doc的mongo_id字段获得mongodb中的主键_id 通过获得id再进入mongodb进行查询   1,数据情况: ...

  8. MySQL慢日志查询实践

    慢日志查询作用 慢日志查询的主要功能就是,记录sql语句中超过设定的时间阈值的查询语句.例如,一条查询sql语句,我们设置的阈值为1s,当这条查询语句的执行时间超过了1s,则将被写入到慢查询配置的日志 ...

  9. mysql模糊查询实践总结

    %代表任意多个字符 _代表一个字符 在 MySQL中,SQL的模式缺省是忽略大小写的 正则模式使用REGEXP和NOT REGEXP操作符. “.”匹配任何单个的字符.一个字符类 “[...]”匹配在 ...

随机推荐

  1. 一个RPC的demo (good)

    从下面的例子中可以看到,Consumer(client)的代码中引用了Provider部分的class,本例中是 com.provider.EchoServiceImpl和com.provider.E ...

  2. MyBatis 问题 & 解决

    # 问题 Invalid bound statement (not found) # 解决 <mappers> 标签的包括的是 SQL 语句存在的地方,此外 <mapper> ...

  3. Call asynchronous method in constructor

    using System; using System.ComponentModel; using System.Threading.Tasks; public sealed class NotifyT ...

  4. thinkphp前台html格式化输出日期

    输出格式: {$time|strtotime|date="Y年m月d日",###} 格式说明: $time 是日期字符串,一般后台的时间是"Y-m-d H:i:s&quo ...

  5. WPF中获取鼠标相对于屏幕的位置

    原文:WPF中获取鼠标相对于屏幕的位置 WPF中获取鼠标相对于屏幕的位置                                   周银辉WPF编程时,我们经常使用Mouse.GetPosi ...

  6. Go 的文件系统抽象 Afero

    Afero 是一个文件系统框架,提供一个简单.统一和通用的 API 和任何文件系统进行交互,作为抽象层还提供了界面.类型和方法.Afero 的界面十分简洁,设计简单,舍弃了不必要的构造函数和初始化方法 ...

  7. sqlserver从xlsx读取数据

    exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Querie ...

  8. jquery.tmpl.js使用外部 jQuery Template文件

    $.get('/js/templates/filename.html', function(template) { $.tmpl(template, data).appendTo('#whatever ...

  9. Android零基础入门第59节:AnalogClock、DigitalClock和TextClock时钟组件

    原文:Android零基础入门第59节:AnalogClock.DigitalClock和TextClock时钟组件 在前面一期,我们学习了DatePicker和TimePicker,在实际开发中其不 ...

  10. Delphi 编写ActiveX控件(OCX控件)的知识和样例(有详细步骤)

    一.ActiveX应用情况简介: ActiveX控件也就是一般所说的OCX控件,它是 ActiveX技术的一部分.ActiveX是微软公司推出的基于组件对象模型COM的技术,包括对Windows 32 ...