LCD1602 的数据写入及 CGRAM 的使用

2010年06月19日 367点热度 0人点赞 0条评论

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来说,它的存储空间如图所示:

如果使用5*7字符的话,那么最左3位和最后一行的数据实际上是没用的,通常置0。如果要自定义一个℃符号,那么先填框,如图(红1白0):

这样我们就得到每个地址需要写入的数据:
地址:数据
0x40:0x16
0x41:0x09
0x42:0x08
其他类推。将这8个数据写入到对应地址即可。
使用时,先确定显示的位置,例如0X80,然后向DDRAM写入自定义字符的使用代码。0X40-0X78对应为0X00-0X07。
本例中,先写入指令寄存器0X80确定显示位置为第一行第一个,然后写入数据寄存器0X00,这样就会在第一行第一个位置显示出℃符号。

木火唳唳

一只普通的程序猿

文章评论