1. 简介
本文档主要介绍LPC1752采集4个独立按键的原理及实现。
本设计共有4个独立按键,分别是确认键(SW1)、上键(SW2)、下键(SW3)和复合键(SW4)。确认键(SW1)连接至LPC1752的P1.25引脚,上键(SW2)连接至LPC1752的P1.26引脚,下键(SW3)连接至LPC1752的P1.28引脚,复合键(SW4)连接至LPC1752的P1.29引脚。连接图如下:
图1 独立按键连接图
本设计按键采用高电平输入有效方式。按键按下时,LPC1752检测到高电平,认为有按键信号输入。本设计可以处理独立按键的按下、长按以及按键间的组合键。
2. 程序设计
2.1 定义
2.2 初始化函数KeyInit
初始化与按键相连的GPIO,设置为带下拉的输入模式。代码实现如图2。
图2 KeyInit函数
2.3 设置按键状态值函数CheckPinKeyState
设置按键按下或者长按时按键状态值。代码实现如图3。
图3 CheckPinKeyState函数
2.4 读取按键ReadKeyState
读取引脚的值,消除抖动后,根据该值调用CheckPinKeyState函数设置按键状态值。具体代码如图4。
图4 ReadKeyState函数
3. 测试
测试流程:
每隔200ms检测一下按键的值,当按键按下时,使用Watch1监测KeyStateRead的值。测试代码如图5。
图5 测试主函数main
测试结果:
测试结果表明,按键驱动可以正常使用。