一、按鍵功能與原理圖介紹
在學(xué)習(xí)單片機(jī)、嵌入式過程中;按鍵是必學(xué)的一個(gè)外設(shè),常見的按鍵分為為獨(dú)立按鍵、矩陣按鍵等。下面這里介紹的是獨(dú)立按鍵,原理比較簡(jiǎn)單,只需要將與單片機(jī)連接的IO口配置成輸入模式,然后不停的檢測(cè)按鍵的狀態(tài)即可,根據(jù)原理圖分析可以提前知道按鍵空閑和按下是什么狀態(tài),程序里檢測(cè)到之后對(duì)應(yīng)處理即可。
二、GPIO口輸入模式配置
GPIO口作為按鍵檢測(cè)使用時(shí),需要將模式配置成輸入模式,詳細(xì)的配置步驟下面有截圖,在手冊(cè)里每個(gè)功能位都有詳細(xì)介紹。
三、核心代碼
#include
//定義LED燈的端口
#define LED1 P1_2
#define LED2 P1_3
//定義KEY按鍵的端口
#define KEY1 P1_0 //定義按鍵為P1_0口控制
#define KEY2 P1_1 //定義按鍵為P1_1口控制
/*
函數(shù)功能:LED燈IO口初始化
硬件連接:LED1-->P1_2 , LED2-->P1_3
*/
void LED_Init(void)
{
P1DIR |=0x3<<2; //配置P1_2、P1_3為輸出模式
LED1 = 1;
LED2 = 1;
}
/*
函數(shù)功能:按鍵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--);
}
/*
函數(shù)功能:按鍵掃描
返 回 值:按下的按鍵值
*/
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;
}
/*主函數(shù)*/
void main(void)
{
unsigned char key;
LED_Init();//初始化LED燈控制IO口
KEY_Init();//按鍵初始化
while(1)
{
key=Key_Scan();
if(key)
{
LED1 = !LED1;
LED2 = !LED2;
}
}
}
復(fù)制代碼
編寫完畢之后,編譯,下載程序、測(cè)試按鍵
審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
單片機(jī)
+關(guān)注
關(guān)注
6076文章
45494瀏覽量
670262 -
GPIO
+關(guān)注
關(guān)注
16文章
1328瀏覽量
56218 -
CC2530
+關(guān)注
關(guān)注
19文章
222瀏覽量
60123 -
按鍵檢測(cè)
+關(guān)注
關(guān)注
0文章
25瀏覽量
5044
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
基于CC2530(ZigBee設(shè)計(jì))的溫度報(bào)警器
這是基于CC2530設(shè)計(jì)的遠(yuǎn)程溫度報(bào)警器,通過CC2530終端檢測(cè)環(huán)境溫度上傳給手機(jī)APP實(shí)時(shí)顯示。
CC2530 點(diǎn)對(duì)點(diǎn)通信
本人是新手,對(duì)zigbee不了解,剛買了塊開發(fā)板,
想要實(shí)現(xiàn)的功能:當(dāng)一個(gè)CC2530模塊檢測(cè)到有按鍵時(shí),通道無線發(fā)送,另一個(gè)
發(fā)表于 05-14 07:56
【技術(shù)精選】嵌入式STM32原創(chuàng)征文活動(dòng)精選文章
CC2530(zigbee)入門開發(fā): 串口收發(fā)配置CC2530(zigbee)入門開發(fā): 外部
發(fā)表于 07-27 18:26
基于CC2530芯片_zigbee基礎(chǔ)實(shí)驗(yàn)
zigbee基礎(chǔ)實(shí)驗(yàn),基于CC2530芯片
發(fā)表于 12-11 10:48
?50次下載
基于CC2530的ZigBee協(xié)調(diào)器節(jié)點(diǎn)設(shè)計(jì)
本文給出了基于TI新一代芯片CC2530的ZigBee協(xié)調(diào)器節(jié)點(diǎn)設(shè)計(jì)方法,該方法選用TICC2591作為射頻前端芯片。
發(fā)表于 01-05 15:25
?5w次閱讀
如何使用ZigBee TI ZStack CC2530 2.5搭建開發(fā)環(huán)境
本文檔的主要內(nèi)容詳細(xì)介紹的是如何使用ZigBee TI ZStack CC2530 2.5搭建開發(fā)環(huán)境。
發(fā)表于 05-10 18:14
?31次下載
微雪電子ZIGBEE開發(fā)板 CC2530 Eval Kit簡(jiǎn)介
ZigBee CC2530 串口透?jìng)?開發(fā)套件 物聯(lián)網(wǎng)套件 板載電池插槽 支持多種供電方式 引出所有IO 方便用戶功能擴(kuò)展 板載一個(gè)CP2102 方便調(diào)試下載 型號(hào) CC2530 Ev
微雪電子ZIGBEE開發(fā)板 CC2530 Eval Kit5簡(jiǎn)介
ZigBee CC2530 串口透?jìng)?開發(fā)套件 XBEE 物聯(lián)網(wǎng)套件 直插接口兼容Xbee 支持自動(dòng)組網(wǎng) 支持板載PCB天線及IPEX外接天線 型號(hào) CC2530 Eval Kit5
基于CC2530的ZigBee通信網(wǎng)的應(yīng)用設(shè)計(jì).pdf
基于CC2530的ZigBee通信網(wǎng)的應(yīng)用設(shè)計(jì).pdf
發(fā)表于 12-15 18:17
?24次下載
CC2530按鍵控制LED開關(guān)實(shí)驗(yàn)
實(shí)驗(yàn)?zāi)康?
1)、通過實(shí)驗(yàn)掌握CC2530芯片GPIO的配置方法
2)、掌握Led驅(qū)動(dòng)電路及開關(guān)Led的原理
3)、掌握檢測(cè)按鍵的方法
發(fā)表于 04-11 15:32
?6次下載
CC2530(zigbee)入門開發(fā): 安裝IAR開發(fā)環(huán)境
CC2530本身是一個(gè)51單片機(jī)內(nèi)核,開發(fā)過51的搞起來非常容易,也就是多了一個(gè)無線射頻部分;如果不使用無線射頻功能,那么就和一個(gè)正常的51單片機(jī)一樣。要進(jìn)行CC2530的軟件開發(fā),需
Zigbee(CC2530)傳感器板
電子發(fā)燒友網(wǎng)站提供《Zigbee(CC2530)傳感器板.zip》資料免費(fèi)下載
發(fā)表于 07-04 14:49
?11次下載
基于CC2530的ZigBee通信網(wǎng)絡(luò)的應(yīng)用設(shè)計(jì)
電子發(fā)燒友網(wǎng)站提供《基于CC2530的ZigBee通信網(wǎng)絡(luò)的應(yīng)用設(shè)計(jì).pdf》資料免費(fèi)下載
發(fā)表于 10-26 09:34
?6次下載
CC2530(zigbee)入門開發(fā): 按鍵檢測(cè)(輸入)
評(píng)論