打印

HT1621B驱动液晶片花屏疑难问题求助!

[复制链接]
12247|50
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
雁舞白沙|  楼主 | 2008-2-28 17:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
故障:

1)此表已经生产100套,并长期测试(1年的时间)没有发生类似现象!

2)更改器件厂家后,或者更改新1621后此表在没有定时刷新的时候,头两个小时出现花屏,单观察数据正常!

3)加上定时初始化后,24小时后100套出现2套此现象!

4)表下电重新上电后故障消失,但有可能会再次出现!
谢谢指教!

相关帖子

沙发
banyai| | 2008-2-29 08:42 | 只看该作者

很可能是驱动的时序不是很准确.

使用特权

评论回复
板凳
yuntian| | 2008-2-29 09:29 | 只看该作者

定时初始化

别以为一次就没事了.

使用特权

评论回复
地板
雁舞白沙|  楼主 | 2008-2-29 09:46 | 只看该作者

原程序,看看那里不对?




//------------------------------ *** - 时间延时 - *** ------------------------------//
void Delay(unsigned int count)
{
   unsigned int i,j;
   for(i=0; i<=count; i++)
   {
      for(j=0; j<5; j++)
      {
        ;
      }
   } 
}
//-----***-LCD启动-***-----//
void LcdBitSet(unsigned char BitSetData)
{
    if(BitSetData&0x80)
    {
          LcdData=1;
    }
    else
    {
        LcdData=0;
    }
}
void LcdStart(void)
{
    LcdCs=0;
    Delay(10);
    LcdCs=0;
}
//-----***-LCD停止-***-----//
void LcdStop(void)
{
    LcdCs=1;
    Delay(10);
    LcdCs=1;
}
//-----***-发送控制代码-***-----//
void LcdSendId(unsigned char ID)
{
    unsigned char i;
    for(i=3;i>0;i--)
    {
        LcdWr=0;
        Delay(10);
        LcdBitSet(ID);
        LcdWr=1;
        Delay(10);
        ID=ID<<1;
    }
}
//-----***-发送地址-***-----//
void LcdSendAddress(unsigned char Address)
{
    unsigned char i;
    for(i=6;i>0;i--)
    {
        LcdWr=0;
        Delay(10);          
        LcdBitSet(Address);
        LcdWr=1;
        Delay(10);        
        Address=Address<<1;
    }
}
//-----***-发送一个字节-***-----//
void LcdSendByte(unsigned char Data)
{
    unsigned char i,k;
    for(i=2;i>0;i--)
    {
        for(k=4;k>0;k--)
        {
            LcdWr=0;
            Delay(10);
            LcdBitSet(Data);
            LcdWr=1;
            Delay(10);
            Data=Data<<1;
        }
    }
}
//-----***-发送控制命令-***-----//
void LcdSendCommand(unsigned char Command)
{
    unsigned char i;
    LcdStart();
    LcdSendId(0x80);
    for(i=0;i<9;i++)
    {
        LcdWr=0;
        Delay(10);
        LcdBitSet(Command);
        LcdWr=1;
        Delay(10);
        Command=Command<<1;
    }
    LcdStop();
}

使用特权

评论回复
5
ljxh401| | 2008-2-29 09:51 | 只看该作者

定时刷新啊

使用特权

评论回复
6
雁舞白沙|  楼主 | 2008-2-29 10:09 | 只看该作者

修改后的,那个更好一些?

//------------------------------ *** - 时间延时 - *** ------------------------------//
void Delay(unsigned int count)
{
   unsigned int i,j;
   for(i=0; i<=count; i++)
   {
      for(j=0; j<5; j++)
      {
        ;
      }
   } 
}

//-----***-LCD启动-***-----//
void LcdBitSet(unsigned char BitSetData)
{
    Delay(1);
    if(BitSetData&0x80)
    {
          LcdData=1;
    }
    else
    {
        LcdData=0;
    }
    Delay(9);
}
void LcdStart(void)
{
    LcdCs=0;
    Delay(10);
}
//-----***-LCD停止-***-----//
void LcdStop(void)
{
    LcdCs=1;
    Delay(10);
}
//-----***-发送控制代码-***-----//
void LcdSendId(unsigned char ID)
{
    unsigned char i;
    for(i=3;i>0;i--)
    {
        LcdWr=0;
        LcdBitSet(ID);
        LcdWr=1;
        Delay(10);
        ID=ID<<1;
    }
}
//-----***-发送地址-***-----//
void LcdSendAddress(unsigned char Address)
{
    unsigned char i;
    for(i=6;i>0;i--)
    {
        LcdWr=0;
        LcdBitSet(Address);          
        LcdWr=1;
        Delay(10);        
        Address=Address<<1;
    }
}
//-----***-发送一个字节-***-----//
void LcdSendByte(unsigned char Data)
{
    unsigned char i,k;
    for(i=2;i>0;i--)
    {
        for(k=4;k>0;k--)
        {
            LcdWr=0;
            LcdBitSet(Data);
            LcdWr=1;
            Delay(10);
            Data=Data<<1;
        }
    }
}
//-----***-发送控制命令-***-----//
void LcdSendCommand(unsigned char Command)
{
    unsigned char i;
    LcdStart();
    LcdSendId(0x80);
    for(i=0;i<9;i++)
    {
        LcdWr=0;
        LcdBitSet(Command);
        LcdWr=1;
        Delay(10);
        Command=Command<<1;
    }
    LcdStop();
}

使用特权

评论回复
7
雁舞白沙|  楼主 | 2008-2-29 10:10 | 只看该作者

此程序每分钟定时初始化一次1621!

使用特权

评论回复
8
mikezhong| | 2008-2-29 11:23 | 只看该作者

ok

定时刷新,没这么严重吧.....我都开机复位后从来没有再复位...一切正常.....难道是上帝保护吗...

使用特权

评论回复
9
ayb_ice| | 2008-2-29 13:53 | 只看该作者

随便说说

我也只初始化一次,曾经连续几个晚上也没有问题。。。
多半是时钟太快,或时序不是很可靠。。。

使用特权

评论回复
10
雁舞白沙|  楼主 | 2008-2-29 16:31 | 只看该作者

请求高手帮忙~

使用特权

评论回复
11
zhuhai2004| | 2008-2-29 16:50 | 只看该作者

我也碰到这样的问题,定时更新系统指令也不行!

每次我进行数据更新的时候同时更新系统指令(相当于初始化HT1621).没有招了,测量发现锯齿电压波形都没有了。怀疑芯片本身有问题,或是假货。

使用特权

评论回复
12
雁舞白沙|  楼主 | 2008-2-29 17:47 | 只看该作者

求助,问题疑问中!

使用特权

评论回复
13
雁舞白沙|  楼主 | 2008-2-29 20:48 | 只看该作者

继续等待结果!

使用特权

评论回复
14
雁舞白沙|  楼主 | 2008-2-29 22:16 | 只看该作者

急啊,等待中!

使用特权

评论回复
15
yewuyi| | 2008-3-1 08:39 | 只看该作者

买的HOLTEK的HT1621还是替代的国产HT1621

使用特权

评论回复
16
雁舞白沙|  楼主 | 2008-3-4 08:59 | 只看该作者

可悲啊,居然没有人愿意出来共享自己的成果!

问题解决了!谢谢大家的关心!

哪位需要解决方式,请留下EMAIL!

不想让那些不动脑筋的人轻而易举的得到答案!

使用特权

评论回复
17
xwj| | 2008-3-4 09:03 | 只看该作者

我觉得还是你的现场环境、抗干扰设计、电源设计的问题

不过,你的读写时序种的延时安排得不合理哦

使用特权

评论回复
18
雁舞白沙|  楼主 | 2008-3-4 09:27 | 只看该作者

不是程序延时的问题~

使用特权

评论回复
19
雁舞白沙|  楼主 | 2008-3-4 09:29 | 只看该作者

http://tieba.baidu.com/f?kw=%B5%E7%D7%D3%B9%A4%B3%CC%CA%A6%D2%C9%C4%D1%CE%CA%CC%E2%C7%F3%D6%FA%D6%AE

使用特权

评论回复
20
lkdd| | 2008-3-7 15:18 | 只看该作者

做秤时,遇到过这个问题

做秤时,遇到过这个问题
==========================
一到冬季,空气干燥就死机;最后用单片机定时给其复位的。


想知道你的解决方法!!!


lkdd

使用特权

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

本版积分规则

213

主题

789

帖子

243

粉丝