解析某型号手机按键检测程序的缺陷
2011-06-25范志诚刘爱华
单片机与嵌入式系统应用 2011年10期
范志诚,刘爱华
(河源理工学校 机电教学部,河源 517000)
引 言
只有正确检测到按键,才能正确实现手机相应的功能。按键检测程序的架构是否合理及严谨,对产品的稳定性具有至关重要的意义。通过检测某手机按键功能,发现手机的按键检测程序存在一定的缺陷。本文借助Sonix公司的SN8P2602B单片机,探讨一种按键检测程序的软件架构,并给出了具体实现方案。
1 检测某型号手机按键功能
该手机采用传统的机械式按键,而检测的按键只限制在12个按键范围内,如图1所示。
1.1 检测项目1
在解锁后,分别按下某一按键,持续2s,然后松手。
检测结果:
① 1、2、3、4、5、6、7、8、9、0共10个按键,按下后经过很短时间(小于1s),均在屏幕上显示出相应数字,3s后松手,数字不变。
② *、#共2个按键,在按下2s松手后,才在屏幕上显示出相应的符号。

图1
1.2 检测项目2
在解锁后,按下某一按键,不松手,然后去按其他剩下的11个按键。
检测结果:
① 以按下“1”键为例,如图2所示。

图2
② 以按下“2”键为例,如图3所示。

图3
对其他按键进行测试,有类似的结果,规律如图4所示。
图4中,对于同一列按键,先按住其中一个按键,会产生两种情况:
① 再按同列中的其他任何一个按键,屏幕上显示的都是先按住的那个按键;
② 再按不同列的其他任何一个按键,屏幕上显示的都是正确的按键。
即:先按住“1”不放,再按同列的“4”、“7”、“*”,屏幕都显示成“1”;若再按不同列的“2”、“3”、“5”、“6”、“8”、“9”、“0”、“#”,则屏幕均显示正确的相应按键。
同时,还出现一个新的问题:先按住某一按键不放,然后再按其他11个按键,11个按键在按下后经过很短时间(小于1s),均在屏幕上显示出数字或符号。……
登录APP查看全文
