您的位置:首页技术文栏精典网文
内容搜索:
阅读内容
背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  

单个I/O口实现多按键输入

[日期:2008-01-29 ] [来源:网络 作者:佚名] [字体: (投递新闻)

单片机应用中,经常要用到按键输入,在有较多按键输入的情况下,通常会使用矩阵式扫描方法来完成,例如对于16个按键输入的场合,会使用4×4矩阵键盘,这需要占用较多的i/o口(如8个),而对于单片机来说,其i/o口资源非常有限,当i/o口资源紧缺时,只好选用成本更高的具有更多i/o口的单片机来使用,本文介绍一种只用一个或两个i/o口实现多按键输入的方法。

对于使用一个i/o口来实现多按键输入,有个前提条件,就是这个i/o口具有a/d转换功能,只要使不同的键按下时,a/d转换输人端的电压不同,就可识别出所按的键,其电路如下图所示。  

单个I/O口实现多按键输入

在无键按下时,i/o口端电压为电源电压vcc,当s1键按下时,i/o口端电压最低,是电阻r1r2的分压,当s2键按下时,i/o口端电压变高,是电阻r1和(r2+r3)的分压,同理,当s3s4按下时,电压会更高,通过对该i/o口的a/d转换值的大小进行判断,就可以得知所按下的哪一个键。

图中只列出了4个按键的例子,在实际使用中,适当调整电阻值,可使按键数增加很多,在8a/d转换中,按键数甚至达到上百个。

对于无a/d转换功能的单片机,可通过使用2i/o口达到以上同样的功能

阅读:
录入:JETTA

推荐 】 【 打印
本文评论
      全部评论
发表评论


点评: 字数
姓名:
站长推荐