實(shí)驗(yàn)任務(wù): 本實(shí)驗(yàn)中要設(shè)計(jì)一個(gè)對(duì)按鍵信號(hào)(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模塊用于檢測(cè)按鍵信號(hào)的下降沿,當(dāng)檢測(cè)到下降沿后,輸出一個(gè)時(shí)鐘周期的高電平。
③ get_state模塊:將按鍵信號(hào)轉(zhuǎn)換成狀態(tài)信號(hào),當(dāng)按鍵按下后,狀態(tài)轉(zhuǎn)換0→1→0→1→……..。
④ cnt10模塊:完成對(duì)按鍵信號(hào)進(jìn)行計(jì)數(shù)。clk:系統(tǒng)時(shí)鐘,cnt_en:計(jì)數(shù)使能(1:計(jì)數(shù),0:暫停),cnt_single:計(jì)數(shù)信號(hào),rst_n:復(fù)位信號(hào),updown_state:加1計(jì)數(shù)或減1計(jì)數(shù)控制(1:加1計(jì)數(shù),0:減1計(jì)數(shù))。data:計(jì)數(shù)結(jié)果輸出。
源代碼撰寫(xiě):
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,說(shuō)明當(dāng)前已經(jīng)過(guò)了抖動(dòng)狀態(tài)。并且輸出當(dāng)前消抖后的對(duì)應(yīng)電平。
detect_module****模塊:
這里主要是利用了一個(gè)寄存器,讓上一個(gè)時(shí)鐘狀態(tài)的按鍵狀態(tài)和當(dāng)前的對(duì)比,不一樣說(shuō)明有了邊緣變化。
get_state****模塊:
cnt10****模塊:
原理圖繪制頂層文件流程:
1.將以上四個(gè).v文件依次轉(zhuǎn)換為電路器件,生成BSF文件如右圖所示
2.建立一個(gè)頂層原理圖bdf(后建立的要設(shè)為頂層,與項(xiàng)目工程名稱(chēng)一致。)
在原理圖中可以放置器件,可以看到剛剛生產(chǎn)的器件。并按邏輯進(jìn)行連接。并修改對(duì)應(yīng)端口名。完成之后,為了之后仿真,可以轉(zhuǎn)成.v文件。
生成如圖所示:以后也可將此項(xiàng)目作為整個(gè)調(diào)用的器件,生成BSF文件
RTL視圖:
測(cè)試代碼撰寫(xiě): 測(cè)試時(shí),需將原理圖移除,將轉(zhuǎn)化的.V文件加進(jìn)來(lái)。
測(cè)試結(jié)果
-
寄存器
+關(guān)注
關(guān)注
31文章
5392瀏覽量
121924 -
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2278瀏覽量
95442 -
CLK
+關(guān)注
關(guān)注
0文章
127瀏覽量
17295 -
按鍵消抖
+關(guān)注
關(guān)注
2文章
27瀏覽量
10527
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
計(jì)數(shù)器的級(jí)連使用

環(huán)形計(jì)數(shù)器和扭環(huán)形計(jì)數(shù)器
計(jì)數(shù)器,計(jì)數(shù)器的工作原理是什么?
按鍵次數(shù)計(jì)數(shù)器
什么是計(jì)數(shù)器芯片?
單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)技術(shù)——計(jì)數(shù)器

單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)技術(shù)——計(jì)數(shù)器

"stm32f0按鍵計(jì)數(shù)器程序_數(shù)字系統(tǒng)設(shè)計(jì), 8個(gè)經(jīng)典計(jì)數(shù)器電路方案合輯"

異步計(jì)數(shù)器的主要類(lèi)型

同步計(jì)數(shù)器和異步計(jì)數(shù)器是什么 同步計(jì)數(shù)器和異步計(jì)數(shù)器的主要區(qū)別?

評(píng)論