首页 > 其他分享 >51单片机 3.1独立按键的基本操作

51单片机 3.1独立按键的基本操作

时间:2024-11-01 21:46:59浏览次数:5  
标签:P3 delay5ms S7 3.1 51 独立 while 按键 基本操作

一、电路图及分析

(部分解释参考网络,仅用于学习记录)

蓝桥杯单片机的板子将独立按键和矩阵按键结合了起来,通过一个短接片选择使用独立按键还是矩阵按键。

首先我们先看原理图的左下角绿色方框所标的地方,这里与我们板子上的短接片所对应,是选择按键工作模式的地方。

6c2e5d3174cc41b8b3bd81704daec420.jpg

 

 

如果短接23,按键中,我们能检测到的按键就只有第一列的按键,那么按键工作模式被设置成独立按键;如果我们选择短接12,那么就可以检测到全部按键,按键工作模式被设置成矩阵按键

当按键未被按下时,连接到单片机的I/O端口通过上拉电阻维持高电平状态;当按键被按下时,该端口被拉至低电平。单片机通过检测端口电平的变化来判断按键是否被按下

相应的独立按键也对应着P3^0~P3^3端口。

理想中,我们摁下独立接键瞬间,我们能得到低电平,在我们松开手的瞬间,我们又得到一个高电平。但是在实际中,我们由高电平到低电平,再由低电平到高电平是需要一定的变化时间的,很短但是存在。

同样,为了避免因按键接触不良或外界干扰造成的误操作,通常会采用软件去抖动的方法。这通常涉及到检测到按键状态变化后,延时一段时间再次检测,以确认按键是否真的被按下。

 

根据不同的题目要求,独立按键的状态也要作出相应的变化。有的题目要求摁下时是一个状态,松开是另外一个状态。有的题目则只要求摁下是什么状态。

二、代码

 

#include "reg52.h"  //定义51单片机特殊功能寄存器
 
/** 独立按键接口 */
sbit S7  = P3 ^ 0;
sbit S6  = P3 ^ 1;
sbit S5  = P3 ^ 2;
sbit S4  = P3 ^ 3;

void delay5ms()
{
unsigned char i,j;
i=54;
j=199;
do
{
while(--j);
}while(--i);
}
 
void cls_buzz(void)
{
    P2 = (P2 & 0x1F | 0xA0);
    P0 = 0x00;
    P2 &= 0x1F;
}
 
//主函数
void main(void)
{
    cls_buzz();
 
    while(1)
    {
        if(S7 == 0)//如果S7被摁下
        {
          delay5ms();//延时消抖
          if(S7 == 0)//确认S7被摁下
          {
           //输入你想进行的操作(摁下独立按键时)
            while(S7 == 0);∥如果按键一直被摁下,状态不改变
           //输入你想进行的操作(松开独立按键时)
           }
        }

          if(S6 == 0)
        {
            delay5ms();//延时消抖
             if(S6 == 0)//确认S6被摁下
          {
             //输入你想进行的操作(摁下独立按键时)
            while(S6 == 0);
              //输入你想进行的操作(松开独立按键时)
           }
        }

           if(S5 == 0)
        {
             delay5ms();//延时消抖
              if(S5 == 0)//确认S5被摁下
              {
                  //输入你想进行的操作(摁下独立按键时)
                    while(S5 == 0);
                  ∥输入你想进行的操作(松开独立按键时)
               }
          }

            if(S4 == 0)
        {
             delay5ms();//延时消抖
              if(S4 == 0)//确认S4被摁下
              {
                  //输入你想进行的操作(摁下独立按键时)
                   while(S4 == 0);
                  ∥输入你想进行的操作(松开独立按键时)
               }
         }
    }
}
 


以上就是我们独立按键的基本控制的代码,下一节我会给出具体的例子。

 

 

 

标签:P3,delay5ms,S7,3.1,51,独立,while,按键,基本操作
From: https://blog.csdn.net/2301_81325637/article/details/142731133

相关文章

  • 悉硕512GB固态硬盘RTS5766DL量产工具开卡成功教程,量产部落RTS5766 SSV6量产工具,支持EC
    固态硬盘坏了怎么办,比如不认盘、无法分区、无法格式化、反应慢、读写蓝屏死机无响应等等比较严重的故障,这时候该怎么办呢?难道只能扔掉重新买一个吗?实际上是完全可以自己修好的,从量产部落下载量产工具,使用量产工具对固态硬盘进行开卡,基本可以修复固态硬盘90%以上的故障问题。手中这......
  • 51单片机蓝牙遥控小车中遇到的问题及解决方案&步骤心得
    一、遇到的问题及解决方案Q1:马达与车盘连接不牢固。A:可用橡皮筋缠紧连接处(如图)。Q2:L298N电机驱动模块无法驱动电机。A:若是仅仅连接了一个EN引脚则可能需要对ENA(或B)的两个引脚输入同样的电平。Q3:测试蓝牙时无法将程序烧录到单片机上。A:蓝牙模块的收发口与单片机的收......
  • 51c~C语言~合集1
    一、C语言和C++的区别 C语言虽说经常和C++在一起被大家提起,但可千万不要以为它们是一个东西。现在我们常用的C语言是C89标准,C++是C++99标准的。C89就是在1989年制定的标准,如今最新的是C11和C++11标准。根据不同的标准,它们的功能也会有所不同,但是越新的版本支持的编译器越少,所以本......
  • AP5101C 支持PWM 调光功能 ,可通过DIM脚用 PWM 信号调节 LED 输出电流。
    AP5165B系统上电后通过VIN脚对芯片供电,当VIN电压高于2.5V后,芯片电路开始工作。为了芯片有更好的稳定性,建议VIN最小工作电压在3V以上,VIN脚对芯片地要并接一个1uF旁路电容。PCB布板的时VIN电容需要紧挨着端口布局。PWM调光设置AP5165B芯片可以通过外加PWM脉......
  • AP5165B 系统上电后通过 VIN 脚对芯片供电,当 VIN 电压高于 2.5V 后,芯片电路开始工作。
    产品描述AP5165B是一款外围电路简单的连续电流模式的降压型LED恒流驱动芯片。在输入电压高于LED电压时,可以有效地用于驱动一颗或者多颗串联LED。输出电流可调,大可达1A。适用于3-36V电压范围的非隔离式恒流LED驱动领域。AP5165B内置功率开关和一个高端电流检测电路,可以......
  • AP5165B 系统上电后通过 VIN 脚对芯片供电,当 VIN 电压高于 2.5V 后,芯片电路开始工作。
    产品描述AP5165B是一款外围电路简单的连续电流模式的降压型LED恒流驱动芯片。在输入电压高于LED电压时,可以有效地用于驱动一颗或者多颗串联LED。输出电流可调,最大可达1A。适用于3-36V电压范围的非隔离式恒流LED驱动领域。AP5165B内置功率开关和一个高端电流检测电路,可......
  • 当访问该网站时失败,提示Forbidden或HTTP 错误 403.14 - Forbidden报错信息
    当您遇到“Forbidden”或“HTTP错误403.14-Forbidden”时,这通常意味着服务器理解了请求,但拒绝执行。这种错误可能由多种原因引起,以下是一些常见的解决方法:检查URL:确保输入的网址正确无误。检查是否有任何多余的字符或拼写错误。服务器配置问题:对于IIS服务器,403.14......
  • 论文概览 |《Urban Analytics and City Science》2024.09 Vol.51 Issue.7
    本次给大家整理的是《EnvironmentandPlanningB:UrbanAnalyticsandCityScience》杂志2024年9月第51卷第7期的论文的题目和摘要,一共包括20篇SCI论文!论文1Spatialinequalitiesandcities:Areview空间不平等与城市:综述【摘要】ThisspecialissueofEnvironm......
  • SpringBoot社区老人颐养关爱平台05161(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,活动类型,社区活动,志愿活动,健康申报,健康建议,活动报名开题报告内容一、项目名称社区老人颐养关爱平台设计与实现二、研究背景与意义随着老龄化社会......
  • AP5126 是一款 PWM 工作模式,高效率、外围简单、内置功率管,适用于 12-80V 输入的高精
    高性能摩托车灯降压恒流ic全亮/半亮/循环模式短路保护AP5126产品描述AP5126是一款PWM工作模式,高效率、外围简单、内置功率管,适用于12-80V输入的高精度降压LED恒流驱动芯片。输出最大功率可达15W,最大电流1.2A。AP5126可实现全亮/半亮功能切换,通过MODE切换:全亮/半亮/......