旋钮式键盘及其与AT89C52的接口技术

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

1 旋钮式键盘结构及特性

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



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


2 硬件电路及工作原理

硬件电路如图2所示。这里为了简化电路,直接将键盘的引脚接到AT89C52的I/O引脚上。电路中,RS是系统复位信号,P1.2用来控制软件清除外部中断1,并通过锁存器来实现。
  
此种键盘只有三种操作,即顺时针旋转、逆时针旋转和确认。电路加电后,用示波器分别观察键盘在旋转过程中PIN2、PIN4的波形,得到图3所示的波形。

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


3 软件实现

3.1 抖动的消除

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



3.2 实现计数

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



只要我们定义键盘顺时针旋转进行加1操作,逆时针旋转则减1操作,这样就可以实现计数了。

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

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

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



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

结 语

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

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表