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