Google
载入中...




站长个人入口
载入中...


公告
载入中...


我的分类(专题)
载入中...


日志更新
载入中...


最新评论
载入中...


留言板
载入中...


链接
 
 

如何利用比较少的IO来实现N个按键?
手心 发表于 2006-12-8 9:00:00
近日发现对于按键很多人还停留在单片机教材的水平。不知道如何实现N个按键的硬件处理。
 
本人有一种实现方法可以用来借鉴一下,个人认为还不错。
利用串行芯片74HC595配合来实现N个按键的硬件处理。
大家都知道,74HC595只需要3条IO就可以实现其控制。
首先讨论一片74HC595的情况:
我们将这三条IO来做行扫描线,译码后可以得到8条行扫描线。这里可以相当一个3-8译码器,但是比3-8译码器所需要的IO资源要少。列扫描线直接用IO做。
单 IO----|-|-|-|-|-|-|-|-----
片 IO----|-|-|-|-|-|-|-|-----
机 IO----|-|-|-|-|-|-|-|-----
          74HC595的IO
由于74HC595的级联不需要新的IO支持,所以,我们在上面示意图中可以在后面添加更多的74HC595来实现更多的按键。
单 IO----|-|-|-|-|-|-|-|---------|-|-|-|-|-|-|-|-----
片 IO----|-|-|-|-|-|-|-|---------|-|-|-|-|-|-|-|-----
机 IO----|-|-|-|-|-|-|-|---------|-|-|-|-|-|-|-|-----
          74HC595的IO       74HC595的IO……
如果IO资源够多,我们也可以多使用几条单片机的IO做列扫描线,比如用8条单片机IO做列扫描线,可以实现8*8键盘,在单片机IO资源不够的时候,行扩展就开始发挥作用了。比如你只有三条单片机IO资源,要实现48个按键就只需要2片74HC595配合就可以了。
 
该方案个人觉得情况如下:
1、对于按键响应时间要求不是很苛刻的情况下使用。
2、按键需求比较多,但是又没有足够的IO资源
3、单片机速度够快,74HC595本身移位速度很快,用51移位基本不用考虑速度问题,单片机速度够快才能够比较方便的扫描到后面的键盘而不丢键。

阅读全文 | 回复(1) | 引用通告 | 编辑
 


Re:如何利用比较少的IO来实现N个按键?
chen_jia_(游客)发表评论于2009-4-30 1:55:00
chen_jia_(游客)还有一种方法,利用单片机的内部AD和外部电阻网络来实现,资源利用率比LZ的方法多。

个人主页 | 引用 | 返回 | 删除 | 回复
 


发表评论:
载入中...