本帖最后由 lbb_1112 于 2014-4-10 08:58 编辑
两块液晶,都出现这个问题,我把程序简化了只有写一个地址和一个数据也是不行,连接检查了几边。还有只接单片机的时候电流比加液晶的时候电流小了,不知道怎么回事、、、、
程序:
#include "Reg52.h"
#include "intrins.h"
#define uint unsigned int
#define uchar unsigned char
sbit rs = P1^4; //H=data; L=command;
sbit rw = P1^5; //H=read; L=write;
sbit e = P1^6; //input enable;
#define LCD_Data P0
void delay(uint a )
{
uchar i;
while(--a)
{
for(i=0;i<125;i++) ;
}
}
void wu(uchar dat)
{
rs=1;
rw=0;
e=0;
delay(2);
LCD_Data=dat;
delay(2);
e=1;
delay(5);
e=0;
delay(5);
}
void wc(uchar udat)
{
rs=0;
rw=0;
e=0;
delay(2);
LCD_Data=udat;
delay(2);
e=1;
delay(5);
e=0;
delay(5);}
void init_lcd (void)
{
//rst=1;
// psb=1;
wc (0x30); /*30---基本指令动作*/
wc (0x01); /*清屏,地址指针指向00H*/
wc (0x06); /*光标的移动方向*/
wc(0x0c); /*开显示,关游标*/
}
void clrram (void)
{
wc (0x01);
wc(0x34);
wc(0x30);
}
void main()
{ char i;
init_lcd();
clrram();
// wc(0x80);
while (1)
{for (i=0;i<9;i++)
{wc(0x80+i);
wd(0x31+i);
}
}
}
|