要求:
1.具有暫停/啟動功能;
2.具有重新開始功能;
3.用6個數(shù)碼管分別顯示百分秒、秒和分鐘。
一、設(shè)計題目及要求
題目: 數(shù)字跑表
要求:1.具有暫停/啟動功能;
2.具有重新開始功能;
3.用6個數(shù)碼管分別顯示百分秒、秒和分鐘。
二、方案論證
方案一? 采用8051IP核設(shè)計。
用FPGA構(gòu)成一個8051單片應(yīng)用系統(tǒng)具有如下優(yōu)缺點:
1、擁有標(biāo)準(zhǔn)8051完全兼容的指令系統(tǒng)的CPU;
2、256字節(jié)內(nèi)部RAM;
3、4K字節(jié)程序ROM;
4、每一次編譯下載后都能根據(jù)需要更新ROM中的程序,所以該單片機的實現(xiàn)和使用如同89C51/52一樣方便。
缺點: 1、設(shè)計煩瑣,可以直接用8051單片機代替。
2、程序復(fù)雜。
方案二 ?采用芯片EP1K30QC208-3、8字?jǐn)?shù)碼顯示電路、按鍵開關(guān)設(shè)計。
[1]“EP1K30QC208-3”與單端的I/O口標(biāo)準(zhǔn)相比,這些內(nèi)顯置于器件內(nèi)部的緩沖器保持了信號的完整性,并且有更低的電磁干擾、更好的電磁兼容)及更低的電源功耗。采用此芯片設(shè)計簡單,不需要用匯編語言編寫程序,直接用VHDL編寫即可以.
缺點:與8051IP核相比精確度不是很高。但是對于秒表系統(tǒng)設(shè)計可以滿足要求。
采用方案二也有兩種具體的實現(xiàn)方法:
1、模塊式設(shè)計方法。在此采用此方式設(shè)計。
2、一個整體VHDL語言描述的VHDL模塊。
三、設(shè)計總體框圖
四、硬件電路設(shè)計與程序設(shè)計
設(shè)計思路
今需設(shè)計一個計時范圍為0.01 秒~1 小時的數(shù)字秒表。
首先需要獲得一個比較精確的計時基準(zhǔn)信號,這里是周期為1/100 s 的計時脈沖,可以把100MHz的信號經(jīng)過100分頻的分頻器三次分頻得到,其中分頻器經(jīng)過兩次分頻得到的信號還可作為數(shù)碼管掃描電路的時鐘。
其次,還需對每一計數(shù)器設(shè)置清零信號輸入和對六個計數(shù)器設(shè)置時鐘使能信號,即計時允許信號,以便作為秒表的計時起、??刂乒δ堋榱朔奖憧刂扑杏嫈?shù)模塊清零和使能功能設(shè)計了一個控制模塊。
最后把所有計數(shù)器的輸出數(shù)據(jù)通過數(shù)碼管掃描電路模塊和七段譯碼顯示模塊作為輸出,接到實驗箱上的8字?jǐn)?shù)碼顯示電路上就可顯示結(jié)果了。
因此數(shù)字秒表可由三個分頻器、四個十進制計數(shù)器(1/100 秒、1/10 秒、1 秒、1分)、兩個六進制計數(shù)器(10 秒、10 分)、一個控制器、一個數(shù)據(jù)選擇器以及七段譯碼顯示器組成,如總體框圖所示。
根據(jù)設(shè)計思路,本次設(shè)計就采用模塊化設(shè)計,共分為分頻器模塊(fenpin)、控制模塊(kongzhi)、十進制計數(shù)模塊(cnt10)、六進制計數(shù)模塊(cnt6)、數(shù)碼管掃描模塊(xuanze)、七段譯碼顯示模塊(decl7s)六個模塊以及圖形式頂層文件。
下面我們分別對每個模塊的功能進行描述、程序進行設(shè)計以及各個模塊功能的仿真。