新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于不帶字庫的圖形LCD模塊漢字顯示解決方案

        基于不帶字庫的圖形LCD模塊漢字顯示解決方案

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


        void DispStr(unsigned char row, unsigned char column, unsigned char *str)
        {
        while (*str)
        {
        if (*str > 0xa0) //如果是機內碼
        {
        if (column == 30) //如果是最后一列,則換行
        {
        row ++;
        column = 1;
        }
        DispHZ(row, column, str); //一個
        column += 2;
        str += 2;
        }
        else //如果是英文字符
        {
        DispChar(row * 2, column, str); //一個英文字符
        column++;
        str++;
        }
        }
        /*----------------------------------------------------------------
        在指定位置一個(16*16點陣)
        row:行(1-8), column: 列(1-29)
        str:漢字標準機內碼指針
        LINE_CHAR = 30 一行的字符數
        -----------------------------------------------------------------*/
        void DispHZ(unsigned char row, unsigned char column, unsigned char *str)
        {
        unsigned char idata i, hz_buf[32];
        unsigned int StartAddr;

        //定位起始行
        StartAddr = (((row - 1) * 16) * LINE_CHAR + (column-1)) + 0x4000;
        GetMatrix(str, hz_buf);
        for (i = 0; i 16; i++)
        {
        InData( (unsigned char) (StartAddr) );
        InData( (unsigned char) (StartAddr>>8) );
        InCmd(0x24);
        LCDInData(hz_buf[i * 2]);
        LCDInCmd(0xc0);
        LCDInData(hz_buf[i * 2 + 1]);
        LCDInCmd(0xc4);
        StartAddr += LINE_CHAR;
        }
        }
        /*-----------------------------------------------------------------------------------
        芯片中取漢字字模數據
        s: 漢字標準機內碼指針
        hz_buf: 存放漢字字模數據緩沖區指針
        -------------------------------------------------------------------------------------*/
        void GetMatrix(unsigned char *s, unsigned char *hz_buf)
        {
        unsigned char i ,j, k;
        unsigned long address;

        for (k = 0; k 31; k++)
        {
        i = *s - 0xA1; //計算區碼
        j = *(s + 1) - 0xA1; //計算位碼
        address = (((unsigned long)i * 94) + j)*32 + k; //計算該漢字在字模芯片中的起始位置

        high_addr = 1;
        P0 = (unsigned char) (address >> 16); //送高位地址
        high_addr = 0;
        P0 = 0xff;
        zk_cs = 0;
        *hz_buf = XBYTE[(unsigned int) address]; //取漢字模數據
        hz_buf++;
        zk_cs = 1;
        }
        }

        4 結束語

        液晶中嵌入中文點陣字模芯片,其最大的特點是可以顯示所有的一、二級漢字、硬件接口簡單、軟件編程容易、可混合顯示漢字、英文字符和。作為人機接口的一個重要部分,可被廣泛應用在工業儀器儀表、監控裝置、保護裝置及汽車等各種領域中。

        5 參考文獻
        1 徐愛均彭秀華單片機高級語言C51應用程序設計電子工業出版社2001
        2 萊德電子 YJ240D液晶手冊
        3 Toshiba CMOS digital integrated circuit silicon monolithic T6963C dot matrix LCD control LSI, 1997-04-07
        4 GB2312-80《信息交換用漢字編碼字符集》,1980

        LCD顯示屏相關文章:lcd顯示屏原理


        lcd相關文章:lcd原理

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 台前县| 长白| 炉霍县| 抚顺市| 汤原县| 保亭| 新宁县| 磴口县| 丰宁| 蓬莱市| 泾阳县| 弥勒县| 安达市| 溧阳市| 湘潭县| 洛宁县| 浦北县| 沿河| 共和县| 澄江县| 丹棱县| 德庆县| 永丰县| 淄博市| 利辛县| 天长市| 丹东市| 都兰县| 泗水县| 佳木斯市| 洛浦县| 江阴市| 麻阳| 田林县| 绥芬河市| 湛江市| 称多县| 星座| 黄浦区| 横峰县| 建始县|