基于SOPC的通用字符VGA顯示電路設計
3.2 漢字字符顯示函數show_hz
此函數用于在VGA輸出畫(huà)面的(x,y)坐標處顯示單個(gè)漢字字符hz,主要代碼如下:

3.3 字符串顯示函數show_str
此函數用于在VGA輸出畫(huà)面的(x,y)坐標處顯示長(cháng)度為len的字符串str,內容可以由ASCII碼及漢字混合組成,其主要代碼如下:

4 實(shí)例應用
基于以上的軟硬件設計,這里以萬(wàn)年歷作為其應用的一個(gè)實(shí)例。以往基于FPGA的萬(wàn)年歷設計多使用LCD或七段數碼管作為輸出,顯示基本的數字和符號尚可,但若要加入問(wèn)候語(yǔ)、紀念日等中文信息則難于實(shí)現,基于本電路設計的萬(wàn)年歷則可以解決這一問(wèn)題。
從功能上劃分,此萬(wàn)年歷設計可分為3個(gè)模塊:
(1)時(shí)間日期生成模塊。此模塊包含年、月、日、星期、時(shí)、分、秒共7個(gè)變量的輸出,每個(gè)變量都有各自的子模塊,每個(gè)子模塊都包含預置、計數、進(jìn)位和顯示的功能。其中星期的確定方法是計算當前日期與1990年1月1日(星期一)之間間隔的天數,將此天數對7取模并加1,即得到當前星期的數字。
系統啟動(dòng)時(shí),首先將預置的初始時(shí)間日期傳遞給顯示函數,由顯示函數在預定位置分別顯示7個(gè)數據,將數字加上0x30便得到其對應的ASCII碼值,其中星期是將1~7的數字按星期一~星期日的漢字顯示。
隨后進(jìn)入系統的主循環(huán),以1秒鐘為循環(huán)間隔,當前級數字到達最大值時(shí)向下一級數字進(jìn)位。其中日進(jìn)位時(shí)需判斷月份類(lèi)型(大月、小月或2月),當前月為2月時(shí)還需判斷年份類(lèi)型(是否閏年),以確定日的進(jìn)位數值。其他數字的進(jìn)位值是固定的,其中年的范圍設定為1990~2099。
評論