单片机
返回首页

3x3矩阵键盘扫描原理及扫描程序

2024-06-26 来源:elecfans

3x3矩阵键盘简介

矩阵键盘,3×3矩阵键盘,数码管显示对应按键,动态扫描,中断实现。

3x3矩阵键盘扫描原理及扫描程序

其中上拉电阻属性需设置为“digital”。


3x3矩阵键盘扫描原理及扫描程序

将9个按键排成3行3列,第一行将每个按键的一端连接在一起构成行线,第一列将每个按键的另一端连接在一起构成列线,这样一共有3行3列一共6根线,我们将这六根线连接到STM32的6个IO口上,通过程序扫描键盘就可检测9个键。

无论独立键盘还是矩阵键盘,单片机检测其是否被按下的原理都是一样的,也就是检测与该键对应的I/O口是否为低电平。独立按键有一端固定为低电平,单片机写程序检测时比较方便。而矩阵键盘两端都与单片机I/O口相连,因此在检测时需要人为通过单片机I/O口送出低电平。检测时,先送一列为低电平,其余几列为高电平(此时我们确定了列数),然后立即轮流检测一次各行是否有低电平,若检测到某一行为低电平(此时我们又确定了行数),则我们便可确认当前按下的键是哪一行哪一列的,用同样的方法轮流送各列一次低电平,再轮流检测一次各行是否变为低电平,这样既可检测完所有的按键。当然我们也可将行线置低电平,扫描列是否有低电平。这就是矩阵键盘的检测原理和方法。

3x3矩阵键盘扫描原理及扫描程序

SETB P1.0 ;首先各位先置一

SETB P1.1

SETB P1.2

SETB P1.3

SETB P1.4

SETB P1.5

KEY: CLR P1.0 ;行线均清零

CLR P1.1 CLR P1.2

JNB P1.3 , KEY0 ;判断是否有按键按下

JNB P1.4, KEY0

JNB P1.5 , KEY0

SJMP KEY ;无按键按下回到KEY继续查询是否有按键按下

KEY0: LCALL DELAY ;调用延时函数

CLR P1.0 ;P1.0清零,P1.1、P1.2置一

SETB P1.1

SETB P1.2

JNB P1.3 , KEY1 ;P1.3为零则按键一被按下,跳转到按键一KEY1处

JNB P1.4 , KEY2

JNB P1.5 , KEY3

SETB P1.0 ;P1.1清零,P1.0、P1.2置一 CLR P1.1

SETB P1.2

JNB P1.3 , KEY4

JNB P1.4 , KEY5

JNB P1.5 , KEY6

SETB P1.0 ;P1.2清零,P1.0、P1.1置一

SETB P1.1

CLR P1.2

JNB P1.3 , KEY7

JNB P1.4 , KEY8

JNB P1.5 , KEY9

SJMP KEY ;如果无按键按下重新跳回到按键查询程序

KEY1: LCALL PRO1 ;调用按键一的处理子程序

LJMP KEY ;返回继续查询按键是否被按下

KEY2: LCALL PRO2

LJMP KEY

KEY3: LCALL PRO3

LJMP KEY

KEY4: LCALL PRO4

LJMP KEY

KEY5: LCALL PRO5

LJMP KEY

KEY6: LCALL PRO6

LJMP KEY

KEY7: LCALL PRO7

LJMP KEY

KEY8: LCALL PRO8

LJMP KEY

KEY9: LCALL PRO9

LJMP KEY

PRO1: 。 ;按键一的处理子程序

RET ;子程序返回

PRO2:

。 RET

PRO3:

RET

PRO4:

RET

PRO5:

RET

PRO6:

RET

PRO7:

RET

PRO8:

RET

PRO9:

RET


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 永不缺相启动运行的电动机控制电路

  • MT3608构成3.7V转12V的升压电路图

  • 比较常见的功率整流器和滤波电路

  • 一个简单的红外耳机电路

  • 基于CA3193的热电偶放大器电路

  • 基于TDA1554的立体声放大器电路

    相关电子头条文章