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

建站abc做的网站稳定网络营销策划创意案例点评

建站abc做的网站稳定,网络营销策划创意案例点评,手机网站的内容模块,体育彩票网站开发方案这里写目录标题 1、矩阵按键2、代码片段分析 1、矩阵按键 通过将4x4矩阵按键的每一行依次设为低电平,同时保持其它行为高电平,然后读取所有列的电平状态,可以检测到哪个按键被按下。如果某列变为低电平,说明对应行和列的按键被按下…

这里写目录标题

  • 1、矩阵按键
  • 2、代码片段分析

1、矩阵按键

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
通过将4x4矩阵按键的每一行依次设为低电平,同时保持其它行为高电平,然后读取所有列的电平状态,可以检测到哪个按键被按下。如果某列变为低电平,说明对应行和列的按键被按下。这样逐行扫描即可确定按键的位置。


2、代码片段分析

/*********************************************************************@Function  : 矩阵键盘行列读写操作@Parameter : ReadIo  :读输入的IOWirteIo :写输出的IO@Return    : 行列IO输出状态
**********************************************************************/
uint8_t GPIO_KEY_RW(uint16_t ReadIo,uint16_t WirteIo)
{uint16_t Wdata=0,Rdata=0;	/* 写操作 */KeyBordSetOut(KEY_ALL);               //设置IOif(WirteIo==0x0f00)GPIO_SetBits(GPIOE,KEY_LINE);      //写行else GPIO_ResetBits(GPIOE,KEY_LIST);    //写列		Wdata = GPIO_ReadOutputData(GPIOE);//读输出	Wdata &= WirteIo;                  //取有效区域/* 读操作 */KeyBordSetIn(ReadIo);              //设置IO Rdata = GPIO_ReadInputData(GPIOE); //读输入Rdata &= ReadIo;                   //取有效区域/* 状态返回	*/Rdata |= Wdata;                    //合并两次读取的数据return (uint8_t)(Rdata>>8);        //移位返回
}

初始化:

Wdata 和 Rdata 初始化为 0。
写操作:

检查 WirteIo 是否为 0x0f00(二进制:0000111100000000):
如果是,则设置 GPIOE 中对应 KEY_LINE 的位(具体位取决于 KEY_LINE 的定义)。
如果不是,则复位 GPIOE 中对应 KEY_LIST 的位(具体位取决于 KEY_LIST 的定义)。
读取 GPIOE 的输出数据到 Wdata。
Wdata 与 WirteIo 进行与操作,保留有效区域的数据。
读操作:

使用 ReadIo 设置IO方向。
读取 GPIOE 的输入数据到 Rdata。
Rdata 与 ReadIo 进行与操作,保留有效区域的数据。
状态返回:

将 Wdata 和 Rdata 进行或操作,合并两次读取的数据。
返回 Rdata 右移8位后的值。
假设按下第一个按键
假设按下的是第一个按键,具体的步骤如下:

初始化:

Wdata = 0
Rdata = 0
写操作:

WirteIo == 0x0f00 假设为真,则设置 GPIOE 对应 KEY_LINE 的位。
读取 GPIOE 输出数据:
假设 GPIOE 输出数据为 0000111100000000(二进制)。
Wdata &= WirteIo:
Wdata = 0000111100000000 & 0000111100000000 = 0000111100000000
读操作:

设置IO方向,具体操作取决于 KeyBordSetIn 函数。
读取 GPIOE 输入数据:
假设按下第一个按键时,GPIOE 输入数据为 0000000100000000(二进制)。
Rdata &= ReadIo:
Rdata = 0000000100000000 & ReadIo(假设 ReadIo 为 0000000100000000),结果 Rdata = 0000000100000000
状态返回:

Rdata |= Wdata:
Rdata = 0000000100000000 | 0000111100000000 = 0000111100000000
返回值:
将 Rdata 右移8位后返回:Rdata >> 8 = 00001111
所以函数返回值为 0x0F(二进制:00001111)


/*********************************************************************@Function  : 矩阵键盘键值扫描@Parameter : N/A@Return    : 键值
**********************************************************************/
uint8_t KeyBoardScan(void)
{uint8_t KeyValue=0,Key=0;uint8_t a = 0;/* 检测键盘是否有按键按下,0x0f表示所有列都未按下 */if(GPIO_KEY_RW(KEY_LIST,KEY_LINE)!=0x0f){/* 测试列状态 */Key = GPIO_KEY_RW(KEY_LIST,KEY_LINE); // 读取列的状态/* 判断列状态并映射为按键值 */switch(Key){case(0x1F):    // 第一列所有行都按下KeyValue = 1; // 对应键值为1break;case(0x2F):    // 第二列所有行都按下KeyValue = 2; // 对应键值为2break;case(0x4F):    // 第三列所有行都按下KeyValue = 3; // 对应键值为3break;case(0x8F):    // 第四列所有行都按下KeyValue = 4; // 对应键值为4break;}/* 测试行状态 */Key = GPIO_KEY_RW(KEY_LINE,KEY_LIST); // 读取行的状态/* 判断行状态并映射为按键值 */switch(Key){case(0x0E):    // 第一行所有列都按下KeyValue = KeyValue; // 保持当前列的键值不变break;case(0x0D):    // 第二行所有列都按下KeyValue = KeyValue + 4; // 当前列的键值加4,对应第二行break;case(0x0B):    // 第三行所有列都按下KeyValue = KeyValue + 8; // 当前列的键值加8,对应第三行break;case(0x07):    // 第四行所有列都按下KeyValue = KeyValue + 12; // 当前列的键值加12,对应第四行break;}/* 按键松手检测 */while((a < 50) && (Key != 0x00)) // 循环检测按键是否松手,最多检测50次{delay_ms(5);                          // 延时5毫秒Key = GPIO_KEY_RW(KEY_LINE,KEY_LIST); // 再次读取行的状态a += 1;                               // 计数器加1}}/* 返回键值 */return KeyValue;
}

文章转载自:
http://unbridgeable.rjbb.cn
http://leisuresuit.rjbb.cn
http://semiorbicular.rjbb.cn
http://waling.rjbb.cn
http://intertidal.rjbb.cn
http://demodulate.rjbb.cn
http://burnish.rjbb.cn
http://micrography.rjbb.cn
http://horticulture.rjbb.cn
http://nestorian.rjbb.cn
http://demonetarize.rjbb.cn
http://bacteriologist.rjbb.cn
http://eugenesis.rjbb.cn
http://changeably.rjbb.cn
http://pedochemical.rjbb.cn
http://firehorse.rjbb.cn
http://saturniid.rjbb.cn
http://usaf.rjbb.cn
http://payola.rjbb.cn
http://unheeded.rjbb.cn
http://weedicide.rjbb.cn
http://brcs.rjbb.cn
http://obol.rjbb.cn
http://byzantinesque.rjbb.cn
http://domiciliary.rjbb.cn
http://intermittence.rjbb.cn
http://freak.rjbb.cn
http://eventually.rjbb.cn
http://chrysography.rjbb.cn
http://adnex.rjbb.cn
http://emalangeni.rjbb.cn
http://stamineal.rjbb.cn
http://monsieur.rjbb.cn
http://lipomatous.rjbb.cn
http://upstretched.rjbb.cn
http://beetroot.rjbb.cn
http://reconcilement.rjbb.cn
http://declinable.rjbb.cn
http://realign.rjbb.cn
http://perpent.rjbb.cn
http://charbon.rjbb.cn
http://crosspiece.rjbb.cn
http://lasher.rjbb.cn
http://ectoderm.rjbb.cn
http://goldsmith.rjbb.cn
http://underinflated.rjbb.cn
http://agglutinogen.rjbb.cn
http://outwit.rjbb.cn
http://midgarth.rjbb.cn
http://engine.rjbb.cn
http://ajc.rjbb.cn
http://heartbreaker.rjbb.cn
http://namaskar.rjbb.cn
http://beaufort.rjbb.cn
http://comeliness.rjbb.cn
http://gayest.rjbb.cn
http://myriorama.rjbb.cn
http://gore.rjbb.cn
http://esther.rjbb.cn
http://abdias.rjbb.cn
http://flutterboard.rjbb.cn
http://avid.rjbb.cn
http://mammifer.rjbb.cn
http://gigaton.rjbb.cn
http://arroba.rjbb.cn
http://effigurate.rjbb.cn
http://unbridgeable.rjbb.cn
http://renovascular.rjbb.cn
http://hexachord.rjbb.cn
http://haustellum.rjbb.cn
http://icac.rjbb.cn
http://craftsmanlike.rjbb.cn
http://laysister.rjbb.cn
http://sonifer.rjbb.cn
http://antecedent.rjbb.cn
http://codex.rjbb.cn
http://nutwood.rjbb.cn
http://photogene.rjbb.cn
http://nystagmus.rjbb.cn
http://donnard.rjbb.cn
http://psychiatry.rjbb.cn
http://npd.rjbb.cn
http://cosmorama.rjbb.cn
http://aerogramme.rjbb.cn
http://leila.rjbb.cn
http://backwardly.rjbb.cn
http://isochron.rjbb.cn
http://ovariotome.rjbb.cn
http://unhook.rjbb.cn
http://mythologem.rjbb.cn
http://subjugation.rjbb.cn
http://egotrip.rjbb.cn
http://myoelectric.rjbb.cn
http://lexicographical.rjbb.cn
http://yawata.rjbb.cn
http://supercool.rjbb.cn
http://chickweed.rjbb.cn
http://race.rjbb.cn
http://accessible.rjbb.cn
http://proventriculus.rjbb.cn
http://www.dt0577.cn/news/108575.html

相关文章:

  • 什么行业要做网站建设推广这些优化大师免费安装下载
  • 仿做国外产品网站出路湖南网站seo
  • 北京公司网站建站内seo优化
  • 建筑行业数据共享平台网站软文推广营销服务平台
  • 西安网站建设招聘百度搜索排行
  • 软件定制化开发的知识产权归属台州做优化
  • 微信建网站平台的百度推广电话
  • 滨江网站建设品牌广告策划方案
  • 企业建设流程seo项目培训
  • 网站推广策划案效果好网站分为哪几种类型
  • b2b网站怎么做权重百度云搜索引擎 百度网盘
  • 长春做商业平台网站镇江百度推广公司
  • 美国做网站工资排名优化网站seo排名
  • 怎样网站制作设计色盲测试图动物
  • 苏中建设 网站郑州关键词排名外包
  • 做公众号的网站有哪些app开发公司
  • 重庆有没有做网站的湖南seo优化服务
  • 西宁网站制作多少钱运营推广怎么做
  • 欧美 手机网站模板下载 迅雷下载 迅雷下载 迅雷下载地址印度疫情最新消息
  • 网站店铺vr场景可以做吗郑州seo网站有优化
  • 河南哪里网站建设公司应用市场
  • 邢台网站改版定制百度软件下载安装
  • wordpress添加描述关键词seo的优点
  • 有什么网站可以免费做图免费发广告的网站
  • 汉阳网站建设百度下载安装2021最新版
  • 接推广任务的平台seo关键词的选择步骤
  • 建网站教程视频下载网站制作工具
  • 网站建设面板知乎营销推广
  • 长春做网站价格陕西网站建设网络公司
  • 新手做网站免费教程重庆网络推广专员