【51单片机】Proteus仿真 LCD1206(有大坑!!!

如何找到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可以正常使用。
在这里插入图片描述

参考资料

  1. proteus 仿真 LCD的问题 (LM016L) (amobbs.com 阿莫电子技术论坛)
  2. 大家以后用Proteus仿真LCD1602时,要注意啊,血的教训 (amobbs.com 阿莫电子技术论坛)
仿真工程庞大,整个项目源代码全部公开,你下载后只要你装了Keil就可以编译通过(我用的是Keil4低版本能否通过不清楚)。为了达到复用的目的文件较多,不管是算法效率,游戏逻辑分析,各种芯片驱动,还是整个项目架构或是代码风格,都经过本人精心设计,可以说每个方面都有其独到之处,会让你有一种赏心悦目的感觉,不管你是新手还是老手都很难说这其中没有值得你学习的地方,特别是在处理游戏寻路逻辑那一块,在最开始时我用的算法是采用栈来处理,但后来发现这种方式找到的路径不一定是最短路径,所以又改用了队列算法来实现,但栈的代码并没有删除,而是采用了宏处理 你可以去掉#define USEQUEUE 这句宏定义而不需改变其它的任何代码,再次Build一次就可以看到采用栈寻路的效果了。本仿真中游戏关数只设了四关,如果你想多加关数,只要在数据文件中添加正确的关数据,并修改宏#define MAX_HURDLE 4的值再一次Build即可,下面是复制以前帖子的游戏看点内容: 本游戏之十大看点 游戏看点一:游戏采用LCD-KEYPAD液晶显示屏做为显示界面(256*256),大家不要去你自己的元器件库里搜索这块液晶,你永远都搜索不到,至于为什么我的仿真里会有,留你自己慢慢想,如果你够细心就会明白,只要你装了Proteus 仿真不是问题。 游戏看点二:游戏启动界面简洁,依然沿用了以前游戏的启动界面 游戏看点三:游戏所用的单片机为最原始的80C52单片机,不需要AVR也不需要ARM,小小的80系列单片机就能绰绰有余的实现游戏所有功能。 游戏看点四:游戏无需外加数据存取器,根本就用不完256字节的数据段(本游戏151.6字节,还有100多个字节空闲),很多朋友认为写游戏不扩展外部数据存储器几乎不可能,如果你看了我的仿真,你就会改变你的想法。 游戏看点五:本游戏属原创,绝无抄袭,也没地方抄袭。 游戏看点六:游戏的硬件电路,极其简单,由于采用了触摸屏,移动按钮被取消,但保留了虚拟终端。 游戏看点七:游戏采用了虚拟终端,能通过PC键盘完成游戏的所有操作,具体操作看终端显示。 游戏看点八:游戏代码相当规范,工程建立独到,如果你看了我的代码架构,再和论坛里大多数朋友的相比较一下,你就会明白高手和菜鸟的区别。 游戏看点九:Proteus的触摸屏看似引脚众多,其实驱动也没那么复杂,类似行列式键盘,但如果让你来写你还真不一定能写出来,不是我很狂,现在很多人都眼高手低的,说是简单,写起来却不是那么回事。 游戏看点十:游戏中用到了24C02C芯片,可以任意时间加载和保存游戏。 仿真注意:Proteus软件必须是7.4或7.4以上版本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值