- 相關(guān)推薦
一種軟件去除鍵抖動(dòng)的方法
摘要:單片機(jī)控制系統(tǒng)中大多使用控制鍵來實(shí)現(xiàn)控制功能。消除按鍵瞬間的抖動(dòng)是設(shè)計(jì)者必須要考慮的問題。本文介紹一種很實(shí)用的軟件去抖動(dòng)方法,它借助于單片機(jī)內(nèi)的定時(shí)中斷資源,只要運(yùn)算一下邏輯表達(dá)就完成了去抖動(dòng)。這個(gè)方法效率高,不耗機(jī)時(shí)且易實(shí)現(xiàn)。文中使用的邏輯表達(dá)式由簡單卡諾圖和真值表推出,使該方法的機(jī)理容易理解。文中還提供用C51單片機(jī)編程語言編寫的實(shí)用例程。關(guān)鍵詞:單片機(jī) 鍵處理 控制系統(tǒng) 去抖動(dòng) 鍵盤
概述
在單片機(jī)控制系統(tǒng)中,通過按鍵實(shí)現(xiàn)控制功能是很常見的。對按鍵處理的重要環(huán)節(jié)是去抖動(dòng),包括去除按下和抬起瞬間的抖動(dòng)。去抖動(dòng)的方法有很多種,如使用R-S觸發(fā)器的硬件方法、運(yùn)用不同算法的各種軟件方法等。硬件方法會(huì)增加成本和體積,對于按鍵較多的矩陣式鍵盤,會(huì)用硬件方法;軟件方法用的比較普遍,但有一種加固定延時(shí)的去抖動(dòng)法效率最低,它以無謂地耗費(fèi)機(jī)時(shí)來實(shí)現(xiàn)去抖動(dòng)。
此處介紹的是一種軟件方法。簡單說來是一種運(yùn)算法,配合定時(shí)中斷讀取按鍵,通過運(yùn)算邏輯表達(dá)式:
Keradyn=Ktemp Kinput+Kreadyn-1 (Ktemp ⊙Kinput) (1)
Ktemp=Kinput (2)
可以獲得消除抖動(dòng)的按鍵消息。這種方法效率高,不需耗時(shí)的循環(huán)等待,而且算法簡單、使用方便。
一、基本原理
由于按鍵的按下與抬起都會(huì)有10~20ms的抖動(dòng)毛刺存在,因此,為了獲取穩(wěn)定的按鍵信息,須要避開這段抖動(dòng)期。
設(shè)置3個(gè)變量Kready、Ktemp和Kinput,并設(shè)置定時(shí)中斷周期為20ms。在定時(shí)中斷服務(wù)程序中讀取按鍵,并把讀取的數(shù)據(jù)存于變量Kinput中。變量Kready中是所需要的穩(wěn)定的按鍵信息;Ktemp是中間變量,它的值是上一次的Kinput。
根據(jù)當(dāng)前按鍵的狀態(tài),考慮到Kready中是20ms抖動(dòng)后的有效鍵信息,則Kready、Ktemp和Kinput之間,在不同時(shí)刻的狀態(tài)關(guān)系如表1所列。
表1
時(shí) 刻KreadyKtempKinput100020013010400151[1] [2] [3] [4] [5] [6]
【一種軟件去除鍵抖動(dòng)的方法】相關(guān)文章:
一種利用CES軟件鑒別月球干擾的方法05-02
激光陀螺全數(shù)字抖動(dòng)控制方法研究04-28
黑頭形成的原因及去除方法10-31
cad快捷鍵怎么設(shè)置?cad快捷鍵設(shè)置的方法01-18
一種交互式分區(qū)網(wǎng)格的生成方法和軟件04-30
基于鍵價(jià)理論的晶體及表面結(jié)構(gòu)分析軟件04-28
專題圖注記信息去除方法探討04-28
軟件工程方法研究的論文04-27
軟件測試的控制論方法05-01