在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

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

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

            作者: 時間:2016-11-23 來源:網絡 收藏

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

            本文引用地址:http://www.biyoush.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計數溢出中斷使能

            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ū)

            關閉