字符型液晶模块LCD1602操作实例

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

LCD 液晶显示器是Liquid Crystal Display 的简称

LCM(LCDModule)即LCD显示模组,是指将显示控制器,驱动器,字符存储器等集成到一起的LCD显示产品,它提供用户一个标准

的LCD显示驱动接口(有4位、8位、VGA等不同类型),用户按照接口要求进行操作来控制LCD正确显示。

字符型LCD:有多个5*7或5*11点阵符位组成,每个点阵符位都可以显示一个字符。专用于显示字母,数字,及自定义符号。

常用的有16字*1行,16字*2行,20字*2行,40字*2行:如LCD 1602 是16*2,可以显示两行字符,每行16个字符。

点阵式LCD: 不但可以显示字符,还可以显示汉字,图形。如LCD 12864

VDD :接5V正电源

VL :液晶显示器对比度调整端,接正电源对比度最弱,接地时对比度最高,对比度过高会产生“鬼影”,一般在该引脚接一固定电阻或

一电位器。

RS :寄存器选择,1时选择数据寄存器,0时选择指令寄存器。

R/W:读写控制信号线,1为读操作,0为写操作。

E : 为模块使能端,当有高电平跳变到低电平时,液晶模块执行命令。

DB0-DB7:8位双向数据线。

DDRAM就是显示数据RAM,用来寄存待显示的字符代码。共80个字节,其地址和屏幕的对应关系如下表:

也就是说想要在LCD1602屏幕的第一行第一列显示一个"A"字,就要向DDRAM的00H 地址写入“A”字的代码就行了。但具体的写入是要按LCD模块的指令格式来进行的,后面我会说到的。那么一行可有40个地址呀?是的,在1602中我们就用前16个就行了。第二行也一样用前16个地址。第一行对应16个地址位0x00-0x0fH,第二行对应的地址为:40H-4FH

1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如下表所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,

每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”

#define RS_0 PORTC&=~(1<

#define RS_1 PORTC|=(1<

#define RW_0 PORTC&=~(1<

#define RW_1 PORTC&=(1<

#define EN_0 PORTC&=~(1<

#define EN_1 PORTC&=(1<

写命令操作:

void lcd_cmd(uchar cmd)

{

1、DDRA=0xFF;//PA口为输出,PA口为数据端口

2、RS_0; //选择指令寄存器

RW_0; //选择写状态

EN_0; // 禁止状态

3、PORTA=0x01;//0x01 为清屏命令字,

4、delay (40);//延时400ns

5、EN_1;

delay(40);

EN_0; //E 端电平由1到0跳变时,液晶模块开始执行这个命令。写操作结束

}

写数据操作:

void lcd_data(uchar data)

{

1、DDRA=0xFF;//PA口为输出,PA口为数据端口

2、RS_1; //选择数据寄存器

RW_0; //选择写状态

EN_0; // 禁止状态

3、PORTA=data;//data 要写入的数据

4、delay (40);//延时400ns

5、EN_1;

delay(40);

EN_0; //E 端电平由1到0跳变时,液晶模块开始执行这个命令。写操作结束

}

读液晶忙(BF)状态:BF位为1时表示液晶正在处理数据,此时不能对液晶操作。

1、DDRA=0x00;//PA口为输入,PA口为数据端口

2、RS_0 //选择指令寄存器

RW_1; //选择读状态

3、EN_1; // 开始读

4、delay (40);//延时400ns

5、判断PB7的状态 PINB&0x80 ; 1表示液晶处于忙状态。

6、EN_0; //E 端电平由1到0跳变时,液晶模块开始执行这个命令。读操作结束LCD 1602 :显示两行,每行16个字符,对应的地址:第一行80h-8fh,第二行c0h-cfh 如在第二行低三个位置显示…A‟

lcd_cmd(0xc2);//写入第二行第三个位置的地址号0xc2

lcd_data(0x41) ;//A的字符码为0x41

LCD 1602初始化:

lcd_cmd(0x38); //8位数据,双列,5*7字形

lcd_cmd(0x0c);//开启显示屏,关光标,光标不闪烁

lcd_cmd(0x06); //显示地址递增,即写一个数据后,显示位置右移一位

lcd_cmd(0x01); //清屏

小企鹅diy 科学探究学习网

更多文章转到/wqb_lmkj/blog文章分类单片机

相关文档
最新文档