一、按键介绍
轻触开关是一种电子开关。
使用:轻按开关按钮可使电路接通、松开,开关断开
二、独立开关工作原理
按键断开和闭合时,触点会存在抖动现象。
P0口:为了实现三态,采用OC(集电极悬空输出)输出,这种电路结构,只有下拉能力,高电平输出没有电流,在高电平时表现为高阻态;加上上拉电阻,就会失去高阻态,变成 1、0 两态(通俗的说就是加上上拉电阻的目的是控制高低电平,不加上拉电阻只用高电平(状态:1),呈高阻态,没有低电平(状态:0)。
NOT(非门):高电平通过变为低电平,低电平通过变为高电平。
2.1、消除按下/松开按键抖动的电路
三、代码
#include <reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;
sbit led=P2^0; // led 灯连接的管脚
sbit k1 = P3^1; // RXD(接收数据) 连接k1 k1连接在P31
/*延迟函数*/
void delay(u16 i){ // int 类型的i
while(i--); // i自减
}
/*自定义函数*/
void keypros(){ // 按键
if(k1==0){ // 判断P31口是否是低电平
/* 软件消抖 */
delay(1000); // 延迟约为10毫秒
if(k1==0){
led =~led; // 取反 状态反转
}
while(!k1); // 按键松开
}
}
void main(){
while(1){
keypros();
/* led = 0; // 低电平点亮 LED灯
delay(50000); // 延迟450ms,可以看到效果
led=1; // 高电平 熄灭LED
delay(50000); // 延迟450ms
*/
}
}