A software can detect multiple arbitrary combination of the scan detection circuit and method, in the scanning process, take on the recursive way to detect packet scanning; if one half of the corresponding button on the scan button is not pressed, the half of the direct return; therefore, the way to better adapt to the the keys are mostly in practical applications up in most of the time, so as to improve the work efficiency of MCU. In the hardware, adopts diode or logic circuit in all port matrix keys corresponding to the logic output port as external interrupt signal source to the MCU interrupt pin, combined with software in data processing link, can be realized without any key pressed the case, MCU can handle other tasks, until the new external response therefore, the interrupt signal; processing mode will greatly enhance the work efficiency of MCU.
【技术实现步骤摘要】
一种可检测多个任意组合按键的扫描检测电路及方法
本专利技术涉及组合按键检测,尤其是一种可检测多个任意组合按键的扫描检测电路及方法。
技术介绍
键盘是很多电子产品的必须的输入设备。通常,大规模键盘有三种设计方法,第一种是采用专用键盘编码芯片,按键按照行和列输入,编码后的数据以USB接口输出。此方法需要专用键盘编码芯片并设计USB接口,增加了设计复杂性。第二种是将按键分别接入CPLD的IO脚,利用CPLD的IO引脚多的优势分别对每一个按键状态进行判断并将结果输出到处理单元,此方法需要增加CPLD芯片,增加了硬件成本。第三种是采用MCU设计的通用矩阵键盘,让按键接入到矩阵相应的行和列,此方法具有成本低廉、占用硬件资源少等优点。采用MCU设计的矩阵键盘能实现单个按键和简单组合按键的功能,但难以实现一些复杂组合按键的功能,因此极大地限制了采用MCU设计的矩阵键盘在需要组合逻辑按键场合的应用。针对现有技术中在矩阵键盘中难以实现复杂组合按键的功能,目前尚未提出有效的解决方案。
技术实现思路
本专利技术所要解决的技术问题是提供一种可检测多个任意组合按键的扫描检测电路及方法,电路结构简单,可实现规模较大的矩阵按键的稳定可靠检测,可实现任意数量、任意按键的组合功能,解决键位冲突问题。为解决上述技术问题,本专利技术的技术方案是:一种可检测多个任意组合按键的扫描检测电路,包括:MCU,所述MCU一共设有M+N+1个IO引脚,其中一个IO引脚带外部中断功能;矩阵按键电路,所述矩阵按键电路包括M条横向支路和N条纵向支路。横向支路与纵向支路交叉处形成一个键位,M条横向支路与N条纵向支路相交 ...
【技术保护点】
一种可检测多个任意组合按键的扫描检测电路,其特征在于,包括:MCU,所述MCU一共设有M+N+1个IO引脚,其中一个IO引脚带外部中断功能;矩阵按键电路,所述矩阵按键电路包括M条横向支路和N条纵向支路,横向支路与纵向支路交叉处形成一个键位,M条横向支路与N条纵向支路相交形成M×N个矩阵分布的键位;每个键位对应一个二极管、一个电容和一个接触开关,二极管的阳极与横向支路连接,二极管的阴极通过陶瓷电容与纵向支路连接,接触开关与电容并联;每个按键代表唯一一个键码;在横向支路的第一端形成M个横向IO端口,在纵向支路的第一端形成N个纵向IO端口,所述横向IO端口和纵向IO端口均与MCU的IO引脚连接;纵向支路的第二端通过上拉电阻后与电源VCC连接,当没有任何按键按下时,所有横向IO端口被电源VCC上拉到高电平;横向支路的第二端通过保护电阻后与电源VCC连接,保护电阻起到电平传递以及按键按下时防止对应的横向IO端口和纵向IO端口短路;或逻辑电路,包括M个二极管、电源VCC和电阻R113,每个二极管对应一个横向IO端口,该二极管、电源VCC和电阻R113组成所有的横向IO端口,电源VCC通过电阻R11 ...
【技术特征摘要】
1.一种可检测多个任意组合按键的扫描检测电路,其特征在于,包括:MCU,所述MCU一共设有M+N+1个IO引脚,其中一个IO引脚带外部中断功能;矩阵按键电路,所述矩阵按键电路包括M条横向支路和N条纵向支路,横向支路与纵向支路交叉处形成一个键位,M条横向支路与N条纵向支路相交形成M×N个矩阵分布的键位;每个键位对应一个二极管、一个电容和一个接触开关,二极管的阳极与横向支路连接,二极管的阴极通过陶瓷电容与纵向支路连接,接触开关与电容并联;每个按键代表唯一一个键码;在横向支路的第一端形成M个横向IO端口,在纵向支路的第一端形成N个纵向IO端口,所述横向IO端口和纵向IO端口均与MCU的IO引脚连接;纵向支路的第二端通过上拉电阻后与电源VCC连接,当没有任何按键按下时,所有横向IO端口被电源VCC上拉到高电平;横向支路的第二端通过保护电阻后与电源VCC连接,保护电阻起到电平传递以及按键按下时防止对应的横向IO端口和纵向IO端口短路;或逻辑电路,包括M个二极管、电源VCC和电阻R113,每个二极管对应一个横向IO端口,该二极管、电源VCC和电阻R113组成所有的横向IO端口,电源VCC通过电阻R113与二极管阳极连接,电源VCC通过电阻R113输出至端口INT,端口INT与MCU外部中断功能的IO引脚连接。2.根据权利要求1所述的可检测多个任意组合按键的扫描检测电路,其特征在于:所述上拉电阻的阻值为10KΩ。3.根据权利要求1所述的可检测多个任意组合按键的扫描检测电路,其特征在于:所述保护电阻的阻值为100Ω。4.一种如权利要求1可检测多个任意组合按键的扫描检测电路的方法,其特征在于,包括以下步骤:(1)MCU上电后,马上初始化所有的IO口状态,(2)如果MCU响应外部中断,则进入按键的扫描检测过程;所述扫描检测过程包括两个环节:(2.1)扫描检测环节:对所有矩阵按键的检测,需要经过一轮又一轮的重复扫描过程;(2.2)数据分析处理环节,数据分析处理环节需要以下几个步骤:①在当前扫描结束后,所有的按键状态数据存放到Buf内存缓冲区中;将所有按下的按键全部找出来,将这类按键键值,逐个地与空键集合进行匹配,如果匹配发现有按下的按键为空键,则退出当前一轮扫描,等待下一轮,同时,MCU向上一层应用函数返回报错数值;②将当前一轮与前一轮、前二轮的按键扫描结果进行对比;如果连续3轮的扫描结果一致,则将当前一轮的Buf中的数据与前一个保存前一次也是满足连续3轮检测结果一致的BufPrev缓冲区数据进行对比,如果不一致,则结束当前一轮扫描,等待下一轮;③如果Buf与BufPrev对比的结果是一致的,说明没有任何按键按下或者弹起,直接进入到以下第⑤个步骤;反之,如果不一致,则对比并且找到Buf与BufPrev中每一个不同比特的数据;通过该不同比特的数据所处的位置,可定位唯一1个有发生变化的按键及其键码;而通过比特的变化,得知该按键是弹起还是按下;④在③的基础上,逐个初步判断某个已经按下的按键是否为刚按下,如果初步确认按键为弹起,则将对应按键的释放时间设置为0;反之,如果初步确认按键为按下,将初步确认为按下的按键对应的数据添加到Buf2中;⑤利用内部定时器定时中断的功能,逐个更新Buf2中的所有按键的按下时间和释放时间;...
【专利技术属性】
技术研发人员:何伟峰,何欢潮,罗立辉,舒兆风,罗超良,
申请(专利权)人:广州飞达音响股份有限公司,广州星光影音文化科技有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。