51使用LCD1602液晶显示(复习总结)
该知识点来源于B站知弦,本章便是对其LCD1602应用的简单总结!!!
一、LCD1602
1、1602概念:每行可以显示16个字符,共2行
2、各个引脚:对比度VEE接地时,显示度最好
3、显示地址:初始地址0x80,
第一行显示地址0x80+0x00开始
第二行显示地址0x80+0x40开始
4、LCD命令
常用命令:
5、写操作时序图(读操作一般不用)
初始状态,RW=0,E=0,当E=1时,开始写命令/数据,之后E=0时结束写操作
注意:RS=0为写命令,RS=1为写数据。
二、仿真
仿真器件搜索:AT89C51、LM016L
三、程序
#include"reg51.h"
sbit RS=P3^0;
sbit RW=P3^1;
sbit E=P3^2;
unsigned char s[]={"hello world!"};
unsigned char s1[]={"test_success"};void delay(unsigned int m)
{unsigned int i=0,j=0;for(i=0;i<m;i++){for(j=0;j<120;j++);}
}void writecom(unsigned char com)
{RS=0;RW=0;E=0 ;P2=com; delay(5);E=1;E=0;
}void writedat(unsigned char dat)
{RS=1;RW=0;E=0 ;P2=dat; delay(5);E=1;E=0;
}void initlcd()
{writecom(0x38);writecom(0x0c);writecom(0x06);writecom(0x01);
}void display()
{int i=0,j=0;writecom(0x80);delay(5);while(s[i]!='\0'){writedat(s[i]) ;delay(5);i++;}writecom(0x80+0x40);while(s1[j]!='\0'){writedat(s1[j]) ;delay(5);j++;}
}void main()
{initlcd();while(1){display();}
}
四、总结
学会根据时序图写程序
注意字符串的结束符号'\0'