1基礎理論部分
led數(shù)碼管是由多個發(fā)光二極管封裝在一起組合的“8”字型的器件,引線內(nèi)部已經(jīng)完成,如下圖10.1所示,圖10.2為實物圖。
圖10.1 數(shù)碼管內(nèi)部結(jié)構(gòu)
那么我們想要控制數(shù)碼管的亮滅,其實也就是控制發(fā)光二極管的亮滅,分別用高低電平去控制。對于數(shù)碼管來說,讀者若是學過單片機及其他MCU的話,其實都知道數(shù)碼管的控制有兩個信號是比較重要的,一個是段選信號,一個是位選信號,位選信號是針對有多個數(shù)碼管時,需要控制哪一個數(shù)碼管發(fā)亮,段選就是控制數(shù)碼管顯示什么數(shù)字。
那么在購買數(shù)碼管的時候,往往買回來時上面沒有標注各引腳信息。這時不要慌,首先你購買時要分清共陽極還是共陰極數(shù)碼管,共陽極和共陰極數(shù)碼管電路示意圖如圖10.2所示。然后可以利用萬用表打到“二極管”檔位,然后萬用表正極接觸數(shù)碼管一個引腳,負極去挨個觸碰其他引腳,直到數(shù)碼管發(fā)亮時,可以記錄對應的引腳信息即可。
圖10.2 數(shù)碼管共陽和共陰極電路圖
1.1 靜態(tài)顯示
靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個數(shù)碼管的每一個段碼都由一個I/O端口進行驅(qū)動,或者使用如BCD碼二-十進制譯碼器譯碼進行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用I/O端口多,如驅(qū)動5個數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來驅(qū)動。
1.2 動態(tài)顯示
動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制。
2 Verilog代碼實現(xiàn)部分
現(xiàn)在要實現(xiàn)數(shù)碼管的靜態(tài)顯示功能,從0加到f,時間間隔為1s。封裝接口為
2.1 smg_control模塊
上述是整個模塊的聲明,并且調(diào)用了smg_param.v的文件,用于數(shù)碼管解碼參數(shù)的設置,關(guān)于include的用法可以參考其他語法書籍。
兩個計數(shù)器,一個用于實現(xiàn)時鐘計數(shù)1s,一個用于數(shù)碼管編解碼計數(shù)控制。
上述是實現(xiàn)數(shù)碼管解碼部分,注意smg_param.v中參數(shù)調(diào)用的方法。
2.2 smg_param模塊
仿真程序很簡單,只需添加時鐘和復位信號即可。測試的腳本文件如圖10.3所示,因測試時將計數(shù)改到50,所以周期是1000ns。
圖 10.3 測試腳本文件
-
led
+關(guān)注
關(guān)注
242文章
23256瀏覽量
660621 -
發(fā)光二極管
+關(guān)注
關(guān)注
13文章
1198瀏覽量
66290 -
led數(shù)碼管
+關(guān)注
關(guān)注
2文章
73瀏覽量
22075 -
數(shù)碼管
+關(guān)注
關(guān)注
32文章
1882瀏覽量
91073
發(fā)布評論請先 登錄
相關(guān)推薦
評論