#include<reg51.h>
#define uchar unsigned char
sbit RS=P2^5;
sbit RW=P2^6;
sbit EN=P2^7;
void delay(uchar); //延时子程序
void init();
void wc51r(uchar j);
void wc51ddr(uchar j);
uchar code table[]="hoole";
uchar code table1[]="my name is lifei"; //显示编码
uchar q;
void main()
{
init();
wc51r(0x80); //输入相应地址
for(q=0;q<10;q++) //输入table[]
{
wc51ddr(table[q]);
}
wc51r(0xc4); //输入相应地址
for(q=0;q<12;q++) //输入table1[]
{
wc51ddr(table1[q]);
}
while(1);
}
void init() //液晶的初始化子程序,输入液
{ //晶的控制字,液晶不同控制字
wc51r(0x01); //有所不同。
wc51r(0x38);
wc51r(0x0f);
wc51r(0x06);
}
void wc51r(uchar i) //地址输入子程序,每
{ //个EN下降沿输入一次
EN=0;RS=0;RW=0;
EN=1;
P1=i;
EN=0;
delay(300);
}
void wc51ddr(uchar i) //数据输入子程序
{
EN=0;RS=1;RW=0;
EN=1;
P1=i;
EN=0;
delay(300);
}
void delay(uchar p)
{ uchar y=0;
for(;p>0;p--)
{ for(y=0;y<125;y++)
{;}
}
}
wc51r(0x80); //输入相应地址 为什么是0X80?其表示什么?而wc51ddr(table[q]); 是表示显示输入值吗? |