1602液晶的一些问题
时间:10-02
整理:3721RD
点击:
#include<reg52.h>
#include<intrins.h>
#define LCD_DB P0
sbit rs=P2^0;
sbit rw=P2^1;
sbit e=P2^2;
sbit D7=P0^7;
#define uchar unsigned char
#define uint unsigned int
uchar dis1[]={"www.hificat.com"};
uchar dis2[]={"0571-85956028"};
void delay(uint ms)
{
uint i;
while(ms--)
{
for(i=0;i<2;i++)
;
}
}
uchar jianmang(void)
{
bit result;
rs=0;
rw=1;
e=1;
_nop_();
_nop_();
_nop_();
_nop_();
result=D7&0x80;
e=0;
return(result);
}
void write_command(uchar cam)
{
while(jianmang());
rs=0;
rw=0;
e=0;
_nop_();
_nop_();
_nop_();
P0=cam;
_nop_();
_nop_();
_nop_();
e=1;
_nop_();
_nop_();
_nop_();
e=0;
}
void write_data(uchar dat)
{
while(jianmang());
rs=1;
rw=0;
e=0;
_nop_();
_nop_();
P0=dat;
_nop_();
_nop_();
_nop_();
_nop_();
e=1;
_nop_();
_nop_();
_nop_();
e=0;
}
void xianshi(uchar i)
{
write_command(i|0x80);
}
void chushihua(void)
{
write_command(0x38);
delay(1);
write_command(0x0c);
delay(1);
write_command(0x06);
delay(1);
write_command(0x01);
delay(1);
}
void main(void)
{
uchar i;
chushihua();
delay(10);
xianshi(0x01);
i=0;
while(dis1[i]!='\0')
{
write_data(dis1[i]);
i++;
}
xianshi(0x42);
i=0;
while(dis2[i]!='\0')
{
write_data(dis2[i]);
i++;
}
}
实际显示出来乱码,而且还一闪一闪的,不稳定。请高人帮帮忙
#include<intrins.h>
#define LCD_DB P0
sbit rs=P2^0;
sbit rw=P2^1;
sbit e=P2^2;
sbit D7=P0^7;
#define uchar unsigned char
#define uint unsigned int
uchar dis1[]={"www.hificat.com"};
uchar dis2[]={"0571-85956028"};
void delay(uint ms)
{
uint i;
while(ms--)
{
for(i=0;i<2;i++)
;
}
}
uchar jianmang(void)
{
bit result;
rs=0;
rw=1;
e=1;
_nop_();
_nop_();
_nop_();
_nop_();
result=D7&0x80;
e=0;
return(result);
}
void write_command(uchar cam)
{
while(jianmang());
rs=0;
rw=0;
e=0;
_nop_();
_nop_();
_nop_();
P0=cam;
_nop_();
_nop_();
_nop_();
e=1;
_nop_();
_nop_();
_nop_();
e=0;
}
void write_data(uchar dat)
{
while(jianmang());
rs=1;
rw=0;
e=0;
_nop_();
_nop_();
P0=dat;
_nop_();
_nop_();
_nop_();
_nop_();
e=1;
_nop_();
_nop_();
_nop_();
e=0;
}
void xianshi(uchar i)
{
write_command(i|0x80);
}
void chushihua(void)
{
write_command(0x38);
delay(1);
write_command(0x0c);
delay(1);
write_command(0x06);
delay(1);
write_command(0x01);
delay(1);
}
void main(void)
{
uchar i;
chushihua();
delay(10);
xianshi(0x01);
i=0;
while(dis1[i]!='\0')
{
write_data(dis1[i]);
i++;
}
xianshi(0x42);
i=0;
while(dis2[i]!='\0')
{
write_data(dis2[i]);
i++;
}
}
实际显示出来乱码,而且还一闪一闪的,不稳定。请高人帮帮忙

不错的资料,值得收藏
