当前位置: 首页 > wzjs >正文

站长工具seo综合厦门住建局

站长工具seo综合,厦门住建局,合肥网页制作公司推荐,钟表东莞网站建设矩阵按键通常是为了节省IO口而设计的,当有多个按键时,如果每个按键都单独接一个IO口,会占用太多资源。所以采用矩阵排列,比如4x4的矩阵,只需要8个IO口(4行4列),可以支持16个按键&…

矩阵按键通常是为了节省IO口而设计的,当有多个按键时,如果每个按键都单独接一个IO口,会占用太多资源。所以采用矩阵排列,比如4x4的矩阵,只需要8个IO口(4行+4列),可以支持16个按键,这样效率更高。

一、矩阵按键原理

矩阵按键主要是通过逐列或者逐行的方式进行扫描输出低电平,检测列(或行)输入状态。当某行被激活时,若某列检测到低电平,则对应交叉点的按键被按下。

1.扫描过程

  • 步骤1:行线设置为输出模式,列线设置为输入模式(带内部或外部上拉电阻)。

  • 步骤2:逐行拉低每一行(如Row1拉低,其他行置高),读取列线状态。

  • 步骤3:若某列为低电平,则确定按键位置(如Row1+Column2对应按键5)。

  • 步骤4:循环扫描所有行,完成一轮检测。

2.按键消抖

当按键被按下时,我们可以通过延时函数来进行对按键的消抖,可以选择10~20ms的延时进行消抖,避免误触发的现象。

3.原理图

二、代码演示

#include <REGX52.H>
#include "Delay.h"/*** @brief 矩阵按键按下所显示的数字* @param  无* @retval KeyNum显示1~16*///矩阵按键进行逐列扫描
unsigned char MatrixKey(void)
{unsigned char KeyNum = 0;P1 = 0xFF;//P1置高电平有效P1_3 = 0;if(P1_7 == 0){	Delay(20);//消抖while(P1_7==0);//检测松手Delay(20);KeyNum = 1;}if(P1_6 == 0){	Delay(20);while(P1_6==0);Delay(20);KeyNum = 5;}if(P1_5 == 0){	Delay(20);while(P1_5==0);Delay(20);KeyNum = 9;}if(P1_4 == 0){	Delay(20);while(P1_4==0);Delay(20);KeyNum = 13;}P1 = 0xFF;P1_2 = 0;if(P1_7 == 0){	Delay(20);while(P1_7==0);Delay(20);KeyNum = 2;}if(P1_6 == 0){	Delay(20);while(P1_6==0);Delay(20);KeyNum = 6;}if(P1_5 == 0){	Delay(20);while(P1_5==0);Delay(20);KeyNum = 10;}if(P1_4 == 0){	Delay(20);while(P1_4==0);Delay(20);KeyNum = 14;}P1 = 0xFF;P1_1 = 0;if(P1_7 == 0){	Delay(20);while(P1_7==0);Delay(20);KeyNum = 3;}if(P1_6 == 0){	Delay(20);while(P1_6==0);Delay(20);KeyNum = 7;}if(P1_5 == 0){	Delay(20);while(P1_5==0);Delay(20);KeyNum = 11;}if(P1_4 == 0){	Delay(20);while(P1_4==0);Delay(20);KeyNum = 15;}P1 = 0xFF;P1_0 = 0;if(P1_7 == 0){	Delay(20);while(P1_7==0);Delay(20);KeyNum = 4;}if(P1_6 == 0){	Delay(20);while(P1_6==0);Delay(20);KeyNum = 8;}if(P1_5 == 0){	Delay(20);while(P1_5==0);Delay(20);KeyNum = 12;}if(P1_4 == 0){	Delay(20);while(P1_4==0);Delay(20);KeyNum = 16;}return KeyNum;
}
#include <REGX52.H>
#include "Delay.h"
#include "LCD1602.h"
#include "MatrixKey.h"unsigned char KeyNumber;void main()
{LCD_Init();LCD_ShowString(1,1,"Show_KeyNumber:");while(1){KeyNumber = MatrixKey();if(KeyNumber)//判断按键按下{LCD_ShowNum(2,1,KeyNumber,2);}}
}

当矩阵按键被按下时,会显示该行该列对应的数字 

 


文章转载自:

http://rfQPFIQz.Lqgtx.cn
http://2p4QNLpt.Lqgtx.cn
http://58xaD22X.Lqgtx.cn
http://wFxfXp7f.Lqgtx.cn
http://intZ98a9.Lqgtx.cn
http://azRVSZMQ.Lqgtx.cn
http://mgRUA14x.Lqgtx.cn
http://wj7j4DXI.Lqgtx.cn
http://jPjcha6i.Lqgtx.cn
http://wktvgYei.Lqgtx.cn
http://JaQuLCcV.Lqgtx.cn
http://ML4wK3wK.Lqgtx.cn
http://D5UQFgCt.Lqgtx.cn
http://r0VQSnkQ.Lqgtx.cn
http://R7XciK8q.Lqgtx.cn
http://zCrqD1ZZ.Lqgtx.cn
http://i40wptsg.Lqgtx.cn
http://pQVqVJKa.Lqgtx.cn
http://LjOzyoCG.Lqgtx.cn
http://jnTQgTsZ.Lqgtx.cn
http://g06ZipLB.Lqgtx.cn
http://hi44o1v1.Lqgtx.cn
http://N514WAA3.Lqgtx.cn
http://u8KDUDOo.Lqgtx.cn
http://uR6Y5w3g.Lqgtx.cn
http://vInbJauK.Lqgtx.cn
http://rHgolpC7.Lqgtx.cn
http://IQ6bJIvT.Lqgtx.cn
http://pzos7QqF.Lqgtx.cn
http://XNJLV3ej.Lqgtx.cn
http://www.dtcms.com/wzjs/746094.html

相关文章:

  • 普通网站要什么费用保定满城网站建设
  • 保护膜 东莞网站建设网站群系统建设
  • 能自己做网站接业务吗衡阳网站建设价格
  • 佛山哪有网站建设公司成都网站推广招聘
  • 苏州网站制作哪家好企业展厅公司
  • wordpress网站恢复网站推广的策略方法
  • WordPress如何建立手机网站今天刚刚长沙
  • 网站开发交什么税wordpress 搬家
  • 南昌做网站seo留言小程序模板
  • 网站做优化按点击收费深圳航空公司官网
  • tp3企业网站开发百度云网站开发是什么意思
  • cms开源网站管理系统wordpress评论特效
  • 新建网站3d建模一般学多久
  • 网站建设构建方案为什么要建设种苗供求网站
  • 老年夫妻做爰视频网站网站设计规划报告
  • 网站开发评估与调整求职网站网页模板
  • 手机网站生成app软件中国建设网官方
  • 网站建设服务的具体条件网站开发项目企划书
  • 网站开发专员绩效考核网站渗透
  • 营销型网站的类型有哪些wordpress 大型站
  • 秦皇岛北京网站建设搜索网站的软件有哪些
  • 电子商务网站建设和管理的意义页面紧急情况访问升级跳拿笔记
  • 网站建设模块是什么怎么样推销自己网站
  • 一个网站做多访问量网站做很多关键词
  • 湖南张家界建设厅网站网站备案密码收不到
  • 扁平化网站 源代码有什么做ppt的网站吗
  • 网站最初的索引量从何而来建设网站需要准备什么手续
  • 仿xss网站搭建分类信息多城市网站
  • 柳州网站建设多少钱沈阳建设工程信息网平台电话
  • 高端网站设计建设设计工作室的经营范围