實(shí)驗(yàn)任務(wù): 本實(shí)驗(yàn)中要設(shè)計(jì)一個(gè)對按鍵信號(key_in)進(jìn)行計(jì)數(shù)的計(jì)數(shù)器。
實(shí)驗(yàn)原理: 整個(gè)實(shí)驗(yàn)電路包含四個(gè)模塊:
① erzp模塊完成按鍵消抖功能,默認(rèn)抖動(dòng)時(shí)間為10MS;
② detect_module模塊用于檢測按鍵信號的下降沿,當(dāng)檢測到下降沿后,輸出一個(gè)時(shí)鐘周期的高電平。
③ get_state模塊:將按鍵信號轉(zhuǎn)換成狀態(tài)信號,當(dāng)按鍵按下后,狀態(tài)轉(zhuǎn)換0→1→0→1→……..。
④ cnt10模塊:完成對按鍵信號進(jìn)行計(jì)數(shù)。clk:系統(tǒng)時(shí)鐘,cnt_en:計(jì)數(shù)使能(1:計(jì)數(shù),0:暫停),cnt_single:計(jì)數(shù)信號,rst_n:復(fù)位信號,updown_state:加1計(jì)數(shù)或減1計(jì)數(shù)控制(1:加1計(jì)數(shù),0:減1計(jì)數(shù))。data:計(jì)數(shù)結(jié)果輸出。
源代碼撰寫:
erzp****模塊:
默認(rèn)抖動(dòng)時(shí)間最多為10ms,框1與框2的功能就是,計(jì)數(shù)當(dāng)前電平若處于一直處于低電平就key_low一直自加1 ,一旦不是低電平了key_low就清0.高電平key_hign同理。當(dāng)key_low或key_hign當(dāng)前計(jì)數(shù)到了10ms,說明當(dāng)前已經(jīng)過了抖動(dòng)狀態(tài)。并且輸出當(dāng)前消抖后的對應(yīng)電平。
detect_module****模塊:
這里主要是利用了一個(gè)寄存器,讓上一個(gè)時(shí)鐘狀態(tài)的按鍵狀態(tài)和當(dāng)前的對比,不一樣說明有了邊緣變化。
get_state****模塊:
cnt10****模塊:
原理圖繪制頂層文件流程:
1.將以上四個(gè).v文件依次轉(zhuǎn)換為電路器件,生成BSF文件如右圖所示
2.建立一個(gè)頂層原理圖bdf(后建立的要設(shè)為頂層,與項(xiàng)目工程名稱一致。)
在原理圖中可以放置器件,可以看到剛剛生產(chǎn)的器件。并按邏輯進(jìn)行連接。并修改對應(yīng)端口名。完成之后,為了之后仿真,可以轉(zhuǎn)成.v文件。
生成如圖所示:以后也可將此項(xiàng)目作為整個(gè)調(diào)用的器件,生成BSF文件
RTL視圖:
測試代碼撰寫: 測試時(shí),需將原理圖移除,將轉(zhuǎn)化的.V文件加進(jìn)來。
測試結(jié)果
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報(bào)投訴
-
寄存器
-
計(jì)數(shù)器
-
CLK
-
按鍵消抖
相關(guān)推薦
計(jì)數(shù)器的級連使用
一個(gè)十進(jìn)制計(jì)數(shù)器只能顯示0~9十個(gè)數(shù),為了擴(kuò)大計(jì)數(shù)器范圍,常用多個(gè)十進(jìn)制
發(fā)表于 11-22 12:53
?4075次閱讀
環(huán)形計(jì)數(shù)器和扭環(huán)形計(jì)數(shù)器
移位寄存器也可以構(gòu)成計(jì)數(shù)器,稱為移位型計(jì)數(shù)器。它有兩種結(jié)構(gòu):環(huán)形計(jì)數(shù)器
發(fā)表于 01-12 14:07
?9850次閱讀
計(jì)數(shù)器,計(jì)數(shù)器的工作原理是什么?
在數(shù)字系統(tǒng)中使用最多的時(shí)序電路是計(jì)數(shù)器。計(jì)數(shù)器不僅能用于對時(shí)鐘脈沖進(jìn)行
發(fā)表于 03-08 13:50
?6.1w次閱讀
慧凈HL-1 配套C實(shí)驗(yàn)例程100例【實(shí)驗(yàn)21】按鍵次數(shù)計(jì)數(shù)器),很好的C51學(xué)習(xí)資料程序。
發(fā)表于 03-21 16:44
?21次下載
什么是計(jì)數(shù)器芯片? 一般來說,計(jì)數(shù)器芯片就是用來實(shí)現(xiàn)計(jì)數(shù)這種最基礎(chǔ)運(yùn)算的邏輯電路,計(jì)數(shù)器在數(shù)字系統(tǒng)中主要是對脈沖的個(gè)數(shù)
發(fā)表于 07-13 14:09
?1.4w次閱讀
計(jì)數(shù)器一、實(shí)驗(yàn)?zāi)康亩?、?shí)驗(yàn)內(nèi)容三、實(shí)驗(yàn)步驟四、C代碼如下五、實(shí)驗(yàn)結(jié)果六、實(shí)驗(yàn)體會(huì)一、實(shí)驗(yàn)?zāi)康恼莆諉纹瑱C(jī)定時(shí)計(jì)數(shù)器計(jì)數(shù)方式的使用及編程方法。二
發(fā)表于 11-25 12:36
?4次下載
計(jì)數(shù)器一、實(shí)驗(yàn)?zāi)康亩?、?shí)驗(yàn)內(nèi)容三、實(shí)驗(yàn)步驟四、C代碼如下五、實(shí)驗(yàn)結(jié)果六、實(shí)驗(yàn)體會(huì)一、實(shí)驗(yàn)?zāi)康恼莆諉纹瑱C(jī)定時(shí)計(jì)數(shù)器計(jì)數(shù)方式的使用及編程方法。二
發(fā)表于 11-25 12:51
?5次下載
計(jì)數(shù)器(Counter)由基本的計(jì)數(shù)單元和控制門所組成,是在數(shù)字系統(tǒng)中對脈沖的個(gè)數(shù)進(jìn)行計(jì)數(shù),以實(shí)現(xiàn)測量、計(jì)數(shù)和控制功能,且兼有分頻功能的儀器
發(fā)表于 11-25 18:06
?32次下載
異步計(jì)數(shù)器是那些輸出不受時(shí)鐘信號影響的計(jì)數(shù)器。由于異步計(jì)數(shù)器中的觸發(fā)器提供有不同的時(shí)鐘信號,因此
發(fā)表于 10-11 17:16
?5966次閱讀
在數(shù)字電子產(chǎn)品中,計(jì)數(shù)器是由一系列觸發(fā)器組成的時(shí)序邏輯電路。顧名思義,計(jì)數(shù)器用于計(jì)算輸入在負(fù)或正邊沿轉(zhuǎn)換中出現(xiàn)的次數(shù)。根據(jù)觸發(fā)觸發(fā)器的方式,
發(fā)表于 03-25 17:31
?2.6w次閱讀
、應(yīng)用等方面。 一、工作原理 同步計(jì)數(shù)器:同步計(jì)數(shù)器的工作原理是,在時(shí)鐘信號的驅(qū)動(dòng)下,對輸入的二進(jìn)制數(shù)進(jìn)行加法或減法運(yùn)算,從而得到
發(fā)表于 12-13 14:54
?1.2w次閱讀
: 同步計(jì)數(shù)器是一種同步機(jī)制,用于控制多個(gè)線程的順序執(zhí)行。它們使用共享的計(jì)數(shù)器,并在計(jì)數(shù)器達(dá)到特定值時(shí)觸發(fā)線程的執(zhí)行。下面是同步計(jì)數(shù)器的幾個(gè)
發(fā)表于 12-15 10:49
?2112次閱讀
計(jì)數(shù)器是一種被廣泛應(yīng)用于各個(gè)領(lǐng)域的實(shí)用工具,在我們的日常生活中隨處可見。無論是進(jìn)行時(shí)間統(tǒng)計(jì),協(xié)助工作任務(wù)的完成,還是用于科學(xué)研究和編程技術(shù),在各個(gè)領(lǐng)域都起到了重要的作用。本文將詳細(xì)介紹計(jì)數(shù)器
發(fā)表于 02-03 10:04
?5615次閱讀
在數(shù)字電子領(lǐng)域中,計(jì)數(shù)器是一種用于統(tǒng)計(jì)脈沖信號數(shù)量的重要設(shè)備。其中,同步計(jì)數(shù)器和異步計(jì)數(shù)器是兩種不同類型的
發(fā)表于 05-24 14:36
?4643次閱讀
計(jì)數(shù)器同步和異步是數(shù)字電路設(shè)計(jì)中的一個(gè)重要概念,它們在很多應(yīng)用場景中都扮演著關(guān)鍵角色。 一、計(jì)數(shù)器概述
發(fā)表于 07-23 11:14
?1643次閱讀
評論