0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CC2530(zigbee)入门开发: 按键检测(输入)

DS小龙哥-嵌入式技术 来源:DS小龙哥-嵌入式技术 作者:DS小龙哥-嵌入式技 2022-05-28 13:34 次阅读

一、按键功能与原理图介绍

在学习单片机嵌入式过程中;按键是必学的一个外设,常见的按键分为为独立按键、矩阵按键等。下面这里介绍的是独立按键,原理比较简单,只需要将与单片机连接的IO口配置成输入模式,然后不停的检测按键的状态即可,根据原理图分析可以提前知道按键空闲和按下是什么状态,程序里检测到之后对应处理即可。

image.pngimage.png

二、GPIO口输入模式配置

GPIO口作为按键检测使用时,需要将模式配置成输入模式,详细的配置步骤下面有截图,在手册里每个功能位都有详细介绍。

image.pngimage.png

三、核心代码

#include 

//定义LED灯的端口
#define LED1 P1_2
#define LED2 P1_3

//定义KEY按键的端口
#define KEY1 P1_0       //定义按键为P1_0口控制
#define KEY2 P1_1       //定义按键为P1_1口控制

/*
函数功能:LED灯IO口初始化
硬件连接:LED1-->P1_2 , LED2-->P1_3
*/
void LED_Init(void)
{
    P1DIR |=0x3<<2;  //配置P1_2、P1_3为输出模式
    LED1 = 1;
    LED2 = 1;
}

/*
函数功能:按键IO口初始化
硬件连接:KEY1-->P1_0  KEY2-->P1_1  
*/
void KEY_Init(void)
{
    P1SEL&=~(0x3<<0); //配置P1_0,P1_1处于通用GPIO口模式
    P1DIR&=~(0x3<<0); //配置P1_0,P1_1为输入模式
    P1INP|= 0x3<<0;   //上拉   
}


void delay10ms(void)   //误差 0us
{
    unsigned char a,b,c;
    for(c=193;c>0;c--)
        for(b=118;b>0;b--)
            for(a=2;a>0;a--);
}


/*
函数功能:按键扫描
返 回 值:按下的按键值
*/
unsigned char Key_Scan(void)
{
    static unsigned char stat=1;
    if((KEY1==0||KEY2==0)&&stat)
    {
       stat=0;
       delay10ms();
       if(KEY1==0)return 1;
       if(KEY2==0)return 2;
    }
    else
    {
        if(KEY1&&KEY2)stat=1;
    }
    return 0;
}

/*主函数*/
void main(void)
{
    unsigned char key;
    LED_Init();//初始化LED灯控制IO口
    KEY_Init();//按键初始化
    while(1)          
    {  
       key=Key_Scan();
       if(key)
       {
          LED1 = !LED1;     
          LED2 = !LED2;
       }       
    }
}

复制代码

编写完毕之后,编译,下载程序、测试按键

image.png

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    5990

    文章

    43904

    浏览量

    619604
  • GPIO
    +关注

    关注

    16

    文章

    1124

    浏览量

    50414
  • CC2530
    +关注

    关注

    19

    文章

    220

    浏览量

    57173
  • 按键检测
    +关注

    关注

    0

    文章

    21

    浏览量

    4794
收藏 人收藏

    评论

    相关推荐

    基于CC2530(ZigBee设计)的温度报警器

    这是基于CC2530设计的远程温度报警器,通过CC2530终端检测环境温度上传给手机APP实时显示。
    的头像 发表于 05-27 09:54 7824次阅读
    基于<b class='flag-5'>CC2530</b>(<b class='flag-5'>ZigBee</b>设计)的温度报警器

    zigbeecc2530

    `晒晒我的zigbeecc2530)模块`
    发表于 03-20 13:58

    CC2530 Zigbee开发——开发工作室教程

    `CC2530 Zigbee开发——开发工作室教程`
    发表于 03-08 10:33

    CC2530 点对点通信

    本人是新手,对zigbee不了解,刚买了块开发板, 想要实现的功能:当一个CC2530模块检测到有按键时,通道无线发送,另一个
    发表于 05-14 07:56

    【技术精选】嵌入式STM32原创征文活动精选文章

    CC2530(zigbee)入门开发: 串口收发配置CC2530(zigbee)入门开发: 外部
    发表于 07-27 18:26

    基于CC2530芯片_zigbee基础实验

    zigbee基础实验,基于CC2530芯片
    发表于 12-11 10:48 47次下载

    ZigBee模块CC2530天线PCB设计图

    ZigBee模块CC2530天线PCB设计图。
    发表于 05-10 17:06 0次下载

    如何使用ZigBee TI ZStack CC2530 2.5搭建开发环境

    本文档的主要内容详细介绍的是如何使用ZigBee TI ZStack CC2530 2.5搭建开发环境。
    发表于 05-10 18:14 24次下载
    如何使用<b class='flag-5'>ZigBee</b> TI ZStack <b class='flag-5'>CC2530</b> 2.5搭建<b class='flag-5'>开发</b>环境

    微雪电子ZIGBEE开发CC2530 Eval Kit简介

    ZigBee CC2530 串口透传 开发套件 物联网套件 板载电池插槽 支持多种供电方式 引出所有IO 方便用户功能扩展 板载一个CP2102 方便调试下载 型号 CC2530 Ev
    的头像 发表于 01-09 11:05 1612次阅读
    微雪电子<b class='flag-5'>ZIGBEE</b><b class='flag-5'>开发</b>板 <b class='flag-5'>CC2530</b> Eval Kit简介

    微雪电子ZIGBEE开发CC2530 Eval Kit5简介

    ZigBee CC2530 串口透传 开发套件 XBEE 物联网套件 直插接口兼容Xbee 支持自动组网 支持板载PCB天线及IPEX外接天线 型号 CC2530 Eval Kit5
    的头像 发表于 01-10 09:01 1654次阅读
    微雪电子<b class='flag-5'>ZIGBEE</b><b class='flag-5'>开发</b>板 <b class='flag-5'>CC2530</b> Eval Kit5简介

    基于CC2530ZigBee通信网的应用设计.pdf

    基于CC2530ZigBee通信网的应用设计.pdf
    发表于 12-15 18:17 19次下载

    CC2530(zigbee)入门开发: 点亮LED灯(输出)

    CC2530核心板上带有两颗晶振:第一颗频率为32MHZ,第二颗频率为32.768KHZ
    的头像 发表于 05-28 13:35 5493次阅读
    <b class='flag-5'>CC2530</b>(<b class='flag-5'>zigbee</b>)<b class='flag-5'>入门开发</b>: 点亮LED灯(输出)

    CC2530(zigbee)入门开发: 安装IAR开发环境

    CC2530本身是一个51单片机内核,开发过51的搞起来非常容易,也就是多了一个无线射频部分;如果不使用无线射频功能,那么就和一个正常的51单片机一样。要进行CC2530的软件开发,需
    的头像 发表于 05-28 13:38 9289次阅读
    <b class='flag-5'>CC2530</b>(<b class='flag-5'>zigbee</b>)<b class='flag-5'>入门开发</b>: 安装IAR<b class='flag-5'>开发</b>环境

    Zigbee(CC2530)传感器板

    电子发烧友网站提供《Zigbee(CC2530)传感器板.zip》资料免费下载
    发表于 07-04 14:49 8次下载
    <b class='flag-5'>Zigbee</b>(<b class='flag-5'>CC2530</b>)传感器板

    基于CC2530ZigBee通信网络的应用设计

    电子发烧友网站提供《基于CC2530ZigBee通信网络的应用设计.pdf》资料免费下载
    发表于 10-26 09:34 0次下载
    基于<b class='flag-5'>CC2530</b>的<b class='flag-5'>ZigBee</b>通信网络的应用设计