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

一、原理分析

二、思维导图

三、示例框架

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

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-03-17 08:06:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-17 08:06:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-17 08:06:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-17 08:06:04       18 阅读

热门阅读

  1. 测试人员如何进行需求分析?

    2024-03-17 08:06:04       23 阅读
  2. linux之LVM管理

    2024-03-17 08:06:04       21 阅读
  3. Linux查看mysql安装目录

    2024-03-17 08:06:04       26 阅读
  4. C++ 枚举

    2024-03-17 08:06:04       19 阅读
  5. React Hooks、useState、useEffect 、react函数状态

    2024-03-17 08:06:04       19 阅读
  6. 对LitJson开源插件的自定义尝试

    2024-03-17 08:06:04       21 阅读
  7. C#实现约瑟夫环算法

    2024-03-17 08:06:04       24 阅读
  8. Educational Codeforces Round 163 (Rated for Div. 2) (A~C)

    2024-03-17 08:06:04       20 阅读