首页 > 技术文章 > 液晶显示"I LOVE YOU!"代码和电路图

liangjinjie 2017-05-23 16:59 原文

 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"),以双引号写数据的话,默认结束后会以\0结束,所以判断\0就可以知道是最后一个,然后停止指针地址的累加
28    while(*str != '\0'){
29       //把字符串放到指针str的地址里面
30       writedata(str);
31       //指针地址的累加
32       str++;
33    }
34 }
35 //LCD初始化
36 void init(){
37    RW = 0;//读写选择端   RW=0,选择写操作,RW=0,选择读操作
38    E= 0;
39    writecmd(0x38);
40    writecmd(0x0c);//开显示屏
41    writecmd(0x06);//读或写一个字符后地址指针加1
42    //writecmd(0x01);//清屏
43 }
44 //主函数
45 void main(void)
46  { 
47     //uchar j;
48     //调用初始化函数
49     init();
50     //写命令,写地址
51     writecmd(0X80);
52     //小延时
53     for(i=0;i<20;i++);
54     //for(j=0;j<10;j++)
55     //写数据
56     
57     //writedata("h12");
58     writestr("I LOVE YOU!");
59  }

 

      

推荐阅读