HT1622驱动程序有的提供的,VK1622兼容替代HT1622,有专门的液晶驱动程序提供,跟工程师技术解答,可以参考一下,总共有5个封装:LQFP64 QFP64 LQFP52 LQFP48 LQFP44,非常实用,封装很多可以选择的。
需要TM1623程序调试过程中出现个别RAM段码显示异常,缺段(段比较暗),影响TM1623其他ROM未写入数据的段也有比较暗的显示。
这个问题现在想来应该比较好笑,只是当时调试的时候一时没有缓过来,记录下来用以提醒一下自己。
在出现这个问题时,第1反应,可能是我的1623配置没有设置好,对照TM1623的数据手册,增加了NORMAL命令,命令格式如下:在这里插入图片描述在这里插入图片描述
这个命令1623上电复位后是缺省默认的,可以不写入,事实证明写入这边命令之后依然没有用。
再次怀疑时序延时不够,1623手册延时,如下:5V写模式下,时间改未5us,情况依然如此。在这里插入图片描述
后逐个对1622的RAM写数据,找到出问题的RAM,才怀疑芯片坏了,这才想到硬件问题,检查RAM地址对应的SEG引脚,因为1622使用的LQFP6封装,引脚脚距比较密,手工焊接此芯片时,将芯片的引脚连焊了。重新焊接问题解决,但此时已经耗费我好长时间,记录下来以此提醒自己。正常显示如下:
在这里插入图片描述
程序设计说明记录:
段码显示屏,没有使用RD脚,使用STC8A8K64S4芯片,RAM空间大,采用两个64字节RAM数据来对应1622的0-63个地址,其中每个字节高4位对应D0,D1,D2,D3;
uchar Ht1622Tab[64];
uchar Ht1622TabB[64];
将Ht1622TabB做为LCD前窗RAM,Ht1622Tab数组做为后置RAM,两个数组数据单元一一进行与&运算,并将结果定时写入到1622的RAM中进行显示;
全部显示后置RAM时:将Ht1622TabB全部数组高四位置1;
局部显示后置RAM时:将Ht1622TabB需要屏蔽的数组数据某个位写0;
闪烁显示某个段时:定时将将Ht1622TabB对应数组数据某个位写0即可。
2021.3.21
你好,请注意。把源代码看仔细了。LCD_RW = 1是读
LCD_RW = 0才是写
lcd_busy()函数里的RW是1,那是读状态。
读的时候我只要读最高位,后面是什么对我们来说不重要。
原理,很简单。单片机是处理速度很快的,纳秒级别。LCD相对于单片机来讲很慢,毫秒级别。所以,LCD再处理数据时, 把最高的一位至于高电平,表示数据处理中,等数据处理完毕,把高位拉低电平。单片机跑的快,它先读高位,如果读出来是1,单片机做别的事,一直到读到LCD高位为0时,再对LCD进行 *** 作。所以LCD这样定义:STA7为读写 *** 作使能位,1代表禁止,0代表允许。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)