LCD1602自定义字符的方法
时间:11-30
来源:互联网
点击:
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);
}
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);
}
LCD1602自定义字 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)