当前位置: 首页 > article >正文

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

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

  • 一、按键扫描的原理
    • 1、直接检测高低电平类型
    • 2、矩阵扫描类型
    • 3、ADC检测类型
  • 二、key.c的实现
    • 1、void keyScan(void) 按键扫描函数
      • ①void FHiKey(void) 按键按下功能
      • ②void FSameKey(void) 按键长按功能
      • ③void FLowKey(void) 按键释放功能
  • 三、key.h的功能和变量外部接口
  • 四、keyScan()的使用和Note

一、按键扫描的原理

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

http://www.kler.cn/news/232990.html

相关文章:

  • Docker-CE 国内源国内镜像
  • div 2_div 3_ div 4_刷题刷题刷题
  • Linux线程 分离和同步与互斥 条件变量
  • 华为 Huawei 交换机 黑洞MAC地址的作用和配置示例
  • JMM(Java内存模型)
  • 系统架构24 - 软件架构设计(3)
  • 已解决org.springframework.aop.AopInvocationException异常的正确解决方法,亲测有效!!!
  • Python中的嵌套字典访问与操作详解
  • VR全景技术可以应用在哪些行业,VR全景技术有哪些优势
  • 无心剑汉英双语诗《龙年大吉》
  • Docker概述
  • 《MySQL 简易速速上手小册》第4章:数据安全性管理(2024 最新版)
  • LabVIEW热电偶自动校准系统
  • FastDFS安装并整合Openresty
  • 【SpringBoot】JWT令牌
  • 【正式】今年第一篇CSDN(纯技术教学)
  • python29-Python的运算符之in运算符
  • Redis实现秒杀
  • SpringCloud-Ribbon实现负载均衡
  • Linux操作系统基础(六):Linux常见命令(一)
  • Python进阶:标准库
  • PySpark(三)RDD持久化、共享变量、Spark内核制度,Spark Shuffle、Spark执行流程
  • QT学习(五)C++函数重载
  • CISCRISC? CPU架构有哪些? x86 ARM?
  • lnmp指令
  • 【5G NR】移动通讯中使用的信道编解码技术
  • 入门指南|Chat GPT 的兴起:它如何改变数字营销格局?
  • 《MySQL 简易速速上手小册》第9章:高级 MySQL 特性和技巧(2024 最新版)
  • vue3 之 商城项目—home
  • 《Docker极简教程》--Docker基础--基础知识(二)