使用ADC作单位片机键盘接口.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用ADC作单片机键盘接口发布日期:2005-05-21 作者:王曙光张宏升来源:现代电子技术?? 摘 要:详细介绍了利用AD转换器扩展单片机键盘的2种方法,并对这两种方法进行了分析和比较。这种方法实现简单,节省单片机资源,在智能仪表应用中具有实际意义。  关键词:AD转换器;单片机;键盘;智能仪表  在单片机系统中,键盘是常用的一种人机接口。一般来说,键盘的扩展分为2种,独立式和矩阵式,前者适用于按键数量少(一般小于4个)或规模小的系统,后者适合在按键数量较多的系统,但一般需要扩展接口芯片。因为单片机的I/O口有限,我们总是希望扩展键盘时占用尽量少的I/O口线。其实,A/D转换器也可以用来扩展键盘,而且不多占用I/O口线,按键的数量可多达几十个。  使用AD转换器的键盘电路主要由一个电阻分压队列和一系列按键组成,如图1所示,图中电阻阻值相同,不同的按键按下时,VO端有不同的电压值输出给A/D转换器转换成不同的数字量,单片机据此进行按键识别。  1 第一种电路  最容易想到的是图1(a)的连接方式,n个电阻组成的分压电路,每个分压点引出一个按钮,事实证明这种接法是可以可靠工作的。第i个键按下时:  以常用的8位ADC为例,其分辨率是1/256,理论上可以扩展256个按键,考虑到误差的因素以及工作可靠性取8/256,尚可扩展32个按键。  这个电路存在一个显著的缺点,如果有2个键同时按下,当其中一个键是A1时,结果是A1有效,另一个无效;当这两个键都不是A1时,就会发生错误。最极端的情况是A2和An同时按下,此时VO是2.5 V,既不是A2的值,也不是An的值,其他的情况也和这种情况相似。所以这个电路对多键操作没有保护,多键操作会产生错误结果。  如果在输出侧加二极管,如图中虚线,理论上是可以工作的。但仔细分析,发现由于二极管存在开启电压,实际上只能扩展很少几个按键。假设普通硅二极管,开启电压取0.7 V,第n个键的输出应满足:5/n>0.7n,n最大只能取2,显然不实用。2 第二种电路  对第一种电路稍加改进,就可以实现多键保护操作。 把最下面的电阻移一个位置,换到输出侧,如图1(b)所示。这个电路中,多个键同时按下时,只有最上面的那个键有效,其余都无效。这个电路还有一个优点,就是当没有键盘操作时,电路完全断开,不消耗能量,更适合低功耗设计的原则。  图1(b)电路中,第i个键按下时输出电压是:  同样以8位ADC为例,取VO的最小输出为8Vi/256,估算按键的数量:    结果n最大为6,数量比较少,原因是按键的输出值不像图1(a)的连接那样,是不均匀的,按键输出值按调和级数减小,下降的速度太快,所以电路需要进一步改进。  从图中分析各个按键的输出情况,可以发现最后一个电阻Rx对所有按键的输出都有影响,如果把最后一个电阻的阻值适当增大,按键输出值下降的速度会减慢。假设取Rx为xR,此时,第i个键按下时输出电压是:  依照上述条件和方法,对按键个数再做一次估算,取x=5,n最大为9。  n的极值实际是由最后2个按键的最小电压差(键值 分辨率)决定的,设此值为1/A,则:??? 可以得到,当时,n有极大值。所以x也不是越大越好,他与最后2个按键的最小电压差有关,n的极值也与此有关。取此时n有极大值。当键值分辨率提高,即A增大时,n的极大值增大,扩展按键数量增加,相应的Rx的阻值也要增大。3 按键去抖动  机械按键按下和弹起的瞬间,由于触点的弹性会产生一连串的抖动,一般的抖动时间是5~10 ms,普通按键动作的稳定时间是零点几秒。为了取得正确的键值,必须设法消除抖动的影响。对按键的去抖动,可以使用软件延时,多次采样的办法,图2是软件流程。当CPU检测到A/D转换值发生变化时,认为有按键动作,首先进行10 ms延时,然后再读取键值,为了可靠,一般要读取多次,进行比较(本例中是读取2次)。多次读取的键值,不可能是完全相同的,在误差允许范围内,就认为是相同的,为此,将键值的低2位忽略。4 应用实例  智能化是仪器仪表的发展方向,与普通仪表相比,智能仪表的主要特点是完全数字化、数据处理能力强、自制 性强、具有通信功能等。同时要求仪表更加小巧简洁、功耗更低。笔者在定量仪的升级改造中使用了A/D通道扩展按键的方法。    定量仪是在线测量纸叶厚度的仪表。原来的定量仪有10个数字键、7个功能键、还有小数点、符号各1个键、确认键和复位键共21个按键,其中复位键单独接,不在讨论之列。改造时,首先采用单键复用、双键组合减少按键的数量:数字键、小数点和符号合用一个按键,功能键只用2个,保留确认返回键。  定量仪的处理器是8031,其ADC使用的是ICL7135。ICL7135是4位半BCD码输出的高精度AD转换器。定量仪要采集的模拟信号有3路,原来的

文档评论(0)

dsdmlwz1v9 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档