基於FPGA的Digital_clock的設計與實現
一、設計要求
1.正常顯示功能
四位數碼管顯示當前時間、日期以及鬧鍾時間。對於時間(當前時間、鬧鍾時間)來說,數碼管的前兩位顯示小時,后兩位顯示分鍾。對於日期的年份來說,使用四位數碼管進行顯示;對於日期的月份和日期來說,數碼管的前兩位顯示月份,后兩位顯示日期。兩位之間的“冒號”點亮,各個數碼管的小數點不用點亮。
2.切換功能
復位時,數碼管顯示當前時間;當外部按下key_switch時,數碼管顯示年份;再次按下key_switch時,數碼管顯示月份和日期;再次按下key_switch時,數碼管顯示鬧鍾時間;再次按下key_switch時,數碼管恢復顯示時間。
3.調整功能
當顯示時間(當前時間、鬧鍾時間)時,按下key_adjust,再按下key_add或者key_sub就可以調整分鍾;再次按下key_adjust,再按下key_add或者key_sub就可以調整小時;再次按下key_adjust時,即為確定調整。
當顯示年份時,按下key_adjust,再按下key_add或者key_sub就可以調整年份;再次按下key_adjust時,即為確定調整。
當顯示月份和日期時,按下key_adjust,再按下key_add或者key_sub就可以調整日期;再次按下key_adjust,再按下key_add或者key_sub就可以調整月份;再次按下key_adjust時,即為確定調整。
如果對上述的調整有疑問,可以再次調整。如果在調整期間,按下key_switch,所作調整也會立即生效。
4.調整功能顯示
功能進行調整時,所對應調整的部分應該亮0.5秒,滅0.5秒。
5.聲音模塊
無論按下什么按鍵,都應該發出“叮”的一聲。當鬧鍾時間和當前時間相同時,應該一直播放音樂《世上只有媽媽好》,直到有按鍵按下,終止音樂。
6.鬧鍾
鬧鍾的小時可以調整到24,用以關閉鬧鍾。其他時間打開鬧鍾。鬧鍾的時間不設置日期,即一旦設置鬧鍾,每天都會起作用。
7.補充說明
按照每個月30天進行設計,不考慮閏月等情況的影響。
二、硬件分析
- 主控芯片:FPGA(Artix7)
- 晶振:50MHz
- 復位源:低電平有效
- 按鍵:切換、調整、加減按鍵均為低電平有效
- 蜂鳴器:無源蜂鳴器
- 數碼管:四位一體共陽極數碼管,並且公共端采用NPN三極管控制
三、設計架構
1.總體設計
2.分模塊設計
2.1Key_ctrl模塊的設計與實現
2.2Beep_ctrl模塊的設計與實現
2.2.1Beep_music模塊的設計與實現
2.3Show_ctrl模塊的設計與實現
2.4Digital_clock_ctrl模塊的設計與實現
2.4.1 Clock_ctrl模塊的實現
四、基本原理
4.1按鍵
開發板上面有四個按鍵,當按鍵按下時,將對應的網絡置成低電平;當按鍵釋放時,將對應的網絡置成高電平。
按鍵所用開關為機械彈性開關,當機械觸點斷開、閉合時不會馬上進入穩定狀態,瞬間伴隨有一連串的抖動。抖動時間一般為 5ms~10ms。我們采用持續采樣的方案解決這一問題:當檢測到信號持續為低 10ms,認為按鍵按下;當檢測到信號持續為高10ms,認為按鍵釋放。在設計時,需要考慮到外部的按鍵信號為異步信號,需要進行同步處理。方案為外界信號延遲兩拍。
每次按鍵按下的時間的長短不一,經過消抖后,低電平的持續長度長短也不一樣。此長度可能遠遠大於一個時鍾周期的長度。要讓每次按下只能進行一次有效切換,需要進行邊沿檢測:通過檢測下降沿(上升沿)的變化,產生一個新的信號——脈沖(一個時鍾周期的脈沖) ,利用此脈沖作為翻轉的使能即可。
4.2數碼管
共陽數碼管是指將所有發光二極管的陽極接到一起形成公共陽極(COM)的數碼管,共陽數碼管在應用時應將公共極 COM 接到+5V,當某一字段發光二極管的陰極為低電平時,相應字段就點亮,當某一字段的陰極為高電平時,相應字段就不亮。共陰數碼管是指將所有發光二極管的陰極接到一起形成公共陰極(COM)的數碼管,共陰數碼管在應用時應將公共極 COM 接到地線 GND 上,當某一字段發光二極管的陽極為高電平時,相應字段就點亮,當某一字段的陽極為低電平時,相應字段就不亮。
通過分時輪流控制各個數碼管的的 COM 端,就使各個數碼管輪流受控顯示,這就是動態驅動。在輪流顯示過程中,每位數碼管的點亮時間為 1~2ms,由於人的視覺暫留現象及發光二極管的余輝效應,盡管實際上各位數碼管並非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩定的顯示數據,不會有閃爍感,動態顯示的效果和靜態顯示是一樣的,能夠節省大量的 I/O 端口,而且功耗更低。
4.3蜂鳴器
在設計時,首先將簡譜中的音符存起來;利用計數器產生 1/4秒為周期的脈沖,在此脈沖驅動下,將事先存好的音符一個個輸出;根據音符的值,計算出分頻比;根據分頻比,產生對應頻率的波形。將此波形輸出即可。樂譜頻率如下所示:
五、設計代碼
本設計的所有相關設計文件及代碼全部提交至gitee倉庫,請訪問shihao_Yang獲取。