1602液晶显示乱码,求助有爱的坛友们。
#include<reg52.h>
sbit rs=P2^6;
sbit rw=P2^5;
sbit en=P2^7;
unsigned char table1[]={"LCD1602 check ok"};
unsigned char table2[]={"study up"};
void inital_lcd();
void lcd_display();
void delay_long(unsigned int uidelaylong);
void lcd_wcom(unsigned char com)
{
rs=0;
rw=0;
P0=com;
delay_long(5);
en=1;
en=0;
}
void lcd_wdat(unsigned char dat)
{
rs=1;
rw=0;
P0=dat;
delay_long(5);
en=1;
en=0;
}
void main()
{
inital_lcd();
while(1)
{
lcd_display();
delay_long(100);
}
}
void lcd_display()
{
unsigned char n,m;
//lcd_wcom(0x80);
for(m=0;m<16;m++)
{
lcd_wdat(table1[m]);
delay_long(10);
}
// lcd_wcom(0x80+0x44);
for(n=0;n<10;n++)
{
lcd_wdat(table2[n]);
delay_long(10);
}
}
void inital_lcd()
{
lcd_wcom(0x38);
lcd_wcom(0x0c);
lcd_wcom(0x06);
lcd_wcom(0x01);
}
void delay_long(unsigned int uidelaylong)
{
unsigned int i;
unsigned int j;
for(i=0;i<uidelaylong;i++)
{
for(j=0;j<500;j++)
{
;
}
}
}
你选用的液晶是无字库的把,这样直接给字符串不行的,得用字模工具
不是啊,我用别人的程序可以显示的说,也是这样的字符数组,
出现什么样的乱码啊,截个图看看
1
你这程序是复制别人的啊
你这程序是复制别人的啊
看了教学视频,自己写的呢。
你check一下,你写的程序,显示的位置为没有定义。
void lcd_display()
{
unsigned char n,m;
//lcd_wcom(0x80);你这句前面//这符号是什么意思
for(m=0;m<16;m++)
{
lcd_wdat(table1[m]);
delay_long(10);
}
// lcd_wcom(0x80+0x44);你这句前面//这符号是什么意思
for(n=0;n<10;n++)
{
lcd_wdat(table2[n]);
delay_long(10);
}
}
void inital_lcd()
{
lcd_wcom(0x38);
lcd_wcom(0x0c);
lcd_wcom(0x06);
lcd_wcom(0x01);
}
void delay_long(unsigned int uidelaylong)
{
unsigned int i;
unsigned int j;
for(i=0;i<uidelaylong;i++)
{
for(j=0;j<500;j++)
{
;
}
}
}
不好意思,出差了,不知道解决了吗