这个都是看DataSheet的,里面很清楚。。。。。。。。。。
View Code
1 #include<reg52.h>
2 sbit l1=P2^5;//读写选择
3 sbit lcden=P2^6;//使能信号
4 sbit lcdrs=P2^4;//数据、命令选择
5 void delay(int i)
6 {
7 int a,b;
8 for (a=0;a<i;a++)
9 for(b=0;b<80;b++);
10 }
11 void writezl(char zl) //写指令(看时序图)
12 {
13 lcdrs=0;//允许写指令
14 P0=zl;
15 delay(5);
16 lcden=1;
17 delay(5);
18 lcden=0;
19 }
20 void writeda(char da) //写数据
21 {
22 lcdrs=1;//允许写数据
23 P0=da;
24 delay(5);
25 lcden=1;
26 delay(5);
27 lcden=0;
28 }
29 void writestring( char *p)//写字符串
30 {
31 int j;
32 for (j=0;j<16;j++)
33 {
34 if (*(p+j)=='\0')break;
35 writeda(*(p+j));
36 delay(50);
37 }
38 }
39
40 void chushi() //初始化液晶
41 {
42 l1=0;
43 lcden=0;
44 writezl(0x38);//显示模式
45 writezl(0x0c);//显示设置
46 writezl(0x06);//显示设置
47 writezl(0x01);//清屏
48 writezl(0x80);//设置数据指针的位置
49 }
50 void main()
51 {
52 int i;
53 chushi();
54 writestring("welcome to");
55 delay(200);
56 writezl(0x80+0x06-2);
57 writezl(0x0f);
58 while(1);
59 }