跪求各路大神帮忙求解
时间:10-02
整理:3721RD
点击:
# include <reg51.h>
sbit rw=P2^5;
sbit rs=P2^6;
sbit E=P2^7;
sbit CS = P3^2;
sbit RSET = P3^3;
void init ();
void writecom (unsigned char );
void writedate (unsigned char );
void delay ();
unsigned char com,date;
void main ()
{
unsigned char i;
init ();
writecom (0x80);
for (i=0;i<8;i++)
{
writedate (0x00+i);
delay ();
}
}
void writecom (unsigned char com)
{
/*unsigned char temp;
temp=0;
rs=0;
rw=1;
do
{
E=1;
delay ();
temp=P0;
E=0;
}
while (temp&0x80);
rs=0;
rw=0;
P0=com;
delay ();
E=1;
delay ();
E=0;
*/
CS = 0; //chip select,打开片选
E = 1; //disable read,读失能
rs = 0; //select command,选择命令
rw = 0; //select write,选择写模式
delay();
delay ();
P0 = com; //put command,放置命令
delay();
delay();
rw = 1;
}
void writedate (unsigned char date)
{
/* unsigned char temp;
temp=0;
rs=0;
rw=1;
do
{
E=1;
delay ();
temp=P0;
E=0;
}
while (temp&0x80);
rs=1;
rw=0;
P0=date;
delay ();
E=1;
delay ();
E=0;
*/
CS = 0; //chip select,打开片选
E = 1; //disable read,读失能
rs = 0; //select command,选择命令
rw = 0; //select write,选择写模式
delay();
delay();
P0 = date; //put command,放置命令
delay();
delay();
rw = 1;
}
void init ()
{
unsigned char i;
RSET = 0;
for (i=0; i<100; i++);
CS = 0;
RSET = 1;
writecom (0x01);
writecom (0x30);
writecom (0x02);
writecom (0x0c);
writecom (0x06);
writecom (0x01);
writecom (0x80);
}
void delay ()
{
unsigned char x,y;
for (x=5;x>0;x--)
for (y=110;y>0;y--);
}
此程序是为了让12864显示一行字符 感觉程序没错呀 但是液晶总是什么都不显示 为什么这是 跪求大神求解 小弟定当感恩不胜
sbit rw=P2^5;
sbit rs=P2^6;
sbit E=P2^7;
sbit CS = P3^2;
sbit RSET = P3^3;
void init ();
void writecom (unsigned char );
void writedate (unsigned char );
void delay ();
unsigned char com,date;
void main ()
{
unsigned char i;
init ();
writecom (0x80);
for (i=0;i<8;i++)
{
writedate (0x00+i);
delay ();
}
}
void writecom (unsigned char com)
{
/*unsigned char temp;
temp=0;
rs=0;
rw=1;
do
{
E=1;
delay ();
temp=P0;
E=0;
}
while (temp&0x80);
rs=0;
rw=0;
P0=com;
delay ();
E=1;
delay ();
E=0;
*/
CS = 0; //chip select,打开片选
E = 1; //disable read,读失能
rs = 0; //select command,选择命令
rw = 0; //select write,选择写模式
delay();
delay ();
P0 = com; //put command,放置命令
delay();
delay();
rw = 1;
}
void writedate (unsigned char date)
{
/* unsigned char temp;
temp=0;
rs=0;
rw=1;
do
{
E=1;
delay ();
temp=P0;
E=0;
}
while (temp&0x80);
rs=1;
rw=0;
P0=date;
delay ();
E=1;
delay ();
E=0;
*/
CS = 0; //chip select,打开片选
E = 1; //disable read,读失能
rs = 0; //select command,选择命令
rw = 0; //select write,选择写模式
delay();
delay();
P0 = date; //put command,放置命令
delay();
delay();
rw = 1;
}
void init ()
{
unsigned char i;
RSET = 0;
for (i=0; i<100; i++);
CS = 0;
RSET = 1;
writecom (0x01);
writecom (0x30);
writecom (0x02);
writecom (0x0c);
writecom (0x06);
writecom (0x01);
writecom (0x80);
}
void delay ()
{
unsigned char x,y;
for (x=5;x>0;x--)
for (y=110;y>0;y--);
}
此程序是为了让12864显示一行字符 感觉程序没错呀 但是液晶总是什么都不显示 为什么这是 跪求大神求解 小弟定当感恩不胜
刚学单片机,还没学到液晶显示,不过看到这觉得代码好长啊!