基于FPGA控制的LED漢字滾動顯示器設計
下移程序可按相反思路去編。
3.4 顯示模塊DISP設計
顯示模塊DISP是以CNT_SM為掃描計數器,是對1kHz進行三位循環(huán)計數,由前述的時鐘計數產生模塊產生,WLl~WL8為待送出顯示的8個8位字型碼,由前述的移位模塊YW提供;SW[7..O]為行掃描輸出信號,連接至點陣的8個行;DATA[7..0]為行掃描時對應的列輸出字型碼,對外連至點陣的8列。該模塊參考文獻中數碼管動態(tài)顯示程序進行設計如下:
4 硬件實現
上述各模塊分別在QualtusⅡ中通過了仿真驗證,最后對整體設計進行了硬件驗證。將設計載入KH31001開發(fā)板的Cyclone工系列EPlC6Q-240C8FPGA器件中,實驗證明漢字滾動顯示掃描情況均正常,能夠按照預想進行移位顯示,這說明。FPGA的內核硬件工作良好,可以正確地實現所要求的設計功能。
5 系統(tǒng)擴展
本文是針對8×8點陣設計,故每次取8個字形碼,如果是16×16點陣,將RONZI中存儲的字形碼改為16位,數據線改為16位,一個漢字需要16個16位的字形碼,數據分配模塊MUX、移位模塊YW、顯示模塊DISP,均要將輸入輸出數據中的原來的8位改成相應的16位。掃描及取字型碼計數器CNT_SM應改為CNT計數器的低4位。一個16×16點陣漢字的移進移出共需32個狀態(tài)。由5位的計數器提供。如用CNT[16..0]中的14~10位作為該計數器,這可在時鐘計數器產生單元CLK_GE中應做相應修改,字計數器CNT WORD按照每取16個字進行加1統(tǒng)計。顯示DISP部分的譯碼器要由3-8譯碼改為4-16譯碼。顯示的漢字信息越多,ROM的地址線位數越多,字計數器CNT_WORD應在時鐘計數器產生單元GE_CLK中,將相應的計數器位數擴展,由CNT計數器的最高位到位15來承擔。若還是8個漢字,計數器應為CNT[17..O],CNT[17..15]為字計數器;若為16個漢字,計數器應為CNT[18..O],CNT[18..15]為字計數器,…,依次類推。
6 結語
本文在KH31001開發(fā)板上實現了基于Altera公司的Cyclone I系列FPGA器件EPlC6Q240C8硬件及VHDL硬件描述語言設計的LED點陣漢字滾動顯示,能在8×8點陣上滾動顯示“元旦生日開心快樂”8個漢字。文中從LED點陣顯示漢字的原理闡述出發(fā),給出了點陣漢字滾動顯示控制器的原理圖,部分模塊的VHDL源程序及時序仿真圖,并能由按鍵選擇其滾動方式:左移、右移、上移、下移等,給出了系統(tǒng)擴展成16×16點陣漢字滾動的改動思路。從文中描述的系統(tǒng)擴展方案中看出,當系統(tǒng)顯示字符個數變化時,只需對控制邏輯和連接關系做適當的修改,再將修改完成的程序下載到器件即可,顯然,系統(tǒng)的維護和修改是極其方便和容易的,本文對同類設計也具有一定的參考價值。本文引用地址:http://m.butianyuan.cn/article/191568.htm
評論