为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

按键处理与按键防抖动例子

2020-03-06 5页 doc 16KB 3阅读

用户头像

is_815621

暂无简介

举报
按键处理与按键防抖动例子/***************************************************** 本程序的目标是这样的: 1:不使用INTn中断功能,按键接在普通IO上 2:由定时器T/C2每隔一段时间检测按键一次, 并具有防抖动功能 3:每点击按键一次,在按键松开后,变量A=A+1 4:如果按键按下后不放,则每隔 n ms 就做A=A+1运算一次 5:在按键按下期间,CPU除了处理按键外,还必须能正常运行主程序 6:本程序的系统时钟是1MHz **************************...
按键处理与按键防抖动例子
/***************************************************** 本程序的目标是这样的: 1:不使用INTn中断功能,按键接在普通IO上 2:由定时器T/C2每隔一段时间检测按键一次, 并具有防抖动功能 3:每点击按键一次,在按键松开后,变量A=A+1 4:如果按键按下后不放,则每隔 n ms 就做A=A+1运算一次 5:在按键按下期间,CPU除了处理按键外,还必须能正常运行主程序 6:本程序的系统时钟是1MHz *****************************************************/ #include #include #include unsigned char A,B; unsigned char n; bit step1, step2, step3,step4; //使用几个位变量记忆按键状态 //*************************************************** interrupt [10] void TC2_OVF(void) { if(n<255) n++; if(PIND.2==1 && n>8) step1=1; //按键松开一定时间后开始进入可用状态 if(PIND.2==0 && step1) {step1=0; step2=1; n=0;} //按键由可用状态进入到按下状态if(PIND.2==1 && step2) {step2=0; step3=1; n=0;} //按键由按下状态进入到松开状态 //------------------------------------------------- //按键按下后... if(step2) { n++; if(n>60) //如果按下超过一定时间 { A+=1; n=40; step4=1; } } //------------------------------------------------- if(step3) //按键松开后... { step3=0; if(step4) step4=0; else A+=1; } } //*************************************************** //www.avrdiy.com panxiaoyi void main(void) { PORTB&=209; DDRB|=46; //设置单片机的4个LCD引脚输出0 lcd_init(); //lcd初始化 lcd_cls(); //清屏,光标回位 DDRD.2=0; PORTD.2=1; //PD2设置为输入,上拉电阻有效(接按键) TCCR2B|=4; //T/C2采用系统时钟的64分频 #asm("sei"); //全局中断使能 TIMSK2|=1; //T/C2计数溢出中断使能 while (1) { B+=1; lcd_gotoxy(12,1); lcd_putsf("AVRDIY.COM",10); lcd_gotoxy(15,3); lcd_putchar(B/100+48); //显示变量B lcd_putchar(B/10%10+48); lcd_putchar(B%10+48); lcd_gotoxy(52,3); lcd_putchar(A/100+48); //显示变量A lcd_putchar(A/10%10+48); lcd_putchar(A%10+48); }; }
/
本文档为【按键处理与按键防抖动例子】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索