1、在12864的初始化过程中,注意功能设定寄存器的设置要写两次,因为“同一指令 的动作不能同时改变DL 和RE,需先改变DL再改变RE才能确保设置正确”。
2、要在每次读写12864之前检测忙信号,而不是读写完之后。
3、在读出忙信号之前,要将对应的IO口置为上拉电阻使能的输入模式。
4、注意忙信号读出之后,因为其位于寄存器的最高位,所以要做”按位与”处理将其分离。
5、而读出忙信号之后,在下一次写操作之前,要记得将对应IO改回输出模式。
6、注意12864的第一行到第四行的地址依次分别为:0x80,0x90,0x88,0x98;你可以把12864看做是一个每行可以显示16个16*16的点阵图形,共有两行的LCD,只是它把每一 行都平均截成两段,并且第一行截断后分别作为新四行中的第一和第三行,第二行作为新四行的第二和第四行。所以新四行的第一和第三行的地址是相连的,二四行也是 相连的。
7、12864每一行可以最多显示8个中文,16个半宽字体。但是,在基本指令状态下,他的起始地址只能以全宽单位定义。即你无法写起始地址为“第1个半宽位置”或者“第3个半宽位置”……那如果一定要在某个半宽位置开始显示呢?笔者只是勉强用空格代替半宽字符实现的。应该有更好的办法,希望各位读者可以找出来。
8、注意器件手册中提供了初始化流程,其中各个步骤直接的延时时间不都相同,要严格达到要求。
9、如果实在不想做忙检测,则请在每一次读写完毕之后调用延时函数,确保LCD处于“闲”的状态。