专利名称:一种按键识别电路、按键识别方法及机顶盒的制作方法
技术领域:
本发明属于单片机控制领域,尤其涉及一种按键识别电路、按键识别方法及机顶盒。
背景技术:
按键识别技术广泛用于机顶盒面板按键的识别功能,当单片机检测到机顶盒面板上有按键被按下,就会发出信号,控制机顶盒执行相应的操作。现有的按键识别技术主要是利用IO 口对行列矩阵式进行扫描,利用每一行与每一列只有一个交点而确定哪个按键被按下。当有六个按键需要识别时,需要5个IO端口 ;当有九个按键需要识别时,需要六个IO 端口 ;这样IO 口相对使用过多,由于目前IO 口多的单片机价格相对较贵;且前控板上PCB 板的空间有限,因此,需要优化现有的按键识别方法。
发明内容
本发明实施例的目的在于提供一种按键识别电路,旨在解决现有技术中IO 口使用过多导致成本高的问题。本发明实施例是这样实现的,一种按键识别电路包括N个端口,每个端口对应一行,N个端口所在的行线与N个与其垂直的列线形成了 N*N个交点,所述N为大于等于3的自然数;至少N个二极管,所述每一列的交点处至少放置一个所述的二极管,二极管的阴极接所在行线,阳极接所在列线;至少N个按键,至多N* (N-I)个按键,每一个没有放置二极管的空闲交点处至多放置一个按键,所述按键的一端接所述按键所在的行线,所述按键的另一端接所述按键所在的列线,所述按键的控制端提供给用户选择控制。更进一步地,当N为3时,所述按键识别电路具体包括三个端口、三个二极管和三个按键;第一按键的一端和第一二极管的阴极连接至第一端口对应的行线;第二按键的一端和第二二极管的阴极连接至第二端口对应的行线;第三按键的一端和所述第三二极管的阴极连接至第三端口对应的行线;第一二极管的阳极、所述第二按键的另一端和所述第三二极管的阳极分别连接至所在列线;第一按键的另一端、第二二极管的阳极和第三按键的另一端分别连接至所在列线。更进一步地,当N为3时,所述按键识别电路具体包括三个端口、三个二极管和四个按键;第一按键的一端、第二按键的一端和第一二极管的阴极分别连接至第一端口对应的行线;第三按键的一端、第四按键的一端和第二二极管的阴极分别连接至第二端口对应的行线;第一二极管的阳极与第三按键的另一端分别连接至所在列线;第一按键的另一端与第二二极管的阳极分别连接至所在列线;第二按键的另一端、第四按键的另一端与第三二极管的阳极分别连接至所在列线;第三二极管的阴极连接至第三端口对应的行线。更进一步地,当N为3时,所述按键识别电路具体包括三个端口、三个二极管和六个按键;第一按键的一端、第二按键的一端和第一二极管的阴极分别连接至第一端口对应的行线;第三按键的一端、第四按键的一端和第二二极管的阴极分别连接至第二端口对应的行线;第五按键的一端、第六按键的一端和第三二极管的阴极分别连接至第三端口对应的行线;所述第一二极管的阳极、所述第三按键的另一端和所述第五按键的另一端分别连接至所在列线;所述第二二极管的阳极、所述第一按键的另一端和所述第六按键的另一端分别连接至所在列线;所述第三二极管的阳极、所述第二按键的另一端和所述第四按键的另一端分别连接至所在列线。更进一步地,当N为4时,所述按键识别电路具体还包括第四端口、第七按键、第八按键、第九按键和第四二极管;所述第七按键的一端连接至所述第一端口对应的行线,所述第八按键的一端连接至所述第二端口对应的行线,所述第九按键的一端连接至所述第三端口对应的行线,所述第四二极管的阴极连接至第四端口对应的行线;所述第四二极管的阳极与所述第七按键的另一端、所述第八按键的另一端和所述第九按键的另一端分别连接至所在列线。本发明实施例的目的还在于提供一种采用上述的按键识别电路的按键识别方法, 包括下述步骤设置参考端的电压为低电平,所述N个端口中的任意一个为所述参考端,其它端口为测试端;检测测试端的电压,判断是位于N*N个交点处的哪个按键被按下;当测试端的电压为低电平时,所述一端连接在所述测试端、另一端连接在所述参考端的按键被按下。更进一步地,当所述按键识别电路包括三个端口、三个二极管和六个按键时,所述的按键识别方法具体包括下述步骤设置第一端口的电压为低电平;当检测到第二端口的电压为低电平时,则得知第三按键被按下;当检测到第三端口的电压为低电平时,则得知第五按键被按下;设置第二端口的电压为低电平;当检测到第一端口的电压为低电平时,则得知第一按键被按下;当检测到第三端口的电压为低电平时,则得知第六按键被按下;设置第三端口的电压为低电平;当检测到第一端口的电压为低电平时,则得知第二按键被按下;当检测到第三端口的电压为低电平时,则得知第四按键被按下。更进一步地,当所述按键识别电路还包括第四端口、第七按键、第八按键、第九按键和第四二极管时,所述的按键识别方法进一步包括步骤设置第四端口的电压为低电平;当检测到第一端口的电压为低电平时,则得知第七按键被按下;当检测到第二端口的电压为低电平时,则得知第八按键被按下;当检测到第三端口的电压为低电平时,则得知第九按键被按下。本发明的目的还在于提供一种机顶盒,包括上述的按键识别电路。本发明提供的按键识别电路采用二极管将按键进行隔离,采用更少的端口识别到更多的按键,进而可以选用资源更少的单片机,降低了单片机的成本,同时减少了相应的 PCB板的大小,节约了整机的成本。
图1是本发明实施例提供的可以识别三个按键的按键识别电路的电路图
图2是本发明实施例提供的可以识别四个按键的按键识别电路的电路图
图3是本发明实施例提供的可以识别六个按键的按键识别电路的电路图
图4是本发明实施例提供的可以识别九个按键的按键识别电路的电路图
图5是本发明实施例提供的端口电路的电路图6是本发明实施例提供的可以识别六个按键的按键识别方法的流程图:
图7是本发明实施例提供的可以识别九个按键的按键识别方法的流程图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明实施例提供的按键识别电路包括N个端口,每个端口对应一行,N个端口所在的行线与N个与其垂直的列线形成了 N*N个交点,所述N为大于等于3的自然数;至少 N个二极管,所述每一列的交点处至少放置一个所述的二极管,二极管的阴极接所在行线, 阳极接所在列线;至少N个按键,至多N* (N-I)个按键,每一个没有放置二极管的空闲交点处至多放置一个按键,所述按键的一端接所述按键所在的行线,所述按键的另一端接所述按键所在的列线,所述按键的控制端提供给用户选择控制。该按键识别电路主要应用于机顶盒面板按键的识别,当单片机检测到机顶盒面板上有按键被按下时就会发出控制信号并控制机顶盒执行相应的操作。本发明实施例提供的按键识别电路采用N个端口至多可以识别N*(N_1)个按键; 当N为3时,可以识别3个、4个、5个或者6个按键,图I示出了可以识别三个按键的按键识别电路的具体电路;按键识别电路包括第一按键SI、第二按键S2、第三按键S3、第一二极管D1、第二二极管D2以及第三二极管D3 ;其中第一按键SI的一端和第一二极管Dl的阴极连接至第一端口 PIOl对应的行线,第二按键S2的一端和第二二极管D2的阴极连接至第二端口 PI02对应的行线;第三按键S3的一端和第三二极管D3的阴极连接至第三端口 PI03 对应的行线;第一二极管Dl的阳极、第二按键S2的另一端和第三二极管D3的阳极分别连接至所在列线;第一按键SI的另一端、第二二极管D2的阳极和第三按键S3的另一端分别连接至所在列线。图2示出了可以识别四个按键的按键识别电路的具体电路;按键识别电路包括第一按键SI、第二按键S2、第三按键S3、第四按键S4、第一二极管D1、第二二极管D2以及第三二极管D3 ;其中第一按键SI的一端、第二按键S2的一端和第一二极管Dl的阴极分别连接至第一端口 PIOl对应的行线;第三按键S3的一端、第四按键S4的一端和第二二极管D2 的阴极分别连接至第二端口 PI02对应的行线;第一二极管Dl的阳极与第三按键S3的另一端分别连接至所在列线第一按键SI的另一端与第二二极管D2的阳极分别连接至所在列线;第二按键S2的另一端、第四按键S4的另一端与第三二极管D3的阳极分别连接至所在列线,第三二极管D3的阴极连接至第三端口 PI03对应的行线。图3示出了本发明实施例提供的可以识别六个按键的按键识别电路的具体电路图;为了便于说明,仅示出了与本发明实施例相关的部分,详述如下按键识别电路包括第一按键SI、第二按键S2、第三按键S3、第四按键S4、第五按键 S5、第六按键S6、第一二极管D1、第二二极管D2和第三二极管D3 ;其中第一按键SI的一端、 第二按键S2的一端,第一二极管Dl的阴极分别连接至第一端口 PIOl对应的行线;第三按键S3的一端、第四按键S4的一端,第二二极管D2的阴极分别连接至第二端口 PI02对应的行线;第五按键S5的一端、第六按键S6的一端,第三二极管D3的阴极分别连接至第三端口 PI03对应的行线;第一二极管Dl的阳极与第三按键S3的另一端和第五按键S5的另一端分别连接至所在列线;第二二极管D2的阳极与第一按键SI的另一端和第六按键S6的另一端分别连接至所在列线;第三二极管D3的阳极与第二按键S2的另一端和第四按键S4的另一端分别连接至所在列线。在本发明实施例中,二极管的作用主要是隔离,且当按键被按下时,通过二极管把相应的端口由高电平拉低至低电平。第一端口 PI01、第二端口 P02、第三端口 PI03输出默认为高电平,当在第一端口 PIOl输出低电平时,去检测第二端口 PI02和第三端口 P03输出的电压值,如果检测到第二端口 PI02的输出为低电平时,则说明第三按键S3被按下,如果检测到第三端口 PI03的输出为低电平时,则说明第五按键S5被按下,由于有第二二极管D2 和第三二极管D3的隔离,此时按下第一按键SI,第二按键S2,第四按键S4和第六按键S6均不会把第二端口 PI02和第三端口 PI03的输出拉低,一个端口 PIO对应一个按键,因此能够正确识别到相应的按键。同理,当在第二端口 PI02输出低电平时,去检测第一端口 PIOl和第三端口 PI03输出的电压值,如果检测到第一端口 PIOl的输出为低电平,则说明第一按键 SI被按下,如果检测到第三端口 PI03的输出为低电平,则说明第六按键S6被按下,由于有第一二极管Dl和第三二极管D3的隔离,此时按下第二按键S2,第三按键S3,第四按键S4, 第五按键S5均不会把PIOl和第三端口 PI03的输出拉低,一个端口 PIO对应一个按键,因此能够正确识别到相应的按键。同理,当在第三端口 PI03输出低电平时,去检测第一端口 PIOl和第二端口 PI02输出的电压值,如果检测到第一端口 PIOl的输出为低电平,则说明第二按键S2被按下,如果检测到第二端口 PI02的输出为低电平,则说明第四按键S4被按下, 由于有第一二极管Dl和第二二极管D2的隔离,此时按下第一按键SI,第三按键S3,第五按键S5和第六按键S6均不会把第一端口 PIOl,第二端口 PI02的输出拉低,一个端口 PIO对应一个按键,故能够正确识别到相应按键。本发明实施例提供的按键识别电路只需要3个IO端口即可实现6个按键的识别; 而现有技术中常用的2*3阵列实现6个按键的扫描,需要用到5个IO端口,这样可以节省两个IO端口,大大降低了成本。当N为4时,至多可以识别12个按键,当然也可以识别7个至12个按键中的任意一种情况;图4示出了本发明实施例提供的具有九个按键的按键识别电路的具体电路图, 为了便于说明,仅示出了与本发明实施例相关的部分,详述如下该按键识别电路在图3的基础上增加了第七按键S7、第八按键S8、第九按键S9和第四二极管D4 ;其中,第七按键S7的一端连接至第一端口 PIOl对应的行线,第八按键S8的一端连接至第二端口 PI02对应的行线,第九按键S9的一端连接至第三端口 PI03对应的行线,第四二极管D4的阴极连接至第四端口 PI04对应的行线;第四二极管D4的阳极与第七按键S7的另一端、第八按键S8的另一端和第九按键S9的另一端分别连接至所在列线。
在现有技术中,若需要识别9个按键,根据一个行与一个列只有唯一一个交点的方法,则需要6条IO线;而采用本发明实施例提供的可以识别九个按键的按键识别电路,则只需要4条IO线;节省了两条IO线,降低了成本,节省了空间。图5示出了本发明实施例提供的端口电路的电路图,包括三极管Q1、电阻R1,其中三极管的集电极通过电阻Rl连接至3. 3V电压,三极管的发射极接地,三极管的基极连接高电平或低电平;三极管的集电极还通过第一按键SI连接至第一二极管Dl的阳极,第一二极管的阴极接地。当第一按键SI被按下后,第一二极管Dl导通,第一二极管Dl的正极电压被钳位到0. 7V,在单片机中判断0. 7V为低,故输出为O。本发明实施例还提供一种采用上述的按键识别电路的按键识别方法,包括下述步骤设置参考端的电压为低电平,其中N个端口中的任意一个为所述参考端,其它端口为测试端;检测测试端的电压,判断是位于N*N个交点处的哪个按键被按下;当测试端的电压为低电平时,所述一端连接在上述测试端、另一端连接在上述参考端的按键被按下。图6示出了本发明实施例提供的六个按键识别方法的流程图;具体包括下述步骤第一端口 PI01、第二端口 P02、第三端口 PI03输出默认为高电平;当第一端口 PIOl输出的电平为低电平时,判断第二端口 PI02输出的电平是否为高电平,若否,则可以认为第三按键S3被按下;若是,则进一步判断第三端口 PI03输出的电平是否为高电平,若否,则可以认为第五按键S5被按下;若是,则当第二端口 PI02输出的电平为低电平时,进一步判断第一端口 PIOl输出的电平是否为高电平,若否,则可以认为第一按键SI被按下;若是,则进一步判断第三端口 PI03输出的电平是否为高电平,若否,则可以认为第六按键S6被按下;若是,则当第三端口 PI03输出的电平为低电平时,判断第一端口 PIOl输出的电平是否为高电平,若否,则可以认为第二按键S2被按下;若是,则进一步判断第二端口 PI02输出的电平是否为高电平,若否,则可以认为第四按键S4被按下。在本发明实施例中,具有九个按键识别方法的流程如图7所示,具体包括第一端口 PI01、第二端口 P02、第三端口 PI03、第四端口 PI04输出默认为高电平;当第一端口 PIOl输出的电平为低电平时,判断第二端口 PI02输出的电平是否为高电平,若否,则可以认为第三按键S3被按下;若是,则进一步判断第三端口 PI03输出的电平是否为高电平,若否,则可以认为第五按键S5被按下;若是,则当第二端口 PI02输出的电平为低电平时,进一步判断第一端口 PIOl输出的电平是否为高电平,若否,则可以认为第一按键SI被按下;若是,则进一步判断第三端口 PI03输出的电平是否为高电平,若否,则可以认为第六按键S6被按下;
若是,则当第三端口 PI03输出的电平为低电平时,判断第一端口 PIOl输出的电平是否为高电平,若否,则可以认为第二按键S2被按下;若是,则进一步判断第二端口 PI02输出的电平是否为高电平,若否,则可以认为第四按键S4被按下;当第四端口 PI04输出的电平为低电平时,判断第一端口 PIOl输出的电平是否为高电平,若否,则可以认为第七按键S7被按下;若是,则进一步判断第二端口 PI02输出的电平是否为高电平,若否,则可以认为第八按键S8被按下;若是,则进一步判断第三端口 PI03的电平是否为高电平,若否,则可以认为第九按键S9被按下。其中,高电平可以设置为"I",低电平设置为"0"。本发明实施例中只给出了识别6个按键和9个按键的例子,但不限于此;经过验证,当需要识别3个按键时,采用现有的按键识别方法,即根据一个行与一个列只有唯一的一个交点,则需要4条IO线;若按照本发明提供的按键识别方法或电路则只需要3条IO线。 当需要识别4个按键时,采用现有的按键识别方法,需要4条IO线,若采用本发明提供的按键识别方法或电路,则只需要3条IO线。当需要识别5个按键时,采用现有的按键识别方法,需要5条IO线;若按照本发明提供的按键识别方法或电路,则只需要3条IO线。当需要识别7个或8个按键时,采用现有的按键识别方法,需要6条IO线;若采用本发明提供的按键识别方法或者电路,则只需要4条IO线。本发明实施例提供的按键识别电路采用二极管将按键进行隔离,采用更少的端口识别到更多的按键,进而可以选用资源更少的单片机,降低了单片机的成本,同时减少了相应的PCB板的大小,节约了整机的成本。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种按键识别电路,其特征在于,包括N个端口,每个端口对应一行,N个端口所在的行线与N个与其垂直的列线形成了 N*N 个交点,所述N为大于等于3的自然数;至少N个二极管,所述每一列的交点处至少放置一个所述的二极管,二极管的阴极接所在行线,阳极接所在列线;至少N个按键,至多N* (N-I)个按键,每一个没有放置二极管的空闲交点处至多放置一个按键,所述按键的一端接所述按键所在的行线,所述按键的另一端接所述按键所在的列线,所述按键的控制端提供给用户选择控制。
2.如权利要求I所述的按键识别电路,其特征在于,当N为3时,所述按键识别电路具体包括三个端口、三个二极管和三个按键;第一按键的一端和第一二极管的阴极连接至第一端口对应的行线;第二按键的一端和第二二极管的阴极连接至第二端口对应的行线;第三按键的一端和所述第三二极管的阴极连接至第三端口对应的行线;第一二极管的阳极、所述第二按键的另一端和所述第三二极管的阳极分别连接至所在列线;第一按键的另一端、第二二极管的阳极和第三按键的另一端分别连接至所在列线。
3.如权利要求I所述的按键识别电路,其特征在于,当N为3时,所述按键识别电路具体包括三个端口、三个二极管和四个按键;第一按键的一端、第二按键的一端和第一二极管的阴极分别连接至第一端口对应的行线.第三按键的一端、第四按键的一端和第二二极管的阴极分别连接至第二端口对应的行线.第一二极管的阳极与第三按键的另一端分别连接至所在列线;第一按键的另一端与第二二极管的阳极分别连接至所在列线;第二按键的另一端、第四按键的另一端与第三二极管的阳极分别连接至所在列线; 第三二极管的阴极连接至第三端口对应的行线。
4.如权利要求I所述的按键识别电路,其特征在于,当N为3时,所述按键识别电路具体包括三个端口、三个二极管和六个按键;第一按键的一端、第二按键的一端和第一二极管的阴极分别连接至第一端口对应的行线.第三按键的一端、第四按键的一端和第二二极管的阴极分别连接至第二端口对应的行线.第五按键的一端、第六按键的一端和第三二极管的阴极分别连接至第三端口对应的行线.所述第一二极管的阳极、所述第三按键的另一端和所述第五按键的另一端分别连接至所在列线;所述第二二极管的阳极、所述第一按键的另一端和所述第六按键的另一端分别连接至所在列线;所述第三二极管的阳极、所述第二按键的另一端和所述第四按键的另一端分别连接至所在列线。
5.如权利要求4所述的按键识别电路,其特征在于,当N为4时,所述按键识别电路具体还包括第四端口、第七按键、第八按键、第九按键和第四二极管;所述第七按键的一端连接至所述第一端口对应的行线,所述第八按键的一端连接至所述第二端口对应的行线,所述第九按键的一端连接至所述第三端口对应的行线,所述第四二极管的阴极连接至第四端口对应的行线;所述第四二极管的阳极与所述第七按键的另一端、所述第八按键的另一端和所述第九按键的另一端分别连接至所在列线。
6.一种采用权利要求I所述的按键识别电路的按键识别方法,其特征在于,包括下述步骤设置参考端的电压为低电平,所述N个端口中的任意一个为所述参考端,其它端口为测试端;检测测试端的电压,判断是位于N*N个交点处的哪个按键被按下;当测试端的电压为低电平时,所述一端连接在所述测试端、另一端连接在所述参考端的按键被按下。
7.如权利要求6所述的按键识别方法,其特征在于,当所述按键识别电路包括三个端口、三个二极管和六个按键时,所述的按键识别方法具体包括下述步骤设置第一端口的电压为低电平;当检测到第二端口的电压为低电平时,则得知第三按键被按下;当检测到第三端口的电压为低电平时,则得知第五按键被按下;设置第二端口的电压为低电平;当检测到第一端口的电压为低电平时,则得知第一按键被按下;当检测到第三端口的电压为低电平时,则得知第六按键被按下;设置第三端口的电压为低电平;当检测到第一端口的电压为低电平时,则得知第二按键被按下;当检测到第三端口的电压为低电平时,则得知第四按键被按下。
8.如权利要求7所述的按键识别方法,其特征在于,当所述按键识别电路还包括第四端口、第七按键、第八按键、第九按键和第四二极管时,所述的按键识别方法进一步包括步骤设置第四端口的电压为低电平;当检测到第一端口的电压为低电平时,则得知第七按键被按下;当检测到第二端口的电压为低电平时,则得知第八按键被按下;当检测到第三端口的电压为低电平时,则得知第九按键被按下。
9.一种机顶盒,包括权利要求1-5任一项所述的按键识别电路。
全文摘要
本发明属于单片机控制领域,提供了一种按键识别电路、按键识别方法及机顶盒;按键识别电路包括N个端口,N个端口所在的行线与N个与其垂直的列线形成了N×N个交点;至少N个二极管,每一列的交点处至少放置一个二极管;至少N个按键,至多N×(N-1)个按键,每一个没有放置二极管的空闲交点处至多放置一个按键,按键的一端接按键所在的行线,按键的另一端接按键所在的列线,按键的控制端提供给用户选择控制。本发明提供的按键识别电路采用二极管将按键进行隔离,采用更少的端口识别到更多的按键,进而可以选用资源更少的单片机,降低了单片机的成本,同时减少了相应的PCB板的大小,节约了整机的成本。
文档编号H03M11/20GK102611456SQ20111040317
公开日2012年7月25日 申请日期2011年12月7日 优先权日2011年12月7日
发明者李 远 申请人:深圳市九洲电器有限公司