四脚轻触按键开关的工作原理及接法

您所在的位置:网站首页 四脚开关怎么接线变两角开工 四脚轻触按键开关的工作原理及接法

四脚轻触按键开关的工作原理及接法

2023-12-14 10:58| 来源: 网络整理| 查看: 265

四脚轻触按键开关的工作原理及接法

image-20220917201307835

上图为四脚轻触开关的尺寸图和电路图。

根据专家的经验,一般只要是对角就可以直接焊接。

需要注意的是,按下按钮开关的工作原理,按下按钮时接近,即导通松开时,芯片分离,即断开。

事实上,四脚轻触开关与普通按钮开关的工作原理基本相同,由常开触点、常闭触点组合而成。在四脚按钮开关中,常开触点的作用是,当压力向常开触点施加压力时,该电路处于连接状态,取消该压力时,恢复原始常闭触点,即所谓的断开。这种压力是用我们的手打开按钮,关闭按钮的动作。

注:按键开关的工作原理,就是按键按下的时候两个贴片挨近了,也就是导通了;松开的时候,贴片分离,也就是断开了。

轻触四角按键开关,看着感觉挺复杂,其实它的工作原理很简单,在没有人使用它时,四个脚只有两个在一起,当它被按下时四个脚是连接的。以上对轻触四角开关的介绍很详细,感兴趣的朋友可以坐下来细细研究哦

独立键盘与单片机连接时,每一个按键都需要单片机的一个 I/O 口,若某单片机系统需较多按键,如果用独立按键便会占用过多的 I/O 口资源。单片机系统中 I/O 口资源往往比较宝贵,当用到多个按键时为了减少 I/O 口引脚,引入了矩阵键盘。本章以 4*4 矩阵键盘为例讲解其工作原理和检测方法。开发板上将 16 个按键排成 4 行 4 列,第一行将每个按键的一端连接在一起构成行线,第一列将每个按键的另一端连接在一起构成列线,这样便一共有 4 行 4 列共 8 根线,我们将这 8 根线连接到单片机的 8 个 I/O 口上,通过程序扫描键盘就可检测 16 个键。用这种方法我们也可实现 3 行 3 列 9 个键、 5 行 5 列 25 个键、 6 行6 列 36 个键甚至更多。

无论是独立键盘还是矩阵键盘,单片机检测其是否被按下的依据都是一样的,也就是检测与该键对应的 I/O 口是否为低电平。独立键盘有一端固定为低电平,单片机写程序检测时比较方便。而矩阵键盘两端都与单片机 I/O 口相连,因此在检测时需编程通过单片机 I/O 口送出低电平。检测方法有多种,最常用的是行列扫描和线翻转法。

行列扫描法检测时,先送一列为低电平,其余几列全为高电平(此时我们确定了列数),然后立即轮流检测一次各行是否有低电平,若检测到某一行为低电平(这时我们又确定了行数),则我们便可确认当前被按下的键是哪一行哪一列的,用同样方法轮流送各列一次低电平,再轮流检测一次各行是否变为低电平,这样即可检测完所有的按键,当有键被按下时便可判断出按下的键是哪一个键。当然我们也可以将行线置低电平,扫描列是否有低电平。从而达到整个键盘的检测。

线翻转法,就是使所有行线为低电平时,检测所有列线是否有低电平,如果有,就记录列线值;然后再翻转,使所有列线都为低电平,检测所有行线的值,由于有按键按下,行线的值也会有变化,记录行线的值。从而就可以检测到全部按键。 矩阵键盘也少不了按键消抖的环节,本章实验中采用的是行列扫描法来检测 哪个按键按下。

电路是集成的,4*4 矩阵按键引出的 8 根控制管脚直接连接到 51 单片机的 P1 IO 口上。电路中的 P17 表示矩阵键盘第 1 行,P14 表示矩阵键盘第 1 列.

/************************************************************************************* ​ * 实验现象:下载程序后数码管显示0,按下矩阵按键上的按键显示对应的数字 注意事项: ​   ************************************************************************************** ​ */ #include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器 ​ typedef unsigned int u16;  //对数据类型进行声明定义 typedef unsigned char u8; ​ #define GPIO_DIG P0 #define GPIO_KEY P1 ​ ​ u8 KeyValue; //用来存放读取到的键值 ​ //数码管 u8 code smgduan[17]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//显示0~F的值 // /******************************************************************************* * 函 数 名         : delay * 函数功能   : 延时函数,i=1时,大约延时10us *******************************************************************************/ void delay(u16 i) { while(i--); } ​ /******************************************************************************* * 函 数 名         : KeyDown * 函数功能   : 检测有按键按下并读取键值 * 输   入         : 无 * 输   出         : 无 *******************************************************************************/ void KeyDown(void) { char a=0; GPIO_KEY=0x0f; if(GPIO_KEY!=0x0f)//读取按键是否按下 { delay(1000);//延时10ms进行消抖 if(GPIO_KEY!=0x0f)//再次检测键盘是否按下 { //测试列 GPIO_KEY=0X0F; switch(GPIO_KEY) { case(0X07): KeyValue=0;break; //0111 case(0X0b): KeyValue=1;break; //1011 case(0X0d): KeyValue=2;break; //1101 case(0X0e): KeyValue=3;break; //1110 } //测试行 GPIO_KEY=0XF0; switch(GPIO_KEY) { case(0X70): KeyValue=KeyValue;break; case(0Xb0): KeyValue=KeyValue+4;break; case(0Xd0): KeyValue=KeyValue+8;break; case(0Xe0): KeyValue=KeyValue+12;break; } } } while((a


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3