51单片机学习之独立键盘输入
2019-10-12 11:23:43

概念基础

上拉电阻

上拉电阻就是将一个不确定信号(高或低电平),通过一个电阻与电源VCC相连,固定在高电平,电阻同时起限流作用。下拉同理,也是将一个不确定信号(高或低电平),通过一个电阻与地GND相连,固定在低电平。上拉电阻和下拉电阻二者共同的作用是:

  • 避免电压的“悬浮”,否则会容易产生积累电荷,静电荷造成电路的不稳定;
  • 在引脚电平不定的时候,让后面有一个稳定的电平;
  • 提高输出引脚的驱动能力。

键盘防抖

当按一次按键时,由于按键有反应时间,以及抖动,造成机器感应到多次按键操作,而防抖就是让按键在抖动的过程中(一般是5-10ms)仅让机器感应到按键的一次操作。

软件防抖程序思路:

软件防抖程序思路

程序代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<reg52.h>

sbit led0 = P1^0;
sbit k1 = P3^4;

void Delay(unsigned int ms){
unsigned int i ,j;
for(i = ms; i > 0; i--){
for(j = 112; j>0; j--);
}
}

void main(){
P1 = 0xff;
while(1){
if(k1 == 0){ //判断是否有按下按键的信号
Delay(5); //延时5ms,防抖
if(k1 == 0){ //再次判断是否按键按下
while(k1 == 1); //直到按键松开,之后后续代码
led0 = ~led0; //
}
}
}
}
Prev
2019-10-12 11:23:43
Next