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

站长网站素材网青岛seo服务

站长网站素材网,青岛seo服务,长春火车站电话,相亲网站认识的可以做朋友1.功能说明 本设计主要是利用STM32驱动矩阵薄膜键盘,当按下按键后OLED显示屏上会对应显示当前的按键键值,可以将此设计扩展做成电子秤、超市收银机、计算器等需要多个按键操作的单片机应用。 2.硬件接线 模块管脚STM32单片机管脚矩阵键盘行1PA0矩阵键盘…

1.功能说明

        本设计主要是利用STM32驱动矩阵薄膜键盘,当按下按键后OLED显示屏上会对应显示当前的按键键值,可以将此设计扩展做成电子秤、超市收银机、计算器等需要多个按键操作的单片机应用。

2.硬件接线

模块管脚STM32单片机管脚
矩阵键盘行1PA0
矩阵键盘行2PA1
矩阵键盘行3PA2
矩阵键盘行4PA3
矩阵键盘列1PA4
矩阵键盘列2PA5
矩阵键盘列3PA6
矩阵键盘列4PA7
0.96寸OLED显示屏SCLPB6
0.96寸OLED显示屏SSDAPB7

3.软件代码

 

// 定义字符型的4x4矩阵薄膜键盘映射表
char key_map[4][4] = {{'1', '2', '3', 'A'},{'4', '5', '6', 'B'},{'7', '8', '9', 'C'},{'*', '0', '#', 'D'}
};// IO端口结构体定义,用于描述GPIO端口和针脚
struct IO_PORT
{                                            GPIO_TypeDef *GPIO_x; // GPIO端口地址                 unsigned short GPIO_pin; // GPIO端口的针脚
};// 定义行输出的GPIO端口和针脚数组
static struct IO_PORT KEY_OUT[4] = {{BUTTON_ROW1_GPIO_PORT, BUTTON_ROW1_GPIO_PIN},{BUTTON_ROW2_GPIO_PORT, BUTTON_ROW2_GPIO_PIN},{BUTTON_ROW3_GPIO_PORT, BUTTON_ROW3_GPIO_PIN}, {BUTTON_ROW4_GPIO_PORT, BUTTON_ROW4_GPIO_PIN}
};// 定义列输入的GPIO端口和针脚数组
static struct IO_PORT KEY_IN[4] = {{BUTTON_COL1_GPIO_PORT, BUTTON_COL1_GPIO_PIN}, {BUTTON_COL2_GPIO_PORT, BUTTON_COL2_GPIO_PIN},{BUTTON_COL3_GPIO_PORT, BUTTON_COL3_GPIO_PIN}, {BUTTON_COL4_GPIO_PORT, BUTTON_COL4_GPIO_PIN}
};// 定义键盘扫描状态数组
unsigned char key[4][4];// 初始化4x4键盘的函数
void Button4_4_Init(void)
{GPIO_InitTypeDef GPIO_InitStructure;unsigned char i;RCC_APB2PeriphClockCmd(BUTTON_GPIO_CLK, ENABLE); // 使能GPIO时钟// 初始化行输出端口for(i=0;i<4;i++){GPIO_InitStructure.GPIO_Pin = KEY_OUT[i].GPIO_pin;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 设置为推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(KEY_OUT[i].GPIO_x, &GPIO_InitStructure);}// 初始化列输入端口for(i=0;i<4;i++){GPIO_InitStructure.GPIO_Pin = KEY_IN[i].GPIO_pin;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; // 设置为输入上拉GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(KEY_IN[i].GPIO_x, &GPIO_InitStructure);}// 设置行输出高电平,准备扫描for(i = 0; i < 4; i++){GPIO_SetBits(KEY_OUT[i].GPIO_x, KEY_OUT[i].GPIO_pin);}
}// 扫描4x4键盘的函数
char Button4_4_Scan(void)
{unsigned char i, j;for(i = 0; i < 4; i++){delay_ms(5); // 延时以稳定信号GPIO_ResetBits(KEY_OUT[i].GPIO_x, KEY_OUT[i].GPIO_pin); // 将当前行置低,检测按键for(j = 0; j < 4; j++){delay_ms(5); // 再次延时if(GPIO_ReadInputDataBit(KEY_IN[j].GPIO_x, KEY_IN[j].GPIO_pin) == 0) // 读取列状态,如果为低,则按键被按下{key[i][j] = 1; // 记录按键状态GPIO_SetBits(KEY_OUT[i].GPIO_x, KEY_OUT[i].GPIO_pin); // 恢复当前行高电平return key_map[i][j]; // 返回按键对应的字符}else{key[i][j] = 0;}}GPIO_SetBits(KEY_OUT[i].GPIO_x, KEY_OUT[i].GPIO_pin); // 恢复当前行高电平}return 0; // 如果没有按键被按下,返回0或可以选择返回一个特定的字符表示无输入
}

4.获取源码方式

https://download.csdn.net/download/weixin_41011452/90338338

http://www.tj-hxxt.cn/news/32626.html

相关文章:

  • 帮助传销做网站会不会判刑网站设计费用明细
  • 南京市建设执业资格中心网站网页制作与网站建设实战教程
  • 广州网站设计公司招聘互联网登录的网站名
  • 湖南工商网址免费seo培训
  • 网络营销策划书ppt郑州seo优化顾问阿亮
  • 哪些网站可以用来做百科参考公司网站如何制作设计
  • 淮南北京网站建设seo课程简介
  • 网站别人做的上面有方正字体东莞网站建设优化诊断
  • 跨境电商自建站平台淘宝关键词优化技巧教程
  • 钓鱼网站如何做百度爱采购竞价推广
  • 怎么给网站做php后台关键词快速优化排名软件
  • 网站怎么换空间抖音关键词优化排名靠前
  • 一个做问卷调查的网站网站搜索引擎优化方案
  • 给微商做批发的网站360推广登录入口官网
  • 跨越网站建设科技有限公司编程培训机构加盟哪家好
  • 福州网站改版关键词优化是怎么做的
  • wordpress前端用户插件北京seo
  • 优化seo系统seo营销推广平台
  • 如何建立国际网站宁波网络推广优化方案
  • 网站开发的成本发免费广告电话号码
  • 武汉做网站小程序哪家公司好百度关键词挖掘
  • 天津建设网站首页国内做网站比较好的公司
  • 国内做服装的网站有哪些方面今日新闻头条10条
  • 惠济区城乡建设局网站百度云登陆首页
  • 如何做网站的订阅华为seo诊断及优化分析
  • 产品查询展示型网站如何宣传推广产品
  • Javaweb就是做网站吗steam交易链接怎么改
  • 企业营销网站建设公司哪家好百度快速收录提交工具
  • 搜狗站群系统产品推广运营方案
  • 广州商城网站建设网站seo视频狼雨seo教程