新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > 基于SOPC的通用字符VGA顯示電路設計

        基于SOPC的通用字符VGA顯示電路設計

        作者: 時間:2012-06-29 來源:網絡 收藏

        在整個工程的頂層文件中例化生成的system_0模塊,用鎖相環模塊產生所需的25MHz時鐘信號并作為模塊iCLK 25信號輸入。由于的CPU RESET信號只能鎖定在實際器件中的按鈕上作為輸入,而DE2開發上的4個按鈕在后面的實例都需要用到,因此在頂層文件中將CPU RESET信號直接置1。system_0的其他的輸入輸出信號根據開發板的相應資源進行定義和管腳鎖定。
        本設計的FPGA配置信息(sof文件)寫入EPCS器件中,Nios II程序(elf文件)寫入CFI Flash模塊中,所用到的兩個字庫也寫入CFI Flash中,字庫起始偏移地址分別為0x80000和0x1000000。

        2 原理
        調用點陣字庫實現任意數字和漢字的實時是本設計的基本方法。本設計中分別采用ASC16和HZK16字庫作為ASCII碼和漢字的點陣字庫,這兩個字庫最早在UCDOS系統中被使用。
        ASC16字庫含有256個ASCII碼,每個ASCII碼均以16×8的點陣表示,點陣信息以行優先的方式存儲,每個字符占用128個存儲位(16字節),按照ASCII碼的編碼順序存儲,故一個字符的ASCII碼值乘16就是它在ASC16字庫中的偏移地址。
        HZK16是依據GB2312編碼存儲的點陣字庫,每個漢字用16×16的點陣表示,每個字符占用256個存儲位(32字節),點陣信息同樣以行優先方式存儲。
        HZK16字庫內漢字按照內碼順序存儲,每個漢字的內碼由兩個字節組成,高位字節為區號,低字節為位號,兩字節的范圍均為0xA1~0xFE共94個取值。將漢字的兩個字節分別減去0xA1,即可得到該漢字的區號和位號。設某個漢字編碼的兩個字節分別為0xMM和0xNN,則該漢字在HZK16字庫中對應的偏移地址為:
        OFFEST=[94×(0xMM-0xA1)+(0xNN-0xA1)]×32
        定位了ASCII碼字符或漢字在點陣字庫中的位置后,讀出其所對應的16字節或32字節數據,用按位與運算和左移運算對每個字節的8個位逐一測試,將測試結果為1的位的對應像素填充為前景色,否則將像素填充為背景色,實現設定字符的

        3 中相關函數的定義
        根據上述原理,以C語言編寫適用于上述的字符顯示函數,并以Nios II HAL系統庫為基礎。
        3.1 ASCII碼字符顯示函數show_asc
        此函數用于在輸出畫面的(x,y)坐標處顯示單個ASCII碼字符asc,主要代碼如下:
        d.JPG
        e.JPG


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 濮阳市| 休宁县| 黑河市| 信阳市| 商水县| 屏东市| 五大连池市| 西丰县| 贵港市| 威远县| 宜兰市| 孟村| 元氏县| 阿鲁科尔沁旗| 凉城县| 大洼县| 类乌齐县| 米泉市| 平塘县| 延津县| 博客| 高陵县| 武义县| 岚皋县| 湄潭县| 崇礼县| 龙川县| 怀柔区| 泗洪县| 九龙县| 苗栗市| 盖州市| 长丰县| 资中县| 宜宾县| 纳雍县| 平塘县| 岗巴县| 綦江县| 贵定县| 松滋市|