HT1621RAM映射问题

[复制链接]
2874|10
手机看帖
扫描二维码
随时随地手机跟帖
refee| | 2013-3-12 22:50 | 显示全部楼层
该寄存器存储通过串行接口从外部器件传送到1621的数据,地址从00H-0FH共16字节,分别与芯片SEG和COM管脚所接的LCD灯对应,写LCD显示数据的时候,按照从显示地址从低位到高位,从数据字节的低位到高位操作。而所谓连续写的时候地址加1,是说连续写的时候后面的显示数据不用再指定地址了,1621会自动累加……

使用特权

评论回复
refee| | 2013-3-12 23:03 | 显示全部楼层
给个俺用的代码给你参考吧……

HT1621.rar

1.07 KB

使用特权

评论回复
hxb20122012| | 2013-3-12 23:41 | 显示全部楼层
:handshake:handshake

使用特权

评论回复
z8326717|  楼主 | 2013-3-13 20:01 | 显示全部楼层
refee 发表于 2013-3-12 23:03
给个俺用的代码给你参考吧……

我只会C语言

使用特权

评论回复
z8326717|  楼主 | 2013-3-13 20:01 | 显示全部楼层
refee 发表于 2013-3-12 23:03
给个俺用的代码给你参考吧……

那代码 我看不懂呢

使用特权

评论回复
dirtwillfly| | 2013-3-13 20:13 | 显示全部楼层
让二楼给你个C语言的代码

使用特权

评论回复
refee| | 2013-3-14 08:39 | 显示全部楼层
C的也行 俺做的是TM1721 你稍微修改一下即可用于1621 :lol
#ifdef MODIFY_TM1721_DRIVER  //Refee 110212
#define CLK_PORT 0
#define STB_PORT 1
#define DAT_PORT 2
void SendData(BYTE data)
{
    BYTE num = 0;
    delay_1us(1);
    for (num = 0; num < 8; num++)
    {
        GPIO_O_SET(CLK_PORT, 0);
        delay_1us(1);
        if (data & 0x01)
            GPIO_O_SET(DAT_PORT, 1);
        else
            GPIO_O_SET(DAT_PORT, 0);
        delay_1us(1);
        GPIO_O_SET(CLK_PORT, 1);
        data >>= 1;
        delay_1us(1);
    }
    delay_1us(1);
}
void SendCommand(BYTE Cmd)
{
    GPIO_O_SET(STB_PORT, 0);
    SendData(Cmd);
    GPIO_O_SET(STB_PORT, 1);
    delay_1us(1);
}
void clean_tm1721_buffer()
{
    GPIO_M_SET(CLK_PORT, 1);
    GPIO_M_SET(STB_PORT, 1);
    GPIO_M_SET(DAT_PORT, 1);
    GPIO_E_SET(CLK_PORT, 1);
    GPIO_E_SET(STB_PORT, 1);
    GPIO_E_SET(DAT_PORT, 1);
    SendCommand(0x3F);
    GPIO_O_SET(STB_PORT, 0);
    SendData(0x41);
    SendData(0x3F);
    SendData(0x3F);
    SendData(0x3F);
    SendData(0x00);
    GPIO_O_SET(STB_PORT, 1);
    SendCommand(0x40);
    SendCommand(0x85);
    delay_1us(1);
    GPIO_M_SET(CLK_PORT, 0);
    GPIO_M_SET(STB_PORT, 0);
    GPIO_M_SET(DAT_PORT, 0);
}
#endif

使用特权

评论回复
supstudent| | 2013-8-28 16:09 | 显示全部楼层
大虾,你的问题解决了吗

使用特权

评论回复
maxking| | 2013-8-28 17:43 | 显示全部楼层
发个测试程序,最近我也在用这个。

lcd_test.rar

79.08 KB

使用特权

评论回复
yezhai000| | 2016-10-12 09:26 | 显示全部楼层
读取RAM,如何操作呀,按照文档上来,读RAM都是00呢,有大虾帮忙看看吗?
void HT1622_Read(unsigned char uAddr,unsigned char *uValue,unsigned char rlen)
{
        unsigned char i=0;
        unsigned char utemp = 0;

        HT1622_Start();
        HT1622_Send_HL(0xc0,3);
        HT1622_Send_HL(uAddr,6);

        for(i-0;i< rlen;i++)
        {
                *uValue = HT1622_Rev();
                 uValue++;
        }
        HT1622_Stop();
}


unsigned char  HT1622_Rev(void)
{
        unsigned char i=0;
        unsigned ReadBuff;

        lcd_data = lcd_data &0x7f;

        lcd_wr = 0;
        for(i = 0;i < 8; i++)
        {
                lcd_rd = 0;
                ReadBuff<<= 1;
                HT1622_Delay_ms();
                lcd_rd = 1;

                if(lcd_data) ReadBuff++;
                HT1622_Delay_ms();
        }       
        lcd_data = lcd_data |0x80;

        return ReadBuff;
}

使用特权

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

本版积分规则

2

主题

4

帖子

0

粉丝