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

        ?

        單片機(jī)去鍵抖動(dòng)程序的可移植性設(shè)計(jì)

        2014-09-25 03:05:38龔松顯王殷廷張愛(ài)民
        關(guān)鍵詞:處理程序中斷按鍵

        龔松顯,王殷廷,張愛(ài)民

        (總參通信訓(xùn)練基地,宣化075100)

        引 言

        在單片機(jī)控制系統(tǒng)中,對(duì)按鍵操作進(jìn)行去抖動(dòng)處理,是整個(gè)系統(tǒng)設(shè)計(jì)中必須考慮的一個(gè)重要問(wèn)題。目前常用的去鍵抖動(dòng)設(shè)計(jì)方法與對(duì)應(yīng)的硬件環(huán)境結(jié)合較為緊密,考慮到單片機(jī)硬件種類(lèi)繁多,此實(shí)現(xiàn)方法可移植性差。文章通過(guò)使用定時(shí)器中斷,在軟件程序中實(shí)現(xiàn)了對(duì)按鍵抖動(dòng)的處理,程序代碼可以在不同的單片機(jī)硬件環(huán)境中快速移植,縮短了項(xiàng)目開(kāi)發(fā)的周期,增加項(xiàng)目的靈活性。

        1 按鍵抖動(dòng)的原理描述

        單片機(jī)應(yīng)用系統(tǒng)中的按鍵通常為機(jī)械彈性開(kāi)關(guān),由于機(jī)械觸點(diǎn)的彈性作用,其在實(shí)際的閉合及斷開(kāi)瞬間,常常會(huì)產(chǎn)生如圖1所示的一連串電壓的抖動(dòng)[1]。對(duì)按鍵處理的重要環(huán)節(jié)就是去抖動(dòng),即去除鍵按下和抬起瞬間的電壓抖動(dòng)問(wèn)題。如果對(duì)抖動(dòng)不做任何處理,則會(huì)引起程序的誤操作,對(duì)整個(gè)系統(tǒng)產(chǎn)生較大的負(fù)面影響。

        圖1 按鍵電壓抖動(dòng)波形

        對(duì)于常用的8051單片機(jī),如果使用的是下降沿觸發(fā)中斷的工作方式,則在電壓低于0.7V時(shí)會(huì)產(chǎn)生一次觸發(fā)。在圖1中,如果A點(diǎn)的電壓高于0.7V,則在鍵按下的過(guò)程中會(huì)觸發(fā)單片機(jī)產(chǎn)生兩次中斷。在鍵釋放的階段,如果B點(diǎn)的電壓高于0.7V,而C點(diǎn)電壓低于0.7V,同樣會(huì)觸發(fā)單片機(jī)產(chǎn)生兩次中斷。按鍵抖動(dòng)的時(shí)間長(zhǎng)短與按鍵的機(jī)械特性、操作人員的按鍵動(dòng)作和習(xí)慣有關(guān),一般而言,認(rèn)為抖動(dòng)的時(shí)間大概為5~10ms。按鍵抖動(dòng)會(huì)導(dǎo)致一次按鍵被誤判為多次,為了確保對(duì)按鍵動(dòng)作的正確處理,必須去除按鍵抖動(dòng)。

        2 常用的去鍵抖動(dòng)硬件和軟件消除方法

        按鍵抖動(dòng)的硬件消除方法有很多,如R-S去抖、積分型去抖、翻轉(zhuǎn)式去抖等[2],其設(shè)計(jì)原理在大量論文及書(shū)籍中均有介紹,這里不再贅述。硬件實(shí)現(xiàn)的方法只適合按鍵數(shù)目比較少、對(duì)項(xiàng)目要求比較高的情況。在實(shí)際的項(xiàng)目中,考慮到電路的復(fù)雜程度以及成本、體積等問(wèn)題,常用的方法是軟件去抖動(dòng)[3],其思路是:在按鍵處理程序中首先執(zhí)行一個(gè)延時(shí)函數(shù)產(chǎn)生5~10ms的延時(shí),在前沿抖動(dòng)消失后檢測(cè)按鍵的狀態(tài),如果保持閉合狀態(tài)電平,則認(rèn)為真正有按鍵被按下。當(dāng)檢測(cè)到按鍵釋放后同樣進(jìn)行延時(shí)處理,讓后沿抖動(dòng)消失后才轉(zhuǎn)入該鍵的處理代碼。以外部中斷的按鍵為例,代碼的一種C語(yǔ)言實(shí)現(xiàn)如下[4-5]:

        采用以上軟件去抖動(dòng)的方法存在以下兩個(gè)問(wèn)題:

        ①在代碼實(shí)現(xiàn)中,延時(shí)子函數(shù)空循環(huán),消耗了單片機(jī)CPU的時(shí)間,造成資源的浪費(fèi),程序的效率不高。

        ②代碼的可移植性不高。按鍵抖動(dòng)的時(shí)間取決于按鍵的機(jī)械特性,按鍵開(kāi)關(guān)的抖動(dòng)波形、抖動(dòng)次數(shù)、抖動(dòng)時(shí)間都是隨機(jī)的,不同的按鍵抖動(dòng)時(shí)間不同;不同的操作者按鍵動(dòng)作習(xí)慣也會(huì)導(dǎo)致抖動(dòng)的時(shí)間不同。綜合考慮以上因素,如果單片機(jī)系統(tǒng)的硬件有變化,或者代碼有移植的需求,則在新的硬件環(huán)境中必須對(duì)延時(shí)子函數(shù)進(jìn)行調(diào)試,找出適合該硬件系統(tǒng)的延時(shí)時(shí)間,而這將增加程序調(diào)試的時(shí)間成本,不利于在不同硬件系統(tǒng)中進(jìn)行快速移植。

        3 去鍵抖動(dòng)程序的可移植性設(shè)計(jì)

        結(jié)合系統(tǒng)設(shè)計(jì)時(shí)對(duì)正常按鍵頻率的考慮,比如最快0.5s按鍵一次,可以在程序中使用定時(shí)器來(lái)控制按鍵抖動(dòng)。具體的思路是:在軟件中定義一個(gè)全局變量,設(shè)定其初始值為0。當(dāng)按鍵中斷處理程序被調(diào)用時(shí),首先讀取該全局變量的值。如果變量值為0,即此時(shí)是第一次檢測(cè)按鍵抖動(dòng),將該變量置為1,同時(shí)啟動(dòng)定時(shí)器并進(jìn)行按鍵事件的處理;如果由于按鍵抖動(dòng)導(dǎo)致按鍵中斷處理程序被重復(fù)調(diào)用時(shí),在該全局變量的值為1的情況下就跳過(guò)按鍵事件處理代碼。另一方面,在定時(shí)器的中斷處理程序中,經(jīng)過(guò)設(shè)定的時(shí)間后將該全局變量重置為0,保證程序?qū)ο乱淮伟存I的正確處理。程序的流程圖如圖2所示。

        圖2 程序流程圖

        采取以上處理方法,雖然按鍵抖動(dòng)會(huì)導(dǎo)致中斷處理程序被反復(fù)調(diào)用,但在定時(shí)器設(shè)定的時(shí)間內(nèi),中斷程序?qū)嵸|(zhì)上只處理第一次按鍵事件,避免了對(duì)按鍵事件的重復(fù)處理以及使用延時(shí)子函數(shù)造成的空循環(huán),提高了CPU的執(zhí)行效率。當(dāng)工程的硬件環(huán)境有變動(dòng)時(shí),根據(jù)項(xiàng)目對(duì)按鍵使用的要求,開(kāi)發(fā)人員只需根據(jù)具體情況更改定時(shí)器的預(yù)設(shè)值即可,程序的其他部分保持不變,這樣就提高了程序的可移植性。程序框架的一種C語(yǔ)言實(shí)現(xiàn)如下:

        結(jié) 語(yǔ)

        筆者在工程項(xiàng)目中驗(yàn)證了該設(shè)計(jì)方法實(shí)際可行,具有較好的靈活性和可移植性,對(duì)于類(lèi)似的單片機(jī)去抖程序的開(kāi)發(fā)具有一定的借鑒意義。

        [1] 曾旖,奚大順,李向陽(yáng).按鍵開(kāi)關(guān)的抖動(dòng)與消除方法[J] .電子世界,2005(9):55-56.

        [2] 方龍,肖獻(xiàn)保,李威.關(guān)于消除按鍵機(jī)械抖動(dòng)的研究[J] .廣西輕工業(yè)計(jì)算機(jī)與技術(shù),2008,1(1):92-105.

        [3] 肖廣安.一種軟件去除鍵抖動(dòng)的方法[J] .單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2001(7):63-65.

        [4] 王為青,程國(guó)鋼.單片機(jī)Keil C51應(yīng)用開(kāi)發(fā)技術(shù)[M] .北京:人民郵電出版社,2007.

        [5] 劉文濤.MCS-51單片機(jī)培訓(xùn)教程[M] .北京:電子工業(yè)出版社,2005.

        猜你喜歡
        處理程序中斷按鍵
        高速公路工程變更與計(jì)量支付處理程序的優(yōu)化方法
        基于有限狀態(tài)機(jī)的按鍵檢測(cè)程序設(shè)計(jì)
        電子制作(2021年3期)2021-06-16 03:14:26
        跟蹤導(dǎo)練(二)(5)
        千里移防,衛(wèi)勤保障不中斷
        解放軍健康(2017年5期)2017-08-01 06:27:44
        基于C++的數(shù)控加工通用后處理程序的開(kāi)發(fā)應(yīng)用研究
        企業(yè)危機(jī)公關(guān)管理問(wèn)題分析
        一種多方向?qū)Ч獍存I結(jié)構(gòu)設(shè)計(jì)
        電子制作(2016年1期)2016-11-07 08:43:05
        按鍵的多種狀態(tài)檢測(cè)及消抖處理方法
        家電科技(2013年4期)2013-07-09 10:55:08
        地鐵直流系統(tǒng)中框架保護(hù)原理及處理程序
        AT89C51與中斷有關(guān)的寄存器功能表解
        久久精品国产69国产精品亚洲| 国产91精品成人不卡在线观看| 女人的天堂av免费看| 中文字幕亚洲视频三区| 久久天堂一区二区三区av| 曰本大码熟中文字幕| 欧美在线观看一区二区| 亚洲视频精品一区二区三区 | 亚洲AV秘 无套一区二区三区| 久久久精品国产av麻豆樱花| 免费大片黄国产在线观看| 成人网站免费大全日韩国产| 亚洲精品成人国产av| 国产一区二区三区四区在线视频 | 韩日无码不卡| 亚洲精品在线一区二区| 成人免费无码视频在线网站| 波多野吉衣av无码| 无码久久精品蜜桃| 人妻精品人妻一区二区三区四区| 人妻少妇精品视频三区二区一区| 毛片免费全部无码播放| 亚洲成人av一区二区麻豆蜜桃| 亚洲一区精品在线中文字幕| 在线涩涩免费观看国产精品 | 久久婷婷人人澡人人喊人人爽| 久久免费国产精品| 视频一区二区不中文字幕| 亚洲av无码国产精品色| 亚洲av永久无码国产精品久久| 一区二区三区国产在线网站视频| 亚洲天码一区二区三区| 少妇高潮无套内谢麻豆传| 狠干狠爱无码区| 国产目拍亚洲精品二区| 大地资源网在线观看免费官网| 看曰本女人大战黑人视频| 亚洲AV日韩AV高潮喷潮无码| 少妇高潮久久蜜柚av| 中文字幕欧美人妻精品一区| 传媒在线无码|