请问大佬们,为什么液晶上电后只显示第一排的方块。初始化应该没问题,下面代码,帮帮忙,急!!!
原理图
单片机源程序如下:
- #include<reg52.h>
- #include<string.h>
- sbit rs=P0^7;
- sbit rw=P0^6;
- sbit en=P0^5;
- char t0[]="HELLO WORLD!";
- char t1[]="HELLO NEUSOFT!";
- int i;
- void delay(int z);
- void write_cmd(char cmd);
- void write_data(char dt);
- void init();
- void main()
- {
- init();
- // write_data('1');
- for(i=0;i<strlen(t0);i++)
- {
- write_data(t0[i]);
- delay(20);
- }
- while(1);
- }
- void init()
- {
- write_cmd(0x38);
- write_cmd(0x0c);
- write_cmd(0x06);
- write_cmd(0x01);
- write_cmd(0x80);}
- void write_data(char dt)
- {
-
- rs=1;
- rw=0;
- P2=dt;
- delay(5);
- en=1;
- delay(5);
- en=0;
- }
- void write_cmd(char cmd)
- {
-
- rs=0;
- rw=0;
- P2=cmd;
- delay(5);
- en=1;
- delay(5);
- en=0;
- }
- void delay(int z)
- {
- int x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
复制代码
|