最近學(xué)了FPGA 一段時間,想自己做個真實的東西,筆者也是務(wù)實求真的人,呵呵。首先就選擇了一個數(shù)字鐘,當(dāng)我昨晚了計數(shù)器模塊,做按鍵校準的時候,就發(fā)現(xiàn)按鍵抖動的很厲害,沒有C 語言做防抖動那么簡單,因此我參考了網(wǎng)上很多博主的觀點,總結(jié)了自己認為最簡單,最精簡的一個寫法,如下: 進程模塊內(nèi)代碼只有10行。哈哈
reg key_reg1,key_reg2,key_out;
always @( posedge clk)//CLK 50M
begin
count2<=count2+1;
if(count2==500000)
begin
key_reg1<=key1;
count2<=0;
end
key_reg2<=key_reg1;
key_out<=key_reg2&(!key_reg1);
end
意思為定義2個寄存器,存儲按鍵在2個周期內(nèi)的數(shù)據(jù),計數(shù)器是決定按鍵的采樣頻率,如果我們把按鍵的采樣頻率調(diào)高,那么 按鍵就會有2次相應(yīng),我試過吧計數(shù)器去掉,但是一直都是雙數(shù)增加,很讓我費解,在苦思冥想之際,悟出了可以通過延時,吧后面松手的一個電平跳變?yōu)V掉,哈哈!!頓時給大家分享下最簡單的防抖動,
key1 是低電平按下,當(dāng)按下的時候, key_out輸出的是一個高電平。這個需要大家注意。
如有bug 希望大家拋磚
本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。