求解HT1621与LCD的连接

2019-03-23 22:21发布

第一次用HT1621,看完手册后还是有些地方不解,HT1621的SEG0可以连接LCD的A1段电极也可以连接D1段电极,这个连接关系是不确定的,任意连接?
如果用来驱动多个LCD的话,公共电极COM就是用来选择要显示的LCD的,相当于数码管显示中的位选,这样理解对吗?
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
zzbaizhi
1楼-- · 2019-03-25 12:49
 精彩回答 2  元偷偷看……
bobde163
2楼-- · 2019-03-25 13:18
zzbaizhi 发表于 2014-9-22 08:28
那HT1621上电初始化后正常的话应该显示什么呢

上电之后应该是什么都不显示,初始化是选择偏压选项,再使能系统振荡器,再打开显示,这三条基本的命令就可以了
zzbaizhi
3楼-- · 2019-03-25 15:20
bobde163 发表于 2014-9-22 09:04
上电之后应该是什么都不显示,初始化是选择偏压选项,再使能系统振荡器,再打开显示,这三条基本的命令就 ...

最后LCDON后也是什么都不显示吗?
zzbaizhi
4楼-- · 2019-03-25 18:53
 精彩回答 2  元偷偷看……
bobde163
5楼-- · 2019-03-26 00:41
zzbaizhi 发表于 2014-9-22 10:12
向其他人求证过了,初始化发完LCDON命令后,液晶上应该是所有段都显示,这样应该能够说明“写”这个子函 ...

那你给它发送段数据,看一看相应的段会不会显示
zzbaizhi
6楼-- · 2019-03-26 04:39
本帖最后由 zzbaizhi 于 2014-9-23 10:38 编辑
bobde163 发表于 2014-9-22 13:15
那你给它发送段数据,看一看相应的段会不会显示

唉,写数据不行
主频:20M/8
void main(void)
{  WDTCTL = WDTPW+WDTHOLD;  //关闭看门狗定时器

   P8DIR |=BIT5+BIT6+BIT7;
   P8OUT |=BIT5+BIT6+BIT7;//CS,WR,DATA置高
   Init_Clk();
   delay_ms(10);

   Ht1621WrCmd(BIAS);   //1/3
   Ht1621WrCmd(RC256); //使用内部振荡器
   Ht1621WrCmd(SYSDIS);
   Ht1621WrCmd(WDTDIS);
   Ht1621WrCmd(SYSEN);
   Ht1621WrCmd(LCDON);
   //Ht1621WrCmd(LCDOFF);
   delay_ms(20);
   //Ht1621WrOneData(1,0);
   display(A);//清屏
   _NOP();

}


void Ht1621Wr_Data(uchar Data,uchar cnt)
{
uchar i;
for (i=0;i<cnt;i++)
      {
       WR_0;
       _NOP();
       _NOP();
       _NOP();
      // _NOP();
       if((Data&0x80)==0x80)
          DATA_1;
       else DATA_0;
       //_NOP();
       WR_1;
       _NOP();
       _NOP();
       _NOP();
       //_NOP();
       Data<<=1;
     }

}


void display(uchar Data0)
{
uchar i;
uchar Addr=0;
CS_0;
_NOP();
Ht1621Wr_Data(0xa0,3); //写入数据标志101
Ht1621Wr_Data(Addr<<2,6); //写入地址数据
for (i=0;i<16;i++)
      { //Ht1621Wr_Data(Addr<<=2,6); //写入地址数据
        Ht1621Wr_Data(Data0,8); //写入数据
      }
CS_1;

}


一周热门 更多>

相关问题

    相关文章