FPGA開發(fā)中按鍵消抖與單脈沖發(fā)生器電路_第1頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、fpga開發(fā)中按鍵消抖與單脈沖發(fā)生器電路開發(fā)中常用到單脈沖發(fā)生器。一些文章介紹過產(chǎn)生單脈沖的,產(chǎn)生的單脈沖脈寬和相位都不能與時(shí)鐘同步,只能用在要求不嚴(yán)格的場合。筆者目前從事的課題中需要一個與時(shí)鐘周期等寬,相位與時(shí)鐘周期相同的鍵控單脈沖發(fā)生器。鍵控單脈沖發(fā)生器需要按鍵產(chǎn)生單脈沖,但大多數(shù)帶有fpga芯片的開發(fā)板提供的是高頻時(shí)鐘脈沖,按鍵時(shí)會存在顫動問題。為此筆者特地設(shè)計(jì)了按鍵消抖電路消退顫動,為產(chǎn)生單脈沖提供穩(wěn)定的按鍵信號。1 按鍵消抖電路原理為了使按鍵消抖電路模塊簡潔,移植性好,在此用計(jì)數(shù)器的方式實(shí)現(xiàn)按鍵消抖的功能。計(jì)數(shù)器模值n按照顫動信號的脈沖寬度和采樣脈沖信號clk的周期大小打算。計(jì)數(shù)模值

2、n=延時(shí)脈沖信號采樣周期。普通按鍵顫動時(shí)光為510 ms,甚至更長。筆者用的開發(fā)板提供的系統(tǒng)時(shí)鐘為24 mhz,按公式計(jì)算,當(dāng)計(jì)數(shù)器模值取20位,計(jì)數(shù)到219即h8 0000時(shí),大約延時(shí)22 ms。計(jì)數(shù)期間認(rèn)為是按鍵的顫動信號,不做采樣;計(jì)數(shù)器停止計(jì)數(shù),認(rèn)為采樣信號為穩(wěn)定按鍵信號。這樣就可以把按鍵時(shí)光小于22 ms的顫動信號濾掉。引入一個采樣脈沖信號clk,并輸入按鍵信號key。key輸入低電平,計(jì)數(shù)器開頭做加法計(jì)數(shù),當(dāng)計(jì)數(shù)到h8 0000即計(jì)數(shù)器中最高位q19為1,計(jì)數(shù)器停止計(jì)數(shù),輸出q19,作為按鍵的穩(wěn)定輸出,計(jì)數(shù)期間q19輸出為0;key輸入高電平,計(jì)數(shù)器清零,q19輸出為0。所以該電路

3、需按鍵22 ms才會得到有效信號。2 鍵控單脈沖發(fā)生器電路原理鍵控單脈沖發(fā)生器利用上述電路解決按鍵消抖問題,得到穩(wěn)定的信號。用兩個d觸發(fā)器和一個與門產(chǎn)生單脈沖,1所示。d觸發(fā)器u2a收到穩(wěn)定信號d1=1后被觸發(fā)。觸發(fā)器u2a中的q1端得到與clk同步的正向脈沖。輸出q1到d觸發(fā)器u3a,得到比q1延遲一個時(shí)鐘周期的的正向脈沖,將q2端輸出取反得到一個負(fù)向脈沖。q1與qn2的輸出作為一個與門的輸入,會輸出一個脈寬是原時(shí)鐘周期2倍的單脈沖。為了使得出的單脈沖脈寬與時(shí)鐘周期相等,相位與時(shí)鐘周期相同,對圖1中電路設(shè)計(jì)做了改進(jìn),2所示。圖2中時(shí)鐘送入d觸發(fā)器前加了非門,使q1端產(chǎn)生與nclk(clk的反

4、向脈沖信號)同步的正向脈沖,與門輸出單脈沖與clk差半個時(shí)鐘周期,作為d觸發(fā)器u4a的輸入d4,在clk升高沿u4a被觸發(fā),使單脈沖脈寬與時(shí)鐘周期相同,實(shí)現(xiàn)了等脈寬。并延遲了半個時(shí)鐘周期使輸出脈沖與時(shí)鐘周期對應(yīng),實(shí)現(xiàn)了相位調(diào)節(jié)。囫圇單脈沖發(fā)生器的時(shí)序圖3所示(圖3中的t1,t2是隨意鍵按下與鍵抬起時(shí)刻)。3 基于fpga下的按鍵消抖計(jì)數(shù)器和單脈沖發(fā)生器的 hdl語言描述圖1中的按鍵消抖計(jì)數(shù)器電路,其舉行描述的verilog hdl語言代碼如下:代碼中的復(fù)位n_rst和按鍵n_kd都是低電平有效。鍵控單脈沖發(fā)生器的verilog hdl語言代碼如下:代碼中還用到了d觸發(fā)器dff,實(shí)現(xiàn)這個模塊的代碼比較容易,此處從略。4 結(jié) 語該文中的設(shè)計(jì),實(shí)現(xiàn)了鍵控單脈沖發(fā)生器,產(chǎn)生脈寬等于時(shí)鐘脈沖,輸出脈沖與時(shí)鐘周期對應(yīng)的單脈沖,并解決了按鍵消抖問題,可以應(yīng)用到各種需要產(chǎn)生單脈沖的fpga電路設(shè)計(jì)中。按鍵消抖電路可自立地應(yīng)用于其他fpga電路設(shè)計(jì)中。本

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論