长沙营销网站建设公司,如何做手机网站,山东省交通运输厅网站开发单位,网站建设程序本文是关于独立按键的介绍及使用。首先介绍了按键#xff0c;包括什么是按键及使用按键时如何实现软件消抖。然后使用proteus仿真实现独立按键控制LED指示灯的操作。 之前的LED、蜂鸣器、数码管中IO口都是作为输出使用#xff0c;这里通过独立按键实验介绍IO口作为输入的使用… 本文是关于独立按键的介绍及使用。首先介绍了按键包括什么是按键及使用按键时如何实现软件消抖。然后使用proteus仿真实现独立按键控制LED指示灯的操作。 之前的LED、蜂鸣器、数码管中IO口都是作为输出使用这里通过独立按键实验介绍IO口作为输入的使用。 文章目录 一、按键介绍二、独立按键检测原理三、硬件设计四、软件设计 一、按键介绍
按键是一种电子开关使用时按开关按钮就可使开关接通当松开手时开关断开。简单的按键及内部简易图如下 按键管脚两端距离长的表示默认是导通状态距离短的默认是断开状态。
如果按键按下初始导通状态变为断开初始断开状态变为导通。
通常的按键使用的开关为机械弹性开关当机械触电断开、闭合时电压信号如下所示 由于机械点的弹性作用按键开关在闭合时不会马上稳定的接通在断开时也不会一下子断开。因而在闭合和断开的瞬间均伴随着一连串的抖动。抖动时间的长短由按键的机械特性决定一般为5ms到10ms。
按键稳定闭合时间的长短由操作人员的按键动作决定一般为零点几秒至数秒。按键抖动会引起按键被误读多次。为了确保CPU对按键的依次闭合仅作一次处理必须及时进行消抖。
按键消抖有两种方式一种是硬件消抖另一种是软件消抖。为了使电路更加简单通常采用软件消抖。
软件消抖一般来说一个简单的按键消抖就是先读取按键的状态如果得到按键按下之后延时10ms再次读取按键状态如果按键还是按下状态那么说明按键已经按下。其中的延时10ms就是软件消抖处理。
常用的软件去抖动方法
先设置IO口为高电平由于开发板IO有上拉电阻默认IO为高电平读取IO口电平确认是否有按键按下如果有IO电平为低电平后延时几个毫秒再读取该IO电平如果仍为低电平说明按键按下执行相应按键的程序
键盘分为编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件编码器实现并产生键编码号或键值的称为编码键盘如计算机键盘。靠软件编程来识别的键盘称为非编码键盘。
单片机系统中用的较多的是非编码键盘。非编码键盘又分为独立键盘和行列式键盘(即常说的矩阵键盘)。
二、独立按键检测原理
独立按键电路构成是由各个按键的一个管脚连接在一起接地按键其它引脚分别接到单片机IO口。
单片机的IO口既可作为输出也可作为输入使用当检测按键时用的是它的输入功能独立按键的一端接地另一端与单片机的某个IO口相连开始时先给IO口赋一高电平然后让单片机不断检测该IO口是否变为低电平当按键闭合时相当于该IO口通过按键与地相连变成低电平程序一旦检测到IO口变为低电平则说明按键被按下然后执行相应的指令。
三、硬件设计
要实现的功能是通过开发板上的独立按键控制LED指示灯亮灭。使用到的硬件资源如下
LED指示灯K1按键
proteus中仿真如下 从电路中可以知道该电路是独立的4个独立按键的控制管脚直接连接到单片机的P3^0 ~ P3^3 IO口上。
要想单片机能够检测按键是否按下需要通过单片机管脚来控制独立按键。
四、软件设计
实现代码如下
/*实现功能使用独立按键控制指示灯的亮灭[2023-12-06] zoya
*/
#include reg52.htypedef unsigned int u16;sbit KEY1 P3^0; // 独立按键#define GPIO_LED P2 // 指示灯// 延时函数i1延时10us
void delay(u16 i)
{while(i--);
}// 独立按键处理函数
void keypros()
{if(0 KEY1){ // 2. 读取IO口是否为低电平确认按键是否按下delay(1000); // 3. 延时10msif(0 KEY1) { // 4. 在读取IO口判断是否为低电平如果仍然是低电平说明按键按下GPIO_LED ~GPIO_LED; // 5. 执行按键按下的操作}while(!KEY1); // 6. 稳定闭合期间保持按键操作}
}void main()
{KEY1 1; // 1. 先设置IO口为高电平GPIO_LED 0xFF; // 默认指示灯为不亮状态while(1){keypros();}
}仿真结果