收藏 分享(赏)

经典的矩阵键盘扫描程序.doc

上传人:dcs1276 文档编号:7796501 上传时间:2019-05-26 格式:DOC 页数:2 大小:29.50KB
下载 相关 举报
经典的矩阵键盘扫描程序.doc_第1页
第1页 / 共2页
经典的矩阵键盘扫描程序.doc_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

1、 键盘是单片机常用输入设备,在按键数量较多时,为了节省 I/O 口等单片机资源,一般采取扫描的方式来识别到底是哪一个键被按下。即通过确定被按下的键处在哪一行哪一列来确定该键的位置,获取键值以启动相应的功能程序。4*4 矩阵键盘的结构如图 1(实物参考见万用板矩阵键盘制作技巧)。在本例中,矩阵键盘的四列依次接到单片机的 P1.0P1.3,四行依次接到单片机的 P1.4P1.7;同时,将列线上拉,通过 10K 电阻接电源。查找哪个按键被按下的方法为:一个一个地查找。先第一行输出 0,检查列线是否非全高;否则第二行输出 0,检查列线是否非全高;否则第三行输出 0,检查列线是否非全高;如果某行输出 0

2、 时,查到列线非全高,则该行有按键按下;根据第几行线输出 0 与第几列线读入为 0,即可判断在具体什么位置的按键按下。下面是具体程序:void Check_Key(void)unsigned char row,col,tmp1,tmp2;tmp1 = 0x10; /tmp1 用来设置 P1 口的输出,取反后使P1.4P1.7 中有一个为 0for(row=0;row4;row+) / 行检测P1 = 0x0f; / 先将 p1.4P1.7 置高P1 =tmp1; / 使 P1.4p1.7 中有一个为 0tmp1*=2; / tmp1 左移一位if (P1 / tmp2 用于检测出哪一列为 0for(col =0;col4;col+) / 列检测 if(P1 / 获取键值,识别按键;key_Map为按键的定义表return; / 退出循环tmp2*=2; / tmp2 左移一位 /结束这是一种比较经典的矩阵键盘识别方法,实现起来较为简单,程序短小精炼。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报