蓝桥杯按键识别(长按短按,按下与松开)
先附上代码
主要根据按键是否按下的标志位实现
unsigned char BTNkey_readonce_lors(void)
{static unsigned char BTNkey_press_los=0; //每过10ms检测一次,如果连续5次有效static unsigned char BTNkey_free_los=0; //检测按键是否松开 ,按下为1static unsigned char BTNkey_value_los=0xFF; //键值static unsigned int BTNkey_pushTimes; //记录按键时间unsigned char temp;P3|=0x0F; //低4位输出高电平temp=P3&0x0F; //取P3低4位if(temp!=0x0F) BTNkey_press_los++; //有键按下else BTNkey_press_los=0; //抖动if(BTNkey_press_los==5){BTNkey_pushTimes=gTimer_1ms; //当前时间记录下来BTNkey_free_los=1;BTNkey_value_los=0xFF; //可要可不要switch(temp){case 0x0E: BTNkey_value_los=7;break; //1110 S7case 0x0D: BTNkey_value_los=6;break; //1101 S6case 0x0B: BTNkey_value_los=5;break; //1011 S5case 0x07: BTNkey_value_los=4;break; //0111 S4default: break; }}if((BTNkey_free_los==1)&&(temp==0x0F)) //前面已经识别按键,并且按键已经释放{BTNkey_free_los=0;if((gTimer_1ms-BTNkey_pushTimes)>1000) //按键识别到释放的时间{return BTNkey_value_los+20;}else {return BTNkey_value_los;}}else if((BTNkey_free_los)&&(temp!=0x0F)) //按键按下,但没松开{return (BTNkey_value_los+2);}else return 0xFF;
}
按键硬件图
蓝桥杯按键识别(长按短按,按下与松开)相关推荐
- STM32-蓝桥杯嵌入式之三行按键检测(按键的长、短,单击、双击)
STM32-蓝桥杯嵌入式之三行按键检测(按键的长.短,单击.双击) 目录 STM32-蓝桥杯嵌入式之三行按键检测(按键的长.短,单击.双击) 一.检测按键下降沿分析 二.检测按键上升沿分析 三.按键检 ...
- 记录C语言学习【单个按键之长按+短按】
最近学习C语言,偶然看到一句话很是赞同. 学会了的境界: 境界1是自己看会了: 境界2自己独立做出来了: 境界3自己可以独立做出来,并描述出来了: 境界4可以把别人教会了. 初学单片机C语言,本按键程 ...
- Java实现蓝桥杯模拟空地长草
问题描述 小明有一块空地,他将这块空地划分为 n 行 m 列的小块,每行和每列的长度都为 1. 小明选了其中的一些小块空地,种上了草,其他小块仍然保持是空地. 这些草长得很快,每个月,草都会向外长出一 ...
- 蓝桥杯按键处理解决办法
文章目录 前瞻知识 列矩阵按键写法 行矩阵按键写法 矩阵键盘写法 独立按键写法1 独立按键写法2 前瞻知识 1.如何生成stc的头文件 直接点保存文件到你建的目录下方就行了,就可以直接使用这个头文 ...
- 【蓝桥杯】最长等差素数数列
[题目] 在小于10的素数中有3.5.7组成的等差数列,在小于30的素数中有11.17.23.29组成的等差数列. 试找出区间[100,1000]内的素数构成的最大等差数列(即等差数列包含的素数个数最 ...
- 蓝桥杯单片机 独立按键与矩阵按键
文章目录 前言 一.蓝桥杯按键原理图 二.独立按键与矩阵按键处理思路 1.独立按键 2.矩阵按键 代码实现 总结 前言 按键设计一般分为两种:独立按键和矩阵键盘.按键数量较少的用前者,按键数量较多的用 ...
- 按键的拓展:长按短按 (2)
上一篇文章中,按键的长按短按是按照 短按--第一次长按--第二次长按,按顺序来的. 但是今天重读考题发现,考察的不是按顺序先短按,后长按一个一个来:而是对按下时间长短有一个判断:比如说:只要按下按键, ...
- 蓝桥杯嵌入式——题目总结及文章汇总
蓝桥杯嵌入式--题目总结及文章汇总 一.前言 笔者也是最近准备参加第十二届蓝桥杯嵌入式的选手,希望能够和大家一起学习.我也将我自己学习过程中,学习stm32遇到的一些问题,以及刷题的代码等都进行了整理 ...
- 蓝桥杯第七届省赛JAVA真题----压缩变换
压缩变换 小明最近在研究压缩算法. 他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比. 然而,要使数值很小是一个挑战. 最近,小明需要压缩一些正整数的序列,这些序列的特点是,后面 ...
最新文章
- 【百战GAN】自动增强图像对比度和颜色美感,GAN如何做?
- [递归]递归问题解题思路
- teamviewer设备数量上限怎么解决_支小蜜刷脸支付设备解决方案,支小蜜刷脸支付设备怎么使用...
- ARM产品二十年路线图
- springmvc源码阅读3--dispatcherServlet reqeust的执行流程
- Java虚拟机知识点【栈帧】
- 人工智能 AI 概念梳理
- ADAS视觉方案盘点:摄像头、芯片和算法
- 单元测试-Mock Server
- 【sketchup 2021】草图大师的场景优化工具3【新建材质、材质编辑面板的详细说明】【重要】
- poj3345——bribing FIPA
- django中查询的select_related方法和prefetch_related方法
- 儿童智能手环方案/案列/APP/小程序/网站
- python交互编程模式_进入python交互模式的方法
- KDA,token.Kadena链的一些常识
- Codingame - C - OnboardingThe Descent
- CSS span标签中文字水平垂直对齐
- 问卷调查抽奖系统开发
- Retrofit 使用
- depot_tools window 安装流程