工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

电路设计->微机单片机电路图->单片机综合电路图->用单片机I/O口线实现键盘和LED数码显示电路

用单片机I/O口线实现键盘和LED数码显示电路

作者:dolphin时间:2011-05-05

在比较复杂的控制系统中,单片机(MCU)的I/O口线总是不多的,而外围的芯片往往占用我们比较多的I/O端口,例如A/D转换器,外围存储器,以便用于存放程序或表格,同时单片机中一些赋于其它功能的I/O复用口(例如中断),它们有更重要的用途,一般我们也不能把它们用作普通的I/O口,因为它们的资源更有用,我们也想利用最少引脚的单片机来实现更多功能的控制,此时,我们就想利用简单便宜的扩展芯片来扩展I/O口.以下介绍的电路,可以使用任何一种具有富裕 7个I/O口线来实现24个按键的键盘和6个七段数码管的控制电路。
我们选用价廉物美的74LS164串入并出移位寄存器芯片来扩展这个电路,分别与键盘和6个七段数码管显示器连接,74LS164(1)的串行输入端与单片机相连,时钟端分别与另一I/O口连接,单片机通过输入端向74LS164发送字段码,经移位转换后驱动LED的字段,同时,单片机通过串行输入端向74LS164(2)发送键盘扫描代码和LED的位选代码,键盘的列扫描代码由74LS164(2)的数据输出端提供,位选信号经过驱动器(三极管或驱动门电路)驱动各位LED,键盘的的三条行线直接由单片机的I/O口提供,向键盘扫描线分时提供扫描代码.

键盘共有24个按键,我们可以定义为0-9,A-F十六进制的数字键,还有8个按键我们设置为F1-F8功能键,键值识别采用扫描方式即可获得,分时向74LS164(2)发送键控码,使其一输出为低,然后逐个判断三个行线的电平,即可识别出哪个按键按下.逐个进行识别,直到把24个按键全部扫描完毕.然后,单片机向74LS164(1)发送需要显示的字段码,同时向74LS164(2)发送分时选位通信号,使6个LED位分时选通,驱动LED发光.
需要注意的是,由于键扫描或显示驱动均采用串行的方式向74LS164发送字段码信号,耗时比采用并行的方式较长,所以单片机使用的时钟频率不能太低,否则扫描的结果会出现LED闪烁现象,效果不佳,同时考虑到单片机仍要处理其它程序,采用的时钟频率以达到工程要求为准.



评论

技术专区