下面以51单片机综合学习系统为硬件平台,介绍矩阵式键盘的编程方法。具体功能为:按下其键后,在一位数码管上显示出键值。0到16个键分别对应显示0到f。
1、硬件原理
本实验可以直接在配套开发板上完成,电路图如下图所示。
根据电路原理图,键盘扫描方法是:行线p1o~p13为输出线,列线p14~p17为输入线。一开始单片机将行线(p1o-p13)全部输出低电平,此时读入列线数据,若列线全为高电平说明没有键接下,若有列线为低电平则调用延时程序来去除按键抖动。延时后再读入列线看是否有低电平,如果列线数据还是有低电平,说明确实有键接下,接下来便是确定键值。下面以第二行的s5键为例,看接下s5后我们应该怎么得到这个键值。当判定确实有键接下之后,将行线轮流置为低电平,根据读入列线的数据可以确定键值。首先,单片机将p1o置为低电平,p11~p13置为高电平,此时读出的列线数据全为高电平,说明第一行没有键接下;接着单片机将p11输出低电平,p1o、p12、p13置为高电平,再读列线数据,此时的列线数值为1011(oxob),即p11与p15交叉点上的按键s5被接下,而oxob就代表s5的键值了。转到s5键功能处理子程序就可以达到目的。
2.程序流程
软件流程图如下图所示。51单片机综合学习系统资源丰富,板内有:8位led数码管、32路led、4x4矩阵键盘、4个直控按键盘、蜂鸣器喇叭、继电器试验、i2c总线接口、spi总线接口、l60x液晶、l28x64液晶、红外接收头接口、支持ps/2接口的104键标准键盘、步进电机驱动接口、adco832模/数转换接口、pc817光电耦合器、串行时钟芯片dsl302、温度传感器dsl8b2o按口、rs232串口通讯、外扩展接口等,可以方便地接更多的实验资源。
3. 软件代码
相关的软件代码如下:
/* 矩阵键盘测试程序*/
数模混合信号链和时钟芯片设计公司核芯互联完成数亿元B轮融资
海信在日打破电视市场中“海外品牌卖不出去”的魔咒,击败松下等品牌
有超载和短路保护的可调稳压电源,Adjustable power supply
荣耀9曝光:正面指纹+3D曲面玻璃,神似双摄小米5
小米6入门版或搭载Helio X30 华为P10内部零组件曝光
51单片机矩阵式键盘的编程方法
国内有什么好用的、能落地的AR远程协助解决方案?
三种常见的蓝牙定位方案
关于NVME SSD的数据安全防护
浅谈非易失性存储器MRAM,它的应用领域有哪些
如何预防PCB上的污染?
AI与5G赋能机器人更具智能化
智能传感技术是实现智能制造的关键
GPS/北斗RTK差分定位系统的原理以及应用领域
人脸识别技术的场景应用及方案优势
诺基亚:倘若当初选择安卓会怎样?
一站式定制芯片及IP的高新技术企业灿芯半导体开启新征程 成都公司喜迁新居
能耗管理系统在家庭中的应用
三星S21参数配置发现卖点在影像配置 三星S21国行价格4999起
南海问题是本质?美媒称美军在潜航器事件表现太软