新闻  |   论坛  |   博客  |   在线研讨会
旋钮式键盘及其与AT89C52的接口技术
tvb2058 | 2007-12-09 11:12:51    阅读:1945   发布文章

如今单片机技术发展迅速,单片机系统已被广泛地应用于国民经济的各个领域。很多单片机应用系统需要输入设备,典型的输入设备要数键盘了。目前使用的键盘主要有两类:按键式键盘和旋钮式键盘。手机按键、微机键盘都属于按键式键盘。本文介绍的是旋钮式键盘的实现方法。

1  旋钮式键盘结构及特性

  61525-1型旋钮式键盘结构非常简单,外形只有4个引脚,如图1所示。


图1  旋钮式键盘

  当按键按下时(称为确认,下同),键盘的引脚1和引脚3相通;松开确认时,键盘有两种稳定状态,特性如表1所列。

表1

2  硬件电路及工作原理

  硬件电路如图2所示。这里为了简化电路,直接将键盘的引脚接到AT89C52的I/O引脚上。电路中,RS是系统复位信号,P1.2用来控制软件清除外部中断1,并通过锁存器来实现。


图2  硬件连接

  此种键盘只有三种操作,即顺时针旋转、逆时针旋转和确认。电路加电后,用示波器分别观察键盘在旋转过程中PIN2、PIN4的波形,得到图3所示的波形。


图3  波形图

  此键盘的工作原理是,根据三种操作表现出来的不同特性来确定相应的应用。应用中,通过读取AT89C52的P1.0和P1.1两引脚的值就可以判断旋转的方向。键盘的确认可以产生外部中断1。

3  软件实现

3.1  抖动的消除

  旋钮在旋转过程中,所产生的波形并不如图3那样光滑,在上升沿/下降沿位置会出现因抖动而产生的毛刺。程序实现过程中,只有多次读的状态相同才认定是稳定的,否则继续读,直到达到稳定状态。这样既可以防止电路毛刺引起的读键盘状态出错,也可以防止因毛刺存在而将一次旋转旋钮操作错误判断成多次旋转(即多次计数)。实现的流程如图4所示(流程图中P2_OK、P4_OK分别表示 P1.0、P1.1值)。

  实现的源程序见本刊网络补充版(http://www.dpj.com.cn)。


图4  读键程序

3.2  实现计数

  由图3可以看出,顺时针转动时,PIN2先跳变;逆时针转动时,PIN4先跳变,且都有00、01、10、11四个稳定状态。顺时针转动时状态变化为00→10→11,或者11→01→00;逆时针转动时状态变化为00→01→11,或者11→10→00,且01、10的状态是暂时性的(称为中间状态)。所以,可以通过初始状态和中间状态的状态变化判断旋钮的旋转方向,实现流程如图5所示。


图5  从键盘状态判断旋转方向

  只要我们定义键盘顺时针旋转进行加1操作,逆时针旋转则减1操作,这样就可以实现计数了。源程序见本刊网络补充版(http://www.dpj.com.cn)。

3.3  实现编辑

  在编辑过程中,键盘有三种操作:顺时针旋转、逆时针旋转和确认。其中顺时针旋转时,显示给定字符集中的下一个字符;逆时针旋转时,显示给定字符集中的上一个字符;确认键用来产生外部中断1,进入外部中断处理程序。本例中是对给定的字符集进行编辑,并指定最大可编辑长度,处理时在字符集的后面加了特定的特殊字符,以控制编辑过程的退出,且将字符集看作是一个循环结构,即第一个字符和所加的取消控制字符构成循环。

  程序中有三种退出编辑命令的方法:一是选中取消键,二是选中确认键,三是输入的字符长度达到最大值。退出编辑命令是在外部中断服务程序中实现的。

  实现编辑的流程如图6所示,外部中断服务程序流程如图7所示。


图6  编辑处理流程


图7  外部中断1处理程序流程

  说明:在外部中断服务程序中,还要考虑换行显示和换屏显示的问题,在这里不作叙述。源程序略。

结语

  旋钮式键盘占用面积小,应用既方便又美观,实现起来也很方便。本文结合自己工作实践,对旋钮式键盘基于AT89C52的应用进行了阐述。实际应用中,利用旋钮式键盘的计数特性,还可以实现菜单的显示、选择控制等,本文没有一一叙述。对于键抖动问题,还可以采用硬件电路来消除,这里也不作叙述。

参考文献

1  成都木马科技编著. 单片机原理及应用. 北京:北京希望电子出版社,2000

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客