浅谈用单片机控制12864液晶
这样,一个函数就编写好了,如果我们就可以在任意区域显示自己想要的图片了(当然写入的区域不要有汉字或字符内容,不然会重叠到一起的,关于这部分的解决方案,下面即将介绍)
笔者在应用12864的时候,由基本模式切换到绘图模式时,会出现屏幕花屏的情况,始终无法解决,最后编写了一段清除图片内容的函数,其代码如下:
void clear_img()
{
uchar p,q;
write_cmd(0x34);
write_cmd(0x36);
for(p=0;p32;p++)
{
write_cmd(0x80|p);
write_cmd(0x80);
for(q=0;q32;q++)
write_dat(0);
}
}
仔细研究一下这段代码,其实大家可以发现没有什么特别的东西,主要是为了给图片区域的部分全部写入0,屏蔽其显示内容,由此便可以解决模式切换后的花屏现象。然后在主函数中,调用初始化函数后,执行上面的clear_img()函数即可避免模式切换后的花屏现象。效果还是不错的,只是占用的时间比较长。笔者最初用普通51单片机时候选用11.05926M晶振,经12分频后清屏速度还是很慢的(接近8秒钟时间),后换用24M不分频的51单片机,清屏速度加快了很多(大概在0.4秒左右),所以这种方法并不适用普通51,否则光清屏的时间就会让人抓狂的。只建议不分频的单片机使用这种方法。
做比赛之前从来没有用过12864液晶,从头学起,最后在12864液晶上做出了一个简单的操作界面,花了整整两天时间。其中图像清屏的问题占用了很多时间,所以在此写下此文,为后来者提供问题的解决方案。最后欢迎大家多多交流~~
- 基于DSP实现的LCD液晶屏显示技术(06-04)
- 基于PROTEUS技术的ARM7显示系统设计与仿真实现(11-22)
- uC/GUI在S3C44B0X的移植及其在数据显示系统中的应用(02-15)
- 基于DSP和单片机通信的液晶显示设计方案(07-20)
- 基于DSP和ST7920的液晶显示模块的实现(09-11)
- 基于DSP的液晶显示器接口设计及控制实现(10-15)