51单片机——独立键盘输入

本文介绍了51单片机中按键的使用,包括认识按键、P3口的第二功能、按键消抖的软件和硬件方法。详细阐述了软件消抖的原理和判断按键一次按下与释放的具体步骤,以及硬件消抖的电容和RS触发器方案。通过程序流程图和实际代码展示了如何实现一个按键控制两个LED灯、四个按键控制八个LED灯,以及如何利用按键改变LED灯的状态。
摘要由CSDN通过智能技术生成

一.认识按键

在这里插入图片描述
如上图所示为直插式按键,按下按键后松手按键立即弹起。有4个引脚,可以看出4各引脚每两个向内弯曲,弯曲的对立面两个引脚导通,其余不导通。即1和4之间是导通的,2和3之间是导通的,而1和2,3和4之间是不导通的,只有按下按键才能使其导通。

二.P3口的第二功能

在不使用第二功能时它就是普通的I/O口。
P3口第二功能表

引脚 第二功能
P3.0 RxD:串行口接收数据输入端
P3.1 TxD:串行口发送数据输出端
P3.2 TNT0:外部中断申请输入端0
P3.3 TNT1:外部中断申请输入端1
P3.4 T0:外部计数脉冲输入端0
P3.5 T1:外部计数脉冲输入端1
P3.6 WR:写外设控制信号输出端
P3.7 RD:读外设控制信号输出端

三.按键消抖

键盘软件消抖

按键一般是利用机械触点的闭合、断开作用,由于机械触点的弹性作用,在其闭合、断开瞬间均有抖动过程,抖动时间一般在5一10mS,稳定闭合时间由操作人员的按键动作决定,一般为零点几秒到几秒。为了保证单片机对一次闭合,仅作一次键输入操作,必须在编程时候编写必要的程序代码来去除抖动影响,称键盘软件消抖。

判断键一次按下的具体方法

先判断键是否按下,若按下了延时10 ms,跳过按下抖动期,然后再判断按键是否按下,若是说明按键真的按下了,否则说明是干扰信号,如果键真的按下了,则等待键释放,如果键释放了,延时10 ms,再判断键是否释放,若释放了,说明按键真的释放了,否则说明是干扰信号,如果按键真的释放了,说明一次完整的按键过程完成了。在一次完整的按键后,可以连接该键对应的功能程序段,以实现特定的功能。
在这里插入图片描述

硬件消抖

利用电容的放电延时,采用并联电容法,电路图如下所示:
在这里插入图片描述
除了利用电容进行消抖,也可利用RS触发器:
在这里插入图片描述

四.程序流程图(程序思路)

Created with Raphaël 2.2.0 检测按键是否按下 延时消抖 检测按键是否按下 执行按键按下之后要执行的程序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值