单片机STM8按键长短按

单片机STM8按键长短按

ID:47665808

大小:55.00 KB

页数:6页

时间:2020-01-27

单片机STM8按键长短按_第1页
单片机STM8按键长短按_第2页
单片机STM8按键长短按_第3页
单片机STM8按键长短按_第4页
单片机STM8按键长短按_第5页
资源描述:

《单片机STM8按键长短按》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、//------------------------------------------------------------------------------unsignedcharKey_Sample1=0;//Key_Sample1当前对按键采样的值unsignedcharKey_Sample2=0;//Key_Sample2上一次对按键采样的值unsignedcharKey_Scan_old=0;//上一次有效的键值状态,必需连续两次的采样值相同才能载入该变量unsignedcharKey_Dow

2、n_flag=0;//键盘按下标识,注意是经过消抖后确认的按下标志unsignedintKey_Down_Counter=0;//用于消抖的计数器unsignedcharKey_Value=0;//最终经过确认的键值unsignedcharKey_flag_long=0;//长按键标识unsignedintKey_Down_Counter_l=0;//长时按键计数器unsignedcharKey_flag=1;//按键标志//----------------------------------------

3、--------------------------------------voidKeyScan_Service(void){Key_Sample1=(PB_IDR&0x3E);//Key_Sample1当前对按键采样的值if(Key_Sample1==Key_Sample2)//Key_Sample2上一次对按键采样的值{if((PB_IDR&0x3E)!=0){if(Key_Down_flag==0){if(Key_Sample1==Key_Scan_old){Key_Down_Counter++;

4、//用于消抖的计数器if(Key_Down_Counter>=10){Key_Down_Counter=0;Key_Down_flag=1;//键盘按下标识,注意是经过消抖后确认的按下标志Key_Down_Counter_l=0;Key_Value=Key_Sample1;}}else{Key_Down_Counter=0;Key_flag_long=0;}}else{Key_Down_Counter_l++;if(Key_Down_Counter_l>=200){Key_flag_long=1;//长时

5、按键标志Key_Down_Counter_l=0;}}}else{if(Key_Down_flag==1){Key_Down_flag=0;Key_Down_Counter=0;Key_flag_long=0;Key_Down_Counter_l=0;Key_flag=1;//短按表示Key_Value=0;}}Key_Scan_old=Key_Sample1;//上一次有效的键值状态,必需连续两次的采样值相同才能载入该变量}Key_Sample2=Key_Sample1;}/**************

6、*****************************************************************Key_flag短按标志Key_flag_long长按标志*******************************************************************************/voidsky_answer(void){switch(Key_Value){//----------------------------------------

7、--------------------------------------case0x10://设置PB4sky1{if(Key_flag==1&&set_num!=0){set_num++;skip=0;Key_flag_long=0;Key_flag=0;if(set_num==1){LED_state=3;move_num=0;//设置}elseif(set_num==2){LED_state=4;move_num=0;//周长girth_buff=girth;speaData(girth_buf

8、f);if(length_buff!=length){length=length_buff;eeprom_save(1);Motorleng_close();}}elseif(set_num==3){LED_state=1;//功能一speaData(SPeed);if(girth_buff!=girth){girth=girth_buff;eeprom_save(3);}}elseif(set_num==4)//LED_st

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

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

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