单片机矩阵键盘新解

本文介绍了单片机矩阵键盘的扫描新方法,包括作者自写的按键程序和从网上搜集到的高效实现。文章强调了使用线与关系判断按键状态,以及通过结构体保存按键信息和移位操作提高程序效率。还分享了一种从书本中学习的高效按键程序,通过按键值和按键表匹配确定按键。
摘要由CSDN通过智能技术生成

 

今天再做一个简易电子琴的时候用到了4X4矩阵键盘,突然发现矩阵键盘有新的发现。矩阵键盘连接图如下,上传图片弄了半天没搞定,以后要的时候去网上搜一下就得了。说重点。

按键是线与的关系,比如先给P1口赋值为0xf0,当有按键按下时P1口的值不在为0xf0,因为按下去的那个键使得与子相连的按键线与而为低电平,当按键松开时,线与关系不存在,端口回复到0xf0.而且当 产生线与关系后其他按键不能按下。

关于前面几天写的那些内容今天突然发现其实就是今天刚刚写过的一篇文章那就是单片机IO的读引脚和读端口的问题,给P1口寄存器赋值为0xf0的时候那就是读端口,然后改变端口的值,最后在把改变的值赋值给端口寄存器。然后我们从寄存器读回来的值就是读的引脚的值,这个引脚的值的改变显然是因为外设,这里是按键导致的。这里今天要说的是搜集到几个好的按键程序,把自己的也贴上一下吧。呵呵,给自己多点思路。

首先下面这个是我自己写的,很清楚通过给一个引脚拉低然后检测其他引脚的变化来确定按键。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值