||
今天对液晶屏的摸索有了进展。翻译了一部分控制器的资料,因为我的英语能力有限,基本靠在线翻译。不过还是有所收获的。目录全翻完了,挑了一部分看了下参考的程序流程和时序,折腾了一段代码,然后消化了部分网上下载的程序。虽然不全懂,总算是开始干活了,就是让他显示字的时候有点乱78糟的。一开始是因为一个数学问题。设定了一个起始的坐标,然后在设定结束坐标的时候没有-1 。结果凭空多了33个点。试验是先吧屏幕刷成白色,没有问题,然后从(3,3)的坐标开始显示一个16*16的绿色矩阵,函数是这么写的
void Display_Matrix(start_x,start_y,long_x,long_y,display_color)
{
unsigned int i;
write_command(0x0050,start_x);
write_command(0x0051,start_y);
write_command(0x0052,start_x+long_x);
write_command(0x0053,start_y+long_y);
for(i=0;i<(long_x*ong_y);i++)write_command(0x0022,display_color);
}
猛一看是个方的,然后在把这个矩阵刷成兰的,结果问题出现了,中间夹了一段绿色~急得我差点就去找放大镜数点数了,还好,猛的想通了,start_x+long_x-1和start_y+long_y-1就OK了。
还有就是显示方向的问题,用户手册说明书上写错了,就是那AM和DI[1:0]的用法,和说明书上完全不是一个反向,害得我调试了半天,有点郁闷。
这个算是我写的第一篇关于技术方面的日志吧,希望着并不是最后一篇。暂时就定以为“51驱动ili液晶驱动器”吧。本来想用ARM或者DSP驱动的,无奈本人不会,还是先用51把整个流程摸熟在去移植吧,反正控制流程是一样的,明天吧显示文字的程序调好。调好了在写下一篇日志吧。
希望已经研究透彻的大侠嫩给点指导,真正研究的同人能一起探讨,准备研究的后来人一点参考。