首页|嵌入式系统|显示技术|模拟IC/电源|元件与制造|其他IC/制程|消费类电子|无线/通信|汽车电子|工业控制|医疗电子|测试测量
首页 > 分享下载 > 常用文档 > AD转换用于键盘输入

AD转换用于键盘输入

资料介绍
AD转换用于键盘输入

5.4 A/D转换用于键盘输入

当I/O口资源紧缺时,用一个A/D转换输入口来检测多个按键就显得必要了。只要使不
同的键按下时,A/D转换输入端的电压不同,就可识别出该键。其接口电路的结构如图5
.9所示。
无键按下时,P34端为电源电压VCC,当K1键按下时,P34端电压最低,是电阻R1和R2
的分压。适当选择各个分压电阻的值,可使K1,K2,K3,K4四个键分别与A/D转换结果的
高四位值1、2、4、8相对应。即当按下一个键时,只使高四位中某位置“1”,其他位为“
0”,这样可使键检测程序简化。低位的值由于分压电阻值的离散性和电源电压不稳定,
而呈现不确定性,在识别按键时应将其忽略。同样,接连两次测到某个键按下时,才确
认该键。
此键检测子程序如下,其中ADCON是A/D转换控制寄存器, F_STA
是A/D转换的起动位,即ADCON寄存器的位4。ADH,
ADL是A/D转换寄存器,分别存放A/D转换结果的高2位和低8位。依次读ADH和ADL即可得出
10位的读数。
当只要高8位读数时,只需不去读ADH, 直接读 图5.9 键检测电路
ADL即可。buf_ad单元是存放A/D转换结果的缓冲器。键值放在累加器A中。
下面列出应用A/D转换进行键测试的子程序。
;------------------------------------------------------
; 应用A/D转换的键测试子程序 AD_KSUB
;------------------------------------------------------
AD_KSUB:
LDM #0, P3DR ; 设P3口为输入口
AD转换用于键盘输入
本地下载

评论