二手普中A7套装,STC89C516,晶振12MHz,12T模式,按手册资料写LCD1602的简单模块,遇到几个问题:
1. 检查忙位读到0跳出死循环,但是写数据操作只能成功25%。搜到不少中文资料也提到有类似问题,有解决方法吗?
2. 然后用软件延时,调参后发现实际需要的时间略小于各种资料上给出的值很多就能稳定。这和主频有关吗?换更好的MCU是不是能进一步较小在程序里的软件延时?
资料250kHz,清屏和复位1640us,写40us
资料270kHz,清屏和复位1520us,写37us
实验12MHz,清屏和复位1400us,写25us
3. 我手写的单变量和计算器给出的延时编译后占用code和data数量一样。数值调整到稳定后,参数如下,i--和--i的速度是不是差距较大?
unsigned char i, j;
i = 3;j = 182;
do
{
while (--j);
} while (--i);
unsigned char time=255;
while (time--);
4. 不少资料的写操作中,会在置高电平和置低电平后分别delay,我的实验中发现只需要在高电平后delay一次,是不是这款MCU才能这样,不能普遍运用到其他MCU?当然,LCDWrite(CMD,0x01)或LCDWrite(CMD,0x02)之后还是要delay 1.5ms。
5. 十几年前的一份资料说,初始化时模式要发三次,是不是对于现在的MCU不再适用?
|