我是靠谱客的博主 寂寞小天鹅,最近开发中收集的这篇文章主要介绍zigbee基础应用(二)按键使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

zigbee基础应用(二)按键使用
按键相对来说比较好理解,又可以通过流水灯来看现象,所以紧随流水灯其后的当然是按键的学习
1.主芯片篇
基本所有的实现过程主芯片都是参与的,而按键所涉及到的主要是CC2530的寄存器:
按键S1的初始化:
  P0SEL &= ~0X02;     /*0:通过I/O  1:外设功能*/
  P0DIR &= ~0X02;  //按键在P0.1口,设置为输入模式
  P0INP |= 0x02;   //上拉      
2.外部设备篇
如电路图所示

没按下按键,上拉为高电平,按下按键则接地为低电平
3.软件实现篇
#include <ioCC2530.h>
#define uint  unsigned int
#define uchar unsigned char
//定义控制灯的端口
#define LED1   P1_0  //定义LED1为P10口控制
#define LED2   P1_1  //定义LED2为P11口控制
#define LED3   P1_4  //定义LED3为P14口控制
#define KEY1   P0_1       //定义按键为P01口控制
//函数声明
void Delay(uint); //延时函数声明
void InitIO(void); //初始化函数声明
void InitKey(void);             //初始化按键函数声明
uchar KeyScan(void);            //按键扫描函数声明


uchar Keyvalue = 0 ;           //定义变量记录按键动作
uint  KeyTouchtimes = 0 ;           //定义变量记录按键次数
/****************************
//延时
*****************************/
void Delay(uint n)
{
uint i;
for(i = 0;i<n;i++);
        for(i = 0;i<n;i++);
        for(i = 0;i<n;i++);
        for(i = 0;i<n;i++);
        for(i = 0;i<n;i++);
}
/****************************
//按键初始化
*****************************/
void InitKey(void)
{
  P0SEL &= ~0X02;    /*0:通过I/O  1:外设功能*/
  P0DIR &= ~0X02;  //按键在P01口,设置为输入模式
  P0INP |= 0x02;   //上拉      
  
}
/****************************
//初始化程序,将P10、P11、P14定义为输出口,并将LED灯初始化为灭
*****************************/
void InitIO(void)
{
    P1DIR |= 0x13; //P10、P11、P14定义为输出
    LED1 = 1;
    LED2 = 1;
    LED3 = 1;    //LED灯初始化为灭
}
/*****************************************
//按键动作记录函数
*****************************************/
uchar KeyScan(void)
{
   if(KEY1 == 0)    //高电平有效
  {
    Delay(100);     //检测到按键
    if(KEY1 == 0)
    {
      while(KEY1==0);   //直到松开按键      
      return(1);
    }
  }
  return(0);
}
/***************************
//主函数
***************************/
void main(void)
{
  InitIO(); //初始化LED灯控制IO口
  InitKey();             //初始化按键控制IO口
  while(1)
  {
    Keyvalue = KeyScan();       //读取按键动作
    
    if(Keyvalue == 1)         //按下按键S1设置为LED3,LED2,LED1倒序流水闪烁
    {           
      LED3 = !LED3;           
      Delay(20000); 
      LED2 = !LED2;                
      Delay(20000);           
      LED1 = !LED1;           
      Delay(20000);       
    }  
  }
}
  

最后

以上就是寂寞小天鹅为你收集整理的zigbee基础应用(二)按键使用的全部内容,希望文章能够帮你解决zigbee基础应用(二)按键使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部