新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的LED點陣顯示字符的設計原理分析

        基于FPGA的LED點陣顯示字符的設計原理分析

        作者: 時間:2012-05-03 來源:網絡 收藏

        隨著社會的發展和信息時代對各類信息快速發布的需要, 許多政府部門和企事業單位從提高自身形象和信息規范化管理考慮, 廣泛采用 電子顯示屏顯示產品, 此類多媒體顯示系統通過一定的控制方式,用于顯示文字、圖形、圖像、動畫、股市行情等各種信息以及電視、錄像、DVD 等信號, 是交通指揮引導、部隊作戰、電力部門、公共場所進行企業形象宣傳、信息發布和精神文明建設的有效工具和良好窗口。

        本文引用地址:http://www.104case.com/article/190433.htm

        采用現場可編程邏輯器件( ) 作為控制器, 選擇合適的器件, 利用器件豐富的I/O 口、內部邏輯和連線資源, 采用自上而下的模塊化設計方法, 可以方便地設計整個顯示系統。

        電子設計自動化(EDA)技術是基于可編程器件( PLD) 的數字電子系統設計, 它是進行系統芯片集成的新設計方法, 也正在快速地取代基于PCB 板的傳統設計方式。在EDA工具軟件MAX+PLUSⅡ的支持下, 本設計通過了編譯、適配和軟件仿真驗證。最后用載入真實實驗系統的硬件實驗證明了它的正確性。

        1 系統結構及其原理

        本設計結合上海航虹高科技公司生產的EDA實驗箱, 需要顯示的16 個的字模已存放在EPROM 的8000H~807FH, 采用單個8×8 點陣(WTD3088)顯示, 顯示控制由現場可編程門陣列( ) EPF10K20TC144- 4 來實現。系統原理是首先產生點陣字模地址, 并從存儲器讀出數據存放在16 位寄存器中, 然后輸出到 點陣的列, 同時對點陣列循環掃描以動態顯示數據, 當需要顯示數據字模的列和被選中的列能夠協調配合起來, 就可以正確顯示

        2 FPGA設計及其原理

        為在8×8LED 發光二極管點陣上顯示字符, 首先要把字符表示成為8×8 像素點( AD0~AD7) , 分別為按列抽取依序排列的字符像素信息, 均具有8 位字長。然后依次對多字符抽取像素信息, 并按序排隊存放于EPROM 之中, 便可得到一個待顯示數據序列。進一步通過尋址的方法來控制該數據序列的釋放過程, 就可實現在8×8LED發光二極管點陣上滾動顯示多個字符信息的目的。page 控制字符顯示的滾動速度, 它的取值范圍應為0~N, col 決定LED 點陣的列開關的掃描速度,它的取值范圍應為0~7.某一時刻能在顯示數據序列中定位待顯示數據的地址指針可用下式計算: addr=page+col應當注意的是, 掃描速度應遠大于滾動速度, 本設計中使用的掃描時鐘是1KHz, 字符的滾動速度是1 秒/ 個。調節字符信息的滾動速度;改變col 的重復掃描周期, 可改善在LED 點陣上顯示完整字符信息的穩定性。

        另外還需指出, 由于addr 的運算要靠硬件實現, 故地址指針addr的模應取為N, 而且為實現全部字符信息滾過LED 點陣, 必須在數據N前補充8 個空數據字節。根據其工作原理, 設計了描述FPGA內核硬件功能的VHDL 語言程序。本設計結合了EDA實驗箱和ALTERA公司的MAX+PLUSⅡ研發工具, 并采取了行為的描述方式。

        VHDL程序如下:

        libraryieee;

        use ieee.s td_logic_1164.all;

        use ieee.s td_logic_arith.all;

        use ieee.s td_logic_uns igned.all;

        entityledis

        port (clk1,clk2,reset: ins td_logic;

        led_s: out s td_logic_vector(2downto0);

        memcs,rd,wr,cs0809,sELmled:out s td_logic;

        a: out s td_logic_vector(15downto0);

        ad: out s td_logic_vector(7downto0));

        end;

        architecture led_archofledis

        s ignalcol:integerrange 0to7;

        s ignalpage :integerrange 0to15;

        s ignaloe:s td_logic;

        begin

        proces s(clk2,reset,col)

        begin

        ifreset=1 then

        col=0;

        els if(clk2event andclk2=1)then

        col=col+1;

        endif;

        led_s = conv_s td_logic_vector(col,3);

        a(2downto0)=conv_s td_logic_vector(col,3);

        endproces s;

        proces s(clk1,page)


        上一頁 1 2 下一頁

        關鍵詞: FPGA LED 點陣顯示 字符

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 宿州市| 余江县| 临湘市| 贵德县| 贡嘎县| 青神县| 新绛县| 梧州市| 凤台县| 高陵县| 满洲里市| 潍坊市| 普格县| 鲜城| 密云县| 饶阳县| 建湖县| 静乐县| 黔东| 工布江达县| 鄂托克前旗| 阜宁县| 赤城县| 拉孜县| 巨野县| 北安市| 故城县| 广汉市| 莱西市| 宁蒗| 永善县| 齐齐哈尔市| 房产| 莆田市| 千阳县| 迁西县| 永修县| 乃东县| 麦盖提县| 河津市| 绥中县|