本人初次使用HT1621B驱动4位8段LCD,请问高手用单片机怎样控制?其中的D0~D3,A0~A5各表示意思?谢谢

2024-12-16 12:49:45
推荐回答(4个)
回答1:

D0-D3是显示数据,1显示0不显示,A0-A5是芯片内置的RAM地址。

1621B最多带32SEGx4COM,128段。显示数据与显示内容是这样对应的:一个8位二进制数对应2根SEG线上的8个段码,1为显示,0不显。

例如seg0上的内容是ABCD四个段码,SEG1上的内容是EFGH四个段码,背电极COM上,C0连AE2个段码,C1连BF,C2连CG,C3连DH,按此显示逻辑输入“01100011”时,高4位对应SEG1,低4位对应SEG0,将同时显示FGAB四个段码。

扩展资料:

主要特点编辑

1、工作电压2.4~ 5.2V。

2、内嵌256KHz RC 振荡器。

3、可外接32KHz晶片或256KHz频率源输入。

4、 可选1/2或1/3偏压和1/2 1/3 或1/4 的占空比。

5、片内时基频率源。

6、 蜂鸣器可选择两种频率。

7、节电命令可用于减少功耗。

8、内嵌时基发生器和看门狗定时器WDT。

9、 时基或看门狗定时器溢出输出。

10、 八个时基/看门狗定时器时钟源。

11、 一个32*4 的LCD驱动器。

12、 一个内嵌的32*4 位显示RAM 内存。

13、 四线串行接口。

14、 片内LCD 驱动频率源。

15、软件配置特征。

16、 数据模式和命令模式指令。

17、 三种数据访问模式。

18、提供VLCD管脚用于调整LCD操作电压。

回答2:

看起来你已经能点亮段码但是没搞清楚手册上的逻辑表和数据的对应关系,1621B最多带32SEGx4COM,128段。
显示数据与显示内容是这样对应的:一个8位二进制数对应2根SEG线上的8个段码,1为显示,0不显。例如seg0上的内容是ABCD四个段码,SEG1上的内容是EFGH四个段码,背电极COM上,C0连AE2个段码,C1连BF,C2连CG,C3连DH,按此显示逻辑输入“01100011”时,高4位对应SEG1,低4位对应SEG0,将同时显示FGAB四个段码。
输入的显示数据不重新输入的话会一直显示,要同时显示2位数字和段码只要将这些数字和段码在逻辑表上对应的数据置1即可同时显示

回答3:

HT1621芯片上有5到6个引脚是需要和单片机建立连接的,其中VDD和VSS与单片机的VDD和VSS相连,/CS(片选信号)与单片机的I/0相连,/WR(写)与I/O相连,/RD(读)也一样(通常用不到),DATA也与I/O口相连。至于VLCD的电压取决于LCD本身的电压要求,一般在VDD和VLCD之间加一个可调电阻(可以做对比度调节)。SEG 和COM与LCD的段电极和背电极一一对应连接即可。D0-D3是COM端口HT621最多可以驱动4路 。A0-A5在芯片上没有,个人认为可能表示的是段电极。软件程序就参考芯片手册里的时序图就可以了 初始化程序对,就没多大问题了!
希望对你有帮助!

回答4:

网上找个例程,自己改改就成了,前提是,要和你的段码匹配,另外就是搞清楚段码的真值表。把显示段码的数组搞对了,直接调用就可以了。至于你说的不能同时显示,可能是没有用到延时函数,也就是说,你驱动的某一位显示,另一位就放一边了。没有利用人眼的视觉暂留,所以呢,就只能看到一个位显示了。你研究下老式的数码管,其实就是跟这个有点渊源,但又不完全一样,有些内容是相通的,可以借鉴啊。给你一段借鉴,改变位数j的范围,想显示哪一段就显示哪一段。
void delay(uint a) //延时约1ms
{
uint i;
while (--a!=0)
for(i=125;i>0;i--); //1T单片机i=600,若是12T单片机i=125
}
void Dsp()
{

uint i,j;
for(j=2;j<=8;j+=2)
{
for(i=0;i<=9;i++)
{ if(j!=4)
{
Write_1621(j,num[i]);
delay(100);}
else
{
Write_1621(j,num[i]|0x80);
delay(100);
}
}
}
}