新聞中心

EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 基于VHDL語言的按鍵消抖電路設(shè)計及仿真

基于VHDL語言的按鍵消抖電路設(shè)計及仿真

作者: 時間:2009-12-29 來源:網(wǎng)絡(luò) 收藏

2.2 消抖
該控制電路采用的有限狀態(tài)機的設(shè)計方法來描述和實現(xiàn),其狀態(tài)轉(zhuǎn)換圖如圖2所示。

本文引用地址:http://butianyuan.cn/article/181118.htm

電路的復(fù)位信號Reset有效時,電路進入復(fù)位狀態(tài)S0,在S0狀態(tài)下時鐘信號CLK以一定的頻率采樣輸入信號Key_in,如果采樣到Key_in=‘1’則停留在S0狀態(tài),并繼續(xù)采樣輸入信號的狀態(tài),一旦采樣到輸入信號是低電平,即Key_in=‘0’,則轉(zhuǎn)入S1延時狀態(tài),進行消抖延時,當(dāng)延時結(jié)束時Delay_end=‘1’,則轉(zhuǎn)入在S2狀態(tài),在此狀態(tài)下時鐘信號CLK以一定頻率采樣按鍵輸入Key_in的狀態(tài),如果采樣到Key_in為高電平即Key_in=‘1’則轉(zhuǎn)回狀態(tài)S0,表示按鍵仍處在抖動狀態(tài),如果采樣到Key_in=‘O’,則轉(zhuǎn)入狀態(tài)S3;狀態(tài)S3,S4的轉(zhuǎn)換過程和條件跟S2相同,在S4狀態(tài)下,如果Key_in=‘0’則轉(zhuǎn)入S5狀態(tài),當(dāng)?shù)竭_狀態(tài)S5時.表示經(jīng)過S2,S3,S4三個連續(xù)狀態(tài)檢測按鍵輸入Key_in的狀態(tài)都為‘0’,則認為按鍵處在穩(wěn)定狀態(tài),并在S5輸出按鍵確認信號Key_confirm=‘1’。同時在狀態(tài)S5下時鐘信號CLK檢測按鍵輸入狀態(tài),當(dāng)檢測到按鍵輸入Key_in=‘0’,表示按鍵仍未釋放,則停留在S5繼續(xù)檢測按鍵輸入信號狀態(tài),如果檢測到Key_in=‘1’,表示按鍵已經(jīng)釋放,則轉(zhuǎn)回狀態(tài)S0,等待下一次按鍵操作。


3 按鍵消抖電路的分析
消抖電路的圖如圖3所示。當(dāng)復(fù)位信號Reset=‘0’時,狀態(tài)機Key處在S0狀態(tài),同時以CLK的時鐘頻率采樣按鍵輸入信號Din的狀態(tài),當(dāng)CLK第一次采樣到Din為低電平時,此時可能發(fā)生了按鍵操作,隨即狀態(tài)機Key進入S1消抖延時狀態(tài),當(dāng)延時結(jié)束時delay_end=‘1’(延時結(jié)束信號),跟接著狀態(tài)機KEY的S2,S3,S4連續(xù)三個狀態(tài)對按鍵輸入信號Din進行采樣,當(dāng)三個狀態(tài)下采樣到Din信號都是低電平,則轉(zhuǎn)入S5狀態(tài),并產(chǎn)生按鍵確認信號Key_confirm=‘1’,同時在S5狀態(tài)下等待按鍵釋放,在此狀態(tài)下當(dāng)CLK時鐘信號檢測到Din為高電平時轉(zhuǎn)回狀態(tài)S0。因按鍵釋放瞬間也會發(fā)生抖動,所以由波形圖可以看出,當(dāng)按鍵釋放瞬間由狀態(tài)S5轉(zhuǎn)回狀態(tài)S0,在S0狀態(tài)下,因按鍵抖動CLK時鐘又檢測到Din為低電平,隨即轉(zhuǎn)入S1進行消抖延時,經(jīng)過S1的消抖延時后,按鍵已經(jīng)穩(wěn)定,Din為穩(wěn)定的高電平,所以在狀態(tài)S2檢測到Din為高電平,則轉(zhuǎn)入S0狀態(tài),到此時完成一次按鍵的操作,等待下一次按鍵操作,如果沒有按鍵操作,即按鍵沒按下,則一直保持在狀態(tài)S0。

4 結(jié) 語
采用有限狀態(tài)機方法設(shè)計按鍵消抖電路,再根據(jù)按鍵的特性設(shè)定合適的延時時間(一般10 ms)后,通過分析及實驗驗證,能夠起到很好的消抖效果,而且性能穩(wěn)定,能確保每一次按鍵操作,產(chǎn)生一次按鍵確認,可廣泛應(yīng)用于可編程邏輯器件的鍵盤掃描設(shè)計中。


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉