先附上代码

主要根据按键是否按下的标志位实现

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;
}

按键硬件图

蓝桥杯按键识别(长按短按,按下与松开)相关推荐

  1. STM32-蓝桥杯嵌入式之三行按键检测(按键的长、短,单击、双击)

    STM32-蓝桥杯嵌入式之三行按键检测(按键的长.短,单击.双击) 目录 STM32-蓝桥杯嵌入式之三行按键检测(按键的长.短,单击.双击) 一.检测按键下降沿分析 二.检测按键上升沿分析 三.按键检 ...

  2. 记录C语言学习【单个按键之长按+短按】

    最近学习C语言,偶然看到一句话很是赞同. 学会了的境界: 境界1是自己看会了: 境界2自己独立做出来了: 境界3自己可以独立做出来,并描述出来了: 境界4可以把别人教会了. 初学单片机C语言,本按键程 ...

  3. Java实现蓝桥杯模拟空地长草

    问题描述 小明有一块空地,他将这块空地划分为 n 行 m 列的小块,每行和每列的长度都为 1. 小明选了其中的一些小块空地,种上了草,其他小块仍然保持是空地. 这些草长得很快,每个月,草都会向外长出一 ...

  4. 蓝桥杯按键处理解决办法

    文章目录 前瞻知识 列矩阵按键写法 行矩阵按键写法 矩阵键盘写法 独立按键写法1 独立按键写法2   前瞻知识 1.如何生成stc的头文件 直接点保存文件到你建的目录下方就行了,就可以直接使用这个头文 ...

  5. 【蓝桥杯】最长等差素数数列

    [题目] 在小于10的素数中有3.5.7组成的等差数列,在小于30的素数中有11.17.23.29组成的等差数列. 试找出区间[100,1000]内的素数构成的最大等差数列(即等差数列包含的素数个数最 ...

  6. 蓝桥杯单片机 独立按键与矩阵按键

    文章目录 前言 一.蓝桥杯按键原理图 二.独立按键与矩阵按键处理思路 1.独立按键 2.矩阵按键 代码实现 总结 前言 按键设计一般分为两种:独立按键和矩阵键盘.按键数量较少的用前者,按键数量较多的用 ...

  7. 按键的拓展:长按短按 (2)

    上一篇文章中,按键的长按短按是按照 短按--第一次长按--第二次长按,按顺序来的. 但是今天重读考题发现,考察的不是按顺序先短按,后长按一个一个来:而是对按下时间长短有一个判断:比如说:只要按下按键, ...

  8. 蓝桥杯嵌入式——题目总结及文章汇总

    蓝桥杯嵌入式--题目总结及文章汇总 一.前言 笔者也是最近准备参加第十二届蓝桥杯嵌入式的选手,希望能够和大家一起学习.我也将我自己学习过程中,学习stm32遇到的一些问题,以及刷题的代码等都进行了整理 ...

  9. 蓝桥杯第七届省赛JAVA真题----压缩变换

    压缩变换 小明最近在研究压缩算法. 他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比. 然而,要使数值很小是一个挑战. 最近,小明需要压缩一些正整数的序列,这些序列的特点是,后面 ...

最新文章

  1. 【百战GAN】自动增强图像对比度和颜色美感,GAN如何做?
  2. [递归]递归问题解题思路
  3. teamviewer设备数量上限怎么解决_支小蜜刷脸支付设备解决方案,支小蜜刷脸支付设备怎么使用...
  4. ARM产品二十年路线图
  5. springmvc源码阅读3--dispatcherServlet reqeust的执行流程
  6. Java虚拟机知识点【栈帧】
  7. 人工智能 AI 概念梳理
  8. ADAS视觉方案盘点:摄像头、芯片和算法
  9. 单元测试-Mock Server
  10. 【sketchup 2021】草图大师的场景优化工具3【新建材质、材质编辑面板的详细说明】【重要】
  11. poj3345——bribing FIPA
  12. django中查询的select_related方法和prefetch_related方法
  13. 儿童智能手环方案/案列/APP/小程序/网站
  14. python交互编程模式_进入python交互模式的方法
  15. KDA,token.Kadena链的一些常识
  16. Codingame - C - OnboardingThe Descent
  17. CSS span标签中文字水平垂直对齐
  18. 问卷调查抽奖系统开发
  19. Retrofit 使用
  20. depot_tools window 安装流程

热门文章

  1. 好签H5签字SDK,支持PC端实现网页手写
  2. win10电脑出现网络问题时,如何解决?
  3. Flutter 打包APP (Android IOS)
  4. 使用 CSS prefers-* 规范,提升网站的可访问性与健壮性
  5. 蛙蛙推荐:蛙蛙牌asp上传组件,(有完整注释)
  6. 前端必备技能之如何制作精灵图
  7. 线程基础8-quene讲解
  8. 专注互联网产品的核心价值
  9. 订阅号运营规范(安全教程):数据分析
  10. AT32 与SRAM/PSRAN/NOR FLASH的接口简介