如何找到LCD1206
找到它还是比较简单的,我们要找的是一个名字叫LM016L
的,路径为Pick Devices
-Optoelectronics
-Alphanumeric LCDs
-LM016L
大坑一
直接使用 LCD1602的程序驱动LM016L,发现一直处于忙等待状态。
解决方法:这是由于二者的忙标志位电平不同,仿真中LM016L的busy位为0是忙,实际中LCD1602的busy位为1是忙。
/*------------------------------------------------
判忙函数
返回1状态为忙
------------------------------------------------*/
bit LCD_Check_Busy(void)
{
DataPort = 0xFF;
RS = 0;
RW = 1;
EN = 0;
_nop_();
EN = 1;
//return (bit)(DataPort & 0x80); //实际中LCD1602使用
return ~(bit)(DataPort & 0x80); //仿真中LM016L使用
}
大坑二
成功驱动LM016L后发现,原本应是显示两行的屏幕只有第一行显示了出来,或者是显示的内容有点乱码,同时下方消息框还一直不停警告[HD44780]Controller received data whilst busy
。
解决方法:双击LM016L,会看到有一个频率,把那个频率调大一些就可以了,原作者建议应该到达兆级,笔者测试500kHz可以正常使用。