打印

12864液晶如何快速更新屏幕内容,我做的闪烁得厉害???

[复制链接]
5348|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fortuner|  楼主 | 2008-10-8 13:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
初次使用12864液晶,文字和图形显示都正常,但有个问题困扰。在液晶屏上显示时钟(时钟芯片为DS1302),因为要显示到秒,所以我不停的读取DS1302,然后显示在液晶屏上,每次显示我都发0x01命令清屏了(设置了延时10ms),但是还是显示出一些莫名其妙的字符,没办法,我在每次显示之前都关闭命令,显示过程结束后打开显示命令,现在非法字符没有了,可屏幕闪得老厉害了,我实在没折了。我看了别人的显示,都不闪烁,可没有代码,所以!!!
请各位高手帮帮我,谢谢

相关帖子

沙发
machunshui| | 2008-10-8 13:35 | 只看该作者

建议

建议:

1.显示哪里就改变哪里

2.1秒或者略小于1秒读一次ds1302,然后输出日期时间到lcd

使用特权

评论回复
板凳
qingsha| | 2008-10-8 19:34 | 只看该作者

怎么能不闪

你不用每次都清屏,只要每次都从固定的地址写入数据就行了。还有就是不要开光标闪烁功能。

使用特权

评论回复
地板
fortuner|  楼主 | 2008-10-8 19:55 | 只看该作者

谢谢

楼上的大虾说法真节省,我想也该是这么做,刚才去金鹏液晶网站上下载了12864的例子,再试试看

使用特权

评论回复
5
winloop| | 2008-10-9 16:34 | 只看该作者

古老的12864液晶

使用特权

评论回复
6
zgl7903| | 2008-10-9 20:44 | 只看该作者

改变下刷新的思路 不要做无谓的刷新

need_refresh = 1; //进入后刷新标记

while(1)
{
  GetDS1302(); //读时间
  if(time_Change())  //时间改变
  {
    need_refresh = 1; //需要刷新
  }
  
  if(//处理其它的需要刷新的情况  //)
  {
    need_refresh = 1;
  }

  if(need_refresh) //需要刷新
  {
    //刷新屏幕
    need_refresh = 0; //清除刷新标记
  }
}
  

使用特权

评论回复
7
hotpower| | 2008-10-9 21:23 | 只看该作者
8
jimoom| | 2008-10-10 08:17 | 只看该作者

绝对不能关屏,在不关屏的基础上想想其他办法!

使用特权

评论回复
9
hkap| | 2008-10-10 09:32 | 只看该作者

2楼的方法实用

也可以用定时器做个软时钟,500ms或1s刷新一次即可

使用特权

评论回复
10
fortuner|  楼主 | 2008-10-12 00:49 | 只看该作者

谢谢

谢谢

使用特权

评论回复
11
menhongxi| | 2008-10-17 16:02 | 只看该作者

每次开机读一次就行了

用单片机自己定时,每次开机读一次就行了,没必要总是读取DS1302

使用特权

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

本版积分规则

8

主题

22

帖子

1

粉丝