單片機解密 單片機破解 芯片解密 IC解密 設為首頁 │ 網站地圖 │ 聯系我們     
      
    仿真器 編程器 ARM/DSP/USB CPLD/FPGA/SOPA 單片機開發板
    實驗儀 工控板卡 適配器 其它產品 測試/分析儀
     
     
      IT搜索 
      熱門關鍵詞:仿真器 編程器 ARM/DSP/USB CPLD/FPGA/SOPA 單片開發機 實驗儀 工控板卡 適配器 其他產品 測試/分析儀
     
      單片機原理
     
      技術人生
     
      解密技術
     
      單片機學習
     
     
       文章內容
     
    點陣漢字顯示原理
    漢字內碼
      在電腦中,所有的數據都是以0和1保存的,按不同的數據操作,可以得到不同的結果。對于顯示英文操作,由于英文字母種類很少,只需要8位(一字節)即可。而對于中文,常用卻有6000以上,于是我們的DOS前輩想了一個辦法,就是將ASCII表的高128個很少用到的數值以兩個為一組來表示漢字,即漢字的內碼。而剩下的低128位則留給英文字符使用,即英文的內碼。
    漢字字模
      得到了漢字的內碼后,還僅是一組數字,那又如何在屏幕上去顯示呢?這就涉及到文字的字模,字模雖然也是一組數字,但它的意義卻與數字的意義有了根本的變化,它是用數字的各位信息來記載英文或漢字的形狀,如英文的'A'在字模中是這樣記載的:



    而中文的“你”在字模中卻是這樣記載的:


      在硬件系統內,英文的字模信息一般固化在ROM里,中文的字模信息一般記錄在漢字庫文件HZK16里。

    采用漢字字模點陣數據批量生成工具(下載)漢字字模工具 產生的隨意字模 如何在點陣LED或LCD中顯示漢字?

    假設你采用16x16點陣漢字,水平掃描。

    顯示漢字為“!,用產生如下字模

    unsigned char mo[]={
    0x00,0x00, 0x10,0x90, 0x10,0x94, 0x13,0xFE,
    0x7C,0x90, 0x11,0xFC, 0x19,0x04, 0x35,0xFC,
    0x35,0x04, 0x51,0xFC, 0x50,0x40, 0x17,0xFE,
    0x10,0x90, 0x11,0x08, 0x16,0x06, 0x00,0x00
    };

    代碼如下:

    unsigned char cmp_w[8]={128,64,32,16,8,4,2,1};

    void FontDisplay(int x, int y, unsigned char * FontModule)
    {
        for(int row=0;row<16;row++)
        {
            for(int c=0;c<8;c++)
                if((FontModule[row*2]&cmp_w[c])!=0)
                    putpixel(c+x,row+y,15);
            for(c=0;c<8;c++)
                if((FontModule[row*2+1]&cmp_w[c])!=0)
                    putpixel(c+8+x,row+y,15);
    }

    main(){

    FontDisplay(5,10,mo);

    }

    24x24點陣代碼示例(水平掃描):

    unsigned char mo[]={
    0x00,0x00,0x00, 0x00,0x00,0x00, 0x07,0x0C,0xC0, 0x06,0x0C,0xC0,
    0x06,0x0C,0xDC, 0x06,0x7F,0xF0, 0x06,0xCC,0xC0, 0x1F,0xF0,0x70,
    0x06,0x3F,0xF0, 0x07,0x30,0x70, 0x0F,0xBF,0xF0, 0x0E,0xF0,0x70,
    0x1E,0xF0,0x70, 0x1E,0x3F,0xF0, 0x36,0x06,0x18, 0x06,0xFF,0xFC,
    0x06,0x07,0x00, 0x06,0x0F,0x80, 0x06,0x0C,0xE0, 0x06,0x38,0x7C,
    0x06,0xE0,0x18, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00
    };
    unsigned char cmp_w[8]={128,64,32,16,8,4,2,1};

    void FontDisplay(int x, int y, unsigned char * FontModule)
    {
        for(int row=0;row<24;row++)
        {
            for(int c=0;c<8;c++)
                if((FontModule[row*3]&cmp_w[c])!=0)
                    putpixel(c+x,row+y,15);
            for(c=0;c<8;c++)
                if((FontModule[row*3+1]&cmp_w[c])!=0)
                    putpixel(c+8+x,row+y,15);
            for(c=0;c<8;c++)
                if((FontModule[row*3+2]&cmp_w[c])!=0)
                    putpixel(c+16+x,row+y,15);
         }
    }

    main(){

    FontDisplay(5,10,mo);

    }

    putpixel函數:

    putpixel(int x,int y,int color)

    x,y為坐標,color為顏色值.該函數在(x,y)點設定象素的顏色.由于硬件的不同,也許提供的函數不同,用戶可把此函數作為參考,必要時用硬件提供的函數取而代之.

     
    單片機解密,單片機解密,芯片解密,IC解密
     
    公司簡介 | 新聞動態 | 新品推薦 | 產品信息 | 下載中心 | 解密服務 | 項目開發 | 技術主頁 | 網上訂購 | 網站地圖 | 谷歌地圖
    地址:深圳市南山區高新技術產業園中區科文路中鋼大廈東 電話:李小姐,易小姐0755-26001683 26008661 手機:18123979133,18138851533
    粵ICP備15080534號-1 版權所有:深圳市華宇晶電子科技有限公司 單片機解密,芯片解密公司,芯片解密,IC解密
    国产精品日韩精品3p合集