蓝桥杯单片机快速开发笔记——独立键盘

一、原理分析

二、思维导图

三、示例框架

复制代码
#include "reg52.h"  

sbit S7 = P3^0;        

sbit S6 = P3^1;        

sbit S5 = P3^2;        

sbit S4 = P3^3; 

void ScanKeys()

{

        if(S7 == 0)

        {

                Delay(500);

                if(S7 == 0)

                {

                        while(S7 == 0);

                }

        }

        if(S6 == 0)

        {

                Delay(500);

                if(S6 == 0)

                {

                        while(S6 == 0);

                }

        }

        if(S5 == 0)

        {

                Delay(500);

                if(S5 == 0)

                {

                        while(S5 == 0);

                       

                }

        }

        if(S4 == 0)

        {

                Delay(500);

                if(S4 == 0)

                {

                        while(S4 == 0);

                       

                }

        }

}
  1. 定义了四个位控制变量sbit,分别对应P3口的不同引脚,用于检测四个按键的状态。

  2. ScanKeys()函数用于扫描四个按键的状态,具体实现如下:

    • 首先检测按键S7是否被按下,如果被按下,则进行延时500个单位,并再次检测按键状态,确保按键稳定按下。
    • 类似地,对按键S6、S5、S4依次进行相同的检测流程,包括延时和稳定按下检测。
  3. 在每个按键被检测到按下后,进入一个while循环,等待按键释放,即等待按键不再处于按下状态。

相关推荐
念越5 小时前
蓝桥杯17届功能测试模拟1期题目及解析(1)
功能测试·蓝桥杯·测试用例·场景法
_Ningye5 小时前
STM32 — 6.1 TIM定时中断
stm32·单片机·嵌入式硬件
hjxu20166 小时前
【OpenClaw 龙虾养成笔记一】在远程服务器,使用Docker安装OpenClaw
服务器·笔记·docker
sinat_255487816 小时前
读者、作家 Java集合学习笔记
java·笔记·学习
FreakStudio7 小时前
把 Flask 搬进 ESP32,高中生自研嵌入式 Web 框架 MicroFlask !
python·单片机·嵌入式·cortex-m3·异步编程·电子diy
observe1017 小时前
输入输出1
笔记
AnalogElectronic7 小时前
RP2040 pico 实验6,光敏电阻传感器模块(LM393 比较器版)
单片机
电子工程师成长日记-C518 小时前
51单片机4乘4计算器
单片机·嵌入式硬件·51单片机
梅尔文.古8 小时前
ADCU-Ethernet-以太网在AUTOSAR与Linux架构下对比
arm开发·单片机·汽车
没有医保李先生8 小时前
esp32和stm32的工程宏定义
stm32·单片机·嵌入式硬件