有简单的八位驱动不用,非要费劲心机去解决四位驱动。用四位驱动1602显示屏刷新速度慢了,数字跳动时拖尾严重。为何不用IIC驱动,更节省数据线。 ...
胡扯!
1、HD44780 写一次数据最小时间是 1us,也就是说同样一个显示数据,8 位总线需要 1us 写入,4 位需要 2us 而已。哪怕写完 1602 的 32 个显示位,也就是 64us,1 秒可以写 15625 次,远高于液晶本身的刷新率。
所以 4 位总线模式根本不会导致“显示屏刷新速度慢了,数字跳动时拖尾严重”问题,拖尾就是液晶本身特性,用 8 位总线也一样。
2、IIC 总线速度最高 400k,即使不考虑地址问题,写一个 8 位数据需要 10 个时钟周期,也就也是 40k 的速度,写完 1602 的 32 个显示位就是 1.6ms,一秒钟只能写 62.5 次,速度远低于 4 位总线模式。
3、我前面说过,HD44780 初次上电时,主控可能处于 1、8 位总线模式;2、4 位总线,输入高 4 位;3、4 位总线,输入低 4 位 的三种状态之一,因此即使使用 8 位总线模式,也必须解决这个问题,确保可靠将 HD44780 复位到 8 位总线模式才行,不存在 8 位总线模式更简单的区别。
结论是你根本没用过 HD44780 的 1602 LCD,只凭想象胡扯! washu 发表于 2019-6-10 10:20
胡扯!
1、HD44780 写一次数据最小时间是 1us,也就是说同样一个显示数据,8 位总线需要 1us 写入, ...
您试试,即使在八位输入数据状态下,使能高低电平变化不延时毫秒级,1602会正常显示?另外1602液晶屏未必都用HD47780,手册上给出的都是us级,但实际用单片机控制时,就不是那么回事了。1602在八位状态下对读取时序要求还低些,差点都能工作。四位数据输入或读取时,使能端高低电平变化延时差1ms都不能正常工作。别总那手册上数据说事,不同厂家的1602还是有很大差异的。看过本坛有关1602四线时的讨论,那根本就是扯,这几天有闲工夫特意验证了一下所谓通用版的1602四线输入控制,用了STC15W408AS 20引脚的单片机一组I/O口来控制,只用到了七个,还剩余一个,效果还可以,但显示速度没有八位输入数据时快,主要是两次写入数据间隔需要延时几毫秒,这个原因拖累了显示速度,不过结果还可以接受。另外很多书上对于1602功能设置指令的DL数据接口宽度标志是高电平还是低电平是有错误的,对于四位状态只设置成0X28这没错,但前面还需加一条指令才可以。 胡扯不胡扯从程序的延时就可以看出四线与八线速度上的差别,如果单纯从显示来说,四线时可以满足显示要求,这要看程序怎么编写,硬件如何链接。如果数据与控制用不同组的I/O口控制,刷新速度或许您感觉不出来。比较一下才会知道。 控制端使能我都延时1微妙,程序运行妥妥的:D 矿坛铁粉 发表于 2019-10-5 15:09
我没有做忙检测,开始我是延30几个微妙,发现有的屏会花,延到40到目前还没发现问题。手册里说不做忙检测 ...
控制芯片1us是没有问题的,写液晶需要等待时间的,估计没加足时间引起花屏的:handshake 矿坛铁粉 发表于 2019-10-5 16:15
对,就是写显存,延不到40微秒有时候花,控制没事儿。
/***********************************************************************
* 1602写指令或写数据
* write_rs=0写命令,write_re=1写数据
***********************************************************************/
void write_com_data(unsigned char write_rs,unsigned char dat)
{
if(write_rs==0)
port &=~ (1<<rs); //写命令
else
port |= (1<<rs); //写数据
_delay_us(1);
port &= 0xf0; //清4位数据总线
port |= (dat>>4); //输出高4位
port |= (1<<e); //e=1
_delay_us(1);
port &=~ (1<<e); //e=0
port &= 0xf0;
port |= (dat&0x0f); //输出低4位
port |= (1<<e); //e=1
_delay_us(1);
port &=~ (1<<e); //e=0
_delay_us(50);
}
这是我的程序。
对的,这样想法就统一了,小于30us开始出现花屏,我保险用了50us延时,太大1602刷新一次时间过长,其实Proteus仿真也能看出问题:D 矿坛铁粉 发表于 2019-10-5 16:32
要说图形屏能看出4线比8线慢我信,1602这种字符屏,全屏刷新一次也传输不了多少数据,即便是用51也慢不到 ...
对,不管是 4 位还是 8 位模式,其实这个 40us 延迟卡在这里,所以速度都是差不多的 :lol 写完一个 1602 大概都是 1 毫秒多,不管 4 位还是 8 位模式。
而且,1 毫秒多可以写完一个 1602,这个速度人眼根本分辨不过来 ;P
btw. 我说那个不是用巫妖写 1602,而是有人用巫妖做了一个 HD44780 指令兼容的 1602(或者 1201)...当然屏幕不是 LCD,是 VFD 或别的玩意那种。
页:
1
[2]