4x4矩阵键盘扫描c语言程序,4x4矩阵键盘工作原理及扫描程序_渴望知识的骚年的博客-程序员宅基地

技术标签: 4x4矩阵键盘扫描c语言程序  

矩阵键盘扫描

0daf90cd9f6d6616bf905f987a499a5d.png

矩阵键盘的原理图

根据矩阵键盘的原理图可知,当没有按键按下时,P1=0xf0;然后依次将P1^0~P1^3单独置低电平,其他置高,再扫描各列的状态,来判断是哪个按键按下,比如,将P1^0输出低电平,其他的引脚都输出高电平,即P1=0xfe,那么当第1行有按键按下时P1的相应值为,

1X1(01111110=0x7e)1X2(10111110=0xbe)1x3(11011110=0xde)1X4(11101110=0xee)

将P1^1输出低电平,其他的引脚都输出高电平,即P1=0xfd,那么当第2行有按键按下时P1的相应值为,

2X1(01111101=0x7d)2X2(10111101=0xbd)2x3(11011101=0xdd)2X4(11101101=0xed)

将P1^2输出低电平,其他的引脚都输出高电平,即P1=0xfd,那么当第2行有按键按下时P1的相应值为,

3X1(01111011=0x7b)3X2(10111011=0xbb)3x3(11011011=0xdb)3X4(11101011=0xeb)

将P1^3输出低电平,其他的引脚都输出高电平,即P1=0xfd,那么当第2行有按键按下时P1的相应值为,

4X1(01110111=0x77)4X2(10110111=0xb7)4x3(11010111=0xd7)4X4(11100111=0xe7)

/*

程序中用到了置位,如果检测第一行时置位为0xfe,是为了初始化一下P1口,初始化后

*/

#include《reg52.h》

unsignedintVal;

voidDelay(unsignedintt);

voidmain(void)

{

while(1)

{

if(P1!=0xf0

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_36382155/article/details/117027347

智能推荐

逻辑回归分类、决策树分类、朴素贝叶斯分类及手写数字识别_试分别采用逻辑回归、贝叶斯分类器、svm分类器和决策树分类器等算法,针对手写数字_管牛牛的博客-程序员宅基地

逻辑回归使用逻辑回归进行鸢尾花分类:import numpy as npfrom sklearn.linear_model import LogisticRegressionimport matplotlib.pyplot as pltimport matplotlib as mplfrom sklearn import preprocessingimport pandas a..._试分别采用逻辑回归、贝叶斯分类器、svm分类器和决策树分类器等算法,针对手写数字

插入符号caret-程序员宅基地

.caret 在Bootstrap中的作用,写出一个“下拉箭头”,如图:其具体css样式为:.caret { display: inline-block; width: 0; height: 0; margin-left: 2px; vertical-align: middle; border-top: 4px dashed; border-top: 4px ...

打造U盘WINPE,随意装系统,引导安装SATA2驱动,执行备份、安装_曙光i620 csm-程序员宅基地

工具准备:1.ULTRAISO 9.2.0.2536 下载地址:http://pj.newhua.com/soft/614.htm (华军)2.WINPE镜像文件-完美Vista WinPE Plus V2┊支持WinPE里Vista安装、Vista备份还原_曙光i620 csm

qq远程卡主,只能看到桌面,鼠标、键盘操作不了的解决方法_qq远程一会儿键盘就失灵了-程序员宅基地

平时生活中经常碰到的一个问题,还一直解决不掉,也百度了很多次。终于看到了一位大佬的解决方案,完美解决。链接如下:https://www.maixj.net/ict/qq-yc-20967  背景:在没有加班费的情况下,一直是拒绝加班的,情愿自己在家用电脑办公,都不想待在公司。公司的网络是内网+虚拟机,网络还有限制,teamview,mstsc等各个远程都不能用,唯一能用的qq远程,还一直摆..._qq远程一会儿键盘就失灵了

opencv与numpy中的坐标_cv2 numpy 坐标-程序员宅基地

结论:opencv 中 rectangle函数的x,y坐标与numpy中是相反的。numpy中image.shape = (h, w)第一维度代表x,第二维度代表y的话。即横轴是y轴,纵轴是x轴。而在cv2.rectangle(image, pt1, pt2)函数中,pt1和pt2的坐标也是(x,y),但是这里的x,y是横轴,纵轴。与numpy相反。其中pt1是左上角顶点,pt2是右下角顶点。if __name__ == '__main__': import cv2 imp_cv2 numpy 坐标

linux下启动oracle10g的em和isqlplus-程序员宅基地

注:$ORACLE_HOME为oracle的安装路径1,使用EM(enterprise managment)1.1启动EM$ORACLE_HOME/bin/emctl start dbconsole如果出现下面相关信息,说明服务启动TZ set to PRCOracle Enterprise Manager 10g Database Control Release 10.1.0.3.0

随便推点

注册表详细设置二_win注册表cpu分配-程序员宅基地

《每个资源管理器窗口使用单独进程》 [HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explorer/Advanced] "SeparateProcess"=dword:00000001《每个IE窗口使用单独进程》 [HKEY_CURRENT_USER/Software/Microsoft/Windows/Current_win注册表cpu分配

ALV弹出窗口 REUSE_ALV_POPUP_TO_SELECT-程序员宅基地

有时候需要在双击ALV某行时,弹出一个窗口这里介绍中比较简单的实现方式:FM:REUSE_ALV_POPUP_TO_SELECT CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT' EX..._reuse_alv_popup_to_select i_callback_user_command

JS获取Model层数据-程序员宅基地

Controller :request.setAttribute("yearList", yearList);或者 model.addAttribute("yearList", yearList);在JS中:

natapp的使用_natapp有什么用-程序员宅基地

natapp使用汇总1.natapp是干什么的? (1).在进行微信公众号开发时,我们需要搭建网站,并且随时都有可能修改网站内容进行调试。如果能够将内网ip映射到外网上,将大大方便我们的调试。每次发布只需eclipse/Idea运行应用即可。 (2).通过natapp将内网映射到外网,还可以方便我们其他工作,比如外网展示网站等。 总之一句话,我们使用natapp主要是用_natapp有什么用

对于nutz框架的学习入门级使用——配置_nutz教程-程序员宅基地

准备:eclipse,jdk8.0,tomcat8.5,nutz的jar包第一步:新建一个项目第二步:导入需要的包(数据的jar包也会同时导入)第三步:新建一个Mainmodule的类,并写入如下图的注解第四步:配置web.xml文件param中的value放入的是Mainmodule的全路径配置结束!!!~~只是学习总结,在错误中进步~..._nutz教程