吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【紫光同創國產FPGA教程】【第六章】PDS下按鍵消抖實驗

FPGA技術專欄 ? 來源:芯驛電子科技 ? 作者:芯驛電子科技 ? 2021-02-04 13:24 ? 次閱讀

原創聲明:

本原創教程由芯驛電子科技(上海)有限公司(ALINX)創作,版權歸本公司所有,如需轉載,需授權并注明出處(alinx.com)。

適用于板卡型號:

PGL22G/PGL12G

1. 文檔簡介

本文主要講解按鍵消抖原理及程序編寫,程序實現按鍵按下后數字加1,并在led出來,通過PDS軟件編譯調試。

2. 實驗環境

3. 實驗原理

按鍵做為基本的人機輸入接口,在很多電子設計中都能見到,由于機械特性,在按鍵按下或松開的時候,按鍵輸入值是有抖動的,無論按下去是多平穩,都難以消除抖動,按鍵消抖方式有很多,本實驗主要是通過FPGA計時來消抖。實驗中設計了一個計數器,當按鍵輸入有變化時,計時器清零,否則就累加,直到加到一個預定值(例如10ms),就認為按鍵穩定,輸出按鍵值,這樣就得到以后沒有抖動的按鍵值。由于在很多地方需要用到按鍵下降沿或上升沿的檢測,按鍵消抖模塊直接集成了上升沿和下降沿檢測的功能。

o4YBAGAY4guAEo5jAAAVvrZUY3w009.jpg

4. 程序設計

如下圖所示,通過按鍵消抖后,在按鍵按下時,十進制計數器加1,通過數碼管譯碼掃描后顯示出來。

pIYBAGAY4gyABqtsAAAQEYgXsnE414.jpg

按鍵消抖部分的原理在上節已經講過,按鍵消抖部分代碼寫的非常精煉,閱讀起來稍顯費解,建議結合仿真波形去讀代碼。在提供的例程文件下的src文件夾中同時提供了仿真文件key_debounce_tb.v,可以通過添加仿真文件來進行仿真觀察代碼中信號的變化

信號名稱 方向 說明
clk in 時鐘輸入
rst_n in 異步復位輸入,低復位
button_in in 按鍵輸入
button_posedge out 消抖后按鍵上升沿,高有效,1個時鐘周期
button_negedge out 消抖后按鍵下升沿,高有效,1個時鐘周期
button_out out 消抖后按鍵輸出

按鍵消抖模塊(ax_debounce)端口

LED顯示部分在本章不做說明,就例程中按鍵消抖模塊“ax_debounce”模塊做一些講解,模塊中通過了兩級D觸發器來寄存鍵值,只有當鍵值穩定時才將鍵值輸出。我們可以看到在assign賦值語句中有一條“assign a_reset=(DFF1 ^ DFF2)”,學過數字電路的應該都知道“ ^ ”是異或運算符,運算符兩邊相同運算結果為0, 不同運算結果為1。在程序中DFF1和DFF2比較運算后的值通過“assign”賦給“a_reset”表示比較鎖存鍵值的前后兩級寄存器的值是否一致,只有前后兩級寄存器的值一致,也就是a_reset的值為0時才表示當前鎖存的鍵值沒有變化。當計數器累加到“TIMER_MAX_VAL”,表示鎖存的鍵值已經穩定可以輸出。另外在模塊中我們可以看到“{.......}”符號,要注意這可不是大括號,這表示位拼接運算符,其作用是將運算符內的兩位,或是多位信號拼接在一起,具體用法請參考例程。

最后,程序中需要說明的是“button_posedge”和“button_negedge”兩個輸出信號,這是一種常用的上升沿和下降沿的采集方法,其描述的RTL視圖如下:

o4YBAGAY4gyATkvyAAAXG_SbSYI531.jpg

當然還有其他的邊沿檢測電路的描述方法,但是其基本原理都是在邏輯時序電路里先將需要檢測的信號作為輸入非阻塞賦值給一個自定義寄存器,通過判斷前后兩級寄存器的值來判斷是上升沿或是下降沿,由0 ->1 變化是上升沿,由1 -> 0變化是下降沿;

5. Modelsim仿真

$random生成隨機數模擬按鍵抖動,按下按鍵對應輸出二進制數據加一。按鍵的按下和釋放經消抖后會得到一個穩定的下降沿和上升沿。仿真結果和部分仿真文件如下圖所示:

pIYBAGAY4g2Ad0ZaAAB7a0vLSUo341.jpgo4YBAGAY4g2ADswDAAAnAWTR0EI572.jpg

button_negedge為按鍵經過消抖后按鍵的下降沿,button_posedge為按鍵經過消抖后按鍵的上升沿。

6. 實驗現象

開發板上電后下載程序,按下“KEY2”按鍵,可以看到4個LED會變化,對應二進制數據,按一次加一,如果不經過消抖,是無法實現按一次加一的。

開發板操作

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1630

    文章

    21796

    瀏覽量

    605996
  • RTL
    RTL
    +關注

    關注

    1

    文章

    385

    瀏覽量

    59948
  • 按鍵
    +關注

    關注

    4

    文章

    223

    瀏覽量

    57660
  • PDS
    PDS
    +關注

    關注

    2

    文章

    32

    瀏覽量

    15349
  • 紫光同創
    +關注

    關注

    5

    文章

    88

    瀏覽量

    27560
收藏 人收藏

    評論

    相關推薦

    紫光同創盤古PGX-Nano教程】——(盤古PGX-Nano開發板/PG2L50H_MBG324第二按鍵實驗例程

    燈、按鍵、撥碼開關等。 二:實驗目的 對按鍵PB0進行按鍵 三:
    發表于 04-28 17:57

    數據采集光盤實例第一第六章

    數據采集光盤實例第一第六章
    發表于 06-28 21:02

    數據采集光盤實例第六章至第十二

    數據采集光盤實例第六章至第十二
    發表于 06-28 21:17

    【ALIENTEK 戰艦STM32開發板】STM32開發指南--第六章 跑馬燈實驗

    第六章 跑馬燈實驗STM32最簡單的外設莫過于IO口的高低電平控制了,本章將通過一個經典的跑馬燈程序,帶大家開啟STM32之旅,通過本章的學習,你將了解到STM32的IO口作為輸出使用的方法。在本章
    發表于 01-10 15:50

    求王慶利《單片機設計標準教程》第六章的一個函數??!

    在做一個設計,急需《單片機設計標準教程》里第六章 的I2C總線函數 #include“IIClib.h” 誰有幫忙拍張圖片傳一
    發表于 05-05 21:20

    《測控電路》習題完整參考答案(第六章

    《測控電路》習題完整參考答案(第六章
    發表于 05-07 11:36

    三相電路(第六章)

    三相電路(第六章) 一、 三相電源及其連接若三個電壓源的電壓uA,uB,uC的最大值相等,頻率相同,相位互差120°,則此三個電壓源的組合稱為對稱
    發表于 05-23 15:17 ?38次下載

    高頻電子線路第六章答案

    高頻電子線路第六章答案.
    發表于 06-05 10:41 ?41次下載

    PCB布線設計經驗談附原理圖(第六章)

    PCB布線設計經驗談附原理圖(第六章)   對于12位傳感系統的布線,應用的電路是一負載單元電路,該電路可精確測量傳感器上施加的
    發表于 10-28 09:30 ?1033次閱讀
    PCB布線設計經驗談附原理圖(<b class='flag-5'>第六章</b>)

    《測控電路》習題完整參考答案(第六章

    《測控電路》習題完整參考答案(第六章
    發表于 02-07 15:17 ?0次下載

    數字信號處理 第六章

    數字信號處理 第六章
    發表于 10-19 09:34 ?4次下載
    數字信號處理 <b class='flag-5'>第六章</b>

    靜噪基礎第六章_EMI靜噪濾波器

    靜噪基礎第六章,EMI靜噪濾波器
    發表于 01-24 16:25 ?4次下載

    STM8S BLDC電機第六章工程的stm8選項字節配置

    STM8S BLDC電機第六章工程的stm8選項字節配置
    發表于 03-05 15:07 ?8次下載

    電力系統繼電保護第六章-變壓器保護(課件)下載.ppt

    繼電保護第六章-變壓器保護(課件)
    發表于 04-28 09:45 ?0次下載
    電力系統繼電保護<b class='flag-5'>第六章</b>-變壓器保護(課件)下載.ppt

    計算機網絡第六章應用層資源下載

    計算機網絡第六章應用層資源下載
    發表于 05-17 10:25 ?0次下載
    百家乐庄闲最佳打法| 属羊的和属猪的做生意| 彩会百家乐游戏| 将军百家乐的玩法技巧和规则| 中国百家乐软件| 大发888娱乐场ylc8| 百家乐官网视频计牌器| 金杯百家乐官网的玩法技巧和规则| 至尊百家乐吕文婉| 最好的网上真人赌博| 百家乐官网台布哪里有卖| OG百家乐大转轮| e世博官方网站| 钱隆百家乐官网智能| 大三巴百家乐的玩法技巧和规则| 大玩家娱乐城开户| 7位百家乐官网扑克桌| 推二八杠技巧| 百家乐官网平台信誉排名| 做生意养猫风水| 全讯网vc8888| 娱乐城百家乐官网论坛| 至尊百家乐奇热网| 博狗官网| 奔驰百家乐官网游戏电玩| 南京百家乐在哪| 芦山县| 皇家百家乐官网出租平台| 金界百家乐的玩法技巧和规则| 优博国际| 百家乐官网比较好的网站| 星河百家乐的玩法技巧和规则 | 百家乐博弈指| 利高百家乐官网游戏| 悍马百家乐官网的玩法技巧和规则| 百家乐过滤软件| 网络百家乐官网投注| 怎么看百家乐路单| 百家乐官网路单之我见| 百家乐娱乐网备用网址| 百家乐官网赚钱项目|