一、按键功能与原理图介绍
在学习单片机、嵌入式过程中;按键是必学的一个外设,常见的按键分为为独立按键、矩阵按键等。下面这里介绍的是独立按键,原理比较简单,只需要将与单片机连接的IO口配置成输入模式,然后不停的检测按键的状态即可,根据原理图分析可以提前知道按键空闲和按下是什么状态,程序里检测到之后对应处理即可。
二、GPIO口输入模式配置
GPIO口作为按键检测使用时,需要将模式配置成输入模式,详细的配置步骤下面有截图,在手册里每个功能位都有详细介绍。
三、核心代码
#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;
}
}
}
复制代码
编写完毕之后,编译,下载程序、测试按键
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
单片机
+关注
关注
6032文章
44513浏览量
632881 -
GPIO
+关注
关注
16文章
1196浏览量
51906 -
CC2530
+关注
关注
19文章
221浏览量
57938 -
按键检测
+关注
关注
0文章
23浏览量
4829
发布评论请先 登录
相关推荐
基于CC2530的ZigBee协调器节点设计
本文给出了基于TI新一代芯片CC2530的ZigBee协调器节点设计方法,该方法选用TICC2591作为射频前端芯片。
发表于 01-05 15:25
•4.9w次阅读
CC2530芯片的基本特性和CC2530无线模块的设计
本文介绍了CC2530芯片的基本特性,论述了以CC2530芯片为核心的无线通信模块的硬件设计和调试软件设计,在介绍设计规范和模块结构的基础上,采用TI公司的CC2530芯片作为主控制芯片设计出具
发表于 02-11 08:00
•97次下载
如何使用ZigBee TI ZStack CC2530 2.5搭建开发环境
本文档的主要内容详细介绍的是如何使用ZigBee TI ZStack CC2530 2.5搭建开发环境。
发表于 05-10 18:14
•25次下载
微雪电子ZIGBEE开发板 CC2530 Eval Kit简介
ZigBee CC2530 串口透传 开发套件 物联网套件 板载电池插槽 支持多种供电方式 引出所有IO 方便用户功能扩展 板载一个CP2102 方便调试下载 型号 CC2530 Ev
微雪电子ZIGBEE开发板 CC2530 Eval Kit5简介
ZigBee CC2530 串口透传 开发套件 XBEE 物联网套件 直插接口兼容Xbee 支持自动组网 支持板载PCB天线及IPEX外接天线 型号 CC2530 Eval Kit5
CC2530按键控制LED开关实验
实验目的
1)、通过实验掌握CC2530芯片GPIO的配置方法
2)、掌握Led驱动电路及开关Led的原理
3)、掌握检测按键的方法
发表于 04-11 15:32
•6次下载
CC2530(zigbee)入门开发: 安装IAR开发环境
CC2530本身是一个51单片机内核,开发过51的搞起来非常容易,也就是多了一个无线射频部分;如果不使用无线射频功能,那么就和一个正常的51单片机一样。要进行CC2530的软件开发,需
评论