一种行列矩阵键盘接口电路及行列矩阵键盘的扫描方法与流程

文档序号:12277813阅读:2051来源:国知局
一种行列矩阵键盘接口电路及行列矩阵键盘的扫描方法与流程

本发明涉及电路领域,具体涉及一种行列矩阵键盘接口电路及行列矩阵键盘的扫描方法。



背景技术:

目前,单片机按键电路设计主要有两类型,一种是独立式按键结构,即1个I/O口对应一个按键;另一种是矩阵式键盘结构,可参见图1,在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。

单片机I/O口资源是非常有限的,上述独立式按键结构是最浪费I/O口资源的,一个I/O口对应一个按键;一般矩阵式键盘结构比独立式按键结构节约了比较多I/O口资源,但是当有16个按键也需要用掉8个I/O口,并不是非常地节约I/O口资源。



技术实现要素:

本发明提供了一种行列矩阵键盘接口电路及行列矩阵键盘的扫描方法,能够克服现有技术的缺陷和不足。

本发明解决上述技术问题的技术方案如下:提供了一种行列矩阵键盘接口电路,包括单片机MCU和触摸芯片U1,所述单片机MCU的中断INT0与触摸芯片U1的引脚PENIRQN连接,所述单片机MCU与触摸芯片U1通过I2C/SPI通信总线连接,实现所述单片机MCU与触摸芯片U1之间的I2C/SPI通信,触摸芯片U1的引脚X+和引脚X-之间串联m个电阻作为行电阻,引脚Y+和引脚Y-之间串联n个电阻作为列电阻,在每相邻两个行电阻之间引出一条列线,在每相邻两个列电阻之间引出一条行线,在每一条行线和每一条列线的交叉点处设置一个按键,形成(m-1)*(n-1)个按键的矩阵键盘,其中,m和n均为大于等于3的正整数。

本发明的有益效果为:利用触摸芯片U1构造电阻网络,形成电压梯度,根据触摸屏原理,只需要单片机的3-4个I/O口即可实现任意行列数目的矩阵式键盘,减少了单片机I/O口的使用数量,给其它外设留下更多的I/O口资源。

在上述技术方案的基础上,本发明还可以作如下改进。

进一步的,所述m个行电阻的阻值相同,所述n个列电阻的阻值相同。

所述进一步的有益效果为:多个行电阻的阻值相同,且多个列电阻的阻值相同,使得形成的电压梯度为均衡电压梯度,对于后续的计算按键的位置更简单。

进一步的,所述触摸芯片U1中还包括ADC转换电路,所述ADC转换电路的输入端与触摸芯片U1的引脚X+和引脚Y+连接,所述ADC转换电路的输出端通过触摸芯片U1并经过I2C/SPI总线与所述单片机MCU连接。为了解决本发明的技术问题,还提供了一种行列矩阵键盘的扫描方法,包括:

S1,单片机MCU的中断INT0产生使能驱动信号,驱动触摸芯片U1工作;

S2,当按键按下时,在触摸芯片U1的引脚X+处施加驱动电压VDrive,引脚X-接地,形成电压梯度,在引脚Y+引出端测量输出电压Vxout

S3,在触摸芯片U1的引脚Y+处施加驱动电压VDrive,引脚Y-接地,形成电压梯度,在引脚X+引出端测量输出电压VYout

S4,触摸芯片U1将测量得到的Vxout和VYout通过I2C/SPI通信传输至单片机MCU;

S5,单片机MCU根据Vxout和VYout计算得到按键被按下的位置。

本发明的有益效果为:不再需要传统的行列扫描法,触摸屏芯片采用硬件扫描,当扫描检测到有按键按下后,会给单片机的中断INT0发送中断信号,单片机通过I2C/SPI通信口即可读取电压值,确定被按下按键的位置,极大地简化了单片机的按键扫描工作量,提高了按键扫描的实时性,在单片机外接矩阵键盘领域具有极大的应用价值。

进一步的,所述步骤S4具体包括:

触摸芯片U1中的ADC转换电路的输入端在一个时钟周期内采集接触点X+和Y+的电压值,经过12个周期后将采集到的电压值Vxout和VYout转换为12位的数字信号传输至单片机MCU。

附图说明

图1为传统的行列矩阵键盘电路设计图;

图2为本发明实施例1的行列矩阵键盘接口电路设计图;

图3为实施例1中触摸芯片U1内部电路图;

图4为实施例2的行列矩阵键盘的扫描方法流程图;

图5为实施例1中测量第一个按键按下时X方向的电压等效电路图;

图6为实施例1中测量第一个按键按下时Y方向的电压等效电路图。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

实施例1、一种行列矩阵键盘接口电路。下面参见图2和图3对本实施例提供的电路进行描述。

参见图2,本实施例提供的行列矩阵键盘接口电路包括单片机MCU和触摸芯片U1,所述单片机MCU的中断INT0与触摸芯片U1的引脚PENIRQN连接,所述单片机MCU与触摸芯片U1通过I2C/SPI总线连接,实现单片机MCU与触摸芯片U1之间的I2C/SPI通信,引脚VCC接3.3V电源,引脚GND接地。触摸芯片U1的引脚X+和引脚X-之间串联m个电阻作为行电阻,引脚Y+和引脚Y-之间串联n个电阻作为列电阻,在每相邻两个行电阻之间引出一条列线,在每相邻两个列电阻之间引出一条行线,在每一条行线和每一条列线的交叉点处设置一个按键,形成(m-1)*(n-1)个按键的矩阵键盘,其中,m和n均为大于等于3的正整数。

其中,在本实施例中,所述m个行电阻的阻值相同,所述n个列电阻的阻值相同,本实施例将所有的行电阻的阻值设计为相同,以及将所有的列电阻设计为相同,使得通过行电阻形成的电压梯度和通过列电阻形成的电压梯度为均衡电压梯度,对于后续的计算按键的位置更简单。当然,也可以将m个行电阻的阻值设计为不同,将n个列电阻的阻值也设计得不同,只是后续计算按键的位置稍微麻烦一点,两种情况下基本原理是一样的。

参见图3,所述触摸芯片U1内部还包括ADC转换电路,所述触摸芯片U1中还包括ADC转换电路,所述ADC转换电路的输入端与触摸芯片U1的引脚X+和引脚Y+连接,所述ADC转换电路的输出端通过触摸芯片U1并经过I2C/SPI总线与所述单片机MCU连接。

实施例2、一种行列矩阵键盘的扫描方法。下面结合图4-图6对本实施例提供的扫描方法进行描述。

参见图4,本实施例提供的行列矩阵键盘的扫描方法包括:

S1,单片机MCU的中断INT0产生使能驱动信号,驱动触摸芯片U1工作;

S2,当按键按下时,在触摸芯片U1的引脚X+处施加驱动电压VDrive,引脚X-接地,形成电压梯度,在引脚Y+引出端测量输出电压Vxout

S3,在触摸芯片U1的引脚Y+处施加驱动电压VDrive,引脚Y-接地,形成电压梯度,在引脚X+引出端测量输出电压VYout

S4,触摸芯片U1将测量得到的Vxout和VYout通过I2C/SPI通信传输至单片机MCU;

S5,单片机MCU根据Vxout和VYout计算得到按键被按下的位置。

下面通过一个具体的例子来说明如何确定矩阵键盘中按键按下的位置。

分别参见图2、图5和图6所示,对于4*4行列矩阵键盘为例,需要5个行电阻和5个列电阻,其中,5个行电阻分别为R11、R12、R13、R14和R15,5个列电阻分别为R21、R22、R23、R24和R25,设计的4*4行列矩阵键盘为的第一行按键为S11、S12、S13和S14,第二行按键为S21、S22、S23和S24,第三行按键为S31、S32、S33和S34,第四行按键为S41、S42、S43和S44。当第1行第1列的按键被按下时,X方向上的电压等效电路图如图5所示,在X+引脚处施加施加驱动电压VDrive,X-引脚接地,形成电压梯度,在Y+引出端测量得到第一个按键按下的电压VXout=4/5VDrive。图6为Y方向的电压等效电路图,在Y+引脚处施加施加驱动电压VDrive,Y-引脚接地,形成电压梯度,在X+引出端测量得到第一个按键按下的电压VYout=4/5VDrive

触摸芯片U1中的ADC转换电路的输入端在一个时钟周期内采集接触点X+和Y+的电压值,经过12个周期后将采集到的电压值Vxout和VYout转换为12位的数字信号传输至单片机MCU,单片机MCU根据Vxout和VYout反推得到按键按下的位置。

对上述总结一下,即当(m-1)行(n-1)列矩阵键盘中的第a行第b列按键被按下时,在X+引脚处施加施加驱动电压VDrive,X-引脚接地,形成电压梯度,在Y+引出端测量得到的电压值为VXout=(m-a)/mVDrive;在Y+引脚处施加施加驱动电压VDrive,Y-引脚接地,形成电压梯度,在X+引出端测量得到第一个按键按下的电压VYout=(n-b)/nVDrive。最后单片机MCU根据(Vxout,VYout)反推得到按键按下的位置。

本发明提供的一种行列矩阵键盘接口电路及行列矩阵键盘的扫描方法,利用触摸芯片构造电阻网络,形成电压梯度,根据触摸屏原理,实现只需要单片机的3-4个I/O口就能实现任意行列数目的矩阵式键盘,相比传统的4*4行列矩阵式键盘要用到单片机的8个I/O口,4*5行列矩阵式键盘将用到9个I/O口,本发明的矩阵键盘接口电路设计极大减少了单片机I/O口使用数量,为其他外设留下更多I/O资源;并且不再需要传统的行列扫描法,触摸屏芯片采用硬件扫描,当扫描检测到有按键按下后,会给单片机发送中断信号,单片机通过I2C/SPI通信口即可读取电压值,确定被按下按键的位置,极大地简化了单片机的按键扫描工作量,提高了按键扫描的实时性,在单片机外接矩阵键盘领域有极大应用价值。

在本说明书的描述中,参考术语“实施例1”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体方法、装置或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、方法、装置或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1