
大俠好,歡迎來到FPGA技術(shù)江湖。本系列將帶來FPGA的系統(tǒng)性學(xué)習(xí),從最基本的數(shù)字電路基礎(chǔ)開始,最詳細(xì)操作步驟,最直白的言語描述,手把手的“傻瓜式”講解,讓電子、信息、通信類專業(yè)學(xué)生、初入職場小白及打算進(jìn)階提升的職業(yè)開發(fā)者都可以有系統(tǒng)性學(xué)習(xí)的機(jī)會(huì)。
系統(tǒng)性的掌握技術(shù)開發(fā)以及相關(guān)要求,對個(gè)人就業(yè)以及職業(yè)發(fā)展都有著潛在的幫助,希望對大家有所幫助。本次帶來Vivado系列,本篇為數(shù)碼管驅(qū)動(dòng)設(shè)計(jì)實(shí)驗(yàn)。話不多說,上貨。
數(shù)碼管驅(qū)動(dòng)設(shè)計(jì)
作者:李西銳??校對:陸輝
數(shù)碼管作為SANXIN-B04的顯示裝置,具有易控制,顯示方便的特點(diǎn)。那么接下來我們來學(xué)習(xí)一下數(shù)碼管的驅(qū)動(dòng)原理。
首先,數(shù)碼管根據(jù)驅(qū)動(dòng)電路劃分,分為共陽極數(shù)碼管和共陰極數(shù)碼管。這個(gè)不同直接影響到了我們在驅(qū)動(dòng)數(shù)碼管時(shí)需要給的電平信號(hào)。在SANXIN-B04開發(fā)板上的數(shù)碼管使用的是共陽極數(shù)碼管,那么也就是說我們的數(shù)碼管是低電平有效。
數(shù)碼管硬件部分:
?

數(shù)碼管總共14個(gè)管腳,分別是8個(gè)段選和6個(gè)位選。6個(gè)數(shù)碼管分別用6根線單獨(dú)控制,一個(gè)數(shù)碼管,數(shù)字部分是7段,加上小數(shù)點(diǎn)總共八段。又因?yàn)?個(gè)數(shù)碼管的段選信號(hào)線是共用的,所以,總共加起來14個(gè)管腳。
我們按照每一段的順序做一個(gè)編號(hào),有利于接下來的講解以及說明,編號(hào)如下:
?

這8段單獨(dú)控制,我們可以看做是每一段是一個(gè)led燈,那么我們?nèi)绻腼@示特定的數(shù)字,只需要讓特定的某些段亮起來就可以,又因?yàn)槲覀兪枪碴枠O數(shù)碼管,所以每一段在給低電平時(shí)可以被點(diǎn)亮。按照我們手冊的管腳順序,我們給數(shù)據(jù)時(shí),一般按照DP-G-F-E-D-C-B-A的順序給值,小數(shù)點(diǎn)為8bit數(shù)據(jù)的最高位。比如:我們想要顯示數(shù)字1,那么只需要讓B和C兩段點(diǎn)亮即可。那么我們給的數(shù)據(jù)就應(yīng)該是8’b1111_1001。按照這個(gè)規(guī)律,我們可以輕松得到0~9的所有段選數(shù)據(jù)。
?

此外,數(shù)碼管作為我們的顯示裝置,一般顯示的內(nèi)容為動(dòng)態(tài)的,所以,我們在驅(qū)動(dòng)數(shù)碼管顯示的時(shí)候6個(gè)數(shù)碼管要依次輪流選中,因?yàn)槲覀兊亩芜x信號(hào)是共用的,在同一時(shí)刻不能給不同的段選信號(hào)值。但是這并不意味著我們的數(shù)碼管顯示只能一個(gè)一個(gè)的看到現(xiàn)象,我們只要刷新切換的速度夠快,人眼看起來就是一起亮的,所以我們接下來要做的工作就是:1、位選依次選中。?? 2、每一位的數(shù)碼管進(jìn)行段選賦值。代碼如下:



在此,我們需要聲明一點(diǎn),因?yàn)閿?shù)碼管位選切換過快,會(huì)導(dǎo)致數(shù)碼管顯示異常,所以我們在做位選切換的時(shí)候,我們會(huì)加上一段時(shí)間的延時(shí),以確保顯示正常。
那么接下來,我們做一下仿真測試。
?

按照上圖步驟,添加仿真文件。


點(diǎn)擊OK新建文件,代碼如下:


在仿真時(shí),我們隨機(jī)給了兩個(gè)值,看一下波形。說明:在功能文件中,我們的輸入數(shù)據(jù)為24位的BCD碼,在仿真時(shí),我們直接給了16進(jìn)制數(shù),因?yàn)锽CD碼和16進(jìn)制數(shù)的前十個(gè)數(shù)是一樣的。
?
點(diǎn)擊Run Simulation,運(yùn)行仿真。

在波形當(dāng)中,位選信號(hào)對應(yīng)的段選信號(hào),與我們給的數(shù)值一致,證明數(shù)碼管驅(qū)動(dòng)正確。
在此需要提醒一點(diǎn),如果數(shù)碼管的輸入不是BCD碼,那么我們還需要做一下轉(zhuǎn)碼,最簡單的方法就是做除法,或者用基本運(yùn)算電路來實(shí)現(xiàn)轉(zhuǎn)碼都可。

- End -


FPGA技術(shù)江湖廣發(fā)江湖帖
無廣告純凈模式,給技術(shù)交流一片凈土,從初學(xué)小白到行業(yè)精英業(yè)界大佬等,從軍工領(lǐng)域到民用企業(yè)等,從通信、圖像處理到人工智能等各個(gè)方向應(yīng)有盡有,QQ微信雙選,F(xiàn)PGA技術(shù)江湖打造最純凈最專業(yè)的技術(shù)交流學(xué)習(xí)平臺(tái)。
FPGA技術(shù)江湖微信交流群

加群主微信,備注姓名+公司/學(xué)校+崗位/專業(yè)進(jìn)群
FPGA技術(shù)江湖QQ交流群

備注姓名+公司/學(xué)校+崗位/專業(yè)進(jìn)群
