矩阵键盘及其基本原理

一.原理:矩阵键盘的原理就是分行和列扫描,来获知按下按键的行数和列数,然后得到按下按键的键值。

矩阵键盘的原理图及接线图如下:

矩阵键盘及其基本原理_第1张图片

 

 

因为四脚的微动按键的同一排引脚是相连的,相当于是一个同一个引脚,所以利用这个有点会大大简化我们的电路,不用做太多的飞线。

矩阵键盘的扫描原理为,先让三个横行或者三个竖列输出高电平,另外三个为输入模式,若扫描到高电平,则表示该行或该列有按键按下,接着切换输入输出,扫描另外三个,得到另外的坐标,由此确定按键按下的位置。

二.代码


#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
 

你可能感兴趣的:(矩阵键盘及其基本原理)