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

时间:2007-05-25
摘要:BOOTSTRAP用于在MSP430设计开发及系统更新时对Flash存储器的编程。它可以用经串口协议的命令来激活,使得用户可以通过PC控制MSP430,并实现数据交换。烧断Flash的熔丝是用来保护用户在Flash中的程序代码。本文主要介绍我们制作的BOOTSTRAP这一开发工具的功能、软硬件结构以及熔断工具的制作方法。


关键词:

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

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值)。

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

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操作,这样就可以实现计数了。源程序见本刊网络补充版(https://www.dpj.com.cn)。
3.3 实现编辑

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

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

实现编辑的流程如图6所示,外部中断服务程序流程如图7所示。
说明:在外部中断服务程序中,还要考虑换行显示和换屏显示的问题,在这里不作叙述。源程序略。
结 语
旋钮式键盘占用面积小,应用既方便又美观,实现起来也很方便。本文结合自己工作实践,对旋钮式键盘基于AT89C52的应用进行了阐述。实际应用中,利用旋钮式键盘的计数特性,还可以实现菜单的显示、选择控制等,本文没有一一叙述。对于键抖动问题,还可以采用硬件电路来消除,这里也不作叙述。

  
上一篇:彩色TFT液晶显示控制电路设计/其ASIC实现
下一篇:数字化视频采集技术

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料