3x3矩阵键盘简介
矩阵键盘,3×3矩阵键盘,数码管显示对应按键,动态扫描,中断实现。
其中上拉电阻属性需设置为“digital”。
3x3矩阵键盘扫描原理及扫描程序
将9个按键排成3行3列,第一行将每个按键的一端连接在一起构成行线,第一列将每个按键的另一端连接在一起构成列线,这样一共有3行3列一共6根线,我们将这六根线连接到stm32的6个io口上,通过程序扫描键盘就可检测9个键。
无论独立键盘还是矩阵键盘,单片机检测其是否被按下的原理都是一样的,也就是检测与该键对应的i/o口是否为低电平。独立按键有一端固定为低电平,单片机写程序检测时比较方便。而矩阵键盘两端都与单片机i/o口相连,因此在检测时需要人为通过单片机i/o口送出低电平。检测时,先送一列为低电平,其余几列为高电平(此时我们确定了列数),然后立即轮流检测一次各行是否有低电平,若检测到某一行为低电平(此时我们又确定了行数),则我们便可确认当前按下的键是哪一行哪一列的,用同样的方法轮流送各列一次低电平,再轮流检测一次各行是否变为低电平,这样既可检测完所有的按键。当然我们也可将行线置低电平,扫描列是否有低电平。这就是矩阵键盘的检测原理和方法。
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
振荡培养箱的主要特点及使用指南说明
华兴源创:面板业务持续发力,半导体检测获重大突破
让我告诉你!人脸识别到底安不安全?一支神秘多国部队破解世界难题
DPoS共识机制有哪些优势
前有iPhone8、小米MIX2,后有vivox20,全面屏战争打响!vivo x20发布会邀请函曝光:地点绝了
3x3矩阵键盘扫描原理及扫描程序
LED照明系统的评估标准和过程
恒温控制器的使用方法
中兴全球首款屏下摄像头手机
1966年研制的移动式机器人长什么样?
汽车多核获得基于模型的开发推动力
威迈斯韩永杰:多合一电驱系统的开发与挑战
检测接地电阻读数不准确的原因及避免方法
空调进入低增长模式,产品均价持续走低
苹果推出iOS13.1开发者测试版 iOS13测试版中删除的一些功能又加了回来
使用晶体谐振器要注意什么?
Tina_Linux系统裁剪开发指南
树莓派3B+评测 未免有些辜负时隔两年的期待
使用NCCL 2.12将所有all2all性能翻倍
高带宽探头挖潜增效和前端选择