一种电子设备的按键扫描方法

文档序号:7521105阅读:233来源:国知局
专利名称:一种电子设备的按键扫描方法
技术领域
本发明涉及电子技术领域,特别是涉及一种电子设备的按键扫描方法。
背景技术
目前,市面上的手机、PDA (Personal Digital Assistant,个人数字助理)等各种 便携式电子设备的按键矩阵中的按键数量一般都比较有限(比如6X6 = 36个按键),要做 全键盘(全键盘一般为41个按键以上)的按键矩阵时往往会碰到电子设备的平台所提供 的按键扫描端口数目不够的情况。请参见图1 2,下面将以16个按键为例对现有技术的按键扫描方法作出如下介 绍首先参见图1,图1是现有技术中的电子设备的电路结构示意图。如图1所示,按 键1 16所组成的按键阵列设置在列扫描线101 104与行扫描线105 108之间,控制 芯片100包括行扫描端口 ROWO R0W3以及列扫描端口 COLO C0L3。行扫描端口 ROWO R0W3对应连接行扫描线105 108,列扫描端口 COLO C0L3 对应连接列扫描线101 104,按键1 16按下时连接对应的列扫描线101 104和行扫 描线105 108。在具体使用过程中,设置列扫描端口 COLO C0L3作为输入端口,行扫描端口 ROffO R0W3作为输出端口,并输出低电平信号(以下将以0表示低电平信号,以1表示高 电平信号)。在任一按键1 16按下后,列扫描端口 COLO C0L3中与该按键对应的端口 可接收到低电平信号,控制芯片100启动扫描流程。请进一步参见图2,图2是现有技术中的电子设备的按键扫描方法的流程图。如图 2所示,现有技术中的电子设备的按键扫描方法包括步骤201,设置行扫描端口 ROWO R0W3分别输出0、1、1、1。步骤202,判断列扫描端口 COLO C0L3是否均接收到1,在判断结果为“N” (即 否)时,说明行扫描端口 ROWO所对应的按键1 4被按下,流程可跳转至步骤2021 20 , 判断结果为“Y”(即是)时,说明行扫描端口 ROWO所对应的按键1 4没有被按下,流程可 跳转至步骤203。在步骤2021 20 中,依次在步骤2021、2023、2025、2027中分别判断列扫描端 口 COLO、COLl、C0L2、C0L3是否接收到0,并在步骤2021判断到列扫描端口 COLO接收到0 时,执行步骤2022,判定按键1被按下;在步骤2023判断到列扫描端口 COLl接收到0时, 执行步骤20M,判定按键2被按下;在步骤2025判断到列扫描端口 C0L2接收到0时,执行 步骤2(^6,判定按键3被按下;在步骤2027判断到列扫描端口 C0L3接收到0时,执行步骤 20 ,判定按键4被按下。步骤203,设置行扫描端口 ROWO R0W3分别输出1、0、1、1。步骤204,判断列扫描端口 COLO C0L3是否均接收到1,在判断结果为“N” (即 否)时,说明行扫描端口 ROWl所对应的按键5 8被按下,流程可跳转至步骤2041 2048,判断结果为“Y”(即是)时,说明行扫描端口 ROWl所对应的按键5 8没有被按下,流程可 跳转至步骤205。在步骤2041 2048中,依次在步骤2041、2043、2045、2047中分别判断列扫描端 口 COLO、COLl、C0L2、C0L3是否接收到0,并在步骤2041判断到列扫描端口 COLO接收到0 时,执行步骤2042,判定按键5被按下;在步骤2043判断到列扫描端口 COLl接收到0时, 执行步骤2044,判定按键6被按下;在步骤2045判断到列扫描端口 C0L2接收到0时,执行 步骤2046,判定按键7被按下;在步骤2047判断到列扫描端口 C0L3接收到0时,执行步骤 2048,判定按键8被按下。步骤205,设置行扫描端口 ROWO R0W3分别输出1、1、0、1。步骤206,判断列扫描端口 COLO C0L3是否均接收到1,在判断结果为“N”(即否) 时,说明行扫描端口 R0W2所对应的按键9 12被按下,流程可跳转至步骤2061 2068,判 断结果为“Y” (即是)时,说明行扫描端口 R0W2所对应的按键9 12没有被按下,流程可 跳转至步骤207。在步骤2061 2068中,依次在步骤2061、2063、2065、2067中分别判断列扫描端 口 COLO、COLl、C0L2、C0L3是否接收到0,并在步骤2061判断到列扫描端口 COLO接收到0 时,执行步骤2062,判定按键9被按下;在步骤2063判断到列扫描端口 COLl接收到0时, 执行步骤2064,判定按键10被按下,在步骤2065判断到列扫描端口 C0L2接收到0时,执行 步骤2066,判定按键11被按下;在步骤2067判断到列扫描端口 C0L3接收到0时,执行步 骤2068,判定按键12被按下。步骤207,设置行扫描端口 ROWO R0W3分别输出1、1、1、0。步骤208,判断列扫描端口 COLO C0L3是否均接收到1,在判断结果为“N” (即 否)时,说明行扫描端口 R0W3所对应的按键13 16被按下,流程可跳转至步骤2081 2088,判断结果为“Y” (即是)时,说明行扫描端口 R0W3所对应的按键13 16没有被按 下,流程可跳转至步骤209。在步骤2081 2088中,依次在步骤2081、2083、2085、2087中分别判断列扫描端 口 COLO、COLl、C0L2、C0L3是否接收到0,并在步骤2081判断到列扫描端口 C0L0接收到0 时,执行步骤2082,判定按键13被按下;在步骤2083判断到列扫描端口 COLl接收到0时, 执行步骤2084,判定按键14被按下;在步骤2085判断到列扫描端口 C0L2接收到0时,执 行步骤2086,判定按键15被按下;在步骤2087判断到列扫描端口 C0L3接收到0时,执行 步骤2088,判定按键16被按下。步骤209,判定检测不到对应按键,退出本次检测流程。值得注意的是,在退出流程或找到相应按键之后,可继续设置行扫描端口 R0W0 R0W3输出低电平信号,以便对后续按下的按键进行检测。因此,由以上介绍可知,现有技术中,行扫描端口 R0W0 R0W3以及列扫描端口 COL C0L3的数量决定了可以设置的按键数量,而在实际使用中,控制芯片100往往会设置 固定数量的行扫描端口以及列扫描端口作为键盘专用端口。由此可知,可以设置的最大数 目的按键数量是固定的,用户若需增加按键数量,只能选取内置有更多行扫描端口和列扫 描端口的控制芯片更换现有的控制芯片,或者使用按键扩展芯片来实现按键数量之扩展。但,由于需要另外添置按键扩展芯片或者另外购买具有更多行扫描端口以及列扫描端口的控制芯片,如此一来,就会增加整个电子设备的硬件成本。因此,亟需提供一种电子设备的按键扫描方法,以解决上述问题。

发明内容
本发明主要解决的技术问题是提供一种电子设备的按键扫描方法,以解决上述问题。为解决上述技术问题,本发明采用的一个技术方案是提供一种电子设备的按键 扫描方法,电子设备包括控制芯片、多个第一扫描线、多个第二扫描线以及按键阵列,控制 芯片包括多个第一端口、多个第二端口和至少一第三端口,第一端口对应连接第一扫描线, 第二端口和第三端口对应连接第二扫描线,按键阵列包括多个按键,按键按下时连接对应 的第一扫描线和第二扫描线,按键扫描方法包括a.将第一端口设置成列扫描端口,将第 二端口设置成行扫描端口,并且第二端口输出第一电平信号;b.控制第三端口输出与第二 端口相同的第一电平信号;c.若检测到第一端口接收到第一电平信号,则产生中断;d.根 据中断,将第一端口和第二端口设置成通用输入输出端口 ;e.控制第二端口和第三端口对 按键阵列进行扫描,并根据第一端口的检测结果确定按键的键值。其中,在步骤b中,第三端口设置为通用输入输出端口。其中,在步骤e中,依次控制第二端口和第三端口中的一端口输出第一电平信号, 同时控制其余端口输出第二电平信号,检测多个第一端口的状态,在检测到存在接收到第 一电平信号的第一端口时,判定输出第一电平信号的第二端口或第三端口以及接收到第一 电平信号的第一端口所对应的按键按下。其中,第一电平信号为低电平信号,第二电平信号为高电平信号。其中,电子设备为手机,控制芯片为基带芯片。 其中,在步骤c中,若检测到第一端口接收到第一电平信号,则首先利用第二端口 对按键阵列进行扫描,并在扫描完成后产生中断。本发明的有益效果是区别于现有技术,本发明所揭示的电子设备的按键扩展的 方法利用控制芯片额外的端口对按键矩阵进行扩展,能够任意扩展按键的数量,更具有不 用增加额外的硬件成本且实现简单之优点。


图1是现有技术中的电子设备的电路结构示意图;图2是现有技术中的电子设备的按键扫描方法的流程图;图3是根据本发明实施例的电子设备的电路结构示意图;图4是根据本发明实施例的电子设备的按键扫描方法的总体流程图;图5是根据本发明实施例的电子设备的按键扫描方法的子流程图。
具体实施例方式首先请参见图3,图3是根据本发明实施例的电子设备的电路结构示意图。如图3所示,使用本发明的按键扫描方法的电子设备包括控制芯片200、第一扫描 线101 104、第二扫描线105 110以及按键阵列,其中按键阵列由按键1 M组成。控制芯片200包括第一端口 COLO C0L3、第二端口 ROWO R0W3和第三端口 GPIOO GPIOl。 第一端口 COLO C0L3对应连接第一扫描线101 104,第二端口 ROWO R0W3和第三端口 GPIOO GPIOl对应连接第二扫描线105 110,当按键1 M中的任一按键按下时可连 接对应的第一扫描线101 104和第二扫描线105 110。值得注意的是,第一端口 COLO C0L3和第二端口 ROWO R0W3为控制芯片200 的具有按键扫描端口功能和通用输入输出端口功能的复用端口。当在控制芯片200中的特 定寄存器进行相应置位时,第一端口 COLO C0L3可设置为通用输入输出端口,当在控制芯 片200中的特定寄存器进行另一相应置位时,第一端口 COLO C0L3可设置为列扫描端口。 同样地,当在控制芯片200中的特定寄存器进行相应置位时,第二端口 ROWO R0W3可设置 为通用输入输出端口,当在控制芯片200中的特定寄存器进行另一相应置位时,第二端口 ROffO R0W3可设置为行扫描端口。第三端口 GPIOO GPIOl为通用输入输出端口或者具 有通用输入输出端口功能或其他功能的复用端口。当第三端口 GPIOO GPIOl为复用端口 时,通过在控制芯片200中的特定寄存器进行相应置位将其配置成通用输入输出端口。此 外,在实际应用中,第三端口 GPIOO GPIOl也可以是任何具有输出高/低电平信号功能的 其他端口,本发明对此并不作具体限定。值得注意的是,在本实施例中,控制芯片200的第一端口 COLO C0L3和第二端口 ROffO R0W3的数量均为4个,因此利用前述的现有技术,控制芯片200最多只能设置4X4 =16个按键,而本实施例可利用本发明的按键扫描方法对按键数量进行扩展,使之从16个 按键扩展为M个按键。另外,在本发明的所有实施例中,电子设备优选以手机为例进行说明,因此控制芯 片200优选为手机的基带芯片,如MTK系列的基带芯片,而在本发明的其他实施例中,电子 设备也可以是PDA (PersonalDigital Assistant,个人数字助理)或工控设备等安装有嵌 入式系统的电子设备,因此,控制芯片也可以为相应的嵌入式处理芯片,如在现有技术中得 到广泛应用的ARM系列处理芯片。请参见图4,图4是根据本发明实施例的电子设备的按键扫描方法的总体流程图。如图4所示,按键扫描方法包括步骤301,将第一端口 COLO C0L3设置成列扫描端口,将第二端口 ROWO R0W3 设置成行扫描端口,并且第二端口 ROWO R0W3输出第一电平信号。步骤302,控制第三端口 GPIOO GPIOl输出与第二端口 ROWO R0W3相同的第一
电平信号。步骤303,判断第一端口 COLO C0L3是否接收到第一电平信号,若判断结果是 “否”,则重新执行步骤303,进行循环检测,以等待用户按下任一按键,若判断结果是“是”, 则执行步骤304。步骤304,产生中断。步骤305,根据中断,将第一端口 COLO C0L3和第二端口 ROWO R0W3设置成通 用输入输出端口。步骤306,控制第二端口 ROWO R0W3和第三端口 GPIOO GPIOl对按键阵列进 行扫描,并根据第一端口 COLO C0L3的检测结果确定按键的键值。其中,在本步骤中,可 依次控制第二端口 ROWO R0W3和第三端口 GPIOO GPIOl中的一端口输出第一电平信号,同时控制其余端口输出第二电平信号,检测多个第一端口 COLO C0L3的状态,在检测 到存在接收到第一电平信号的第一端口 COLO C0L3时,判定输出第一电平信号的第二端 口 ROWO R0W3或第三端口 GPIOO GPIOl以及接收到第一电平信号的第一端口 COLO C0L3所对应的按键按下,以下将会参见图5对上述的扫描方式作进一步具体说明。另外,值得注意的是,控制芯片200本身内嵌有默认扫描程序(用于实现背景技术 所描述之按键扫描方法),而该默认扫描程序在控制芯片200出厂时固定内嵌于控制芯片 200的程序存储器中,第三方用户可能会面对没有权限清除该默认扫描程序的情况,若不 能清除控制芯片本身所内嵌有默认扫描程序,可在本发明所揭示之步骤304中,先利用控 制芯片200本身所内嵌的默认扫描程序进行扫描,具体而言,可首先利用第二端口 ROWO R0W3对按键阵列进行键盘扫描,在扫描完成后产生中断,然后再执行步骤305。需要进一步说明的是,默认扫描程序所产生的扫描结果对于按键1 16而言是正 确的,而对于按键17 M而言则不能得出正确结果,因此,本发明只利用默认扫描程序所 产生的中断,以利用该中断进一步启动本发明的按键扫描方法,从而巧妙地利用了默认扫 描程序所产生的中断来触发本发明所揭示的可以判断出正确结果的按键扫描方法。另外,以上所介绍的第一电平信号优选为低电平信号,第二电平信号优选为高电 平信号。但,在本发明的其他实施例中,也可以作出相反处理,使得第一电平信号为高电平 信号,第二电平信号为低电平信号,本发明也可以达到相同技术效果。并且,在本发明的所 有实施例中,可以数字信号“ 1 ”表示高电平信号,以数字信号“ 0 ”表示低电平信号。请参见图5,图5是根据本发明实施例的电子设备的按键扫描方法的子流程图。具 体为步骤306的子流程图,其中步骤401,设置第二端口 ROWO R0W3和第三端口 GPIOO GPIOl分别输出0、1、 1、1、1、1。步骤402,判断第一端口 COLO C0L3是否均接收到1,在判断结果为“N” (即否) 时,说明第二端口 ROWO所对应的按键1 4被按下,流程可跳转至步骤4021 40 ,在判 断结果为“Y”(即是)时,说明第二端口 ROWO所对应的按键1 4没有被按下,流程可跳转 至步骤403。在步骤4021 40 中,依次在步骤4021、4023、4025、4027中分别判断第一端口 COLO、COLl、C0L2、C0L3是否接收到0,并在步骤4021判断到第一端口 COLO接收到0时,执 行步骤4022,判定按键1被按下;在步骤4023判断到第一端口 COLl接收到0时,执行步骤 4024,判定按键2被按下;在步骤4025判断到第一端口 C0L2接收到0时,执行步骤4(^6, 判定按键3被按下;在步骤4027判断到第一端口 C0L3接收到0时,执行步骤40 ,判定按 键4被按下。步骤403,设置第二端口 ROWO R0W3和第三端口 GPIOO GPIOl分别输出1、0、 1、1、1、1。步骤404,判断第一端口 COLO C0L3是否均接收到1,在判断结果为“N” (即否) 时,说明第二端口 ROWl所对应的按键5 8被按下,流程可跳转至步骤4041 4048,在判 断结果为“Y”(即是)时,说明第二端口 ROWl所对应的按键5 8没有被按下,流程可跳转 至步骤405。在步骤4041 4048,依次在步骤4041、4043、4045、4047中分别判断第一端口COLO C0L3是否接收到0,并在步骤4041判断到第一端口 COLO接收到0时,执行步骤 4042,判定按键5被按下;在步骤4043判断到第一端口 COLl接收到0时,执行步骤4044, 判定按键6被按下;在步骤4045判断到第一端口 C0L2接收到0时,执行步骤4046,判定按 键7被按下;在步骤4047判断到第一端口 C0L3接收到0时,执行步骤4048,判定按键8被 按下。步骤405,设置第二端口 ROWO R0W3和第三端口 GPIOO GPIOl分别输出1、1、 0、1、1、1。步骤406,判断第一端口 COLO C0L3是否均接收到1,在判断结果为“N” (即否) 时,说明第二端口 R0W2所对应的按键9 12被按下,流程可跳转至步骤4061 4068。在 判断结果为“Y” (即是)时,说明第二端口 R0W2所对应的按键9 12没有被按下,流程可 跳转至步骤407。在步骤4061 4068中,依次在步骤4061、4063、4065、4067中分别判断第一端 口 COLO C0L3是否接收到0,并在步骤4061判断到第一端口 COLO接收到0时,执行步骤 4062,判定按键9被按下;在步骤4063判断到第一端口 COLl接收到0时,执行步骤4064, 判定按键10被按下;在步骤4065判断到第一端口 C0L2接收到0时,执行步骤4066,判定 按键11被按下;在步骤4067判断到第一端口 C0L3接收到0时,执行步骤4068,判定按键 12被按下。步骤407,设置第二端口 ROWO R0W3和第三端口 GPIOO GPIOl分别输出1、1、 1、0、1、1。步骤408,判断第一端口 COLO C0L3是否均接收到1,在判断结果为“N” (即否) 时,说明第二端口 R0W3所对应的按键13 16被按下,流程可跳转至步骤4081 4088。在 判断结果为“Y”(即是)时,说明第二端口 R0W3所对应的按键13 16没有被按下,流程可 跳转至步骤409。步骤4081 4088,依次在步骤4081、4083、4085、4087中分别判断第一端口 COLO C0L3是否接收到0,并在步骤4081判断到第一端口 COLO接收到0时,执行步骤 4082,判定按键13被按下;在步骤4083判断到第一端口 COLl接收到0时,执行步骤4084, 判定按键14被按下;在步骤4085判断到第一端口 C0L2接收到0时,执行步骤4086,判定 按键15被按下;在步骤4087判断到第一端口 C0L3接收到0时,执行步骤4088,判定按键 16被按下。步骤409,设置第二端口 ROWO R0W3和第三端口 GPIOO GPIOl分别输出1、1、 1、1、0、1。步骤410,判断第一端口 COLO C0L3是否均接收到1,在判断结果为“N” (即否) 时,说明第三端口 GPIOO所对应的按键17 20被按下,流程可跳转至步骤4101 4108。 在判断结果为“Y” (即是)时,说明第三端口 GPIOO所对应的按键17 20没有被按下,流 程可跳转至步骤411。步骤4101 4108,依次在步骤4101、4103、4105、4107中分别判断第一端口 COLO C0L3是否接收到0,并在步骤4101判断到第一端口 COLO接收到0时,执行步骤 4102,判定按键17被按下;在步骤4103判断到第一端口 COLl接收到0时,执行步骤4104, 判定按键18被按下;在步骤4105判断到第一端口 C0L2接收到0时,执行步骤4106,判定按键19被按下;在步骤4107判断到第一端口 C0L3接收到0时,执行步骤4108,判定按键 20被按下。步骤411,设置第二端口 ROWO R0W3和第三端口 GPIOO GPIOl分别输出1、1、 1、1、1、0。步骤412,判断第一端口 COLO C0L3是否均接收到1,在判断结果为“N”(即否) 时,说明第三端口 GPIOl所对应的按键21 M被按下,流程可跳转至步骤4121 4128。 在判断结果为“Y” (即是)时,说明第三端口 GPIOl所对应的按键21 M没有被按下,流 程可跳转至步骤413。在步骤4121 4128中,依次在步骤4121、4123、4125、4127中分别判断第一端 口 COLO C0L3是否接收到0,并在步骤4121判断到第一端口 COLO接收到0时,执行步骤 4122,判定按键21被按下;在步骤4123判断到第一端口 COLl接收到0时,执行步骤4124, 判定按键22被按下;在步骤4125判断到第一端口 C0L2接收到0时,执行步骤4126,判定 按键23被按下;在步骤4127判断到第一端口 C0L3接收到0时,执行步骤4128,判定按键 24被按下。步骤413,判定检测不到对应按键,退出本次扫描。值得注意的是,第一端口、第二端口以及第三端口的数量可决定按键的数量,而在 上述的实施例中,选取了 4个第一端口、4个第二端口以及2个第三端口用以支持M个按 键。在本发明的各种实施例中,只要保证第一端口、第二端口的数量为复数个,且第三端口 的数量至少为1个即可,其具体数量可在根据上述之原则进行选取,本发明将不会限制由 此而延伸出的各种实施方式。因此,通过以上所揭示的技术方案,本发明所揭示的电子设备的按键扩展的方法 利用控制芯片额外的端口对按键矩阵进行扩展,能够任意扩展按键的数量,更具有不用增 加额外的硬件成本且实现简单之优点。以上仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说 明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领 域,均同理包括在本发明的专利保护范围内。
权利要求
1.一种电子设备的按键扫描方法,所述电子设备包括控制芯片、多个第一扫描线、多个 第二扫描线以及按键阵列,所述控制芯片包括多个第一端口、多个第二端口和至少一第三 端口,所述第一端口对应连接所述第一扫描线,所述第二端口和所述第三端口对应连接所 述第二扫描线,所述按键阵列包括多个按键,所述按键按下时连接对应的所述第一扫描线 和所述第二扫描线,其特征在于,所述按键扫描方法包括a.将所述第一端口设置成列扫描端口,将所述第二端口设置成行扫描端口,并且所述 第二端口输出第一电平信号;b.控制所述第三端口输出与所述第二端口相同的第一电平信号;c.若检测到所述第一端口接收到所述第一电平信号,则产生中断;d.根据所述中断,将所述第一端口和所述第二端口设置成通用输入输出端口;e.控制所述第二端口和所述第三端口对所述按键阵列进行扫描,并根据所述第一端口 的检测结果确定所述按键的键值。
2.根据权利要求1所述的按键扫描方法,其特征在于,在所述步骤b中,所述第三端口 设置为通用输入输出端口。
3.根据权利要求1所述的按键扫描方法,其特征在于,在所述步骤e中,依次控制所述 第二端口和所述第三端口中的一端口输出所述第一电平信号,同时控制其余端口输出第二 电平信号,检测所述多个第一端口的状态,在检测到存在接收到所述第一电平信号的第一 端口时,判定输出所述第一电平信号的所述第二端口或所述第三端口以及接收到所述第一 电平信号的所述第一端口所对应的按键按下。
4.根据权利要求3所述的按键扫描方法,其特征在于,所述第一电平信号为低电平信 号,所述第二电平信号为高电平信号。
5.根据权利要求1所述的按键扫描方法,其特征在于,所述电子设备为手机,所述控制 芯片为基带芯片。
6.根据权利要求1所述的按键扫描方法,其特征在于,在所述步骤c中,若检测到所述 第一端口接收到所述第一电平信号,则首先利用所述第二端口对所述按键阵列进行扫描, 并在扫描完成后产生所述中断。
全文摘要
本发明公开了一种电子设备的按键扫描方法,包括将第一端口设置成列扫描端口,将第二端口设置成行扫描端口,并且第二端口输出第一电平信号;控制第三端口输出与第二端口相同的第一电平信号;若检测到第一端口接收到第一电平信号,则产生中断;根据中断,将第一端口和第二端口设置成通用输入输出端口;控制第二端口和第三端口对按键阵列进行扫描,并根据第一端口的检测结果确定按键的键值。通过以上方式,本发明提供的技术方案能够任意扩展按键的数量,更具有不用增加额外的硬件成本且实现简单之优点。
文档编号H03M11/20GK102122961SQ20111005387
公开日2011年7月13日 申请日期2011年3月7日 优先权日2011年3月7日
发明者顾建良 申请人:惠州Tcl移动通信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1