针对ST7920芯片控制的12864液晶,我给大家讲一课,认真听哦
先熟悉一个重要概念
在ST7920中,字符显示的DDRAM和图形的GDRAM是相互独立的,而最后显示到液晶上的结果,是两个RAM中数据的异或。
先写上程序,然后分析一下,这样大家比较容易懂!
//反白或显示图片 参数格式:X坐标(16bit),Y坐标(1bit),X0坐标(16bit),Y0坐标(1bit)*/
void con_disp (uchar data1,uchar data2,uchar x0,uchar y0,uchar xl,uchar yl)
{
uchar i,j;
for(j=0;j<yl;j++)
{
for(i=0;i<xl;i++)
{
write_com(0x34); // 扩展功能
write_com(y0+j); // 写Y坐标
write_com(x0+i); // 写X坐标
write_com(0x30); // 普通功能
write_data(data1);
write_data(data2);
}
}
write_com(0x36); // 开绘图显示
}
1、这个函数,X0,Y0是左上角坐标,X1,Y1分别是列数(水平坐标)和行数(垂直坐标)。因为水平坐标是以二字节(16位)为单位,一次性要写入两字节(data1,data2),因此如果要反白则(data1,data2都为0XFF),如果要绘图(data1,data2可以为其它,此绘图函数主要用来绘制导航标头的)。
2、写入资料到内部RAM(包括DDRAM、GDRAM等)是基本操作指令,因此之前 要写write_com(0X30);
写DDRAM地址是基本操作指令,因此之前要写write_com(0X30);
写GDRAM地址是扩展操作指令,因此之前要写write_com(0X34);(此时要关绘图显示),然后写完GDRAM数据,最后要开绘图显示write_com(0X36);
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>