源源今天给分享单片机lcd1602显示爱心的知识,其中也会对单片机lcd1602显示原理进行解释,希望能解决你的问题,请看下面的文章阅读吧!

1、你main函数就写了个数据write_data('1')没有写指令,void write_com(uchar com),你把你的程序和别人对对比一下,看看时序,十六进制指令代码有没有错误#include#define uchar unsigned char#define uint unsigned intit RS=P2^6;it RW=P2^5;it EN=P2^7;void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void write_com(uchar com){RS=0;P0=com;delay(5);EN=1;delay(1);EN=0;}void write_data(uchar dat){RS=1;P0=dat;delay(5);EN=1;delay(1);EN=0;}void initial(){RW=0;EN=0;write_com(0x38);write_com(0x06);write_com(0x0f);write_com(0x01);}void main(){initial();write_com(0x80+0x10);write_data('1');while(1);}这样一下initial();write_data('1');while(1);这段不对,写一个字符,要先写入地址,再写入数据啊在proteus下可以仿真交流程序应该对的,如果就是在0x80+0x10处显示出方块的话,调一下控制对比度的电阻试试对比度引脚调节一下看看有效果不。

本文到这结束,希望上面文章对大家有所帮助。