单片机实验——4X4矩阵键盘识别技术

来源:互联网 发布:java完全自学宝典 pdf 编辑:程序博客网 时间:2024/05/01 21:36

用AT89S51 的并行口P1 接4×4 矩阵键盘,以P3.0-P3.3
作输入线,以P3.4-P3.7 作输出线;在数码管上显示数字按键的“0-9”序号,其它按键显示0。

 

原理分析:4X4矩阵键盘每个按键都有它的行值和列值,当每个按键的行值为低电平,列值为高电平时,按键为未按下状态。判断是否有按钮按下时,先让这一行通低电平,再通过扫描每一列来判断是否被按下(逐列使列值通高电平),如果被按下,那么这一列的电平此时会成为低电平;如果这一列在扫描时为低电平,说明这一列有按键被按下,而行值是每次在判断列值前就确定的,这样就能知道到底是哪一个按键被按下了。

 

基本流程: 设置第一行为低电平——>扫描每一列(设置为高电平),判断是否为0——>确定是否有按键按下——>设置第二行为低电平——>扫描第二列......(如此循环到第四行,再从第一行重新开始)

 

编译环境:KEIL C51 V3
仿真软件:proteus 7.4
单片机类型:AT89C52

数码管类型:7seg-mpx1-cc (cc——共阴数码管)

键盘类型:keypad-samllcalc

 

单片机上的程序如下:

 

 

电路图核心部分如下:

 

原创粉丝点击