999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

單片機去鍵抖動程序的可移植性設計

2014-09-25 03:05:38龔松顯王殷廷張愛民
單片機與嵌入式系統應用 2014年1期
關鍵詞:單片機程序方法

龔松顯,王殷廷,張愛民

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

引 言

在單片機控制系統中,對按鍵操作進行去抖動處理,是整個系統設計中必須考慮的一個重要問題。目前常用的去鍵抖動設計方法與對應的硬件環境結合較為緊密,考慮到單片機硬件種類繁多,此實現方法可移植性差。文章通過使用定時器中斷,在軟件程序中實現了對按鍵抖動的處理,程序代碼可以在不同的單片機硬件環境中快速移植,縮短了項目開發的周期,增加項目的靈活性。

1 按鍵抖動的原理描述

單片機應用系統中的按鍵通常為機械彈性開關,由于機械觸點的彈性作用,其在實際的閉合及斷開瞬間,常常會產生如圖1所示的一連串電壓的抖動[1]。對按鍵處理的重要環節就是去抖動,即去除鍵按下和抬起瞬間的電壓抖動問題。如果對抖動不做任何處理,則會引起程序的誤操作,對整個系統產生較大的負面影響。

圖1 按鍵電壓抖動波形

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

2 常用的去鍵抖動硬件和軟件消除方法

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

采用以上軟件去抖動的方法存在以下兩個問題:

①在代碼實現中,延時子函數空循環,消耗了單片機CPU的時間,造成資源的浪費,程序的效率不高。

②代碼的可移植性不高。按鍵抖動的時間取決于按鍵的機械特性,按鍵開關的抖動波形、抖動次數、抖動時間都是隨機的,不同的按鍵抖動時間不同;不同的操作者按鍵動作習慣也會導致抖動的時間不同。綜合考慮以上因素,如果單片機系統的硬件有變化,或者代碼有移植的需求,則在新的硬件環境中必須對延時子函數進行調試,找出適合該硬件系統的延時時間,而這將增加程序調試的時間成本,不利于在不同硬件系統中進行快速移植。

3 去鍵抖動程序的可移植性設計

結合系統設計時對正常按鍵頻率的考慮,比如最快0.5s按鍵一次,可以在程序中使用定時器來控制按鍵抖動。具體的思路是:在軟件中定義一個全局變量,設定其初始值為0。當按鍵中斷處理程序被調用時,首先讀取該全局變量的值。如果變量值為0,即此時是第一次檢測按鍵抖動,將該變量置為1,同時啟動定時器并進行按鍵事件的處理;如果由于按鍵抖動導致按鍵中斷處理程序被重復調用時,在該全局變量的值為1的情況下就跳過按鍵事件處理代碼。另一方面,在定時器的中斷處理程序中,經過設定的時間后將該全局變量重置為0,保證程序對下一次按鍵的正確處理。程序的流程圖如圖2所示。

圖2 程序流程圖

采取以上處理方法,雖然按鍵抖動會導致中斷處理程序被反復調用,但在定時器設定的時間內,中斷程序實質上只處理第一次按鍵事件,避免了對按鍵事件的重復處理以及使用延時子函數造成的空循環,提高了CPU的執行效率。當工程的硬件環境有變動時,根據項目對按鍵使用的要求,開發人員只需根據具體情況更改定時器的預設值即可,程序的其他部分保持不變,這樣就提高了程序的可移植性。程序框架的一種C語言實現如下:

結 語

筆者在工程項目中驗證了該設計方法實際可行,具有較好的靈活性和可移植性,對于類似的單片機去抖程序的開發具有一定的借鑒意義。

[1] 曾旖,奚大順,李向陽.按鍵開關的抖動與消除方法[J] .電子世界,2005(9):55-56.

[2] 方龍,肖獻保,李威.關于消除按鍵機械抖動的研究[J] .廣西輕工業計算機與技術,2008,1(1):92-105.

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

[4] 王為青,程國鋼.單片機Keil C51應用開發技術[M] .北京:人民郵電出版社,2007.

[5] 劉文濤.MCS-51單片機培訓教程[M] .北京:電子工業出版社,2005.

猜你喜歡
單片機程序方法
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
主站蜘蛛池模板: 伊人精品成人久久综合| 亚洲三级影院| 人禽伦免费交视频网页播放| 久久久久九九精品影院| a欧美在线| 中文字幕av无码不卡免费 | 日韩成人高清无码| 澳门av无码| 亚洲床戏一区| 91人妻日韩人妻无码专区精品| 国产成人午夜福利免费无码r| 亚洲福利片无码最新在线播放 | 国产一国产一有一级毛片视频| 亚洲码一区二区三区| 国产00高中生在线播放| 91国语视频| 岛国精品一区免费视频在线观看| 国产视频一二三区| 波多野结衣AV无码久久一区| 国产91线观看| 久久国语对白| 岛国精品一区免费视频在线观看 | 精品无码国产自产野外拍在线| 狠狠色综合久久狠狠色综合| 在线日韩日本国产亚洲| 国产精品亚洲αv天堂无码| 91色综合综合热五月激情| 国产精品第一区| vvvv98国产成人综合青青| 国产亚洲精品资源在线26u| 国产精品一区在线观看你懂的| 亚洲区一区| 亚洲看片网| 中国一级特黄大片在线观看| 在线免费a视频| 亚洲成在人线av品善网好看| 亚洲国产天堂久久综合226114| 九色在线观看视频| 国产人免费人成免费视频| 天天躁日日躁狠狠躁中文字幕| 亚洲综合第一页| 欧美区一区二区三| 亚洲人成网7777777国产| 国产成人亚洲无码淙合青草| 精品久久久久久中文字幕女 | 日韩精品无码免费专网站| 老司机午夜精品视频你懂的| 久久精品人妻中文视频| 自拍中文字幕| 国产精品伦视频观看免费| 国产午夜一级毛片| 日本人妻一区二区三区不卡影院 | 91亚洲精品第一| 欧美曰批视频免费播放免费| 亚洲欧美成人影院| 欧美精品xx| 国产麻豆精品久久一二三| 亚洲成肉网| 欧美97欧美综合色伦图| 视频二区国产精品职场同事| 毛片网站在线看| 久久大香伊蕉在人线观看热2| 亚洲国产精品日韩欧美一区| 亚洲欧美一区二区三区图片| 国产综合网站| 日韩欧美国产另类| 成人日韩精品| 四虎免费视频网站| 欧美成人一级| 久久这里只有精品国产99| 日本欧美成人免费| 国产成人精品午夜视频'| 色综合久久久久8天国| 久久精品人人做人人综合试看| 亚洲一本大道在线| 午夜日韩久久影院| 欧美一级夜夜爽| 欧美中文字幕在线视频| 亚洲aaa视频| 爆操波多野结衣| 啪啪啪亚洲无码| 日韩大乳视频中文字幕|