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

网页在线播放代码seo交流

网页在线播放代码,seo交流,临沧市住房和城乡建设局门户网站,dreamweaver教程做网站4X4矩阵键盘实物 4x4 矩阵键盘是一种常见的输入设备,通常由 16 个按键组成,排列成一个 4 行 4 列的矩阵。每个按键在按下时会连接某一行和某一列,通过扫描矩阵中的行和列,可以确定用户按下的是哪一个按键。 4X4矩阵键盘原理图 原理…

4X4矩阵键盘实物

在这里插入图片描述

4x4 矩阵键盘是一种常见的输入设备,通常由 16 个按键组成,排列成一个 4 行 4
列的矩阵。每个按键在按下时会连接某一行和某一列,通过扫描矩阵中的行和列,可以确定用户按下的是哪一个按键。

4X4矩阵键盘原理图

在这里插入图片描述

原理介绍

在使用这个模块的时候,最简单的方法是需要8个引脚,其中4个分别代表4行,另外4个代表4列。
代表行的引脚需要设置成推挽输出模式,代表列的引脚需要设置成上拉输入模式.。
当然你反着去设置也是完全没有问题的,即:
代表行的引脚需要设置成上拉输入模式,代表列的引脚需要设置成推挽输出模式.。
只不过这样的话,程序要稍微更改或者你直接把行作为列去使用。

我使用的是行设置成推挽输出模式,列设置成上拉输入模式
然后,我们让行的4个引脚其中一个输出低电平,其他输出高电平,此时在循环中去不断循环等待,当我们按下一个在当前低电平引脚对应行的按键的时候,被设置为上拉输入模式的列引脚就会因为当前行是低电压而被拉低,这样我们就可以判断这个行上面哪个列引脚被拉下了。
接下来就是一个循环,让4个行引脚分别1个输出低电平,3个输出高电平。芯片的循环速度很快,所以你完全不用怀疑这种做法的可行性。

具体步骤
  1. 设置8个引脚(4个上拉输入模式,4个推挽输出模式)
    在这里插入图片描述
  2. 书写扫描逻辑(为了照顾标准库和HAL库的同学,我尽量减少HAL库函数的使用,因为笔者用的HAL库)
int main(void)
{
uint8_t regval = 0x07; while (1){/*4X4矩阵键盘程序硬件连线:PA0 - R1 控制 S13~16PA1 - R2 控制 S9~12PA2 - R3 控制 S5~8PA3 - R4 控制 S0~4PA4 - C4 控制 S0~13PA5 - C3 控制 S2~14PA6 - C2 控制 S3~15PA7 - C1 控制 S4~16*//*置位 0x07->0x0B->0x0D->0x0E->0x07 循环*/GPIOA->BSRR |= regval;/**/uint8_t temp = GPIOA->IDR & 0xF0;/*消抖*/HAL_Delay(10);/*当有按键按下时*/if(temp != 0xF0){temp = GPIOA->IDR & (0xF0 + regval);switch(temp & 0xF0){case 0xE0:printf("%d\r\n",(int)(1 + (3 - log2(~temp&0x0F))*4));break;case 0xD0:printf("%d\r\n",(int)(2 + (3 - log2(~temp&0x0F))*4));break;case 0xB0:printf("%d\r\n",(int)(3 + (3 - log2(~temp&0x0F))*4));break;case 0x70:printf("%d\r\n",(int)(4 + (3 - log2(~temp&0x0F))*4));break;}	}GPIOA->BSRR |= regval << 16;/*置零寄存器数据位*//*0x07 0x0B 0x0D 0x0E 循环*/regval = (~((~regval& 0x0F) >> 1))& 0x0F;/*如果regval在0x0E之后继续进上一行的代码运算,就会变成0X0F
即0000 1110 ~ -> 1111 0001 & 0x0F-> 0001 >> 1 -> 0000 0000 ~-> 1111 1111 &0x0F -> 0000 1111 所以,我们让他置为0x07初始值来完成这个循环*/if((regval & 0x0F) == 0x0F)regval = 0x07;}
}

这个逻辑我直接写在主函数里面,当然你完全可以封装他为一个函数,我这样操作也只是为了方便测试和使用。

附录

测试结果

结果

其他代码相关程序

printf通过串口输出程序:

#if 1
//标准库需要的支持函数
struct __FILE
{int handle;
};
FILE __stdout;//重定向fputc函数
int fputc(int ch, FILE *f)
{HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, HAL_MAX_DELAY);return ch;
}
#endif
http://www.hkea.cn/news/29298/

相关文章:

  • 想给大学做网站百度网盘搜索神器
  • jsp网站开发论文官方app下载安装
  • 关于机场建设的网站今日疫情最新情况
  • 网站域名注册服务商google浏览器官方
  • 通过网站开发工具怎么改自动跳网站百度指数有哪些功能
  • 可以发锚文本的网站百度搜索官方网站
  • 东莞网站建设企慕简述如何优化网站的方法
  • 可以做网站的公司seo外包
  • 自己怎么做网站视频赚钱5g网络优化培训
  • 数据库修改网站管理员密码seo网站有优化培训吗
  • 福田做商城网站建设找哪家公司好抖音怎么运营和引流
  • 厘米售卡站怎么做网站禁止搜索引擎收录的方法
  • 网站首页滚动图片怎么做谷歌搜索关键词排名
  • 嵩县网站开发友情链接获取的途径有哪些
  • 国家企业信息公示网(广东)海南快速seo排名优化
  • 高端网站设计 上海徐州seo排名公司
  • 泰安网站建设公司排名石家庄最新消息
  • 域名只做邮箱没网站要备案吗常见的网络推广方式包括
  • 昆山建设局网站360搜索首页
  • 正常做网站多少钱无锡网站制作无锡做网站
  • php做网站csdn网站seo公司哪家好
  • 今日头条建站工具何鹏seo
  • wordpress 培训模板优化落实疫情防控新十条
  • 关于做外汇现货的网站太原整站优化排名外包
  • 星悦做任务网站是新网站百度收录
  • 十大营销网站seo关键词查询工具
  • 怎么查询网站所有关键词靠谱的广告联盟
  • 超酷的网站设计磁力搜索引擎
  • 网站建设写程序用什么软件成都疫情最新消息
  • 做网站需要什么资金2022今天刚刚发生地震了