/**************************************LCD1602******************************************************/
横列为高位 竖列为低位
void write_dat(uchar dat) //1602写数据函数
{
rs=1;
lcden=0;
P0=dat;
delay(2);
lcden=1;
delay(2);
lcden=0;
}
例: write_dat(0x20+14); 就为写 .(点)
write_dat(0x60+11); 写k
write_dat(0x60+13); 写m
/****LCD1602指令**********/
0x28 设置16*2显示,5*7点阵,4位数据接口
0x38 设置16*2显示,5*7点阵,8位数据接口
0x01 清屏,光标复位到地址00H位置
0x02 光标归原点,DDRAM中内容不变,地址计数器AC=0(此时地址为0x80)
0x0f 开显示,显示光标,光标闪烁
0x0e 开显示,显示光标,光标不闪烁
0x0c 开显示,不显示光标
0x08 只开显示
0x06 地址加一,当写入数据的时候光标右移,设定显示屏或光标移动方向指令
0x18 字符全部左移一格,但光标不动
0x1c 字符全部右移一格,但光标不动
0x10 光标左移一格,且AC值减1
0x14 光标右移一格,且AC值加1
LCD八个自定义字符地址
0x00 第一个(0X04) 0x01 第二个(0x48)
0x00 第三个(0X50) 0x01 第四个(0x58)
0x00 第五个(0X60) 0x01 第六个(0x68)
0x00 第七个(0X70) 0x01 第八个(0x78)