用51单片机的Pl口实现独立的键盘控制
扫描二维码
随时随地手机看文章
独立式按键就是各按键相互独立,每个按键单独占用一根I/O口线,每根I/O口线的按键工作状态不会影响其他I/O口线上的工作状态。因此,通过检测输入线的电平状态可以很容易判断哪个按键被按下了。
独立式按键的优点是电路配置灵活,软件结构简单,并且能同时检测到多个键被按下的情况。但缺点是每个按键需占用一根I/O口线,在按键数量较多时,I/O口浪费大,电路结构复杂。因此,此键盘常用于按键较少的系统或操作速度较高的场合。
计本电路由上拉电阻和按键组成,对于每路键盘来讲,当键没有按下时,单片机相应引脚上的电平为低电平,当键按下时,单片机相应引脚上的电平为高电平,详细电路如下图所示。
程序设计
程序中采用轮询的方式,不断地扫描Pl口各个引脚的电平,根据引脚电平的高低判断是否有键按下。该程序中采用延时法消除键盘抖动问题。以下是完整的程序:
当系统需要的按键数量不多时,独立式按键不失为一种简单可行的解决方案。但需要较多按键时,该方案占用IO资源太多。在本实例中,采用顺序检测的方法实现各个按键的检测,并调用相应的按键处理程序,如果按键处理程序运行时间较长,有可能无法及时响应用户的按键动作,导致出现“按键失灵“现象。在使用中,要注意每个按键处理程序的运行时间,尽量避免出现“按键失灵“现象。