zoukankan      html  css  js  c++  java
  • CTT117—TFTLCD-2.4寸显示汉字

    1.LCD汉字显示是通过汉字取模软件将汉字转换成十六进制二维数组,控制LCD点阵的亮暗显示汉字。

    2。这里所用的汉字取模软件是pctolcd2002

    3.pctolcd2002的使用:

       

    3. 1.选择模式为字符模式  3.2.选择选项配置  一般配置如图,每行点阵显示数调到最高,可使每行数组表示一个汉字。

    3.3.上述配置完成后可在生成字模框中生成字模,并且可以调节字宽与字高,如图

    4.代码实现

    4.1,LCD驱动中的汉字显示函数(请确保LCD其他配置正确)

           

    //在指定位置显示一个汉字
    //x,y:起始坐标
    //num:要显示的汉字数组的初始下标
    //snum:要显示的汉字个数
    //size:字体大小 12/16/24
    //mode:叠加方式(1)还是非叠加方式(0)
    void LCD_ShowChinese2(u16 x,u16 y,u8 num,u8 snum,u8 size,u8 mode)
    {                                           
        u8 csize;
        u8 temp,t1,t,t2;    
        u16 y0=y;
        csize=(2*(size/8+((size%8)?1:0))*(size/2));        //得到字体一个字符对应点阵集所占的字节数    
        for(t2=0;t2<snum;t2++)
        {
        for(t=0;t<csize;t++)
        {   
            if(size==12)temp=chinese_12[num+t2][t];          //调用1206字体
            else if(size==16)temp=chinese_16[num+t2][t];    //调用1608字体
            else if(size==24)temp=chinese_24[num+t2][t];    //调用2412字体
            else return;                                //没有的字库
            for(t1=0;t1<8;t1++)
            {                
                if(temp&0x80)LCD_Fast_DrawPoint(x,y,TextColor);
                else if(mode==0)LCD_Fast_DrawPoint(x,y,BackColor);
                temp<<=1;
                y++;                                
                if(y>=TFT_Height)return;        //超区域了
                if((y-y0)==size)
                {
                    y=y0;
                    x++;
                    if(x>=TFT_Width)return;    //超区域了
                    break;
                }    
            }       
         } 
        }                                              
    }

    这里只配置12/16/24字体(即字模的宽高设置请保持一置)

    新建字库.h文件把生成的字模数组保存在其中,数组名命名为chinese_24[][80],chinese_16[][80],chinese_12[][80],与驱动中调用字体数组名相同。

    数组内容即保存的字模数组。(如图)

    5.main()函数调用

    只需在while(1)中调用汉字显示函数

     

    6.下载实现

     

     7.程序中并未使用最初的<LCD汉字显示>数组,而是直接使用原先写的<LCD显示>数组,原理相同,学习之后可在字模软件中生成不同汉字,在LCD显示。

  • 相关阅读:
    为什么说LD_LIBRARY_PATH不好
    linux c/c++ code统计耗时
    c++: abs() 与fabs() 的区别
    char代表有符号还是无符号?
    git三个小技巧:删除指定 commit、修改历史 commit 中的作者信息、合并某文件到当前分支
    vim选中字符复制/剪切/粘贴
    git rebase
    git打patch
    数据仓库生命周期工作箱 第六章 维度建模
    数据仓库生命周期工作箱 第二章 项目/项目群的启动与管理
  • 原文地址:https://www.cnblogs.com/6F3BUK/p/14051638.html
Copyright © 2011-2022 走看看