<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > AVR單片機按鍵處理與按鍵防抖動程序

          AVR單片機按鍵處理與按鍵防抖動程序

          作者: 時間:2016-11-23 來源:網(wǎng)絡 收藏

          AVR單片機按鍵處理按鍵防抖動程序

          本文引用地址:http://www.ex-cimer.com/article/201611/320344.htm

          #include
          #include
          #include

          unsigned char A,B;
          unsigned char n;
          bit step1, step2, step3,step4; //使用幾個位變量記憶按鍵狀態(tài)

          /

          #include
          #include
          #include

          unsigned char A,B;
          unsigned char n;
          bit step1, step2, step3,step4; //使用幾個位變量記憶按鍵狀態(tài)

          //***************************************************
          interrupt [10] void TC2_OVF(void)
          {
          if(n<255) n++;
          if(PIND.2==1 && n>8) step1=1; //按鍵松開一定時間后開始進入可用狀態(tài)
          if(PIND.2==0 && step1) {step1=0; step2=1; n=0;} //按鍵由可用狀態(tài)進入到按下狀態(tài)
          if(PIND.2==1 && step2) {step2=0; step3=1; n=0;} //按鍵由按下狀態(tài)進入到松開狀態(tài)

          //-------------------------------------------------
          //按鍵按下后...
          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采用系統(tǒng)時鐘的64分頻
          #asm("sei"); //全局中斷使能
          TIMSK2|=1; //T/C2計數(shù)溢出中斷使能

          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);
          };
          }




          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();