51单片机定时器按键判断方法

51单片机定时器按键判断方法

ID:27312305

大小:15.37 KB

页数:4页

时间:2018-12-02

51单片机定时器按键判断方法_第1页
51单片机定时器按键判断方法_第2页
51单片机定时器按键判断方法_第3页
51单片机定时器按键判断方法_第4页
资源描述:

《51单片机定时器按键判断方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、51单片机定时器按键判断方法本文介绍了一种使用定时器精确判断按键时间的方法,可以通过查询keypress_time来判断当前按键时间,结合处理程序,可以对按键行为进行更加方便的控制。以下为51单片机部分代码。#defineKEY_TIME_S5#defineKEY_TIME_L150volatilebitkey_check_flag=0;volatileunsignedcharkeypress_time=0;//按键检查voidcheck_key(void){if(key_check_flag==1)//为了只在定时器更新时检查,减少cpu浪费{key_check_f

2、lag=0;4if(keypress_time>KEY_TIME_S&&keypress_time<(2*KEY_TIME_S))//单击事件判断{//在此添加单击事件处理程序}if(keypress_time>KEY_TIME_L){//在此添加长按事件处理程序}}}//定时器2初始化voidTimer2Init(void)//10毫秒@12.000MHz{AUXR&=0xFB;//定时器时钟12T模式T2L=0xF0;//设置定时初值T2H=0xD8;//设置定时初值AUXR

3、=0x10;//定时器2开始计时IE2

4、=0x04;4}//定时器2中断检查按键状态vo

5、idkey_check(void)interrupt12{IE2&=~0x04;//若需要手动清除中断标志,可先关闭中断,此时系统会自动清除内部的中断标志key_check_flag=1;if(key==0){keyup_time=0;if(keypress_time<255)keypress_time++;elsekeypress_time=255;}else4{keypress_time=0;if(keyup_time<255)keyup_time++;elsekeyup_time=255;}IE2

6、=0x04;}4

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。