打印
[国产单片机]

HT1621 LCD 显示问题

[复制链接]
3259|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fengrenjie|  楼主 | 2018-2-17 16:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟第一次用HT1621驱动段码LCD,遇到了问题:1、液晶初始化时,使用        SendCmd(LCDON);                SendCmd(LCDOFF); 能够正确地开、关LCD。
2、Write_1621(0xff,0xff); 不能使整个屏幕字段都点亮,一小部分不亮。

3、Write_1621(0xff,0x00); 屏幕大部分字段还是能亮,不能灭
4、测试时发现,无论Write_1621(),什么数据,部分字段一直是亮的,小部分字段才正确地受控。
5、示波器的接地夹子,碰HT1621引脚时,LCD显示会变。


单片机新唐、HT1621、LCD电压都是3.3V。
请大神们指点。
Write_1621(0xff,0x00)命令的波形如下,分别是HT1621的cs、wr、data三个引脚的波形


HT1621驱动部分的源码如下,稍改动了合泰的源码,数据的频率在300K:
void SendBit_1621(uchar sdata,uchar cnt)               
{
        uchar i;
        for(i =0; i <cnt; i ++)
        {
                if((sdata&0x80)==0)
                {
                        dat=0;
                }
                else
                {
                        dat=1;
                }
                wr=0;
                _nop_();
                _nop_();
                _nop_();
                _nop_();
                wr=1;
                _nop_();
                _nop_();
                _nop_();
                _nop_();
                _nop_();
                _nop_();
                _nop_();
                _nop_();
                _nop_();
                _nop_();
                _nop_();
                _nop_();
                sdata<<=1;
        }
}

void SendDataBit_1621(uchar sdata,uchar cnt)       
{
        uchar i;
        for(i =0; i <cnt; i ++)
        {
                if((sdata&0x01)==0)
                {
                        dat=0;
                }
                else
                {
                        dat=1;
                }
                wr=0;
                _nop_();
                _nop_();
                _nop_();
                wr=1;
                _nop_();
                _nop_();
                _nop_();
                _nop_();
                _nop_();
                _nop_();
                _nop_();
                _nop_();
                _nop_();
                                _nop_();
                _nop_();
                _nop_();
                sdata>>=1;
        }
}

void SendCmd(uchar command)
{
        cs=0;
        SendBit_1621(0x80,4);                       
        SendBit_1621(command,8);                
        cs=1;                                       
}

void Write_1621(uchar addr,uchar sdata)
{
        cs=0;
        SendBit_1621(0xa0,3);                       
        SendBit_1621(addr,6);                       
        SendDataBit_1621(sdata,4);               
        cs=1;
}

相关帖子

沙发
fengrenjie|  楼主 | 2018-2-19 14:10 | 只看该作者
已搞定。自己傻掉了。。。。。

使用特权

评论回复
板凳
dirtwillfly| | 2018-2-22 10:55 | 只看该作者
fengrenjie 发表于 2018-2-19 14:10
已搞定。自己傻掉了。。。。。

能者自答

使用特权

评论回复
地板
一路向北lm| | 2018-2-23 08:41 | 只看该作者
怎么回事?

使用特权

评论回复
5
ddllxxrr| | 2018-2-23 08:58 | 只看该作者
楼主搞定了????

使用特权

评论回复
6
zqx1000| | 2018-4-10 18:21 | 只看该作者
kankan

使用特权

评论回复
7
xushuo888| | 2018-8-3 14:21 | 只看该作者
我之前也有用过1621的驱动IC,当时有拿到开发资料和驱动程序,发给参考参考

VK1621B-LCD液晶显示驱动IC.pdf

1.41 MB

VK1622B LQFP48液晶驅動IC.pdf

600.82 KB

VK1622液晶驱动IC资料.pdf

623.5 KB

VK1626-LCD液晶显示驱动IC.pdf

1.82 MB

使用特权

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

本版积分规则

25

主题

332

帖子

3

粉丝