ad键盘设计原理及方法

ad键盘设计原理及方法

ID:6382611

大小:81.00 KB

页数:5页

时间:2018-01-12

ad键盘设计原理及方法_第1页
ad键盘设计原理及方法_第2页
ad键盘设计原理及方法_第3页
ad键盘设计原理及方法_第4页
ad键盘设计原理及方法_第5页
资源描述:

《ad键盘设计原理及方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于MSP430单片机的A/D键盘设计1.1设计原理  原理图如图1-1所示,PA0为模拟电压输入口,初始化为悬浮状态。PC3~PC0初始化为输出低电平,分别接4个发光二极管,它输出的16种状态1111~0000分别表示按键S15~S0被按下。  当不同的按键被按下时,AD转换的电压不同,通过AD转换值便可以判断出是哪个按键被按下。AD转换出来的结果共有10位,在程序中取其高8位作为有效位,便可以分辨出16个按键。按键、输入电压和AD转换值(高8位)的对应关系如表1所示。                     图1-1键盘显示原理图 按键转换电压(V)AD转换值(理论)无0$00S00.

2、156$08S10.469$18S20.781$28S31.094$38S41.406$48S51.719$58S62.031$68S72.344$78S82.656$88S92.969$98S103.281$A8S113.594$B8S123.906$C8S134.219$D8S144.531$E8S154.844$F8  但是,在实际中不可能得到很准确的AD转换值,这是由于存在以下几种误差:  ◆对于同一个电压值,AD多次转换的结果不可能完全相同。  ◆电阻的误差。电阻值由于制作以及温度的原因,误差较大,所以不可能得到很准确的分压。本例采用的电阻精度为±5%。  ◆其它干扰。  在本例

3、中,允许AD转换值的误差范围为:±4。将该误差换算为:  每个按键的输入电压的允许误差:±(4/256)*5.0v=±0.078v  每个按键的分压电阻的允许误差:±(4/256)*16000欧=±250欧  误差示意图如图1-2所示,若按键S5被按下,经过AD转换,若实际转换值在允许误差之内,即:(理论值-4)≤实际转换值(高8位)<(理论值+4),则认为S5被按下,否则程序不响应。其它按键处理方法与此相同。  在电阻的选用时,应该非常注意电阻的累计误差。例如在图1-1中,如果电阻R0~R9均比实际值高出25欧,则累加到电阻R10时,电阻值的累计误差为250欧,则电阻值会超出允许范围,从

4、而采到错误的电压值。  如果选用精度为±1%电阻,则可以分辨出32个按键。                     图1-2 AD转换值的允许误差  消抖方法:在按键闭合和打开的瞬间会产生许多尖脉冲,持续时间约几毫秒到几十毫秒。因而在程序中,当检测到按键被按下后,便开始读取键值,每隔8ms读一次键值,直到连续4次读取的键值完全相同,则认为抖动已经消除。消抖时间为8msX4=32ms。 1.2  软件设计  主程序每隔8ms扫描一次键盘,并刷新一次显示。主程序流程如图1-3所示。                    图1-3主流程图1.3 结语  利用A/D做键盘扫描,可以大大节省单片机的

5、IO口资源。 1.4     参考电压(可以使用430输出的,但这样要占一个引脚,也可以用外接的参考源,比如TL431搭的,但这样比较耗电,至少有1mA左右。)接到一串等值的电阻上,比如由10个1K电阻(阻值仅供参考,实际上取值时应以总值为计算根据,并结合抗干扰和耗电问题得出,电阻总值越大越省电但越容易受到干扰,反之则越耗电但不容易受到干扰,另外这个电阻取值还与AD输入端上的下拉电阻值有关)串联起来,即可实现10按键。在从参考到离地最近的每个结点上接一个微动按钮到AD的输入端上(这是必须占用的引脚),并在AD输入端上对地接一支下拉比如47K或100K,然后启动AD采样,通过得到的电压值不同

6、,只要判断它在哪段范围,则可以得到对应的按钮被按下的消息了。但注意要设定参考值,还有就是电阻误差造成AD取值的误差。所以最好是取一个区间,或是最好能有一个测试向导类的程序来帮助确定键值。 那个电路图在网上看过,真是佩服,不知道是怎么想出来的....不过与低攻耗有些矛盾,那样做是不是必须轮寻采样.不说电流大,时间上就不合适....感觉键盘还是用中断的好... 其实不是的,我说的这种是耗电最大的方案了,可以更省电的,关键看代码了。要省电就需要以下两步:第一,不要用外部参考源,可以直接使用一个IO端口,从430得到参考源。第二,不需要定时轮询,而是使用P1和P2的中断功能。注意最低的一个电阻上端

7、电位要达到变为高电平的条件,否则不能触发中断。接下来的完整流程就是:1、先设置AD输入端为IO输入模式,即SEL=0、DIR=0,并且设置为上沿触发后使能中断。然后睡去。2、在IO的中断服务程序中转换该P口为SEL=1,变为AD的输入端。3、启动参考源,并从端口输出到电阻串上。4、启动AD采样,得到采样值。5、重复采样N次,以确定一段时间内按键的变化情况,防止抖动干扰用。6、关闭采样,关闭参考源,恢复该端口为SEL=0。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。