多功能數(shù)字鐘的設(shè)計實驗
一、實驗目的
1、了解數(shù)字鐘的工作原理。
2、進一步熟悉用VHDL語言編寫驅(qū)動七段碼管顯示的代碼。
3、掌握VHDL編寫中的一些小技巧。
二、實驗原理
多功能數(shù)字鐘應該具有的功能有:顯示時——分——秒、整點報時、小時和分鐘可調(diào)等基本功能。首先要知道鐘表的工作機理,整個鐘表的工作應該是在1Hz信號的作用下進行,這樣每來一個時鐘信號,秒增加1秒,當秒從59秒跳轉(zhuǎn)到00秒時,分鐘增加1分,同時當分鐘從59分跳轉(zhuǎn)到00分時,小時增加1小時,但是需要注意的是,小時的范圍是從0——23時。
在實驗中為了顯示的方便,由于分鐘和秒鐘顯示的范圍都是從0——59,所以可以用一個3位的二進制碼顯示十位,用一個四位的二進制碼(BCD碼)顯示個位,對于小時因為它的范圍是從0——23,所以可以用一個2位的二進制碼顯示十位,用4位二進制碼(BCD碼)顯示個位。
實驗中由于七段碼管是掃描的方式顯示,所以雖然時鐘需要的是1Hz時鐘信號,但是掃描確需要一個比較高頻率的信號,因此為了得到準確的1Hz信號,必須對輸入的系統(tǒng)時鐘進行分頻。
對于整點報時功能,用戶可以根據(jù)系統(tǒng)的硬件結(jié)構(gòu)和自身的具體要求來設(shè)計。本實驗設(shè)計的是當進行整點的倒計時5秒時,讓LED來閃爍進行整點報時的提示。
三、實驗內(nèi)容
本實驗的任務(wù)就是設(shè)計一個多功能數(shù)字鐘,要求顯示格式為 小時——分鐘——秒鐘,整點報時,報時時間為10秒,即從整點前10秒鐘開始進行報時提示,喇叭開始發(fā)聲,直到過整點時,在整點前5秒LED開始閃爍,過整點后,停止閃爍。系統(tǒng)時鐘選擇時鐘模塊的10KHz,要得到1Hz時鐘信號,必須對系統(tǒng)時鐘進行10,000次分頻。調(diào)整時間的的按鍵用按鍵模塊的BT1和BT2,BT1調(diào)節(jié)小時,每按下一次,小時增加一個小時,BT2調(diào)整分鐘,每按下一次,分鐘增加一分鐘。另外用BT8按鍵作為系統(tǒng)時鐘復位,復位后全部顯示00——00——00。
四、實驗步驟
1、打開QUARTUSII軟件,新建一個工程。
2、建完工程之后,再新建一個VHDL File,打開VHDL編輯器對話框。
3、按照實驗原理和自己的想法,在VHDL編輯窗口編寫VHDL程序,用戶可參照光盤中提供的示例程序。
4、編寫完VHDL程序后,保存起來。方法同實驗一。
5、對自己編寫的VHDL程序進行編譯并仿真,對程序的錯誤進行修改,直到完全通過編譯和仿真。
6、編譯仿真無誤后,根據(jù)用戶自己的要求進行管腳分配。分配完成后,再進行全編譯一次,以使管腳分配生效。
7、根據(jù)實驗內(nèi)容用實驗導線將上面管腳分配的FPGA管腳與對應的模塊連接起來。
CLK:FPGA時鐘,接24MHZ數(shù)字時鐘。
RST:復位信號,按一個按鍵開關(guān)BT1。
S1、S2:小時、分鐘調(diào)節(jié),接兩個按鍵開關(guān)BT2、BT3。
SPK:整點報時,接喇叭/蜂鳴器接口的蜂鳴器。
DISPLAY[6..0]:顯示端口,接數(shù)碼管模塊的A、B、C、D、E、F、G。
SEL[2..]:顯示端口,接數(shù)碼管模塊的SEL2,SEL1,SEL0。
8、用下載電纜通過JTAG口將對應的sof文件加載到FPGA中。觀察實驗結(jié)果是否與自己的編程思想一致。
五、實驗結(jié)果與現(xiàn)象
以設(shè)計的參考示例為例,當設(shè)計文件加載到目標器件后,數(shù)碼管開始顯示時間,從00-00-00開始。在整點的前5秒,喇叭開始發(fā)聲進行報時,一旦超過整點,喇叭停止發(fā)聲。按動按鍵開關(guān)的BT2、BT3小時和分鐘開始步進,進行時間的調(diào)整。按下按鍵開關(guān)的BT1,顯示恢復到00-00-00重新開始顯示時間。
六、實驗報告
1、 繪出仿真波形,并作說明。
2、 將實驗原理、設(shè)計過程、編譯仿真波形和分析結(jié)果、硬件測試結(jié)果記錄下來。
3、 在此實驗的基礎(chǔ)上試用其它的方法來實現(xiàn)數(shù)字鐘的功能,并增加其它功能。