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);
}