LCD1602的指令集如下图所示:
LCD1602自定义字模/1-1.png)
自定义字模通过改变CGRAM中的内容来实现。
CGRAM一共有8个对应的地址可以自定义字模,LCD1602显示模式为5*7点阵型,字模代码对应于字模图形的8行,图像按行扫描,横向取模,前三列都是0,最后一行都是0x00。
爱心的字模存入数组后可以按如下表示:
1 | unsigned char LoverChar[8]={0x00,0x0A,0x15,0x15,0x11,0x0A,0x04,0x00}; |
因为每个字模的每一行有8位。每个地址可以存入一个8位数据,即一行一个字模有8行,所以每写完一个字模以后地址要加8,按照指令写入CGRAM时需要加0x40,所以对应地址分别为:0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78。在字模表中,这8个地址对应位0x00~0x07。
例如,我们想要在0x40中存放字模,就将使用写指令命令写0x40:
1 | LCD_WriteCommand(0x40); |
通过上面的LCD_WriteCommand(0x40);,我们选中了0x40这个地址,再通过执行8次LCD_WriteData(LoverChar[i]);,就可以把字模数据写入0x40中:
1 | for(i=0;i<8;i++){ |
之后想显示该字模的图形,只需要LCD_ShowChar(1,1,0x00);即可:
1 | LCD_ShowChar(1,1,0x00); |