1. 簡介
本文檔主要介紹LPC1752采集4個獨立按鍵的原理及實現(xiàn)。
本設(shè)計共有4個獨立按鍵,分別是確認(rèn)鍵(SW1)、上鍵(SW2)、下鍵(SW3)和復(fù)合鍵(SW4)。確認(rèn)鍵(SW1)連接至LPC1752的P1.25引腳,上鍵(SW2)連接至LPC1752的P1.26引腳,下鍵(SW3)連接至LPC1752的P1.28引腳,復(fù)合鍵(SW4)連接至LPC1752的P1.29引腳。連接圖如下:

圖1 獨立按鍵連接圖
本設(shè)計按鍵采用高電平輸入有效方式。按鍵按下時,LPC1752檢測到高電平,認(rèn)為有按鍵信號輸入。本設(shè)計可以處理獨立按鍵的按下、長按以及按鍵間的組合鍵。
2. 程序設(shè)計
2.1 定義

2.2 初始化函數(shù)KeyInit
初始化與按鍵相連的GPIO,設(shè)置為帶下拉的輸入模式。代碼實現(xiàn)如圖2。

圖2 KeyInit函數(shù)?
2.3 設(shè)置按鍵狀態(tài)值函數(shù)CheckPinKeyState
設(shè)置按鍵按下或者長按時按鍵狀態(tài)值。代碼實現(xiàn)如圖3。

圖3 CheckPinKeyState函數(shù)
2.4 讀取按鍵ReadKeyState
讀取引腳的值,消除抖動后,根據(jù)該值調(diào)用CheckPinKeyState函數(shù)設(shè)置按鍵狀態(tài)值。具體代碼如圖4。

圖4 ReadKeyState函數(shù)
3. 測試
測試流程:
每隔200ms檢測一下按鍵的值,當(dāng)按鍵按下時,使用Watch1監(jiān)測KeyStateRead的值。測試代碼如圖5。

圖5 測試主函數(shù)main
測試結(jié)果:

測試結(jié)果表明,按鍵驅(qū)動可以正常使用。
編輯:hfy
-
獨立按鍵
+關(guān)注
關(guān)注
1文章
45瀏覽量
12066 -
LPC1752
+關(guān)注
關(guān)注
0文章
4瀏覽量
3729
發(fā)布評論請先 登錄
求助,關(guān)于LPC546XX CTIMER 配置問題求解
使用 LPC55S69 和 MCUX 驅(qū)動程序的 CDC 應(yīng)該實現(xiàn)什么樣的吞吐量?
探索LPC82x 32位ARM Cortex - M0+微控制器:特性、應(yīng)用與設(shè)計要點
探索NXP LPC111xLV/LPC11xxLVUK 32位ARM Cortex - M0微控制器
ADP1752/ADP1753:低輸入電壓、低 dropout 線性穩(wěn)壓器的卓越之選
【瑞薩RA × Zephyr評測】LED、按鍵和UART
LPC800系列MCU:低功耗與高性能的完美結(jié)合
探索NXP LPC5536-EVK評估板:快速上手指南
如何進(jìn)行按鍵檢測
CW32 電容式觸摸按鍵設(shè)計指南
使用德思特GNSS模擬器實現(xiàn)RTK基站與流動站的獨立模擬
按鍵消抖的方法
Key_Scan按鍵掃描函數(shù)詳解
AS32X601驅(qū)動系列教程 GPIO_按鍵檢測詳解
基于LPC1752的獨立按鍵的原理及實現(xiàn)
評論