按鍵作為一種機械開關,在進行按鍵操作時,機械接觸點的彈性及電壓突變等原因,在機械開關合閉的時候會出現(xiàn)電壓抖動,因此在實際的應用當中需要做一定的處理。
一般按鍵按下就是低電壓,這種按鍵去抖動的關鍵就是獲取穩(wěn)定的低電壓電平狀態(tài),因此,對于對于一個按鍵信號,可以用一個脈沖信號對其進行采樣,如果連續(xù)三次采樣都為低電平的話,就認為是按鍵被按下。其數(shù)字電路原型為下圖
其實,我們在做FPGA設計之前,就應該大概知道自己的coding 在FPGA芯片上面會映射成什么電路,這樣寫的代碼才是可靠的,有了上面的原理圖,那么Verilog代碼就很容易了,如下
input wire Clk ;
input wire key_in ;
output wire key_out ;
reg key_dly1;
reg key_dly2;
reg key_dly3;
always @(posedge Clk)
begin
if(Rst_n == 1'b0) begin
key_dly1 <= 1'b0; key_dly2 <= 1'b0; key_dly3 <= 1'b0; end
else
begin
key_dly1 <= key_in ;
key_dly2 <= key_dly1;
key_dly3 <= key_dly2;
end
end
assign key_out = key_dly1 | key_dly2 | key_dly3;
對于復雜的電路我們也可以把他分解為每一個觸發(fā)器,然后心里有個大概的硬件原理圖,這樣寫代碼才胸有成竹。
審核編輯:劉清
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
原文標題:按鍵抖動消除 verilog
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
相關推薦
verilog寫cpld的程序如何消除按鍵的抖動?
發(fā)表于 04-02 09:22
電路圖如下,,左側按鈕按下后給74LS192提供脈沖信號,但實物焊接時卻存在按下一次按鈕,192多次計數(shù)。是因為選用的按鈕存在按鍵抖動,按下一次按鈕會提供多個脈沖信號,讓192多次計數(shù)嗎?如果是,有什么辦法能消除這種
發(fā)表于 06-25 02:31
按鍵也是機械裝置,在按下或放開的一瞬間會產生抖動,如下圖: 消除方法有兩種: 軟件除抖和硬件除抖,其中硬件除抖是應用了電容對高頻信號短路的原理。 軟件除抖是檢測出鍵閉合后執(zhí)行一個延時
發(fā)表于 09-02 17:52
如何通過軟件編程實現(xiàn)消除鍵盤的抖動?記文本答:由于按鍵是機械開關結構,所以當用手按下其中-一個鍵時,往往會出現(xiàn)所按鍵在閉合位置和斷開位置之間發(fā)生跳幾下后才會穩(wěn)定到閉合狀態(tài)的情況。在釋放
發(fā)表于 07-22 08:24
單片機如何消除按鍵抖動?
發(fā)表于 10-21 09:29
,從而引起誤處理。因此,為了確保單片機對一次按鍵動作只作—次響應,就必須考慮如何消除按鍵抖動的影響。按鍵讀取識
發(fā)表于 01-17 07:46
目的實現(xiàn):按鍵數(shù)碼管數(shù)字加減,運用外部中斷函數(shù),消除按鍵抖動***仿真c代碼#includecode unsigned char SEG[]={0XC0
發(fā)表于 03-02 06:31
按鍵開關是各種電子設備不可或缺的人機接口。在實際應用中,很大一部分的按鍵是機械按鍵。在機械按鍵的觸點閉合和斷開時,都會產生抖動,為了保證系統(tǒng)
發(fā)表于 02-11 01:14
?2.3w次閱讀
按鍵開關是電子設備人機交互的主要器件之一。按鍵大多是機械式開關結構,由于機械式開關的核心部件為彈性金屬簧片,因而在開關切換的瞬間會在接觸點出現(xiàn)來回彈跳的現(xiàn)象。對于靈敏度比較高的電路,這種彈跳現(xiàn)象引起的信號抖動會造成誤動作而影響到
發(fā)表于 01-07 08:45
?2713次閱讀
當我們寫完一個外部中斷程序測試時,例如按鍵計數(shù)和按鍵點亮led燈,我們可能會遇到一次按鍵按下松開卻觸發(fā)了多次外部中斷,這是因為按鍵抖動的存在
發(fā)表于 11-22 15:36
?27次下載
,從而引起誤處理。因此,為了確保單片機對一次按鍵動作只作—次響應,就必須考慮如何消除按鍵抖動的影響。按鍵讀取識
發(fā)表于 01-18 10:30
?4次下載
當按下和釋放微動按鍵時,會由短時間的抖動現(xiàn)象才會到達想要的狀態(tài)。
發(fā)表于 12-26 16:25
?2649次閱讀
在使用按鍵時,我們想按一次按鍵,但在實際中卻經常發(fā)現(xiàn)我們要的”一次“,實際上去并不是”一次“而可能是多次。為什么呢?這是因為,我們使用的機械按鍵,在我們按下時,并非只是接觸一次,因為存在機械抖
發(fā)表于 11-02 15:16
?5006次閱讀
按鍵抖動是指由于按鍵接點的不完美接觸而導致的按鍵信號在短時間內多次跳變的現(xiàn)象。在電子設備的設計與制造中,消除
發(fā)表于 11-17 15:53
?1974次閱讀
在FPGA(現(xiàn)場可編程門陣列)設計中,消除時鐘抖動是一個關鍵任務,因為時鐘抖動會直接影響系統(tǒng)的時序性能、穩(wěn)定性和可靠性。以下將詳細闡述FPGA中消除時鐘
發(fā)表于 08-19 17:58
?1036次閱讀
評論