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

一、原理分析

二、思维导图

三、示例框架

复制代码
#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循环,等待按键释放,即等待按键不再处于按下状态。

相关推荐
摇滚侠8 分钟前
Spring Boot 3零基础教程,WEB 开发 自定义静态资源目录 笔记31
spring boot·笔记·后端·spring
摇滚侠9 分钟前
Spring Boot 3零基础教程,WEB 开发 Thymeleaf 遍历 笔记40
spring boot·笔记·thymeleaf
mc235621 分钟前
STM32F103C8T6--深入GPIO
stm32·单片机·嵌入式硬件
兆龙电子单片机设计1 小时前
【STM32项目开源】STM32单片机智能家居控制系统
stm32·单片机·物联网·开源·毕业设计·智能家居
Chloeis Syntax1 小时前
接10月12日---队列笔记
java·数据结构·笔记·队列
QT 小鲜肉1 小时前
【个人成长笔记】Qt 中 SkipEmptyParts 编译错误解决方案及版本兼容性指南
数据库·c++·笔记·qt·学习·学习方法
A9better1 小时前
嵌入式开发学习日志41——stm32之SPI总线基本结构
stm32·单片机·嵌入式硬件·学习
xyx-3v1 小时前
STM32 AFIO时钟什么情况需要开启?
stm32·单片机·嵌入式硬件
Cathy Bryant2 小时前
矩阵乘以向量?向量乘以向量?
笔记·神经网络·考研·机器学习·数学建模
点灯小铭2 小时前
基于单片机的四沟道步进电机玉米补种机设计与实现
数据库·单片机·嵌入式硬件·毕业设计·课程设计·期末大作业