除了LCD1602之外,我有两块液晶:NOKIA5510和HB12864M1
之前写NOKIA5510程序的时候就发现:NOKIA5510只有向液晶写显示数据的指令,没有从NOKIA5510读出显示数据的指令。当时就想:这样肯定不好用啊,根本没有办法进行局部绘图——不破坏图形周围的显示内容。
没有想到,最近写HB12864M1的程序,发现它竟然也是“只能进不能出”!!!,按说HB12864M1这么多条指令,功能也算强大啊,怎么就偏偏不能实现一条读取指令呢???没有读取指令,应该很难实现复杂的显示功能吧——比如做俄罗斯方块游戏显示!!
也想过直接在单片机内存做一个液晶屏幕显示内容的“镜像”,直接对这个镜像进行操作,然后更新到显示屏幕上去,可是一计算需要的内存空间,立马就打消了这个念头:128*64/8=1024byte,即需要1K的RAM。我用的单片机是STC89C52,它的RAM在51单片机中算是比较大的:512byte。可是这还不到所需的一半,即使是RAM更多的M16也只有1K的RAM,如果真得开辟这样一个镜像缓冲区的话,那程序一个变量都不用定义就满了!!!:L
感觉很郁闷,于是就查了一下常用的LCD12864控制器的指令集支持情况,发现KS0108B、ST7920、T6963C都支持显示数据读取命令!!:L
前辈们,对于这种不支持显示数据读取的液晶屏,你们是怎么用的啊!??,该不会液晶屏对于屏幕的每一个显示状态(图形)都专门写一个显示函数,然后在每一个显示内容之前把屏幕清空吧!!!??:L
反正我现在是想不到什么好办法,希望前辈们指教!!!! |