一、按鍵功能與原理圖介紹
在學習單片機、嵌入式過程中;按鍵是必學的一個外設,常見的按鍵分為為獨立按鍵、矩陣按鍵等。下面這里介紹的是獨立按鍵,原理比較簡單,只需要將與單片機連接的IO口配置成輸入模式,然后不停的檢測按鍵的狀態(tài)即可,根據(jù)原理圖分析可以提前知道按鍵空閑和按下是什么狀態(tài),程序里檢測到之后對應處理即可。
二、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口控制
/*
函數(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;
}
}
}
復制代碼
編寫完畢之后,編譯,下載程序、測試按鍵
審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
單片機
+關(guān)注
關(guān)注
6023文章
44376瀏覽量
628297 -
GPIO
+關(guān)注
關(guān)注
16文章
1172瀏覽量
51511 -
CC2530
+關(guān)注
關(guān)注
19文章
220瀏覽量
57482 -
按鍵檢測
+關(guān)注
關(guān)注
0文章
22瀏覽量
4812
發(fā)布評論請先 登錄
相關(guān)推薦
CC2530 點對點通信
本人是新手,對zigbee不了解,剛買了塊開發(fā)板,
想要實現(xiàn)的功能:當一個CC2530模塊檢測到有按鍵時,通道無線發(fā)送,另一個
發(fā)表于 05-14 07:56
【技術(shù)精選】嵌入式STM32原創(chuàng)征文活動精選文章
CC2530(zigbee)入門開發(fā): 串口收發(fā)配置CC2530(zigbee)入門開發(fā): 外部
發(fā)表于 07-27 18:26
基于CC2530的ZigBee協(xié)調(diào)器節(jié)點設計
本文給出了基于TI新一代芯片CC2530的ZigBee協(xié)調(diào)器節(jié)點設計方法,該方法選用TICC2591作為射頻前端芯片。
發(fā)表于 01-05 15:25
?4.8w次閱讀
CC2530芯片的基本特性和CC2530無線模塊的設計
本文介紹了CC2530芯片的基本特性,論述了以CC2530芯片為核心的無線通信模塊的硬件設計和調(diào)試軟件設計,在介紹設計規(guī)范和模塊結(jié)構(gòu)的基礎(chǔ)上,采用TI公司的CC2530芯片作為主控制芯片設計出具
發(fā)表于 02-11 08:00
?96次下載
如何使用ZigBee TI ZStack CC2530 2.5搭建開發(fā)環(huán)境
本文檔的主要內(nèi)容詳細介紹的是如何使用ZigBee TI ZStack CC2530 2.5搭建開發(fā)環(huán)境。
發(fā)表于 05-10 18:14
?24次下載
微雪電子ZIGBEE開發(fā)板 CC2530 Eval Kit簡介
ZigBee CC2530 串口透傳 開發(fā)套件 物聯(lián)網(wǎng)套件 板載電池插槽 支持多種供電方式 引出所有IO 方便用戶功能擴展 板載一個CP2102 方便調(diào)試下載 型號 CC2530 Ev
微雪電子ZIGBEE開發(fā)板 CC2530 Eval Kit5簡介
ZigBee CC2530 串口透傳 開發(fā)套件 XBEE 物聯(lián)網(wǎng)套件 直插接口兼容Xbee 支持自動組網(wǎng) 支持板載PCB天線及IPEX外接天線 型號 CC2530 Eval Kit5
CC2530按鍵控制LED開關(guān)實驗
實驗目的
1)、通過實驗掌握CC2530芯片GPIO的配置方法
2)、掌握Led驅(qū)動電路及開關(guān)Led的原理
3)、掌握檢測按鍵的方法
發(fā)表于 04-11 15:32
?6次下載
CC2530(zigbee)入門開發(fā): 安裝IAR開發(fā)環(huán)境
CC2530本身是一個51單片機內(nèi)核,開發(fā)過51的搞起來非常容易,也就是多了一個無線射頻部分;如果不使用無線射頻功能,那么就和一個正常的51單片機一樣。要進行CC2530的軟件開發(fā),需
基于CC2530的ZigBee通信網(wǎng)絡的應用設計
電子發(fā)燒友網(wǎng)站提供《基于CC2530的ZigBee通信網(wǎng)絡的應用設計.pdf》資料免費下載
發(fā)表于 10-26 09:34
?3次下載
評論