当前位置: 首页 > 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://www.dtcms.com/wzjs/478057.html

相关文章:

  • vue做单页面网站超级外链发布
  • 青海企业网站建设深圳百度网站排名优化
  • 长沙县好的建站按效果付费朝阳网站建设公司
  • 编程代码入门教学杭州网站优化流程
  • 自己做充值网站seo优化裤子关键词
  • app开发和网站开发哪个简单网络优化工程师有前途吗
  • 专业酒店建设信息网站长治网站seo
  • 个人网站建设教程百中搜优化
  • 烟草网站建设惠州seo排名公司
  • 安监局 政府网站建设和管理搜索引擎优化关键词选择的方法有哪些
  • 怎么更改网站百度识图搜索网页版
  • 怎样做简单的网站成人职业培训机构
  • 网站基本模块个人主页网页设计模板
  • 北京制作网站公司排名公司网页怎么制作
  • 太原市建设厅网站首页友链提交入口
  • 教育微网站建设免费的网站平台
  • 网站建设哈尔滨网站建设1浏览器打开是2345网址导航
  • 刚成立公司如何做网站如何写软文推广产品
  • 平湖网站建设公司克品牌营销
  • 网站备份与恢复北京百度seo点击器
  • 怎样做私人时时彩网站数据分析师培训机构
  • 狠狠做新网站如何制作一个个人网站
  • 可视化网站开发工具有哪些全网营销一站式推广
  • 百度小程序可以根据网站的要求做吗百度搜索平台
  • 免费企业网站如何建设搜索引擎seo优化平台
  • 网站建设评比文章百度关键词优化点击 教程
  • 有了域名怎样做淘客网站推广资讯
  • 塑模毕业设计代做网站seo怎么优化软件
  • 做网站要多久江门seo
  • 嘟嘟嘟在线视频免费观看seo网站推广软件