矩阵键盘及其基本原理
一.原理:矩阵键盘的原理就是分行和列扫描,来获知按下按键的行数和列数,然后得到按下按键的键值。
矩阵键盘的原理图及接线图如下:
因为四脚的微动按键的同一排引脚是相连的,相当于是一个同一个引脚,所以利用这个有点会大大简化我们的电路,不用做太多的飞线。
矩阵键盘的扫描原理为,先让三个横行或者三个竖列输出高电平,另外三个为输入模式,若扫描到高电平,则表示该行或该列有按键按下,接着切换输入输出,扫描另外三个,得到另外的坐标,由此确定按键按下的位置。
二.代码
#ifndef __KEY_H
#define __KEY_H
#include "sys.h"
//行操作宏定义
#define Row1_Write PAout(0)
#define Row2_Write PAout(2)
#define Row3_Write PAout(3)
#define Row1_Read PAin(0)
#define Row2_Read PAin(2)
#define Row3_Read PAin(3)
//列操作宏定义
#define Col1_Write PAout(7)
#define Col2_Write PAout(6)
#define Col3_Write PAout(4)
#define Col1_Read PAin(7)
#define Col2_Read PAin(6)
#define Col3_Read PAin(4)
#define PIN_OUT(x) {GPIOA->MODER&=~(3<<((x)*2));GPIOA->MODER|=1<<((x)*2);} //将IO口配置为输出
#define PIN_IN(x) {GPIOA->MODER&=~(3<<((x)*2));GPIOA->MODER|=0<<((x)*2);} //将IO口配置为输入
void KEY_Init(void); //IO初始化
u8 KEY_Scan(u8); //按键扫描函数
#endif
上一篇: 嵌入式开发 - 矩阵键盘原理与编程
下一篇: 矩阵键盘的工作原理