999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于FPGA控制的LED漢字滾動顯示器設計

2010-04-12 00:00:00孫振華,唐征兵
現代電子技術 2010年13期

摘 要:實現了基于FPGA硬件及VHDL語言設計的LED點陣漢字滾動顯示,可通過按鍵選擇,控制其滾動方式:左移或者右移及上移或者下移等。闡述了LED點陣顯示漢字的原理,給出了點陣漢字滾動顯示控制器的原理圖、部分VHDL源程序及時序仿真圖并進行了詳細的分析,提出了系統擴展成實現16×16點陣漢字滾動的改動思路。

關鍵詞:FPGA; VHDL語言; EDA技術; LED點陣

中圖分類號:TN949.16 文獻標識碼:B

文章編號:1004-373X(2010)13-0152-04

Design of LED Chinese Characters Scrolling Display Based on FPGA Control

SUN Zhen-hua, TANG Zheng-bing

(Xi’an Aerotechnical College, Xi’an 710077, China)

Abstract: The LED dot-matrix Chinese characters scrolling display was designed based on FPGA hardware and VHDL language, which can control its rolling way by the key selection(left shift, right shift, move up or move down). The principle of LED dot-matrix display Chinese characters, the schematic diagram of dot-matrix Chinese characters scrolling display controller are proposed, the VHDL source code and timing simulation map are analyzed in a detail. The ideas of expanding the system to realize a 16x16 dot-matrix Chinese characters scrolling.

Keywords: FPGA; VHDL language; EDA technology; LED dot-matrix

0 引 言

現代文明的一個顯著特征是城市中隨處可見的五顏六色的廣告宣傳,其中大多都是由LED點陣制作的漢字或圖形廣告,廣泛應用在銀行、醫院、酒店、火車站、體育場館等各種公共場所。

漢字滾動顯示器的傳統設計方法是用單片機來控制的,雖然單片機方案具有價格低廉,程序編程靈活等特點,但由于單片機硬件資源的限制,未來對設計的變更和升級,總是要付出較多研發經費和較長投放市場周期的代價[1-2],甚至有可能需要重新設計。況且,在以顯示為主的系統中,單片機的運算和控制等主要功能的利用率很低,單片機的優勢得不到發揮,相當于很大的資源浪費[3]。

采用EDA技術的自頂向下的模塊化設計方法,借助相關開發軟件,例如Qualtus Ⅱ軟件,將硬件描述語言——VHDL程序固化于具有豐富I/O口、內部邏輯和連線資源的FPGA(現場可編程門陣列)中。該技術具有系統設計效率高、集成度好、保密性強、易于修改、易于實現等優點,成為當今數字系統設計主流技術[4-6]。此方式所制作的LED點陣控制器,由于是純硬件行為,具有速度快、可靠性高、抗干擾能力強、開發周期短等顯著優點。

1 EDA點陣顯示漢字原理

以8×8的LED點陣為例,8×8的LED點陣是由64個發光二極管按矩陣形式排列而成,每一行上的發光管有一個公共的陽極(或陰極),每一列上的發光管有一個公共的陰極(或陽極),一般按動態掃描方式顯示漢字或圖形。掃描分為點掃描、行掃描和列掃描[7]三種方式。行掃描需要按行抽取字型碼,列掃描則需要按列抽取字型碼。為滿足視覺暫留要求,若使用點掃描方式,其掃描頻率必須大于16×64=1 024 Hz,周期小于1 ms。若使用行或列掃描,則頻率必須大于16×8=128 Hz,周期小于7.8 ms[8]。由于所用實驗板上提供有1 kHz的時鐘,本例設計中利用該時鐘進行掃描,使每行掃描時間為1 ms,實驗結果顯示亮度合適。現以行掃描為例簡單說明動態掃描顯示的原理。圖1給出漢字“熱”在點陣為列共陽時的行字模。工作時先將要掃描行的點陣字模從各列上輸出,再讓譯碼器選中(掃描)該行,使本行得以顯示,接著再送下一行數據,再使下一行有效,直到8行全被掃描一遍。至此,一幅完整的文字信息就顯現出來,然后再反復掃描這8行直至顯示新的信息。以下設計采用行掃描方式實現滾動顯示。

2 硬件原理圖

整個電路由五大部分組成:時鐘計數模塊GEL CLK,存儲漢字字模的ROM模塊ROMZI,數據分配器模塊MUX,移位模塊YW及顯示模塊XIANSHI。時鐘計數模塊用于產生整個電路所需要的時鐘及其對時鐘的計數值,例如:移位時鐘CLK YW,移位計數器CNT YW,字計數器CNT WORD,顯示掃描計數器CNT SM。 ROMZI模塊是由Qualtus Ⅱ中的LPM 1PORT ROM定制成,用來存儲8個待顯示的漢字。MUX模塊用于在掃描時鐘及掃描計數器的作用下,從 ROM中讀出一個漢字的8個行字模信息,送給移位模塊YW,YW模塊在移位時鐘及移位計數器作用下,根據SELECT信號選擇對讀出的字模信息,進行相應的移位(左移、右移、上移、下移)后,最后送顯示模塊DISP驅動LED點陣顯示漢字。原理圖如圖2所示。

圖1 漢字的像素點圖

圖2 點陣控制器原理圖

3 模塊設計及時序仿真

3.1 時鐘計數產生模塊

時鐘計數產生模塊由1 kHz的輸入時鐘為基準,進行17位的循環計數CNT[16..0]。該時鐘,既是動態掃描顯示的時鐘,也是從ROM中取一個字8個字模的時鐘,對之進行的3位循環計數作為掃描顯示計數器和取一個字的字型碼計數器。CNT[16..0]中的CNT[ 9] 是對該時鐘的1 024分頻,將其作為移位時鐘CNT YW,周期約為1 s。CNT[13..10]作為4位的移位計數器,是對移位時鐘CLK YW的計數,也是對移位位數的統計。16個狀態使一個漢字逐列移進點陣,又逐列移出。每經過16個移位時鐘,將會顯示完一個漢字。CNT[16..14]作為3位的取字計數器。CNT[16..14]CNT[2..0]作為ROM地址發生器。

3.2 ROMZI模塊

利用LPM參數化模塊庫中單口ROM,利用Qualtus Ⅱ中的MegaWizard Plug-In Manager定制而成,定制前首先要制作LPM ROM初始化文件,其中存儲待顯示漢字的字模數據,然后按照LPM MegaWizard Plug-In Manager的向導提示,結合設計要求進行定制[10]。

圖3為所定制ROM中的初始化漢字“元旦生日開心快樂”的字型碼。數據分配模塊MUX要求能在8個時鐘作用下,從ROM中讀出一行(一個漢字的8個字型碼)分別送到數據分配器中的WL1~WL8輸出端。圖4為數據分配模塊在掃描時鐘作用下讀取的字模數據,比較圖3和圖4可知,仿真結果正確,能滿足題目要求。

圖3 ROM中存儲字模數據

圖4 數據分配模塊的時序分析波形圖

3.3 移位模塊YW

移位模塊YW是整個設計的核心,行掃描實現左移,是通過每來一個移位時鐘,將每一行的字模按位左移一位,掃描時鐘到來時送出移位后的新字模。通過8次移位,可將一個漢字移出點陣平面,按類似的道理,也可以將一個漢字經8次移位后移進點陣平面。本例(圖2)中,CNT YW為移位時鐘的計數值,以WL1~WL8為欲顯示漢字的原始字模,L10~L80為移位后從列上送出的8行顯示字模信息,LL1~LL8為8個原始字模信息未送出位的暫存信號。設計中需要16個移位時鐘,通過前8個時鐘將WL1~WL8字模移進LED點陣平面,再經后8個時鐘,將漢字又一位一位地移出。移位設計參考文獻[9]中有關移位寄存器的設計,分計數值為“0000”和非“0000”兩部分處理,對第一行字模的處理為:

IF CNT YW=″0000″ THEN

L10<=″0000000″WL1(7);

LL1<=WL1(6 DOWNTO 0)′0′;

ELSE L10<=L10(6 DOWNTO 0)LL1(7);

LL1<=LL1(6 DOWNTO 0)′0′;

END IF

其他行可按相同方法處理,具體參見如下的程序:

IF CNT YW=″0000” THEN

L10<=″0000″WL1(7);LL1<=WL1(6 DOWNTO 0)′0′;

L20<=″0000″WL2(7);LL2<=WL1(6 DOWNTO 0) ′0′;

L30<=″0000″WL3(7);LL3<=WL1(6 DOWNTO 0) ′0′;

L40<=″0000″WL4(7);LL4<=WL1(6 DOWNTO 0) ′0′;

L50<=″0000″WL5(7);LL5<=WL1(6 DOWNTO 0) ′0′;

L60<=″0000″WL6(7);LL6<=WL1(6 DOWNTO 0) ′0′;

L70<=″0000″WL7(7);LL7<=WL1(6 DOWNTO 0) ′0′;

L80<=″0000″WL8(7);LL8<=WL8(6 DOWNTO 0) ′0′;

ELSE L10<=L10(6 DOWNTO 0)LL1(7);LL1<=LL1(6 DOWNTO 0) ′0′;

L20<=L20(6 DOWNTO0)LL2(7);LL2<=LL2(6 DOWNTO 0) ′0′;

L30<=L30(6 DOWNTO0)LL3(7);LL1<=LL3(6 DOWNTO 0) ′0′;

L80<= L80(6 DOWNTO 0)LL8(7);LL8<=LL8(6 DOWNTO 0) ′0′;

END IF;

右移處理方法與上面左移相反,如對第一行可按如下方法處理:

IF CNT YW=″0000″ THEN

L10<=WL1(0)″0000000″;

LL1<=′0′ WL1(7 DOWNTO 1);

ELSE L10<=LL1(0)L10(7 DOWNTO 1);LL1<=′0′LL1(7 DOWNTO 1);

END IF;

上移時的部分程序按以下思路編制:L10~L70在CNT YW為初態“0000”時,各信號均賦值X“00”,非初態時,均進行上移一位。即:L10<=L20;L20<=L30;…;L60<=L70;L70<=L80;對于L80,在漢字移進LED過程中即前8個狀態各移進一個新行,在移出LED即后8個狀態時,都補進X“00”。程序如下:

IF CNT YW=″0000″ THEN

L10<=X″00″; L20<= X″00″; … L70<= X″00″;

ELSE L10<=L20;L20<=L30;L30<=L40;… L70<=L80;END IF;

IF CNT YW(3)=′0′ THEN

CASE CNT YW(2 DOWNTO 0) IS

WHEN ″000″=>L80<=WL1;WHEN ″001″ =>L80<=WL2;

WHEN ″110″=>L80<=WL7;WHEN ″111″ =>L80<=WL8;

WHEN OTHERS=>NULL;

END CASE;

ELSE L80<=X″00″;

END IF;

下移程序可按相反思路去編。

3.4 顯示模塊DISP設計

顯示模塊DISP是以CNT SM為掃描計數器,是對1 kHz進行三位循環計數,由前述的時鐘計數產生模塊產生,WL1~WL8為待送出顯示的8個8位字型碼,由前述的移位模塊YW提供;SW[7..0]為行掃描輸出信號,連接至點陣的8個行;DATA[7..0]為行掃描時對應的列輸出字型碼,對外連至點陣的8列。 該模塊參考文獻[10]中數碼管動態顯示程序進行設計如下:

LIBRARY IEEE;

USE IEEE.STD LOGIC 1164.ALL;

USE IEEE.STDLOGIC UNSIGNDE.ALL;

ENTITY DISP IS PORT( CNT SM:IN STD LOGIC VECTOR(2 DOWNTO 0); WL1,WL2,WL3,WL4,WL5,WL6,WL7,WL8:IN STD LOGIC VECTOR(7 DOWNTO 0);

DATA:OUT STD LOGIC VECTOR(7 DOWNTO 0);

SW:OUT STD LOGIC VECTOR(7 DOWNTO 0));

END;

ARCHITECTURE ONE OF DISP IS

BEGIN

PROCESS(CNT SM)

BEGIN

CASE CNT SM IS WHEN″000″=>SW<=″00000001″;DATA<=WL1;

WHEN″001″=>SW<=″00000010″;DATA<=WL2;

WHEN″010″=>SW<=″00000010″;DATA<=WL3;

WHEN″011″=>SW<=″00000010″;DATA<=WL4;

WHEN″100″=>SW<=″00000010″;DATA<=WL5;

WHEN″101″=>SW<=″10000000″;DATA<=WL6;

WHEN″110″=>SW<=″00000010″;DATA<=WL7;

WHEN″111″=>SW<=″00000010″;DATA<=WL8;

WHEN OTHERS=>NULL;

END CASE;

END PROCESS;

END;

4 硬件實現

上述各模塊分別在Qualtus Ⅱ中通過了仿真驗證,最后對整體設計進行了硬件驗證。將設計載入KH31001開發板的CycloneⅠ系列EP1C6Q240C8 FPGA器件中,實驗證明漢字滾動顯示掃描情況均正常,能夠按照預想進行移位顯示,這說明FPGA的內核硬件工作良好,可以正確地實現所要求的設計功能。

5 系統擴展

本文是針對8×8點陣設計,故每次取8個字形碼,如果是16×16點陣,將RONZI中存儲的字形碼改為16位,數據線改為16位,一個漢字需要16個16位的字形碼,數據分配模塊MUX、移位模塊YW、顯示模塊DISP,均要將輸入輸出數據中的原來的8位改成相應的16位。掃描及取字型碼計數器CNT SM應改為CNT計數器的低4位。一個16×16點陣漢字的移進移出共需32個狀態,由5位的計數器提供。如用CNT[16..0]中的14~10位作為該計數器,這可在時鐘計數器產生單元CLK GE中應做相應修改,字計數器CNT WORD按照每取16個字進行加1統計。顯示DISP部分的譯碼器要由3-8譯碼改為4-16譯碼。顯示的漢字信息越多,ROM的地址線位數越多,字計數器CNT WORD應在時鐘計數器產生單元GE CLK中,將相應的計數器位數擴展,由CNT計數器的最高位到位15來承擔。若還是8個漢字,計數器應為CNT[17..0],CNT[17..15]為字計數器;若為16個漢字,計數器應為CNT[18..0],CNT[18..15]為字計數器,…,依次類推。

6 結 語

本文在KH31001開發板上實現了基于Altera 公司的Cyclone Ⅰ系列FPGA器件EP1C6Q240C8硬件及VHDL硬件描述語言設計的LED點陣漢字滾動顯示,能在8×8點陣上滾動顯示“元旦生日開心快樂”8個漢字。文中從 LED點陣顯示漢字的原理闡述出發,給出了點陣漢字滾動顯示控制器的原理圖,部分模塊的VHDL源程序及時序仿真圖,并能由按鍵選擇其滾動方式:左移、右移、上移、下移等,給出了系統擴展成16×16點陣漢字滾動的改動思路。從文中描述的系統擴展方案中看出,當系統顯示字符個數變化時,只需對控制邏輯和連接關系做適當的修改,再將修改完成的程序下載到器件即可,顯然,系統的維護和修改是極其方便和容易的,本文對同類設計也具有一定的參考價值。

參考文獻

[1]王廣軍,鄧記才,畢立恒.CPLD在LED點陣列滾動字符顯示中的應用[J].自動化技術與應用,2007(7):94-96.

[2]付永慶,張林.用EDA設計LED漢字滾動顯示器[J].電子產品世界,2001(13):29-30.

[3]呂常智,范迪.基于CPLD的LED點陣顯示控制器[J].微計算機信息,2006,22(32):218-219.

[4]袁海林.基于FPGA的LED點陣顯示系統的設計[J].信息技術,2007,31(8):11-13,93.

[5]曾繁泰,李冰,李曉林.EDA工程概論[M].北京:清華大學出版社,2002.

[6]褚振勇,翁木云.FPGA設計及應用[M].西安:西安電子科技大學出版社,2002.

[7]唐龍.基于FPGA的LED點陣顯示字符設計[J].科技風,2008(4):47-49.

[8]龍安國.基于單片機的LED漢字顯示屏設計與制作[J].現代電子技術,2007,30(13):186-188.

[9]潘松,黃繼業.EDA技術實用教程[M].北京:科學出版社,2002.

[10]潘松,黃繼業.EDA技術與VHDL[M].北京:清華大學出版社,2005.

主站蜘蛛池模板: 91在线播放免费不卡无毒| 制服丝袜一区| 日韩av在线直播| 日韩欧美国产另类| 四虎影视库国产精品一区| 国产农村妇女精品一二区| 在线播放91| 成人在线观看一区| 为你提供最新久久精品久久综合| 国产欧美日韩va另类在线播放| 欧美国产三级| 国产精品无码一二三视频| 在线观看欧美精品二区| 青草视频久久| 国产精品污视频| 四虎精品国产AV二区| 强乱中文字幕在线播放不卡| 极品av一区二区| 色哟哟精品无码网站在线播放视频| av在线无码浏览| 国产成人高精品免费视频| 亚洲高清国产拍精品26u| 久久6免费视频| 小说 亚洲 无码 精品| 亚洲精品日产精品乱码不卡| 无码人妻热线精品视频| 国产福利不卡视频| 久久国产乱子| 亚洲一级无毛片无码在线免费视频 | 国产国产人成免费视频77777 | 国产日韩丝袜一二三区| 国产精品视频a| 综合色婷婷| 国产成人精品高清不卡在线| 久久天天躁夜夜躁狠狠| 精品少妇三级亚洲| 小13箩利洗澡无码视频免费网站| 女同久久精品国产99国| 高清大学生毛片一级| 国产免费人成视频网| 亚洲国语自产一区第二页| 久久综合色视频| 在线网站18禁| 看看一级毛片| 久久精品午夜视频| 嫩草国产在线| 精品视频一区二区观看| 26uuu国产精品视频| 日韩在线观看网站| 91久久青青草原精品国产| 69av在线| 色婷婷色丁香| 国产视频大全| 91亚洲国产视频| 国产精品人成在线播放| 亚洲免费播放| 国产日韩欧美一区二区三区在线| 国产综合日韩另类一区二区| 刘亦菲一区二区在线观看| 国产综合日韩另类一区二区| 午夜精品久久久久久久99热下载| 国产精品天干天干在线观看| 一本综合久久| 色综合中文综合网| 超碰精品无码一区二区| 国产丝袜无码一区二区视频| 成人久久精品一区二区三区| a色毛片免费视频| 亚洲va欧美va国产综合下载| 夜夜拍夜夜爽| 伊人查蕉在线观看国产精品| www.亚洲一区| а∨天堂一区中文字幕| 免费网站成人亚洲| 中文字幕天无码久久精品视频免费 | 国产网友愉拍精品| 国产91色在线| 精品亚洲国产成人AV| 欧美不卡视频在线观看| P尤物久久99国产综合精品| 永久免费AⅤ无码网站在线观看| 国产新AV天堂|