LCD1602自定义显示字符
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LCD1602自定义显示字符
从CGROM表中可以看到,在表的最左边是一列可以允许用户自定义的CGRAM,从上往下看着是16个,
实际只有8个字节可用。它的字符码是00000000-00000111这8个地址,表的下面还有8个字节,但因为这个CGRAM的字符码规定0-2位为地址,3位无效,4-7全为零。因此CGRAM的字符码只有最后三位能用也就是8个字节了。等效为0000x111,x为无效位,最后三位为000-111共8个。
如果我们要想显示这8个用户自定义的字符,操作方法和显示CGROM一样,先设置DDRAM位置,再向DDRAM写入字符码,例如“A”就是41H。现在我们要显示CGRAM的第一个自定义字符,就向DDRAM写入00000000B(00H),如果要显示第8个就写入00000111(08H)。
从这个指令可以看出指令数据的高2位已固定是01,只有后面的6位是地址数据,而这6位中的高3位就表示这八个自定义字符,最后的3位就是字模数据的八个地址了。例如第一个自定义字符的字模地址为01000000-01000111八个地址。
我们向这8个字节写入字模数据,让它能显示出“℃”
地址:01000000数据:00010000图示:○○○■○○○○
0100000100000110○○○○○■■○
0100001000001001○○○○■○○■
0100001100001000○○○○■○○○
0100010000001000○○○○■○○○
0100010100001001○○○○■○○■
0100011000000110○○○○○■■○
0100011100000000○○○○○○○○
字定义字符地址
0x40————0x00
0x48————0x01
0x50————0x02
0x58————0x03
0x60————0x04
0x68————0x05
0x70————0x06
0x78————0x07
程序操作:
1.定义字符数组
uchar code Word1[]={0x15,0x0A,0x15,0x0A,0x15,0x0A,0x15,0x0A};//自定义字符数组
2.写数据到CGRAM中
uchar j;
WriteCommandLCD(0x40);
for(j=0;j<8;j++)
{
WriteDataLCD(Word1[j]);
}
3.读取数据并显示
WriteCommandLCD(0xC8);//显示在第一行
WriteDataLCD(0x00);//地址
取模软件操作左边三列为无效
软件设置