本节包含的知识点:
- 按键的基本知识【源自大佬】
- 按键的一些模板
- 独立按键
- 矩阵按键
- 如何进行长按操作
按键功能选择(J5)
1-2 短接:选择 4 x 4 键盘功能
2-3 短接:选择 4 个独立按键功能
独立按键基本模板
#include "reg52.h"
void KeysDelay()
{
unsigned int t = 100;
while(t--);
}
void KeysScan()
{
if(S4 == 0){ // 按下
KeysDelay(); // 延时一段时间判断是否是真的按下:松手检测
if(S4 == 0){ // 如果是真的按下
/*按下进行的操作*/
while(S4 == 0); // 按键松开
/*松开进行的操作*/
}
}
if(S5 == 0){
KeysDelay();
if(S5 == 0){
while(S5 == 0);
}
}
if(S6 == 0){
KeysDelay();
if(S6 == 0){
while(S6 == 0);
}
}
if(S7 == 0){
KeysDelay();
if(S7 == 0){
while(S7 == 0);
}
}
}
矩阵键盘基本模板
sfr P4 = 0XC0;
//定义行
sbit R1 = P3 ^ 0;
sbit R2 = P3 ^ 1;
sbit R3 = P3 ^ 2;
sbit R4 = P3 ^ 3;
//定义列
sbit C1 = P4 ^ 4;
sbit C2 = P4 ^ 5;
sbit C3 = P3 ^ 4;
sbit C4 = P3 ^ 5;
void KeyScan()
{
// 以扫描第一行按键情况为例
R1 = 0;R2 = 1;R3 = 1;R4 = 1;
C1 = 1;C2 = 1;C3 = 1;C4 = 1;
if(C3 == 0){
while(C3 == 0)
// 按下矩阵键一行三列按键后的CMD
}
}