《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的8段數(shù)碼管動態(tài)顯示IP核設計
基于FPGA的8段數(shù)碼管動態(tài)顯示IP核設計
摘要: 設計8段數(shù)碼管動態(tài)顯示IP核,并給出此核的一個參考驅動顯示程序。此核根據(jù)設計需要,可例化1~8個共陽極(或共陰極)數(shù)碼管控制器,成功控制1~8個數(shù)碼管工作,大大提高設計效率。測試結果表明,此核工作可靠、穩(wěn)定,可直接應用于工程實踐中。
Abstract:
Key words :

  引言

  數(shù)碼管可顯示簡單的字符和數(shù)字,由于其價格低廉、性能穩(wěn)定、顯示清晰、亮度高、使用電壓低、壽命長,在工業(yè)生產(chǎn)、交通運輸、儀器儀表及家用電器等場合得到廣泛應用。然而,開發(fā)基于NiosⅡ的嵌入式系統(tǒng)時,Builder開發(fā)工具中沒有提供現(xiàn)成的數(shù)碼管顯示IP核,這使設計者工作量增加。這里把數(shù)碼管控制器設計為一個共陰極(或共陽極)7段數(shù)碼管動態(tài)顯示IP核,并給出此核的一個參考驅動程序。在系統(tǒng)設計中,可根據(jù)實際需求,把此核直接例化成1~8個共陰極(或共陽極)數(shù)碼管顯示控制器,控制1~8個共陰極(或共陽極)數(shù)碼管工作,實現(xiàn)IP核重用,減少電子設計者的工作量,從而提高設計效率。

  2 LED數(shù)碼管結構及驅動顯示方式

  根據(jù)發(fā)光二極管的個數(shù)可將數(shù)碼管分成7段數(shù)碼管和8段數(shù)碼管,8段數(shù)碼管比7段數(shù)碼管多一個用于顯示小數(shù)點的發(fā)光二極管;根據(jù)內(nèi)部連接形式可將數(shù)碼管分成共陽數(shù)碼管與共陰數(shù)碼管,圖1為數(shù)碼管的外形及其內(nèi)部結構圖。

  常用的數(shù)碼管顯示驅動方式有靜態(tài)驅動與動態(tài)驅動兩種,靜態(tài)驅動方式的主要特點是,每個數(shù)碼管都有相互獨立的數(shù)據(jù)線,并且所有的數(shù)碼管被同時點亮;而動態(tài)驅動方式則是所有數(shù)碼管共用一組數(shù)據(jù)線,數(shù)碼管依次被點亮,因此,動態(tài)驅動顯示方式每個數(shù)碼管都要有一個點亮控制輸入端口。為節(jié)省I/O端口,此設計采用動態(tài)顯示方式,所有數(shù)碼管動態(tài)顯示控制時序,全部由FPGA器件產(chǎn)生。

  3 數(shù)碼管動態(tài)顯示IP核設計

  根據(jù)數(shù)碼管動態(tài)顯示方式的工作原理,可把數(shù)碼管動態(tài)顯示控制器設計成IP核,包括任務邏輯設計、寄存器文件設計和Avalon接口設計3部分。

  3.1 任務邏輯設計

  任務邏輯實現(xiàn)IP核的基本功能,是IP核設計的關鍵。任務邏輯產(chǎn)生數(shù)碼管動態(tài)顯示時的各種控制時序,并根據(jù)控制時序的先后順序,讀取寄存器文件中的數(shù)據(jù),并送至數(shù)碼管譯碼器進行譯碼,圖2是任務邏輯框圖。

  由圖2知,所設計的IP核主要由模N計數(shù)器、數(shù)據(jù)選擇和生成器、8段數(shù)碼譯碼器、數(shù)碼管位譯碼器和寄存器文件組成。模N計數(shù)器可根據(jù)參數(shù)N,產(chǎn)生N個狀態(tài),其狀態(tài)數(shù)與數(shù)碼管個數(shù)相等,每個狀態(tài)依次分給第一個數(shù)碼管;數(shù)碼管位譯碼器的作用是根據(jù)模N計數(shù)器的值(狀態(tài))產(chǎn)生數(shù)碼管位選信號。按順序依次點亮數(shù)碼管,而參數(shù)P的值表示數(shù)碼管的類型(共陽或共陰),當P為高電平時,控制共陰極數(shù)碼管工作;P為低電平時,控制共陽極數(shù)碼管工作。

  數(shù)據(jù)選擇和生成器用于根據(jù)計數(shù)器的狀態(tài)選擇數(shù)據(jù)寄存器組的數(shù)據(jù),還可生成要顯示的數(shù)據(jù)信號,包括數(shù)字與小數(shù)點兩種,當小數(shù)點位置寄存器的值與計數(shù)器的值相等時,點亮小數(shù)點位;7段數(shù)碼管譯碼器對輸入的信號譯碼產(chǎn)生譯碼數(shù)據(jù),該數(shù)據(jù)的最高位是小數(shù)點數(shù)據(jù),低7位是字符顯示數(shù)據(jù)。

  3.2 寄存器文件設計

  為實現(xiàn)任務邏輯單元與外界數(shù)據(jù)交換,要定義一組寄存器,稱為寄存器文件,并為這些寄存器分配地址。根據(jù)圖2,在此IP核中共定義10個寄存器,表1為其功能和地址偏移量。

  3.3 數(shù)碼管動態(tài)顯示IP核Verilog HDL程序編寫

  用硬件描述語言Verilog HDL編寫程序完成設計。


  4 基于Nios II的軟件驅動程序設計

  把所設計的IP核加載到嵌入式系統(tǒng),打開Nios II EDS,在Ahera提供的集成開發(fā)環(huán)境(IDE)中,為IP核編寫驅動程序。

  首先點擊new菜單建立工程應用文件,然后選擇一個空的工程模板(Blank Project),并在此工程模板中編寫相應程序,其驅動程序的算法流程如圖3所示。

  5 結論

  數(shù)碼管是電子設計中應用較多的元器件。用于顯示系統(tǒng)的運行狀態(tài)和簡單的字符,以便提升系統(tǒng)人機界面的效果。為減輕設計者的工作量,實現(xiàn)軟核重用,設計8段數(shù)碼管動態(tài)顯示IP核,并給出此核的一個參考驅動顯示程序。此核根據(jù)設計需要,可例化1~8個共陽極(或共陰極)數(shù)碼管控制器,成功控制1~8個數(shù)碼管工作,大大提高設計效率。測試結果表明,此核工作可靠、穩(wěn)定,可直接應用于工程實踐中。 
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。