绝对是判忙程序出了问题,换成while(busy & 0x80==1); |
本帖最后由 zl2168 于 2018-8-3 21:53 编辑 实例67 LCD1602显示屏显示 先Proteus仿真一下,确认有效。 ![]() ![]() 以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil C和Proteus》清华大学出版社ISBN 978-7-302-41682-1。书中电路和程序设计有详细说明,程序语句条条有注解。 |
杨雪飞 发表于 2018-8-2 19:05 不检测忙是有延时的 我没验延时 就检测忙 |
前面几个可以不检测忙,但初始化要按照手册里写的,你现在是初始化里没有写这6行代码 |
李博文 发表于 2018-8-2 16:30 这个小测试程序好像不检测忙也可以,我看到好多都是没有检测忙的 |
1602手册里初始化开头记得是延时15ms,写指令38h, |
杨雪飞 发表于 2018-8-2 12:37 找到了问题 程序一直卡在 判忙哪里 时序出了问题 |
上面正解,你再写一个0X30,看下是不是显示0 |
杨雪飞 发表于 2018-8-2 12:35 不是 显示不了H一直显示p |
杨雪飞 发表于 2018-8-2 12:35 显示不了p |
0x05 是P |
0x48应该显示个大写的H就对了 |
你只写了个0x48数据,你还想显示什么? |
这个和你单片机p0.0-p0.7口的电平有关吧? |
程序的编译一直没问题 仿真一直显示P |