其实PIC单片机读写1062程序没有多难,照着时序图很容易写出来,而且很多人已经在51中操作过,在PIC单片机中也是大同小异,所以这里不再赘述。我在附件中打包了一个我写完的程序,需要的可以打开看看,其中CPU使用的是PIC18F97J60,晶振使用的25MHz,其他的单片机和晶振稍微改一改程序即可。(换单片机主要改端口、换了晶振的请适当修改毫秒延时函数void DelayMS(unsigned int xms))
但是今天我要说的是很多人都是用延时的方法写的1602液晶读写数据、写命令时间间隔,这是不精确的,我今天是用的是1602自带的忙检测功能,也就是写数据和命令之前我先判断液晶是否忙,不忙我再读写。
//忙检测
void LCD_BusyDect(void)
{
TRISEbits.TRISE7 = 1; //忙检测位输入
do
{
E=0;
RS=0;
RW=1;
Nop();
E=1;
Nop();Nop();
}while(PORTEbits.RE7);
TRISEbits.TRISE7 = 0; //恢复忙检测位端口输出