中断驱动的袖珍键盘扫描方法和装置的制作方法

文档序号:7533037阅读:257来源:国知局
专利名称:中断驱动的袖珍键盘扫描方法和装置的制作方法
技术领域
本发明通常涉及电子装置的袖珍键盘接口,更具体地,涉及到袖珍键盘扫描的方法和装置。
一种袖珍键盘扫描技术利用专用的微处理器,以周期地定时访问(典型地每20~30ms)袖珍键盘矩阵的状态,以判定何时键被按压或被释放。然而,因为袖珍键盘矩阵仅在其被定时访问的时间的一部分含有用信息,周期定时访问导致过多袖珍键盘读取脉冲噪声。然而,较不频繁地定时访问将导致丢失键按压和键释放,这不是所希望的。
另一种袖珍键盘扫描技术用对微控制器的中断以指示何时袖珍键盘改变状态。然而,不是每个袖珍键盘状态的变化都向微控制器提供有用信息。例如,在某些应用中,同一时间只能有一个键按压有效。因此,一旦检测到有效的一个键按压,除释放该有效键外的所有其它袖珍键盘状态改变可能被忽略。然而,传统的基于中断扫描并未利用这个事实。单个键按压应用包括用电话袖珍键盘拨电话号码、输入计算器数字、和用电视/VCR/有线遥控器选择功能。
另外,传统的基于中断扫描模式通常错误翻译病态的键按压,如a)当两个或多个键被同时按压时,多键按压;b)当第二个键被按压且然后第一个键被释放时,键翻转;和c)当第一个键被按压和保持同时第二个键被按压并释放时,键误击。在单个键按压应用中,传统的基于中断扫描技术产生的过多的袖珍键盘读取脉冲引起比需要为高的系统实时应用活动和电流漏。传统的袖珍键盘扫描技术通常除微控制器外也需要电路,这导致较大的产品尺寸、较高的成本,并增加软件复杂度。
本发明的目的是提供一种袖珍键盘扫描方法和装置,以正确翻译病态的键按压情况,并减少袖珍键盘读取脉冲噪声、降低成本、和减少复杂度。
本发明提供一种中断驱动的袖珍键盘扫描装置,包括袖珍键盘矩阵,有行线和列线;开关,耦合到所述行线,用于设置所述行线到输入状态或输出状态;
禁止的下降沿变换中断发生器,耦合到所述列线;和禁止的上升沿变换中断发生器,耦合到所述列线。
本发明提供一种中断驱动的袖珍键盘扫描方法,用于至少有一行线和一列线和一个以上的键的袖珍键盘矩阵,包括步骤设置所述列线到有第二信号电平的输入状态,并设置所述行线到有第一信号电平的输出状态;使能中断发生器,以当所述列线从所述第二信号电平转换到所述第一信号电平时,产生到微控制器的列中断;用所述微控制器检测所述列中断;扫描所述行线,以判定是否没有、正好一个、或一个以上键被按压;如果一个以上键被按压设置所述列线到有第二信号电平的输入状态,且设置所述行线到有第三信号电平的输出状态;使能所述中断发生器,以当所述列线从所述第二信号电平转换到所述第三信号电平时,产生到所述微控制器的下一个列中断;和用所述微控制器检测所述下一个列中断。
中断驱动的袖珍键盘扫描方法和装置用最少数量的中断检测在袖珍键盘矩阵中有效的单个键按压,并对病态的键按压适当响应。在键按压检测状态中,关联于袖珍键盘矩阵的每列线的中断被使能。然后,键按压触发中断。一旦微控制器检测到中断,袖珍键盘进入行扫描状态,其中袖珍键盘矩阵的所有行被顺序定时访问,以精确判定哪些键被按压,如果有的话。如果一个键按压正好被检测,键按压被认为有效,且袖珍键盘进入键释放检测状态。在键释放检测状态期间,用于有效键的列的中断被使能,而所有其它的列中断被禁止。因此,仅有效按压的键的释放将引起对微控制器的中断,它使能袖珍键盘忽视键误击。在键释放检测状态期间,当接收到中断时,袖珍键盘返回到行扫描状态,用于判定哪些键被按压。如果没有键被按压,这发生在原按压的键被释放时,袖珍键盘返回键按压检测状态。
然而,如果行扫描状态判定单个键保持按压,如在键翻转情况,下个键被认为有效,且袖珍键盘进入键释放检测状态。因此,在键翻转期间,这有时发生在用一个以上手指拨号时,两个在时间上部分重叠的单个键按压都被翻译为有效。
在行扫描状态期间,无论何时多个键被检测为按压,袖珍键盘被设置到当键被释放的任何时刻触发中断。然后,袖珍键盘被设置到键释放检测状态。在键释放检测状态期间,如果接收到中断,袖珍键盘返回行扫描状态,以判定任何保持单个键按压是有效的。因此,当多个键被同时按压时,这有时发生在键尺寸相比于用户手指的尺寸为小时,袖珍键盘假设最后释放的键是有效键按压。
本发明的优点是合理地翻译病态的键按压,且提供相对于传统的周期定时访问和基于中断的袖珍键盘扫描技术减少的袖珍键盘读取脉冲噪声、降低的成本、和减少的扫描复杂性。通过最小化定时访问周期,并减少袖珍键盘产生的中断的数量,微控制器也能由电子装置更有效地使用。
附图简单描绘

图1示出根据优选的实施方案的袖珍键盘的示意图;图2示出根据优选的实施方案,在键按压检测状态中的袖珍键盘的示意图;图3示出根据优选的实施方案,在行扫描状态中的袖珍键盘的示意图;图4示出根据优选的实施方案,在键释放检测状态中的袖珍键盘的示意图;图5示出根据优选的实施方案,键按压检测状态的流程图;图6示出根据优选的实施方案,行扫描状态的流程图;图7示出根据优选的实施方案,键释放检测状态的流程图。
图1示出根据优选的实施方案的袖珍键盘示意图。电子装置100的袖珍键盘矩阵70有例如,4键的6行11-14,21-24,31-34,41-44,51-54,61-64。在这个例子中,电子装置100是蜂窝电话手机,然而,其它有袖珍键盘的电子装置,如遥控器、无绳电话,和电子计算器可使用中断驱动的袖珍键盘扫描方法和装置。微控制器99,如Motorola HC12微控制器被连接于袖珍键盘矩阵70的行线和列线。
用微控制器99,袖珍键盘矩阵70的行线15,25,35,45,55,65能被设置到两个状态之一输出状态锁存逻辑0(低信号电平);或当上拉电阻18,28,38,48,58,68被使能时的高阻抗输入状态。优选地,上拉电阻是软件使能的,且由微控制器99控制。当然,可实现其它行线状态,如输出状态锁存逻辑1(高信号电平)到袖珍键盘矩阵,且有下拉电阻的高阻抗输入状态。每行线的状态由微控制器99独立控制的开关17,27,37,47,57,67确定。每列线10,20,30,40能被用于三态的任一个,三态由软件控制确定以中断屏蔽16,26,36,46下降沿触发中断,上升沿触发中断,和禁止中断。在每个三个列线状态中,上拉电阻19,29,39,49被连接到列线10,20,30,40,且列线被选择为高阻抗输入。
图2示出根据优选的实施方案,在键按压检测状态中的袖珍键盘的示意图。在键按压检测状态中,袖珍键盘矩阵70的所有行线15,25,35,45,55,65被设置到输出状态,且通过闭合开关17,27,37,47,57,67被锁存到逻辑0。所有列线10,20,30,40使它们关联的中断16,26,36,46被使能,且设置于在下降沿上触发。因此,如果任何键被按压,键按压在关联于按压的键的列线上将触发下降沿中断。一旦微控制器99接收到中断,微控制器99指令袖珍键盘进入行扫描状态,以精确判定哪个键被有效按压,如果有的话。
图3示出根据优选的实施方案,在行扫描状态中,袖珍键盘的示意图。在行扫描状态中,所有列线中断16,26,36,46被禁止,以避免由于反冲、袖珍键盘扫描、或其它键按压引起的伪中断。然后,微控制器99顺序地扫描所有6行,以判定哪个键被有效地按压,如果有的话。为了扫描如图3所示的第一行,行线15通过闭合开关17被设置到锁存于逻辑0的输出状态,且所有其它行线25,35,45,55,65通过断开开关27,37,47,57,67被设置到高阻抗输入状态。然后,微控制器99读所有列线10,20,30,40。下一步,通过闭合开关27设置行线25到锁存于逻辑0信号的输出状态,同时,微控制器99断开其它开关17,37,47,57,67以为留下的行线15,35,45,55,65产生高阻抗输入状态,第二行被扫描。再一次,微控制器99读所有列线。这个过程重复用于袖珍键盘矩阵70中的每行。
在行扫描状态期间,当列线读到逻辑0时,键按压被检测。这指示读到逻辑0的列线和含有闭合开关的行相交于按压的键所在之处。当那行的关联开关闭合且所有其它行的开关断开时,不含有按压的键的行引起所有列线读逻辑1。
在袖珍键盘矩阵中扫描所有行的过程至少间隔执行两次,且可如需要的次数一样多,以保证袖珍键盘信号反冲。在这个例子中,键11被按压,且当开关17闭合且其它开关27,37,47,57,67断开时,列线10读逻辑0和其它列线20,30,40读逻辑1时,键按压被检测,且在袖珍键盘扫描期间的所有其它时间,所有列线10,20,30,40读逻辑1。如果在这个状态中确有一个键按压被检测,键按压被认为有效,且袖珍键盘进入键释放检测状态。
图4示出根据优选的实施方案,在键释放检测状态中的袖珍键盘的示意图。在键释放检测状态中,袖珍键盘被配置,以便仅前一有效地按压的键11的释放将向微控制器99发送中断。有效地按压的键11的行线15被设置到锁存逻辑0的输出状态。利用开关27、37、47、57、67和软件使能的上拉电阻18、28、38、48、58、68,所有其它行线25、35、45、55、65被设置到高阻抗输入状态。关联于有效地按压键11的列线中断16被设置到触发在上升沿变换。所有其它列线中断26,36,46被禁止。
这个配置保证微控制器99将检测有效地按压的键11的释放,且没有其它的键按压或释放将发送中断到微控制器。这个特性是希望的,特别在不同时处理多个键按压的应用中,因为在这个配置中,额外的键按压和键释放将不中断微控制器。注意,其它中断配置可被用于保证仅有效地按压的键的释放将发送中断到微控制器。例如,当关联的行线15被设置到锁定逻辑1的输出状态,而其它行线25,35,45,55,65被用下拉电阻设置到输入状态时,关联的列线10能有设置到触发在下降沿变换上的中断16,其它的列线中断26,36,46被禁止。
当键释放产生中断,微控制器99返回行扫描状态,且袖珍键盘矩阵70被扫描和反冲,如根据图3描绘,以判定哪个键被按压,如果有的话。
图5示出根据优选的实施方案,健按压检测状态的流程图。在步骤501中,初始状态被设置到键按压检测。步骤511闭合图1中示出的所有开关17、27、37、47、57、67,以设置所有行线15、25、35、45、55、65输出逻辑0。步骤521使能下降沿触发的在袖珍键盘矩阵70的所有列线10,20,30,40上的中断。然后,微控制器99等待中断信号。注意,因为微控制器不需要周期地定时访问袖珍键盘矩阵,当它正等待中断时,微控制器可被用于监视或控制其它与袖珍键盘无关的电子装置的功能。一旦在步骤551中接收到中断,在步骤591中,设置状态到行扫描。
图6示出根据优选的实施方案,行扫描状态的流程图。步骤601示出微控制器在行扫描状态中。在行扫描状态中,步骤611禁止所有列线中断,且步骤613扫描袖珍键盘矩阵,如按照图3所描绘。步骤615指令微控制器等待予定的反冲周期,如20ms。一旦反冲周期结束,步骤617再次扫描袖珍键盘矩阵。在步骤621中,微控制器比较最近的两个袖珍键盘扫描的结果。如果比较的袖珍键盘扫描的结果不同,袖珍键盘未完成反冲,且微控制器返回步骤615。一旦袖珍键盘完成了反冲,最近两个袖珍键盘扫描的结果将一样,且步骤631判定多少个键被按压。
如果正好一个键被按压,如由袖珍键盘扫描所检测,步骤650指示键按压为有效。然后,有效的键按压可被显示和/或以数据进入微控制器。在步骤651含有有效的键按压的行线被设置到输出逻辑0,且所有其它行线被设置为高阻抗输入。步骤655使能含有检测的键的列线的中断为触发地上升沿,且禁止所有其它列线中断。这个配置保证仅检测的键的释放将中断微控制器,这将减少不需要的中断。在最后的步骤695中,状态被设置到键释放检测。
如果没有键被按压,如由袖珍键盘扫描所判定,步骤691设置状态等于键按压检测,这有效地复位袖珍键盘。如果一个以上键被按压,如由袖珍键盘扫描所判定,步骤641设置图1中示出的所有行线15、25、35、45、55、65输出逻辑0,且步骤645使能所有列线中断16、26、36、46为触发地上升沿。然后,步骤695设置状态等于键释放检测。这允许任何键释放中断微控制器。
图7示出根据优选的实施方案,键释放检测状态的流程图。步骤701示出微控制器在键释放检测状态中。在这个状态中,微控制器仅等待接收中断,如步骤751所示。在这个等待周期中,微控制器可监视和控制其它与袖珍键盘无关的功能。中断接收后,步骤791设置状态到行扫描。
一旦微控制器在键释放检测状态中被中断,微控制器返回行扫描状态。袖珍键盘在行扫描状态反冲后,微控制器判定是否没有,一个,或一个以上键被按压。如有没有键被按压,这通常在键释放检测状态中的有效键按压的释放触发上升沿中断时,袖珍键盘返回键按压检测状态。如果一个键被按压,这通常在键翻转情况,其中前一个有效按压的键在键释放检测状态中被释放,但新键也被按压,新按压的键被指示为有效,且袖珍键盘进到键释放检测状态。最后,如果一个以上键被同时按压,微控制器设置行线和列线,以便任何键释放触发中断,且微控制器使袖珍键盘回到键释放检测状态。
虽然上文描绘了中断驱动的袖珍键盘扫描方法和装置的具体元件和功能,本领域的技术人员在本发明的实质精神和范围内能使用少许或另外的功能。本发明仅由所附的权利要求限定。
权利要求
1.中断驱动的袖珍键盘扫描装置,包括袖珍键盘矩阵,有行线和列线;开关,耦合到所述行线,用于设置所述行线到输入状态或输出状态;禁止的下降沿变换中断发生器,耦合到所述列线;和禁止的上升沿变换中断发生器,耦合到所述列线。
2.如权利要求1所述的中断驱动的袖珍键盘扫描装置,还包括微控制器,耦合到所述列线,用于使能和禁止所述禁止的下降沿变换中断发生器和所述禁止的上升沿变换中断发生器。
3.如权利要求1所述的中断驱动的袖珍键盘扫描装置,还包括微控制器,耦合到所述行线,用于控制所述开关。
4.如权利要求1所述的中断驱动的袖珍键盘扫描装置,还包括第二下降沿变换禁止的中断发生器,耦合到所述袖珍键盘矩阵的第二列线;第二上升沿变换禁止的中断发生器,耦合到所述袖珍键盘矩阵的第二列线。
5.中断驱动的袖珍键盘扫描方法,用于至少有一行线和一列线和一个以上的键的袖珍键盘矩阵,包括步骤设置所述列线到有第二信号电平的输入状态,并设置所述行线到有第一信号电平的输出状态;使能中断发生器,以当所述列线从所述第二信号电平转换到所述第一信号电平时,产生到微控制器的列中断;用所述微控制器检测所述列中断;扫描所述行线,以判定是否没有、正好一个、或一个以上键被按压;如果一个以上键被按压设置所述列线到有第二信号电平的输入状态,且设置所述行线到有第三信号电平的输出状态;使能所述中断发生器,以当所述列线从所述第二信号电平转换到所述第三信号电平时,产生到所述微控制器的下一个列中断;和用所述微控制器检测所述下一个列中断。
6.如权利要求5所述的中断驱动的袖珍键盘扫描方法,还包括步骤如果正好一键被按压指示所述正好一键为有效;设置所述行线到有第四信号电平的输出状态;使能所述中断发生器,以当所述列线从所述第四信号电平转换到所述第二电平时,产生到所述微控制器的再一列中断;和用所述微控制器检测所述再一列中断。
7.如权利要求5所述的中断驱动的袖珍键盘扫描方法,还包括步骤如果没有键被按压设置所述列线到有所述第二信号电平的输入状态,并设置所述行线到有所述第一信号电平的输出状态;使能所述中断发生器,以当所述列线从所述第二信号电平转换到所述第一信号电平时,产生到所述微控制器的列中断;和用所述微控制器检测所述列中断。
8.中断驱动的袖珍键盘扫描方法,用于结构如下的袖珍键盘矩阵中有第一行线、第二行线、第一列线、第二列线、第一中断发生器耦合到所述第一列线、第二中断发生器耦合到所述第二列线、第一键耦合到所述第一行线和所述第一列线、第二键耦合到所述第一行线和所述第二列线、第三键耦合到所述第二行线和所述第一列线、且第四键耦合到所述第二行线和所述第二列线,包括步骤设置所述第一列线和所述第二列线到有第二信号电平的输入状态;设置所述第一行线和所述第二行线到有第一信号电平的输出状态;使能所述第一中断发生器,以当所述第一列线从所述第二信号电平转换到所述第一信号电平时,产生到所述微控制器的列中断;使能所述第二中断发生器,以当所述第二列线从所述第二信号电平转换到所述第一信号电平时,产生到所述微控制器的列中断;用所述微控制器检测列中断;扫描所述第一行线,以判定耦合到所述第一行线的所述第一键或所述第二键是否被按压;扫描所述第二行线,以判定耦合到所述第二行线的所述第三键或所述第四键是否被按压;判定是否零、正好一个、或一个以上键被按压;如果正好一键被按压指示所述正好一键为有效;设置耦合到所述正好一键的行线到有第四信号电平的输出状态;使能耦合到所述正好一键的中断发生器,以当耦合到所述正好一键的列线从所述第四信号电平转换到所述第二电平时,产生到微控制器的再一列中断;禁止未耦合到耦合到所述正好一键的列的所述中断发生器;和用所述微控制器检测所述再一列中断。
9.如权利要求8所述的中断驱动的袖珍键盘扫描方法,还包括步骤如果一个以上键被按压设置耦合到所述一个以上的键的列线到有第二信号电平的输入状态,并设置耦合到所述一个以上的键的行线到有第三信号电平的输出状态;使能耦合到所述一个以上的键的中断发生器,以当耦合到所述一个以上的键的列线中的至少一个从所述第二信号电平转换到所述第三信号电平时,产生到微控制器的下一列中断;禁止未耦合到耦合到所述一个以上的键的列线的所述中断发生器;用所述微控制器检测所述下一个列中断。
10.如权利要求8所述的中断驱动的袖珍键盘扫描方法,还包括步骤如果没有键被按压设置所述第一列线和所述第二列线到有所述第二信号电平的输入状态;设置所述第一行线和所述第二行线到有所述第一信号电平的输出状态;使能所述第一中断发生器,以当所述第一列线从所述第二信号电平转换到所述第一信号电平时,产生到所述微控制器的列中断;使能所述第二中断发生器,以当所述第二列线从所述第二信号电平转换到所述第一信号电平时,产生到所述微控制器的列中断;和用所述微控制器检测列中断。
全文摘要
中断驱动的袖珍键盘扫描方法和装置,在单个键按压应用中中断键按压。关联于袖珍键盘矩阵的每个列线的中断被设置到当键被按压时触发。一旦中断触发,微控制器定时访问行线以判定哪个键被有效地按压。如果正好一个键被检测,键按压有效。接着用于有效键的列线的中断被使能,同时其它列线中断被禁止。当下一中断被接收,袖珍键盘返回行扫描状态,用于判定哪个键被按压。如果没有键被按压,袖珍键盘返回键按压检测状态。
文档编号H03M11/00GK1195132SQ9712272
公开日1998年10月7日 申请日期1997年11月18日 优先权日1996年11月20日
发明者丹尼尔·F·金莫曼 申请人:摩托罗拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1