大俠好,歡迎來到FPGA技術江湖,江湖偌大,相見即是緣分。大俠可以關注FPGA技術江湖,在“闖蕩江湖”、"行俠仗義"欄里獲取其他感興趣的資源,或者一起煮酒言歡。“煮酒言歡”進入IC技術圈,這里有近100個IC技術公眾號。
大俠好,歡迎來到FPGA技術江湖。本系列將帶來FPGA的系統性學習,從最基本的數字電路基礎開始,最詳細操作步驟,最直白的言語描述,手把手的“傻瓜式”講解,讓電子、信息、通信類專業學生、初入職場小白及打算進階提升的職業開發者都可以有系統性學習的機會。
系統性的掌握技術開發以及相關要求,對個人就業以及職業發展都有著潛在的幫助,希望對大家有所幫助。本次帶來Vivado系列,本篇為數碼管驅動設計實驗。話不多說,上貨。
數碼管驅動設計
作者:李西銳校對:陸輝
數碼管作為SANXIN-B04的顯示裝置,具有易控制,顯示方便的特點。那么接下來我們來學習一下數碼管的驅動原理。
首先,數碼管根據驅動電路劃分,分為共陽極數碼管和共陰極數碼管。這個不同直接影響到了我們在驅動數碼管時需要給的電平信號。在SANXIN-B04開發板上的數碼管使用的是共陽極數碼管,那么也就是說我們的數碼管是低電平有效。
數碼管硬件部分:
數碼管總共14個管腳,分別是8個段選和6個位選。6個數碼管分別用6根線單獨控制,一個數碼管,數字部分是7段,加上小數點總共八段。又因為6個數碼管的段選信號線是共用的,所以,總共加起來14個管腳。
我們按照每一段的順序做一個編號,有利于接下來的講解以及說明,編號如下:
這8段單獨控制,我們可以看做是每一段是一個led燈,那么我們如果想顯示特定的數字,只需要讓特定的某些段亮起來就可以,又因為我們是共陽極數碼管,所以每一段在給低電平時可以被點亮。按照我們手冊的管腳順序,我們給數據時,一般按照DP-G-F-E-D-C-B-A的順序給值,小數點為8bit數據的最高位。比如:我們想要顯示數字1,那么只需要讓B和C兩段點亮即可。那么我們給的數據就應該是8’b1111_1001。按照這個規律,我們可以輕松得到0~9的所有段選數據。
此外,數碼管作為我們的顯示裝置,一般顯示的內容為動態的,所以,我們在驅動數碼管顯示的時候6個數碼管要依次輪流選中,因為我們的段選信號是共用的,在同一時刻不能給不同的段選信號值。但是這并不意味著我們的數碼管顯示只能一個一個的看到現象,我們只要刷新切換的速度夠快,人眼看起來就是一起亮的,所以我們接下來要做的工作就是:1、位選依次選中。 2、每一位的數碼管進行段選賦值。代碼如下:
在此,我們需要聲明一點,因為數碼管位選切換過快,會導致數碼管顯示異常,所以我們在做位選切換的時候,我們會加上一段時間的延時,以確保顯示正常。
那么接下來,我們做一下仿真測試。
按照上圖步驟,添加仿真文件。
點擊OK新建文件,代碼如下:
在仿真時,我們隨機給了兩個值,看一下波形。說明:在功能文件中,我們的輸入數據為24位的BCD碼,在仿真時,我們直接給了16進制數,因為BCD碼和16進制數的前十個數是一樣的。
點擊Run Simulation,運行仿真。
在波形當中,位選信號對應的段選信號,與我們給的數值一致,證明數碼管驅動正確。
在此需要提醒一點,如果數碼管的輸入不是BCD碼,那么我們還需要做一下轉碼,最簡單的方法就是做除法,或者用基本運算電路來實現轉碼都可。
審核編輯 :李倩
-
FPGA
+關注
關注
1630文章
21796瀏覽量
605225 -
數碼管
+關注
關注
32文章
1883瀏覽量
91338 -
數字電路
+關注
關注
193文章
1629瀏覽量
80754
原文標題:FPGA零基礎學習之Vivado-數碼管驅動設計實驗
文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術江湖】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論