本人菜鸟,编了一段12864的绘图程序,其实就是显示8位宽的游标。
但运行结果是屏幕花了,程序如下:
void Write_LCD_GDRAM(uchar Row_No, uchar Line_No)
{
uchar j, dir;
Write_LCD_Cmd(0x36); //扩充指令集
Write_LCD_Cmd(0x80+(Line_No%2)*0x10+15);
Write_LCD_Cmd(0x80+(Line_No>2)*0x08+Row_No/2);
dir = Row_No % 2;
if(dir == 1) //16*16区域的右半部反白
{
Write_LCD_Data(0x00);
Write_LCD_Data(0xFF);
}
else // 16*16区域的左半部反白
{
Write_LCD_Data(0xFF);
Write_LCD_Data(0x00);
}
Write_LCD_Cmd(0x30);
}
我想问一下,绘图时,是不是先写入0x36的命令,再写Y坐标,再写X坐标,在写点显示字,最后写0x30的命令。这个顺序对么?写命令与数据之间需要多少微妙延时? |