会不会是单片机的引脚没接对,实物的引脚和仿真的不一样的要吧程序里的 sbit LCD_E=P1^7; //液晶使能端 sbit LCD_RS=P1^5; //液晶数据命令选择端 sbit LCD_RW=P1^6; //液晶读写选择端 引脚该为单片机实物上面的引脚 |
这程序和你的单片机硬件不匹配吧 |
旋风拖鞋 发表于 2020-6-26 16:23 这是典型的LCD1602初始化失败的现象。程序能够正常仿真,不能用于实际电路最大可能是LCD1602驱动程序的时序有问题。看楼主程序中的延时函数有疑点。 void delay(unsigned char z) { unsigned char x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } 从表面看似乎这是1ms延时程序,实际由于数据类型使用unsigned char,delay(5);的延时只有577us,要把延时函数中数据类型改为unsigned int 才能近似1ms。MCU处理不同数据类型耗时也不同! |