• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      C語(yǔ)言下的抗干擾消抖按鍵程序設(shè)計(jì)研究

      2018-02-05 09:02:52張紅軍賀州學(xué)院數(shù)學(xué)與計(jì)算機(jī)學(xué)院
      數(shù)碼世界 2018年1期
      關(guān)鍵詞:電路設(shè)計(jì)中斷按鍵

      張紅軍 賀州學(xué)院數(shù)學(xué)與計(jì)算機(jī)學(xué)院

      在我國(guó)常見(jiàn)的單片機(jī)控制電路設(shè)計(jì)中,由于機(jī)械的特殊性導(dǎo)致其在投產(chǎn)中并不能夠達(dá)到理想的效果。在電路設(shè)計(jì)預(yù)期效果中,其想要達(dá)到按鍵按下則點(diǎn)位遍地,按鍵釋放則點(diǎn)位變高,如圖1所示。但是在實(shí)際操作中,通常是機(jī)械按鍵按下后經(jīng)過(guò)多次高低電位的變化后才變成持續(xù)穩(wěn)定的低電壓,按鍵經(jīng)過(guò)多次釋放后才能夠慢慢恢復(fù)到想要的穩(wěn)定高電壓。當(dāng)這個(gè)變化過(guò)程必然經(jīng)過(guò)高低壓的震動(dòng),因此我們將這個(gè)過(guò)程稱(chēng)之為抖動(dòng)。抖動(dòng)時(shí)間通常為6-12ms,在設(shè)計(jì)時(shí)取值為8ms。也正是因?yàn)槎秳?dòng)的產(chǎn)生,所以雖然只按了一次鍵,但是實(shí)際上機(jī)器已經(jīng)接收了多次按鍵。如果使用單片機(jī)控制按鍵+1電路,如果不消除抖動(dòng),則數(shù)碼管的顯示次數(shù)會(huì)非常多,進(jìn)而導(dǎo)致數(shù)碼管顯示數(shù)據(jù)出現(xiàn)抖動(dòng)現(xiàn)象。如果噪音的干擾較為嚴(yán)重,及時(shí)沒(méi)有人為操作,也會(huì)使單片機(jī)因?yàn)楦蓴_噪音的出現(xiàn)而自動(dòng)運(yùn)行,進(jìn)而造成操作失誤現(xiàn)象的產(chǎn)生。這種失誤將會(huì)造成非常大的瞬時(shí),所以在消抖程序中加入抗干擾程序是必須要進(jìn)行的程序。本文以單片機(jī)按鍵+1的電路為例子,敘述C語(yǔ)言抗干擾消抖的程序設(shè)計(jì)。

      圖1 理想波形圖

      1 消抖方式分析

      消除抖動(dòng)的方式有兩種,一種是硬件,另一種是軟件。其中,硬件消除抖動(dòng)的方式也分為RS硬件消抖、電容濾波消抖、中斷法消抖三種形式。硬件消除抖動(dòng)可以編寫(xiě)消抖程序,并將其運(yùn)用到元件、電路板、成本等環(huán)節(jié)中,就可以實(shí)現(xiàn)消抖。通過(guò)軟件消抖可以借助高低電平變化來(lái)實(shí)現(xiàn)。以下是具體的消抖程序介紹:

      1.1 硬件消抖

      硬件消抖就是將抖動(dòng)消除在信號(hào)輸入之前,這樣就可以節(jié)省資源,提高系統(tǒng)對(duì)于信號(hào)的感知力。

      1.1.1 RS硬件消抖

      運(yùn)用兩個(gè)與非門(mén)構(gòu)成一個(gè)RS硬件,再利用其記憶作用消除抖動(dòng)對(duì)于及其的作用力。當(dāng)開(kāi)關(guān)每切換一次,輸出端就進(jìn)行一次操作,進(jìn)而消除抖動(dòng)的影響。

      1.1.2 電容濾波消抖

      使用RS鎖存器進(jìn)行消抖,只能夠在單刀雙擲開(kāi)關(guān)中取得良好的效果。在當(dāng)前常用的鍵盤(pán)中,常常是兩個(gè)接線端的按鍵。針對(duì)這一按鍵的特征,可以將電容并聯(lián)到案件中,利用平波的方式進(jìn)行調(diào)整,從而消除脈沖波。

      1.1.3 中斷法消抖

      每個(gè)案件都需要與外部中斷口相連接,當(dāng)對(duì)按鍵進(jìn)行按動(dòng)時(shí),可以引起單片機(jī)的中斷,進(jìn)而消除抖動(dòng)。這種方法可以不用在主程序中進(jìn)行查詢,只需要中斷之后再處理相應(yīng)的問(wèn)題即可。缺點(diǎn)就是單片機(jī)的中斷是非常有價(jià)值的,一旦發(fā)生中斷將會(huì)導(dǎo)致數(shù)據(jù)丟失,因此當(dāng)前對(duì)于這種消抖方法比較少用。

      1.2 軟件消抖

      有上述可知,如果采用硬件消抖的方式對(duì)單片機(jī)進(jìn)行消抖,則N個(gè)按鍵就必須要進(jìn)行N個(gè)防抖程序設(shè)計(jì)。所以,當(dāng)按鍵比較多的時(shí)候,硬件防抖程序?qū)o(wú)法進(jìn)行操作,這也暴露出了硬件消抖的弊端。在這種情況下,可以選取軟件的方式進(jìn)行防抖。軟件消抖是采用降低鍵盤(pán)輸入端口的接收信號(hào)頻率,從而將高頻抖動(dòng)變化成低頻抖動(dòng),一旦發(fā)現(xiàn)案件閉合,就進(jìn)行8s的延時(shí),讓前一個(gè)抖動(dòng)小時(shí)候則再一次進(jìn)入檢測(cè)的狀態(tài),如果仍在閉合狀態(tài),則確認(rèn)是否有按鍵按下。當(dāng)按鍵釋放后再進(jìn)行8s的延時(shí),當(dāng)抖動(dòng)全部消失后轉(zhuǎn)入處理程序。一般程序代碼如下所示:

      如果程序是if(v==0)的狀態(tài)則證明按鍵發(fā)生了變化,繼續(xù)進(jìn)行下一步驟

      在程序出現(xiàn)delay的狀態(tài)時(shí)經(jīng)歷8s延時(shí),經(jīng)歷按鍵抖動(dòng)

      當(dāng)if(v==0)時(shí)進(jìn)行第二次檢測(cè)按鍵狀態(tài)

      然后執(zhí)行下面程序

      結(jié)束

      2 C語(yǔ)言下的抗干擾消抖按鍵流程設(shè)計(jì)與分析

      可以通過(guò)QR1的數(shù)值判斷按鍵是否經(jīng)歷過(guò)按下或是釋放。QR1;在延時(shí)8s后按下抖動(dòng)期后再次判斷,如果QR=0則是人為操作,如果QR≠0則證明其他原因干擾導(dǎo)致的。因此在程序流程設(shè)計(jì)中,可以按照如下步驟來(lái)設(shè)計(jì):

      第一步設(shè)立為開(kāi)始,按鍵是否按下,如果是延時(shí)8s,若不是返回。延時(shí)8s后進(jìn)行第二次的按鍵是否按下檢查,如果是則繼續(xù),如果不是則返回到第一步。當(dāng)?shù)诙螜z查后進(jìn)行按鍵是否釋放的檢查,如若是,則延時(shí)8s,如果否則返回第二次按鍵是否按下的檢查中。當(dāng)延時(shí)8s后檢查按鍵是否釋放,如若是進(jìn)行接下來(lái)的按鍵是否釋放檢查;如若不是則返回上億步按鍵是否釋放的檢查中。如若按鍵已經(jīng)全部釋放則進(jìn)行執(zhí)行功能程序段的檢查,最后結(jié)束。

      3 電路設(shè)計(jì)

      在C語(yǔ)言下的抗干擾消抖按鍵程序電路設(shè)計(jì)中,充分考慮了消抖按鍵程序的實(shí)際使用情況,并針對(duì)抗干擾程序的運(yùn)行等問(wèn)題對(duì)于電路設(shè)計(jì)進(jìn)行了適當(dāng)?shù)恼{(diào)整,具體電路設(shè)計(jì)圖如下所示:

      圖3 電路設(shè)計(jì)圖

      4 C語(yǔ)言下的抗干擾消抖按鍵程序設(shè)計(jì)

      可以通過(guò)上述的電路設(shè)計(jì)和流程設(shè)計(jì),設(shè)定抗干擾消抖按鍵程序如下所示:

      綜上所述,只要將執(zhí)行功能程序段的設(shè)計(jì)稍微改動(dòng)一下,就可以將原本的按鍵釋放后數(shù)碼顯示管顯示,改變?yōu)榘存I按下后數(shù)碼顯示管顯示。同理,將本程序稍微改動(dòng)一下,也可以將+1的電路變?yōu)?1的電路。

      [1] 印健健. 基于C語(yǔ)言的抗干擾消抖按鍵程序設(shè)計(jì)[J]. 數(shù)字技術(shù)與應(yīng)用, 2015,10(8):185-186

      [2] 程佳佳. 基于VHDL的按鍵消抖程序設(shè)計(jì)[J]. 科教導(dǎo)刊:電子版, 2017,7(24):222-223

      [3] 楊張利. 按鍵消抖程序設(shè)計(jì)在單片機(jī)中的運(yùn)用[J]. 科技致富向?qū)? 2014,1(20):267-268

      [4] 侯玉寶, 陳忠平, 鄔書(shū)躍. 51單片機(jī)C語(yǔ)言程序設(shè)計(jì)經(jīng)典實(shí)例[M]. 電子工業(yè)出版社, 2016,2(7):00012-00015

      猜你喜歡
      電路設(shè)計(jì)中斷按鍵
      基于有限狀態(tài)機(jī)的按鍵檢測(cè)程序設(shè)計(jì)
      電子制作(2021年3期)2021-06-16 03:14:26
      Altium Designer在電路設(shè)計(jì)中的應(yīng)用
      電子制作(2019年16期)2019-09-27 09:34:58
      負(fù)反饋放大電路設(shè)計(jì)
      電子制作(2019年23期)2019-02-23 13:21:36
      跟蹤導(dǎo)練(二)(5)
      千里移防,衛(wèi)勤保障不中斷
      解放軍健康(2017年5期)2017-08-01 06:27:44
      一種多方向?qū)Ч獍存I結(jié)構(gòu)設(shè)計(jì)
      電子制作(2016年1期)2016-11-07 08:43:05
      基于UC3843的60W升壓電路設(shè)計(jì)
      基于UC3842應(yīng)用電路設(shè)計(jì)
      按鍵的多種狀態(tài)檢測(cè)及消抖處理方法
      家電科技(2013年4期)2013-07-09 10:55:08
      AT89C51與中斷有關(guān)的寄存器功能表解
      阿图什市| 庆云县| 瑞金市| 开封市| 河曲县| 清新县| 铁力市| 宜丰县| 新晃| 宁安市| 新乡县| 泗阳县| 竹北市| 沽源县| 明光市| 承德县| 黄平县| 马关县| 云霄县| 文山县| 九台市| 阳原县| 磴口县| 西畴县| 贵定县| 浦县| 含山县| 新绛县| 台东县| 惠东县| 成安县| 百色市| 于田县| 靖西县| 汾阳市| 普兰店市| 沁水县| 灵川县| 灵石县| 越西县| 特克斯县|