打印

液晶屏编程C语言

[复制链接]
2349|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我最近在编写一个160*96的LCD图形液晶屏,功能什么都做好了,显示也很正常,就是觉得编写的程序太繁琐,程序太大就不发了,我讲一下我的思路,希望大家指导,给点意见。我先做位图,算好尺寸大小,设置好起始行和起始列,把数据写进去,用来显示需要显示的内容,如果不需要显示此内容,我又写了个同样大小的尺寸的空白数据覆盖在上面,我觉得这样太麻烦了,而且显示的位图特别多,大小又不一样,这样子更麻烦了,还有字符型数据移动时,之前的数据不会清零,好像只有图像的才正常,有个读数据的指令,我一直没用过,不知具体怎么用的!希望大家给个思路!谢谢

相关帖子

沙发
mohanwei| | 2012-9-4 11:13 | 只看该作者
操作系统xp,linux的内核也就几百K,但是加上图形界面后动辄上G……
所以你用单片机来操作图形麻烦是肯定的了……

使用特权

评论回复
板凳
qq65411253| | 2012-9-4 18:47 | 只看该作者
我以前做图形界面时也遇到过同样的想法,后来很快就淡定了。这个东东本来就需要频繁的读写内存,再怎么优化也省不了多少指令。
另外,一般是在内存中开辟一块区域做显存,程序先对显存读写。如果你直接写lcd的话不是很好。

使用特权

评论回复
地板
tyw| | 2012-9-4 19:17 | 只看该作者
本帖最后由 tyw 于 2012-9-4 19:26 编辑

3L的是办法,但杯举的是单片机往往木油太多RAM让你折腾,所以只好ROM多做点功了,哈哈

使用特权

评论回复
5
shell.albert| | 2012-9-4 20:41 | 只看该作者
换ARM吧,外扩RAM,采用双缓冲,先将数据写入显存,然后再一块刷入LCD.

使用特权

评论回复
6
sinonion| | 2012-9-4 20:49 | 只看该作者
96*160却是比较大了,1万5千多像素点,不知道楼主用了几个LCD Dirver芯片?

使用特权

评论回复
7
sinonion| | 2012-9-4 20:53 | 只看该作者
读数据一般也不用,除非你要读LCD RAM中的数据,读操作有个假读动作而已,具体看读的时序就可以了!

使用特权

评论回复
8
lanqiao1026|  楼主 | 2012-9-5 11:09 | 只看该作者
这是一个框架图,看了大家的回复,也就是说能省点事的办法,就是弄个显存,或者在ROM上下功夫,再不行就外加RAM,谢谢大家,我现在用C8051的单片机,还可以,就是成本太高,但是以前用HT的单片机的时候,居然不能写code,只能写const,这样子rom用不起来,让我郁闷不已,接下来我还要做一个172*104的液晶屏!目前还没拿到资料!

QQ截图20120905110150.jpg (34.9 KB )

QQ截图20120905110150.jpg

使用特权

评论回复
9
Light_David| | 2012-9-5 14:49 | 只看该作者
必须要学会(习惯)使用LCD的读功能!!
看很多同仁都不使用读功能,就是硬着头皮让里面写,
这样就全部会碰到你碰到的那些尴尬,。
做不了稍微复杂一点显示,画圆消圆,画线消线等图形,或者移动画面等。
LCD中的那些显示缓存本身就是干这个的,用好读功能,这些就是你单片机的专属外扩显存!
有些时候甚至未在屏幕刷新地址中的这些内存还能作为其他程序运行时的临时内存用。
(特别是挂接在有开放外部总线的51上,这简直是先天优势)

172*104就嫌大,那320*240上不就要搞疯了啊。

使用特权

评论回复
10
zhangxu985| | 2012-9-5 14:58 | 只看该作者
我认为:MCU的RAM够大,就开辟一块做显存,这样比读LCD的显存要快一些。如果不够,就用LCD的显存(即读功能)。如果嫌后者刷屏效率低,就考虑换更高频率的MCU吧。请拍砖。

使用特权

评论回复
11
tyw| | 2012-9-5 15:51 | 只看该作者
9L说得对,不过有些模块采用串行时不支持LCD内存读,只有并行才具读,写功能

使用特权

评论回复
12
lanqiao1026|  楼主 | 2012-9-5 17:23 | 只看该作者
9# Light_David 您说的很在理,正是我所考虑的问题所在,我认为程序就算写的多点,但是不管LCD多少像素,也能把不同信息,生动的表现出来,LCD我还是新手,十分感谢您的建议,只是在下不懂之处确有很多,希望能有更多机会向您学习,能不能对复杂的图像显示,做更详细的解说呢?谢谢!

使用特权

评论回复
13
qq65411253| | 2012-9-5 17:27 | 只看该作者
如果不考虑程序的兼容性和移植性,可以在lcd的内存里面读。如果希望写好的程序能重复使用,则使用lcd以外的内存比较好。

使用特权

评论回复
14
ytmpeigd| | 2012-9-5 20:00 | 只看该作者
不错。。。学习了..呵呵..

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

500

帖子

1

粉丝