亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于單片機的一種消抖方法及應(yīng)用

        2014-09-24 00:07:42楊立宏
        無線互聯(lián)科技 2014年7期
        關(guān)鍵詞:處理程序低電平計數(shù)器

        楊立宏

        摘要:鍵盤電路是單片機應(yīng)用中的常用電路,本文給出了一種基于單片機的利用定時器中斷進行按鍵軟件消抖的方法,在不改變定時器定時時間的情況下可以實現(xiàn)任意消抖延時時間的設(shè)定。

        關(guān)鍵詞:按鍵;軟件消抖;單片機在微型計算機和工業(yè)控制應(yīng)用領(lǐng)域中,開關(guān)是必不可少的輸入設(shè)備。本文在實際應(yīng)用的基礎(chǔ)上介紹一種利用單片機定時器產(chǎn)生中斷的方法來實現(xiàn)按鍵的消抖。特點是節(jié)省CPU資源,同時對延時時間可自由控制,而不需要改變定時器的定時時間。

        1消抖原理

        一個按鍵開關(guān)在閉合或者斷開時不會馬上穩(wěn)定,均伴隨有一連串的抖動,抖動的時間長短由按鍵的機械特性決定,一般為5ms~10ms。

        軟件消抖主要采用延時或者中斷實現(xiàn):一種是用延時子程序,首先讀取按鍵的狀態(tài)為低電平,然后調(diào)用延時子程序,執(zhí)行完延時之后,再次判斷此時按鍵的狀態(tài),如果和上次相同則證明被按下,否則被認為是抖動,但此種方法延時時一直占用CPU資源,在多任務(wù)的系統(tǒng)中不適合采用此法。另外一種方法則是用中斷的方法,每一次中斷讀取按鍵的狀態(tài),如果與上次讀取的數(shù)據(jù)不一致則說明當前讀取的是前沿抖動數(shù)據(jù),將當前的數(shù)據(jù)保留,等待下次定時器中斷,如果當前讀取的數(shù)據(jù)和前次讀取的數(shù)據(jù)相同則說明讀取的是穩(wěn)定狀態(tài)下的數(shù)據(jù),則認為真正有鍵按下。本文同樣也是采用中斷的方法進行消抖。

        2按鍵消抖硬件電路及軟件設(shè)計

        單片機有著豐富的定時器資源,此處使用定時器。實現(xiàn)的方法是:設(shè)定定時器定時時間為5ms,定時器定時時間到后,進入中斷處理程序,在中斷處理程序中判斷按鍵的狀態(tài),并預(yù)先設(shè)定一個字節(jié)k[i](初始化為0xff)來存放按鍵的狀態(tài),如果按鍵被按下則將k[i]的最后一位置為0,同時將k[i]左移一位,再將最后一位置1,等待下次定時滿后再判斷。延時時間可以設(shè)定為5ms的整數(shù)倍。方便之處在于不改變定時器定時時間的情況下可以實現(xiàn)任意消抖延時時間的設(shè)定。

        ⑴自鎖鍵消抖方法:自鎖鍵的特點是按下后一直保持按下的狀態(tài),因此不宜采用中斷的方法,可以采用定時掃描的方法。定義k[i]存放按鍵的狀態(tài)。如果按鍵被按下,將k[i]的最后一位置0,并對端口為低電平的次數(shù)計數(shù)的計數(shù)器加1,對端口為高電平的次數(shù)計數(shù)的計數(shù)器清零,將k[i]左移一位,然后將最后一位置成1,并判斷此時計數(shù)器是否記滿,記滿則將按下的狀態(tài)送出,同時對端口為低電平的次數(shù)計數(shù)的計數(shù)器減1,如此循環(huán)。

        具體實現(xiàn)程序如下:

        if(np10==0)

        {

        k[5]&=0xfe;

        cnt10=cnt10+1;

        cnt11=0;

        k[5]=k[5]<<1;

        k[5]|=0x01;

        if(cnt10==4)//如果檢測到連續(xù)的4個0,說明此鍵按下,相當于延時20ms

        {

        ram[1]|=0x01;

        cnt10=cnt10-1;

        }

        }

        else

        {

        k[5]|=0x01;

        cnt11=cnt11+1;

        cnt10=0;

        k[5]=k[5]<<1;

        k[5]|=0x01;

        if(cnt11==20) //如果1記數(shù)器檢測到連續(xù)的4個1,則說明按鍵抬起

        {

        ram[1]&=0xfe;

        cnt11=cnt11-1;

        }

        }

        ⑵彈起按鍵消抖方法:彈起按鍵的特點是按下,當手松開后又自動彈起,因此按鍵的判斷宜采用中斷的方法。MSP430的P2口具有中斷功能,在按鍵按下的下降沿產(chǎn)生一個中斷,設(shè)置標志,然后通過每一次的定時中斷來讀取按鍵狀態(tài),達到消抖的目的。實現(xiàn)方法是:按鍵下降沿進入中斷處理程序,在中斷處理程序中將k[i]最后一位置0,計數(shù)器設(shè)置為1。然后在定時器中斷程序中讀取按鍵的狀態(tài),如果定時器的4次中斷仍為按下狀態(tài),則認為按鍵按下,送按鍵狀態(tài)到相應(yīng)單元,執(zhí)行相應(yīng)操作。具體實現(xiàn)程序如下:

        if(count0!=0)

        {

        if(!(k[0]&0x01))

        {

        k[0]=k[0]<<1;

        k[0]|=0x01;

        np20=P2IN&BIT0

        if(np20==0)

        {

        k[0]&=0xfe;

        count0=count0+1;

        if(count0==21) //如果計數(shù)器值為5,則認為按下此鍵,即延時20ms

        {

        count0=0;

        ram[2]&=0xf8;

        ram[2]|=0x01;

        P6OUT=0x08;

        }

        }

        }

        }

        3結(jié)論

        按鍵的消抖有很多方法,本文使用的是基于中斷的方法達到消抖的目的,優(yōu)點是在不改變定時器定時時間的情況下可以自由設(shè)定消抖延時時間。本文介紹的軟件消抖的方法已經(jīng)在實際應(yīng)用中得到驗證,對按鍵的消抖達到了很好的效果。

        [參考文獻]

        [1]沈建華,楊艷琴,翟驍曙.MSP430系列16位超低功耗單片機原理與應(yīng)用[M].北京:清華大學(xué)出版社,2004.11.

        猜你喜歡
        處理程序低電平計數(shù)器
        數(shù)字電路中“邏輯非”的用法辨析
        采用虛擬計數(shù)器的電子式膜式燃氣表
        煤氣與熱力(2022年2期)2022-03-09 06:29:30
        鐵道車輛高/低電平信號智能發(fā)生器設(shè)計
        高速公路工程變更與計量支付處理程序的優(yōu)化方法
        2017款凱迪拉克2.8L/3.0L/3.2L/3.6L車型低電平參考電壓總線電路圖
        基于C++的數(shù)控加工通用后處理程序的開發(fā)應(yīng)用研究
        企業(yè)危機公關(guān)管理問題分析
        計數(shù)器競爭冒險及其處理的仿真分析
        任意N進制計數(shù)器的設(shè)計方法
        河南科技(2014年10期)2014-02-27 14:09:30
        基于單片機的仰臥起坐計數(shù)器
        日本口爆吞精在线视频| 日本一二三区免费在线| 天天躁日日躁狠狠躁av中文| 欧美老妇与zozoz0交| 国产午夜精品av一区二区麻豆| 国产人妻大战黑人20p| 一级r片内射视频播放免费| 国产大片内射1区2区| 国内精品久久久久影院优| 免费无码毛片一区二区app| 久久免费看黄a级毛片| 曰韩无码av一区二区免费| 欧美亚洲一区二区三区| 中文字幕日韩精品有码视频| 亚洲国产av精品一区二区蜜芽| 无码三级在线看中文字幕完整版| 亚洲va欧美va| 中年熟妇的大黑p| 午夜一级韩国欧美日本国产| 日韩秘 无码一区二区三区| 亚洲在线视频一区二区| 五月婷婷六月丁香久久综合| 亚洲日韩久久综合中文字幕| 国产熟妇搡bbbb搡bb七区| 欧美性猛交xxxx乱大交蜜桃| 蜜桃伦理一区二区三区| 亚洲第一页在线观看视频网站| 女同精品一区二区久久| 亚洲欧美v国产一区二区| 国产专区国产av| 中文字幕无码免费久久99| 亚洲精品国产主播一区二区 | 亚洲三级中文字幕乱码| 国产亚洲精品熟女国产成人| 四虎影视4hu4虎成人| 亚洲国产成人精品91久久久| 隔壁人妻欲求不满中文字幕| 日本免费在线不卡一区二区| 国产精品嫩草99av在线| 久久热免费最新精品视频网站| 亚洲精品综合久久中文字幕|