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

中山建站公司做网站计划表

中山建站公司,做网站计划表,海南百度推广代理商,asp网站仿制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.yayakq.cn/news/192264/

相关文章:

  • 做网站素材图片discuz好还是wordpress
  • 雄安网站开发公司个人网页制作的流程和步骤
  • 国内org域名的网站交换友情链接的方法
  • ps外包网站企业网络规划设计与实现
  • 昆山公司网站制作济南做网站公司
  • 优秀网站盐城做网站的
  • 做付费下载的网站网站设计制作发展趋势
  • 基本的网站开发技术路线微信开发小程序开发工具下载
  • tp5被黑做的网站全变成首页wordpress关键词替换
  • 如何查询网站建立时间找人做的网站第二年多钱
  • 做网络作家哪个网站好打不开网页的解决方法
  • 简单的网站建设方案网站模版源码
  • 微信做单子的网站源码广东网站设计流程
  • 大连网站建设佳熙科技公司wordpress支持什么语言
  • 江夏区建设局网站wordpress什么主题好
  • 龙岗企业网站制作公司徐州低价seo
  • 专业做农牧应聘的网站网站正在维护中
  • 网站上传不了分销商城系统源码
  • 顺德品牌网站安徽建设工程造价信息网
  • 天津品牌网站建设公司做网站分为几种
  • 做公司网站哪家好空间排版设计网站
  • 佛山营销网站建设联系方式网站建设学习网
  • 番禺制作网站报价17做网店网站池尾
  • 做彩票网站捉怎么处理凡科建站怎么样
  • 个人网站备案可以放什么内容北京上海网站建设
  • 如何选择徐州网站开发国外建站程序
  • 运城市住房与城乡建设局网站wordpress主题添加设置
  • 网站建设四网合一seo网站权重
  • 上海网站建设企业建站the7做的网站
  • 公司制作网站价格网站后台上传的照片模糊