#include #include #includeunsigned char A,B;unsigned char n; bit step1, step2, step3,step4; //使用几个位变量记忆按键状态 /#include #include #includeunsigned 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 panxiaoyivoid 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); };}
导读:目前正在解读《AVR单片机按键处理与按键防抖动程序》的相关信息,《AVR单片机按键处理与按键防抖动程序》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《AVR单片机按键处理与按键防抖动程序》的详细说明。
简介:本文给大家分享了一个AVR单片机按键处理与按键防抖动程序。
提醒:《AVR单片机按键处理与按键防抖动程序》最后刷新时间 2024-03-14 00:57:59,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《AVR单片机按键处理与按键防抖动程序》该内容的真实性请自行鉴别。