山海电脑维修献给朋友的 LCD1602 资料
LCD1602的数据写入及 CGRAM 的使用
1.当使能端 E 由1变为0时,执行写指令,数据被写入。
例如,欲写入数据 i 到 DDRAM:
void WDR(uchar i)
{
CheckBusy();//检忙
LCD_RS=1;
LCD_RW=0;
LCD_EN=0;
Delay();
LCD_DATA=i;//数据输出到定义端口
Delay();
LCD_EN=1;
Delay();
LCD_EN=0;//这一步才开始写入到 LCD
Delay();
}
2.CGRAM
1602能存储8个自定义字符,这8个自定义字符存储空间的首地址分别是:
0X40,0X48,0X50,0X58,0X60,0X68,0X70,0X78。
以0x40来说,它的存储空间如图所示:
山海电脑维修献给朋友的 LCD1602 资料
如果使用5*7字符的话,那么最左3位和最后一行的数据实际上是没用的,通常置0。如果要
自定义一个℃符号,那么先填框,如图(红1白0):
这样我们就得到每个地址需要写入的数据:
地址:数据
0x40:0x16
0x41:0x09
山海电脑维修献给朋友的 LCD1602 资料
0x42:0x08
其他类推。将这8个数据写入到对应地址即可。
使用时,先确定显示的位置,例如0X80,然后向 DDRAM 写入自定义字符的使用代码。
0X40-0X78对应为0X00-0X07。
本例中,先写入指令寄存器0X80确定显示位置为第一行第一个,然后写入数据寄存器0X00,
这样就会在第一行第一个位置显示出℃符号