嵌入式 > 技术百科 > 详情

LCD1602自定义字符的方法

发布时间:2020-10-21 发布时间:
|
   LCD1602内含有八个自定义的字符空间,用户可以根据需要设置自定义字符,不过字符的像素通常是5X7。如果需要更大像素的字符,就只能用多个5X7的字符拼合。每个自定义字符的字节有8个,最后一个是0x00;每个字节的高3位为0,即000? ????。自定义字符设置与应用步骤如下:
    1、设置自定义字符的代码并存入数组。每个字符分7行,每行有5个像素,如果需要显示,此位设定为1,否则为0。本人用VBA制作了《LCD1602自定义字符生成器》,使用简单,需要可函索。联系:51hei.com
    2、按常规方法初始化LCD1602。
    3、写命令:40H。
    4、写数据:将代码数组写入LCD1602中的CGRAM中。
    5、按常规方法设置要显示字符的位置。如写命令:80H(第一行第1个字符位置)或c0H(第二行第1个字符位置)。
    6、写数据显示自定义字符:写0显示第1个自定义字符,写1显示第2个自定义字符……依此类推。注意写入的0或1等是指数字而不是字符,不能加单引号。
    下面是生成好的自定义字符代码数组,供参考:
uchar  code table1[]={0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00};//字符℃ 
uchar  code table2[]={0x04,0x1F,0x00,0x0A,0x0A,0x0A,0x1B,0x00};//字符六
uchar  code table3[]={0x04,0x1D,0x14,0x15,0x14,0x1D,0x04,0x00};//字符小喇叭
uchar  code table4[]={0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00};//字符一
uchar  code table5[]={0x00,0x0E,0x00,0x00,0x00,0x1F,0x00,0x00};//字符二
uchar  code table6[]={0x0E,0x00,0x00,0x0E,0x00,0x00,0x1F,0x00};//字符三
uchar  code table7[]={0x1F,0x11,0x15,0x15,0x1F,0x11,0x1F,0x00};//字符四
uchar  code table8[]={0x1E,0x08,0x08,0x1E,0x0A,0x0A,0x1F,0x00};//字符五
uchar  code table9[]={0x08,0x1F,0x12,0x0F,0x0A,0x1F,0x02,0x00};//字符年
uchar  code table10[]={0x0F,0x09,0x0F,0x09,0x0F,0x09,0x13,0x00};//字符月
uchar  code table11[]={0x1F,0x11,0x11,0x1F,0x11,0x11,0x1F,0x00};//字符日
uchar  code table12[]={0x04,0x1F,0x0A,0x1F,0x04,0x1F,0x15,0x00};//字符新左半部
uchar  code table13[]={0x1F,0x10,0x10,0x1F,0x12,0x12,0x12,0x00};//字符新右半部
               
               
主程序:
void main()
{
 uchar m;
 init_LCD();
 delayms(10);        
 write_LCD_Command(0x40); //写命令
    for(m=0;m<8;m++)   
 write_LCD_data(table1[m]); //将代码写入CGRAM中
     write_LCD_Command(0x80); //设定显示位置
 write_LCD_data(0); //显示第1个自定义字符
 while(1);
}
 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
如何解决PCB传输线之SI反射问题