一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【紫光同創(chuàng)國(guó)產(chǎn)FPGA教程】【第六章】PDS下按鍵消抖實(shí)驗(yàn)

FPGA技術(shù)專(zhuān)欄 ? 來(lái)源:芯驛電子科技 ? 作者:芯驛電子科技 ? 2021-02-04 13:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

原創(chuàng)聲明:

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

適用于板卡型號(hào):

PGL22G/PGL12G

1. 文檔簡(jiǎn)介

本文主要講解按鍵消抖原理及程序編寫(xiě),程序?qū)崿F(xiàn)按鍵按下后數(shù)字加1,并在led出來(lái),通過(guò)PDS軟件編譯調(diào)試。

2. 實(shí)驗(yàn)環(huán)境

  • Windows 10 64位

  • Pango Design Suite 2020.3

  • 開(kāi)發(fā)板

3. 實(shí)驗(yàn)原理

按鍵做為基本的人機(jī)輸入接口,在很多電子設(shè)計(jì)中都能見(jiàn)到,由于機(jī)械特性,在按鍵按下或松開(kāi)的時(shí)候,按鍵輸入值是有抖動(dòng)的,無(wú)論按下去是多平穩(wěn),都難以消除抖動(dòng),按鍵消抖方式有很多,本實(shí)驗(yàn)主要是通過(guò)FPGA計(jì)時(shí)來(lái)消抖。實(shí)驗(yàn)中設(shè)計(jì)了一個(gè)計(jì)數(shù)器,當(dāng)按鍵輸入有變化時(shí),計(jì)時(shí)器清零,否則就累加,直到加到一個(gè)預(yù)定值(例如10ms),就認(rèn)為按鍵穩(wěn)定,輸出按鍵值,這樣就得到以后沒(méi)有抖動(dòng)的按鍵值。由于在很多地方需要用到按鍵下降沿或上升沿的檢測(cè),按鍵消抖模塊直接集成了上升沿和下降沿檢測(cè)的功能。

o4YBAGAY4guAEo5jAAAVvrZUY3w009.jpg

4. 程序設(shè)計(jì)

如下圖所示,通過(guò)按鍵消抖后,在按鍵按下時(shí),十進(jìn)制計(jì)數(shù)器加1,通過(guò)數(shù)碼管譯碼掃描后顯示出來(lái)。

pIYBAGAY4gyABqtsAAAQEYgXsnE414.jpg

按鍵消抖部分的原理在上節(jié)已經(jīng)講過(guò),按鍵消抖部分代碼寫(xiě)的非常精煉,閱讀起來(lái)稍顯費(fèi)解,建議結(jié)合仿真波形去讀代碼。在提供的例程文件下的src文件夾中同時(shí)提供了仿真文件key_debounce_tb.v,可以通過(guò)添加仿真文件來(lái)進(jìn)行仿真觀察代碼中信號(hào)的變化

信號(hào)名稱(chēng) 方向 說(shuō)明
clk in 時(shí)鐘輸入
rst_n in 異步復(fù)位輸入,低復(fù)位
button_in in 按鍵輸入
button_posedge out 消抖后按鍵上升沿,高有效,1個(gè)時(shí)鐘周期
button_negedge out 消抖后按鍵下升沿,高有效,1個(gè)時(shí)鐘周期
button_out out 消抖后按鍵輸出

按鍵消抖模塊(ax_debounce)端口

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

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

o4YBAGAY4gyATkvyAAAXG_SbSYI531.jpg

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

5. Modelsim仿真

$random生成隨機(jī)數(shù)模擬按鍵抖動(dòng),按下按鍵對(duì)應(yīng)輸出二進(jìn)制數(shù)據(jù)加一。按鍵的按下和釋放經(jīng)消抖后會(huì)得到一個(gè)穩(wěn)定的下降沿和上升沿。仿真結(jié)果和部分仿真文件如下圖所示:

pIYBAGAY4g2Ad0ZaAAB7a0vLSUo341.jpgo4YBAGAY4g2ADswDAAAnAWTR0EI572.jpg

button_negedge為按鍵經(jīng)過(guò)消抖后按鍵的下降沿,button_posedge為按鍵經(jīng)過(guò)消抖后按鍵的上升沿。

6. 實(shí)驗(yàn)現(xiàn)象

開(kāi)發(fā)板上電后下載程序,按下“KEY2”按鍵,可以看到4個(gè)LED會(huì)變化,對(duì)應(yīng)二進(jìn)制數(shù)據(jù),按一次加一,如果不經(jīng)過(guò)消抖,是無(wú)法實(shí)現(xiàn)按一次加一的。

開(kāi)發(fā)板操作

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1645

    文章

    22049

    瀏覽量

    618394
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    389

    瀏覽量

    61109
  • 按鍵
    +關(guān)注

    關(guān)注

    4

    文章

    227

    瀏覽量

    58072
  • PDS
    PDS
    +關(guān)注

    關(guān)注

    2

    文章

    32

    瀏覽量

    15517
  • 紫光同創(chuàng)
    +關(guān)注

    關(guān)注

    5

    文章

    101

    瀏覽量

    27978
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    紫光同創(chuàng)盤(pán)古PGX-Nano教程】——(盤(pán)古PGX-Nano開(kāi)發(fā)板/PG2L50H_MBG324第二按鍵實(shí)驗(yàn)例程

    燈、按鍵、撥碼開(kāi)關(guān)等。 二:實(shí)驗(yàn)目的 對(duì)按鍵PB0進(jìn)行按鍵 三:
    發(fā)表于 04-28 17:57

    數(shù)據(jù)采集光盤(pán)實(shí)例第一第六章

    數(shù)據(jù)采集光盤(pán)實(shí)例第一第六章
    發(fā)表于 06-28 21:02

    數(shù)據(jù)采集光盤(pán)實(shí)例第六章至第十二

    數(shù)據(jù)采集光盤(pán)實(shí)例第六章至第十二
    發(fā)表于 06-28 21:17

    【ALIENTEK 戰(zhàn)艦STM32開(kāi)發(fā)板】STM32開(kāi)發(fā)指南--第六章 跑馬燈實(shí)驗(yàn)

    第六章 跑馬燈實(shí)驗(yàn)STM32最簡(jiǎn)單的外設(shè)莫過(guò)于IO口的高低電平控制了,本章將通過(guò)一個(gè)經(jīng)典的跑馬燈程序,帶大家開(kāi)啟STM32之旅,通過(guò)本章的學(xué)習(xí),你將了解到STM32的IO口作為輸出使用的方法。在本章
    發(fā)表于 01-10 15:50

    求王慶利《單片機(jī)設(shè)計(jì)標(biāo)準(zhǔn)教程》第六章的一個(gè)函數(shù)!!

    在做一個(gè)設(shè)計(jì),急需《單片機(jī)設(shè)計(jì)標(biāo)準(zhǔn)教程》里第六章 的I2C總線(xiàn)函數(shù) #include“IIClib.h” 誰(shuí)有幫忙拍張圖片傳一
    發(fā)表于 05-05 21:20

    《測(cè)控電路》習(xí)題完整參考答案(第六章

    《測(cè)控電路》習(xí)題完整參考答案(第六章
    發(fā)表于 05-07 11:36

    三相電路(第六章)

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

    高頻電子線(xiàn)路第六章答案

    高頻電子線(xiàn)路第六章答案.
    發(fā)表于 06-05 10:41 ?41次下載

    PCB布線(xiàn)設(shè)計(jì)經(jīng)驗(yàn)談附原理圖(第六章)

    PCB布線(xiàn)設(shè)計(jì)經(jīng)驗(yàn)談附原理圖(第六章)   對(duì)于12位傳感系統(tǒng)的布線(xiàn),應(yīng)用的電路是一負(fù)載單元電路,該電路可精確測(cè)量傳感器上施加的
    發(fā)表于 10-28 09:30 ?1145次閱讀
    PCB布線(xiàn)設(shè)計(jì)經(jīng)驗(yàn)談附原理圖(<b class='flag-5'>第六章</b>)

    《測(cè)控電路》習(xí)題完整參考答案(第六章

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

    數(shù)字信號(hào)處理 第六章

    數(shù)字信號(hào)處理 第六章
    發(fā)表于 10-19 09:34 ?4次下載
    數(shù)字信號(hào)處理 <b class='flag-5'>第六章</b>

    靜噪基礎(chǔ)第六章_EMI靜噪濾波器

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

    STM8S BLDC電機(jī)第六章工程的stm8選項(xiàng)字節(jié)配置

    STM8S BLDC電機(jī)第六章工程的stm8選項(xiàng)字節(jié)配置
    發(fā)表于 03-05 15:07 ?8次下載

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

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

    計(jì)算機(jī)網(wǎng)絡(luò)第六章應(yīng)用層資源下載

    計(jì)算機(jī)網(wǎng)絡(luò)第六章應(yīng)用層資源下載
    發(fā)表于 05-17 10:25 ?0次下載