HT1621写命令的低位为什么是8位?

2019-03-25 18:45发布

没写过HT1621的程序,最近看了一些资料,说写命令是101+6位地址+4位数据组成。6位地址是SEG位,4位数据是什么位组成?是不是COM?
还有,数据位是4位,为什么别人写的程序都是8位呢?是什么意思呢?
下面是我看到的一段程序:
/////////////////////////////////////////////////////
void WriteByte_1621(INT8U addr,INT8U data)
{
     addr<<=2;
     cs=0;
     Nop();
     Nop();
     Nop();
     Nop();
     SendBit_1621(0xa0,3);                //写入标志码"101"
     SendBit_1621(addr,6);                //写入addr的高6位
     SendDataBit_1621(data,8);                //写入data的低8位
     cs=1;
}
//////////////////////////////////////////////////////////////////////////////
我试过将data写成0x0f(因为数据是低4位)LCD显示不全,而改成0xf0(这不是高4位了么?)就可以全笔段显示了,这是为什么?

哪位大哥帮帮手,感激! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
17条回答
yealien
2019-03-28 01:34
dingzy_2002 发表于 2018-6-19 10:32
你可以这样:101+6位地址+4位数据,这样就能按地址发送数据了.
4位数据是根据COM口来的,HT1621是4个COM口, ...

感谢你的回覆,但是HT1621的官网程序确实有连续发送。
/////////////////////////////////////////////////////////////////////////////////
void WriteAll_1621(uchar addr,uchar *p,uchar cnt)
{
        uchar i;
        CS=0;
        SendBit_1621(0xa0,3);                 //传送写指令ID=101
        SendBit_1621(addr<<2,6);         //传地址码
        for(i=0;i<cnt;i++,p++)
        {
           SendDataBit_1621(*p,8);        //连续传送cnt个数据,每个数据传送8位
        }
        CS=1;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////
他这个连续传送是怎么分配地址的呢?

一周热门 更多>