lcd12864并口带字库如何在指定位置显示图片或大的字符
使用lcd12864并口带字库可以正常的显示汉字和字母数字,但现在需要在字的下面显示更大的数字或字母(0-26或A-Z两种模式),更大的字符使用网友的字库和驱动程序显示,但字的周围是阴影,想请教一下大家该怎么解决。图片和程序如下
没清屏? DebugLab 发表于 2024-8-30 21:16
没清屏?
今天上午调试了,创建了一个128×64的字符图片,观察了一下数据,不显示的部分都是0x00。应该是需要清屏,只不过生产部门催的紧,没有验证这个猜测。创建了26个128×64的大字符图片,直接调用刷整屏,单片机rom用了55k,下午给生产用去了。
还有一块屏,改天调试一下,看看如何在任意位置显示不同大小图片和线条 驱动部分没有问题,花屏的原因确实是显示自定义的数字“1”之前,没有先“清屏”的结果。
在这个屏幕上显示图片需要先执行扩充功能的指定(0x34),然后向屏幕芯片里的16×64字节的缓存空间里写入数据(对应屏幕上的64行,每行16根小横棍,一共128×64点阵),
然后执行开启显示指令(0x36, 0x30),是把缓存里的内容显示到屏幕上。
没有经过初始化的缓存空间里的数据是乱码,在执行(0x34)指令之后,再执行开启显示指令(0x36, 0x30),是把缓存里的内容显示到屏幕上,也就是一片花屏。
而程序里执行的 LCD12864Clear 函数,只调用了清屏指令(0x01),是把屏幕上的内容清除掉,并不能对缓存里的数据进行清空操作,
所以程序里显示图片的 LCD12864DisplayImage 函数,在执行(0x34)指令之后,只是对指定的区域写入了“数字1”的数据,并没有对其它区域的数据进行操作,
于是在执行开启显示指令之后,是把缓存里的内容全都显示到屏幕上,就出现了有数字有花屏的画面。
可以先显示一张128×64点阵的空白图片(1024个数据全是0),就相当于清空缓存里的数据了,之后再显示自己的16×32点阵的图片,屏幕上就干净了。
可以通过整屏ram的方式实现任意位置显示任意大小图片的功能。
页:
[1]