在51单片机上用定时器实现按键长按、短按功能。
2018-03-10 14:08
260 查看
我们在项目中常常需要在只有一个按键的情况下,来实现长按执行某个功能,短按执行另一个功能。
鉴于此,用51搭的核心板实测,亲测可行。好了,废话少说,简单粗暴,直接贴上程序结构。
主函数()
{
}
在进入while大循环中,先要配置定时器。
在while中核心是:使用两个if块判断,第一个if块判断按键是否按下,在第一个if块里面只进行按键按下标志位设置和定时器计数。
在第二个if块里根据第一个if块定时器计数来执行长短按功能,记得在退出第二个if块时,按键按下标志位(press_flag)和定时器
计数变量(count)都要清零。
……
定时器配置和中断服务程序就不贴出来了。
基本逻辑就是这样了。
鉴于此,用51搭的核心板实测,亲测可行。好了,废话少说,简单粗暴,直接贴上程序结构。
主函数()
{
}
在进入while大循环中,先要配置定时器。
在while中核心是:使用两个if块判断,第一个if块判断按键是否按下,在第一个if块里面只进行按键按下标志位设置和定时器计数。
在第二个if块里根据第一个if块定时器计数来执行长短按功能,记得在退出第二个if块时,按键按下标志位(press_flag)和定时器
计数变量(count)都要清零。
……
定时器配置和中断服务程序就不贴出来了。
基本逻辑就是这样了。
相关文章推荐
- Codeblocks配置SDCC实现51单片机定时器功能(proteus仿真)
- 如何让程序检测你的按键,实现WEB热键功能呢?
- 转:Stm32学习笔记:按键单击、双击、长按功能实现
- quartz实现定时功能实例详解(servlet定时器配置方法)
- msp430单片机实现常按键和短按键加去抖功能
- 使用Spring的Quartz方式实现Java定时器功能
- 不用写Windows服务实现定时器功能(FluentScheduler )
- cocos2d JS 利用定时器实现-倒计时功能
- Delphi的DLL里如何实现定时器功能?
- 用定时器实现逐渐放大层的功能
- jquery禁用右键、文本选择功能、复制按键的实现
- [Android]在Android TV中实现组合按键的监听触发功能
- 实现定时器功能的几种方式
- 用内核定时器来实现的按键驱动代码分析以及测试代码
- Linux_arm驱动之按键模拟脉冲实现定时器的精确计时
- spring2.08 和quartz1.60 实现定时器功能
- 用Spring framework实现定时器功能
- Asp.Net实现全局定时器功能
- STM32F103C8T6按键中断功能实现
- 实现扫描按键显示功能