1 #include <reg51.h>
2 #include <stdio.h>
3 #define uchar unsigned char
4 #define LCD P3
5 sbit RS = P2^0;
6 sbit RW = P2^1;
7 sbit E = P2^2;
8 uchar i;
9 void writecmd(uchar cmd){
10 RS = 0;//数据命令选择端 RS=0,选择命令,RS=1,选择数据
11 RW = 0;//读写选择端 RW=0,选择写操作,RW=0,选择读操作
12 for(i=0;i<200;i++);//延时,确保LCD空闲,在初始化函数(init)里,连续四行,LCD可能一下子处理不过来
13 E = 1; //使能信号端 高电平使能 也就是允许给LCD输入命令的意思
14 LCD = cmd;//给LCD写命令
15 E = 0; //使能信号端 高电平使能 使用完之后要拉低,拉低之后就不能给LCD写命令了
16 }
17 void writedata(uchar* d){
18 RS = 1;//数据命令选择端 RS=0,选择命令,RS=1,选择数据
19 RW = 0;//读写选择端 RW=0,选择写操作,RW=0,选择读操作
20 for(i=0;i<200;i++);//延时,确保LCD空闲
21 E = 1;//使能信号端 高电平使能 也就是允许给LCD输入数据的意思
22 LCD = *d;//给LCD写数据
23 E = 0;//使能信号端 高电平使能 使用完之后要拉低,拉低之后就不能给LCD写数据了
24 }
25 //定义一个字符串函数
26 void writestr(uchar * str){
27 //writestr("12312"),以双引号写数据的话,默认结束后会以 结束,所以判断 就可以知道是最后一个,然后停止指针地址的累加
28 while(*str != '