按键扫描16Hz-单片机通用模板

一、按键扫描的原理

1、直接检测高低电平类型

在这里插入图片描述

  • 单片机的IO设置下拉读取高电平,或设置上拉读取低电平;通过判断IO的高低电平从而判断按键状态。

2、矩阵扫描类型

在这里插入图片描述

  • 设置3个IO上拉输入,先扫描第一列对地按键是否检测到低电平;KEY1输出低电平检测SW6是否是低电平,是低电平–>KEY1设置上拉,KEY2输出低电平验证SW6是否按下;同理SW7、SW8也是正反扫判断是否按下。

3、ADC检测类型

在这里插入图片描述

  • 通过硬件搭建分压电阻电路,通过按键按下电阻分压读取ADC判断范围从而判断哪个按键按下。

二、key.c的实现

1、void keyScan(void) 按键扫描函数

/*
* *		Key Define
 */	
#define	IO_MitKey			P21
#define	IO_TemKey			P13
#define	IO_TimeKey			P14
#define	IO_ModeKey			P16
#define	IO_StrAddKey		P17
#define	IO_StrDecKey		P35		//自定义按键引脚IO

#define MicKey			0x01
#define TemKey			0x02
#define TimeKey	    	0x04
#define ModeKey	    	0x08
#define StrAddKey	  	0x10
#define StrDecKey	  	0x20	   //自定义按键标志

//全局变量
bit b_KeyTone_Flag=0;		//按键声标志
bit	b_KeepUp_Flag=0;		//按键保持标志
bit	b_Skip_Flag=0;			//按键非法标志
u8	keyNum

相关推荐

  1. 32单片机按键扫描 实现长短按

    2024-02-10 06:36:03       68 阅读
  2. 单片机精进之路-4独立按键扫描

    2024-02-10 06:36:03       51 阅读
  3. ADC通道检测功能-单片机通用模板

    2024-02-10 06:36:03       86 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-10 06:36:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-10 06:36:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-10 06:36:03       82 阅读
  4. Python语言-面向对象

    2024-02-10 06:36:03       91 阅读

热门阅读

  1. 5 scala的函数式编程简介

    2024-02-10 06:36:03       48 阅读
  2. 《动手学深度学习(PyTorch版)》笔记8.2

    2024-02-10 06:36:03       51 阅读
  3. 计算机网络(第六版)复习提纲28

    2024-02-10 06:36:03       40 阅读