LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。它是由字符型液晶显示屏(LCD)、控制驱动主电路HD44780及其扩展驱动电路HD44100,以及少量电阻、电容元件和结构件等装配在PCB板上而组成。该显示屏的优点是耗电量低、体积小、辐射低。
LCD1602主要用来显示数字、字母、图形以及少量自定义字符。可以显示2行16个字符,拥有16个引脚,其中8位数据总线D0-D7,和RS、R/W、EN三个控制端口,工作电压为5V,并且带有字符对比度调节V0和背光源AK。
其原理图如下
在编写代码我并未使用模块化编程因为不熟练,所以我还是使用基本的
#include <reg51.h>
typedef unsigned char u8;
typedef unsigned int u16;
sbit RW=P2^5;
sbit RS=P2^6;
sbit EN=P2^7;
u8 code table[15]="Hello World";
/*延时函数*/
void delay(u16 i)
{
while(i--);
}
/*写指令函数*/
void write_con(u8 con){
P0=con; //送出指令
RS=0;RW=0;EN=1; //写指令时序
delay(200);
EN=0;
}
/*写数据函数*/
void write_dat(u8 dat){
P0=dat; //送出数据
RS=1;RW=0;EN=1;//写数据时序
delay(200);
EN=0;
}
/*LCD初始化函数*/
void LcdInit(){
write_con(0x01);//清屏
write_con(0x38);//设置16*2显示
write_con(0x0c);//开显示
write_con(0x06);//写入数据时光标右移1位
}
/*LCD显示函数*/
void LcdDisplay(u8 table[]){
u8 i=0;
write_con(0x80); //起点为第一行
while(table[i]!='\0'){
write_dat(table[i]);
delay(100);
i++;
}
/*
i=0;
write_con(0xc0); //起点为第二行
while(table[i]!='\0'){
write_dat(table[i]);
delay(100);
i++;
}
i=0;
*/
}
/*主函数*/
void main()
{
LcdInit();
while(1)
{
LcdDisplay(table);
}
}
然后在LCD上显示的效果如下图
在下面我会对模块编程进行学习然后再次进行编写