2022年2022年矩阵键盘 .pdf





《2022年2022年矩阵键盘 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年矩阵键盘 .pdf(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 4 4 矩阵键盘1原理说明一般的 4*4 矩阵键盘(如图1)一般要 8 个 I/O 口(如图 1) ,对于按键较多的硬件系统来说是很浪费的I/O 口, 本方案仅采用4 个 I/O 和 4 个普通二极管就可以轻松实现4 4 矩阵键盘, 方案原理与普通4*4 矩阵键盘类似, 下面先分析普通矩阵键盘原理,再进一步改进为本方案。原理如下B4 口为低电平, A1 A4,B1 B3 为高电平,单片机不停的扫描,假若有键按下如 A1 与 B4 交叉处按下则对应的A1 被拉低为低电平,可以定义此键号为1,同理以此类推 B3 口为低电平,其余口为高电平,交叉处按键按下可定义其按键号,将按键号存储在寄存器中,
2、可用查表方法并通过数码管显示按键号。对于下图(图2)用 4 个 I/O 和 4 个普通二极管初始化PA0.0 PA0.3 均为高电平,在这里二极管作用是当IO 口为低电平时可以导通,高电平时截止。程序流程图如下图 1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - - - - - - 2 图 2 2 程序介绍如下void RCC_Configuration(void); RCC_APB2PeriphClockCmd(RCC_APB2Periph_G
3、PIOA|RCC_APB2Periph_AFIO,ENABLE); void GPIO_Configuration(void) GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0| GPIO_Pin_1| GPIO_Pin_2| GPIO_Pin_3; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_PP _ OUT; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GP
4、IO_InitStructure); GPIOSetBits() GPIO_SetBits(GPIOA,GPIO_Pin_0); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - 3 GPIO_SetBits(GPIOA,GPIO_Pin_1); GPIO_SetBits(GPIOA,GPIO_Pin_2); GPIO_SetBits(GPIOA,GPIO_Pin_3); 单片机不停的扫描程序,(右侧四个键单独来写),由于扫描速度
5、是很快(微妙级)的,所以有足够的时间去显示每个按键的。当( GPIO_Pin_0=0 )时表明有键按下,我们定义为0 号键,当( GPIO_Pin_1=0 )时表明有键按下,我们定义为1 号键,当( GPIO_Pin2=0 ) 时表明有键按下,我们定义为2 号键,当( GPIO_Pin_3=0 )时表明有键按下,我们定义为3 号键,if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)=0) return 0; if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1)=0) return 1; if(GPIO_ReadInputDa
6、taBit(GPIOA, GPIO_Pin_2)=0) return 2; if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3)=0) return 3; 其余按键方法不同于右侧四个按键,每个I/O 口接一个二极管以保证当有高电平截止,低电平导通,即可得到每个键号。扫描程序分析如下:当( GPIO_Pin_0=0) 时:若(GPIOA, GPIO_Pin_1)=0) 则为 4 键按下,若(GPIOA, GPIO_Pin_2)=0) 则为 5 键按下,若(GPIOA, GPIO_Pin_3)=0) 则为 6 键按下,当 GPIO_Pin_1=0 时:若(GPIO
7、A, GPIO_Pin_0)=0) 则为 7 键按下,若(GPIOA, GPIO_Pin_2)=0) 则为 8 键按下,若(GPIOA, GPIO_Pin_3)=0) 则为 9 键按下,当 GPIO_Pin_2=0 时:若(GPIOA, GPIO_Pin_0)=0) 则为 A(10)键按下,若(GPIOA, GPIO_Pin_1)=0) 则为 B(11)键按下,若(GPIOA, GPIO_Pin_3)=0) 则为 C(12)键按下,当 GPIO_Pin_3=0 时:若(GPIOA, GPIO_Pin_0)=0) 则为 D(13)键按下,若(GPIOA, GPIO_Pin_1)=0) 则为 E(
8、14)键按下,若(GPIOA, GPIO_Pin_2)=0) 则为 F( 15)键按下,if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)=0) if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1)=0) return4;if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_2)=0) return5;if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3)=0) return6;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -
9、 - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - 4 if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1)=0) if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)=0) return7;if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_2)=0) return8;if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3)=0) return9; if(GPIO_ReadInputData
10、Bit(GPIOA, GPIO_Pin_2)=0) if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)=0) return10;if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1)=0) return11;if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3)=0) return12; if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3)=0) if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)=0) return13;if
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年矩阵键盘 2022 矩阵 键盘

限制150内