一、按鍵功能與原理圖介紹
在學習單片機、嵌入式過程中;按鍵是必學的一個外設,常見的按鍵分為為獨立按鍵、矩陣按鍵等。下面這里介紹的是獨立按鍵,原理比較簡單,只需要將與單片機連接的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文章
44514瀏覽量
632949 -
GPIO
+關注
關注
16文章
1196瀏覽量
51913 -
CC2530
+關注
關注
19文章
221瀏覽量
57940 -
按鍵檢測
+關注
關注
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的軟件開發,需
評論