调试1602液晶没有反映,还望大神指点
时间:10-02
整理:3721RD
点击:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="1234567!";
uchar num=0;
sbit rw=P3^6;
sbit rs=P3^7;
sbit e=P2^5;
void delay(uchar t)
{
uint i,j;
for(i=t;i>0;i++)
for(j=110;j>0;j--);
}
void write_com(uchar com)
{
rs=0;
rw=0;
P0=com;
delay(5);
e=1;
delay(20);
e=0;
}
void write_date(uchar date)
{
rs=1;
rw=0;
P0=date;
delay(5);
e=1;
delay(20);
e=0;
}
void main()
{ e=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x10);
write_com(0x80);
for(num;num<16;num++)
{
write_date(table[num]);
delay(5);
}
write_com(0x80+0x40);
for(num;num<16;num++)
{
write_date(table[num]);
delay(5);
}
}
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="1234567!";
uchar num=0;
sbit rw=P3^6;
sbit rs=P3^7;
sbit e=P2^5;
void delay(uchar t)
{
uint i,j;
for(i=t;i>0;i++)
for(j=110;j>0;j--);
}
void write_com(uchar com)
{
rs=0;
rw=0;
P0=com;
delay(5);
e=1;
delay(20);
e=0;
}
void write_date(uchar date)
{
rs=1;
rw=0;
P0=date;
delay(5);
e=1;
delay(20);
e=0;
}
void main()
{ e=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x10);
write_com(0x80);
for(num;num<16;num++)
{
write_date(table[num]);
delay(5);
}
write_com(0x80+0x40);
for(num;num<16;num++)
{
write_date(table[num]);
delay(5);
}
}
最小系统

1602

应该按照LCD资料介绍的初始化过程进行,正常读写操作之前应该检测LCD控制器状态。
看郭天祥教程。
其他感觉没必要多说。
delay()函数中应该是 i-- ,,,改一下试试!
正常来说是应该检测,但是我看书上意思他的显示速度慢,所以就不用检测。
问题已经解决了,谢谢。
大神啊。
检查程序的时候都没有注意到,嘿嘿。
谢谢。
感谢分享,谢谢了
