雁舞白沙
发表于 2008-2-28 17:21
HT1621B驱动液晶片花屏疑难问题求助!
故障:<br /><br />1)此表已经生产100套,并长期测试(1年的时间)没有发生类似现象!<br /><br />2)更改器件厂家后,或者更改新1621后此表在没有定时刷新的时候,头两个小时出现花屏,单观察数据正常!<br /><br />3)加上定时初始化后,24小时后100套出现2套此现象!<br /><br />4)表下电重新上电后故障消失,但有可能会再次出现!<br />谢谢指教!
banyai
发表于 2008-2-29 08:42
很可能是驱动的时序不是很准确.
yuntian
发表于 2008-2-29 09:29
定时初始化
别以为一次就没事了.
雁舞白沙
发表于 2008-2-29 09:46
原程序,看看那里不对?
<br /><br /><br />//------------------------------ *** - 时间延时 - *** ------------------------------//<br />void Delay(unsigned int count)<br />{<br /> unsigned int i,j;<br /> for(i=0; i<=count; i++)<br /> {<br /> for(j=0; j<5; j++)<br /> {<br /> ;<br /> }<br /> } <br />}<br />//-----***-LCD启动-***-----//<br />void LcdBitSet(unsigned char BitSetData)<br />{<br /> if(BitSetData&0x80)<br /> {<br /> LcdData=1;<br /> }<br /> else<br /> {<br /> LcdData=0;<br /> }<br />}<br />void LcdStart(void)<br />{<br /> LcdCs=0;<br /> Delay(10);<br /> LcdCs=0;<br />}<br />//-----***-LCD停止-***-----//<br />void LcdStop(void)<br />{<br /> LcdCs=1;<br /> Delay(10);<br /> LcdCs=1;<br />}<br />//-----***-发送控制代码-***-----//<br />void LcdSendId(unsigned char ID)<br />{<br /> unsigned char i;<br /> for(i=3;i>0;i--)<br /> {<br /> LcdWr=0;<br /> Delay(10);<br /> LcdBitSet(ID);<br /> LcdWr=1;<br /> Delay(10);<br /> ID=ID<<1;<br /> }<br />}<br />//-----***-发送地址-***-----//<br />void LcdSendAddress(unsigned char Address)<br />{<br /> unsigned char i;<br /> for(i=6;i>0;i--)<br /> {<br /> LcdWr=0;<br /> Delay(10); <br /> LcdBitSet(Address);<br /> LcdWr=1;<br /> Delay(10); <br /> Address=Address<<1;<br /> }<br />}<br />//-----***-发送一个字节-***-----//<br />void LcdSendByte(unsigned char Data)<br />{<br /> unsigned char i,k;<br /> for(i=2;i>0;i--)<br /> {<br /> for(k=4;k>0;k--)<br /> {<br /> LcdWr=0;<br /> Delay(10);<br /> LcdBitSet(Data);<br /> LcdWr=1;<br /> Delay(10);<br /> Data=Data<<1;<br /> }<br /> }<br />}<br />//-----***-发送控制命令-***-----//<br />void LcdSendCommand(unsigned char Command)<br />{<br /> unsigned char i;<br /> LcdStart();<br /> LcdSendId(0x80);<br /> for(i=0;i<9;i++)<br /> {<br /> LcdWr=0;<br /> Delay(10);<br /> LcdBitSet(Command);<br /> LcdWr=1;<br /> Delay(10);<br /> Command=Command<<1;<br /> }<br /> LcdStop();<br />}
ljxh401
发表于 2008-2-29 09:51
定时刷新啊
雁舞白沙
发表于 2008-2-29 10:09
修改后的,那个更好一些?
//------------------------------ *** - 时间延时 - *** ------------------------------//<br />void Delay(unsigned int count)<br />{<br /> unsigned int i,j;<br /> for(i=0; i<=count; i++)<br /> {<br /> for(j=0; j<5; j++)<br /> {<br /> ;<br /> }<br /> } <br />}<br /><br />//-----***-LCD启动-***-----//<br />void LcdBitSet(unsigned char BitSetData)<br />{<br /> Delay(1);<br /> if(BitSetData&0x80)<br /> {<br /> LcdData=1;<br /> }<br /> else<br /> {<br /> LcdData=0;<br /> }<br /> Delay(9);<br />}<br />void LcdStart(void)<br />{<br /> LcdCs=0;<br /> Delay(10);<br />}<br />//-----***-LCD停止-***-----//<br />void LcdStop(void)<br />{<br /> LcdCs=1;<br /> Delay(10);<br />}<br />//-----***-发送控制代码-***-----//<br />void LcdSendId(unsigned char ID)<br />{<br /> unsigned char i;<br /> for(i=3;i>0;i--)<br /> {<br /> LcdWr=0;<br /> LcdBitSet(ID);<br /> LcdWr=1;<br /> Delay(10);<br /> ID=ID<<1;<br /> }<br />}<br />//-----***-发送地址-***-----//<br />void LcdSendAddress(unsigned char Address)<br />{<br /> unsigned char i;<br /> for(i=6;i>0;i--)<br /> {<br /> LcdWr=0;<br /> LcdBitSet(Address); <br /> LcdWr=1;<br /> Delay(10); <br /> Address=Address<<1;<br /> }<br />}<br />//-----***-发送一个字节-***-----//<br />void LcdSendByte(unsigned char Data)<br />{<br /> unsigned char i,k;<br /> for(i=2;i>0;i--)<br /> {<br /> for(k=4;k>0;k--)<br /> {<br /> LcdWr=0;<br /> LcdBitSet(Data);<br /> LcdWr=1;<br /> Delay(10);<br /> Data=Data<<1;<br /> }<br /> }<br />}<br />//-----***-发送控制命令-***-----//<br />void LcdSendCommand(unsigned char Command)<br />{<br /> unsigned char i;<br /> LcdStart();<br /> LcdSendId(0x80);<br /> for(i=0;i<9;i++)<br /> {<br /> LcdWr=0;<br /> LcdBitSet(Command);<br /> LcdWr=1;<br /> Delay(10);<br /> Command=Command<<1;<br /> }<br /> LcdStop();<br />}
雁舞白沙
发表于 2008-2-29 10:10
此程序每分钟定时初始化一次1621!
mikezhong
发表于 2008-2-29 11:23
ok
定时刷新,没这么严重吧.....我都开机复位后从来没有再复位...一切正常.....难道是上帝保护吗...
ayb_ice
发表于 2008-2-29 13:53
随便说说
我也只初始化一次,曾经连续几个晚上也没有问题。。。<br />多半是时钟太快,或时序不是很可靠。。。
雁舞白沙
发表于 2008-2-29 16:31
请求高手帮忙~
zhuhai2004
发表于 2008-2-29 16:50
我也碰到这样的问题,定时更新系统指令也不行!
每次我进行数据更新的时候同时更新系统指令(相当于初始化HT1621).没有招了,测量发现锯齿电压波形都没有了。怀疑芯片本身有问题,或是假货。
雁舞白沙
发表于 2008-2-29 17:47
求助,问题疑问中!
雁舞白沙
发表于 2008-2-29 20:48
继续等待结果!
雁舞白沙
发表于 2008-2-29 22:16
急啊,等待中!
yewuyi
发表于 2008-3-1 08:39
买的HOLTEK的HT1621还是替代的国产HT1621
雁舞白沙
发表于 2008-3-4 08:59
可悲啊,居然没有人愿意出来共享自己的成果!
问题解决了!谢谢大家的关心!<br /><br />哪位需要解决方式,请留下EMAIL!<br /><br />不想让那些不动脑筋的人轻而易举的得到答案!
xwj
发表于 2008-3-4 09:03
我觉得还是你的现场环境、抗干扰设计、电源设计的问题
不过,你的读写时序种的延时安排得不合理哦
雁舞白沙
发表于 2008-3-4 09:27
不是程序延时的问题~
雁舞白沙
发表于 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
lkdd
发表于 2008-3-7 15:18
做秤时,遇到过这个问题
做秤时,遇到过这个问题<br />==========================<br />一到冬季,空气干燥就死机;最后用单片机定时给其复位的。<br /><br /><br />想知道你的解决方法!!!<br /><br /><br />lkdd