打印

PCF8576DH显示问题

[复制链接]
2031|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
WalKerOne|  楼主 | 2010-7-30 18:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
pc, TE, ST, se, maste
最近在调PCF8576D的显示程序时碰到一个很怪的问题。程序初始化时,只要向最后一个寄存器写了数据,则后来的更新显示就不能显示在屏幕上了。只要不向最后一个寄存器写数据,就一切正常,后面改写屏幕都会更新。比如:如果程序初始化代码为:

PCF8576D_MasterSendStart(PCF8576D_Addr,0);   // Send start and pcf8576d's address

PCF8576D_MasterWriteByte(0xc8);              // Mode set, 1/3 bias, 1/4 multiplex, display enable

PCF8576D_MasterWriteByte(0x26);             // Write data to address 0x26(seg38, seg39).

PCF8576D_MasterWriteByte(0xff);               // data

PCF8576D_MasterSendStop();


则后面再向屏幕写数据时就不更新了。而如果把第三行的数据地址从0x26改为0x24,则后面的显示就一切正常了。但我测得PCF8576D的I2C的数据和时钟信号都是正常的。就是显示不更新。
不明白怎么会有这种问题??是不是数据指针丢失了啊???
各位用PCF867D的时候有没有碰到过这种问题?

相关帖子

沙发
zhaoyu2005| | 2010-12-6 10:54 | 只看该作者
哈哈,我知道咋回事,这么长时间了,不知掉LZ解决了没?
这个主要是允许级联(多个片子级联驱动更多段数的屏)造成,当向最后的地址写数据后,指针自动增加,指向下一个芯片,这样的设计在多片级联时很方便不用关注是哪个芯片负责则段,对应地址就好了

在单片应用时向最后的RAM写数据,指针就溢出了(这个文档中没警示,估计害了不少人,我也是曾经的受害者,不过很快就意识到怎么回事,就因为当时有个命令觉得无用,但是又知道,没用厂家不会设计的,然后就豁然开朗),这时只要执行下 Device Select(器件选择)命令,重新选定下该芯片就好了

我为了省事,每个函数前面先执行下这个命令,就都ok了

使用特权

评论回复
板凳
c51com| | 2010-12-20 23:22 | 只看该作者
我为了省事,每个函数前面先执行下这个命令,就都ok了

使用特权

评论回复
地板
WalKerOne|  楼主 | 2011-4-23 21:04 | 只看该作者
2楼的同志,具体是怎么应用的啊?

现在,我用另外一个PIC的芯片做8576的显示,也碰到显示无法更新的问题.
i2c_Start(PCF8576_Addr, WR);
i2c_PutByte(0xc8);
i2c_PutByte(0x00);
i2c_PutString(Buf,19);
i2c_Stop();
在循环中执行上述程序,显示不更新,总是显示第一次写入的值,感觉8675不大好用啊。

使用特权

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

本版积分规则

22

主题

42

帖子

1

粉丝