新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 跟我学51单片机(七)——LCD1602液晶显示模块

跟我学51单片机(七)——LCD1602液晶显示模块

作者: 时间:2013-01-26 来源:网络 收藏
二、电路详解

  如图2 所示,1602 液晶的控制管脚都接到了单片机管脚上,前文提到,在功能设置指令中可以将液晶设为8 位数据接口和4 位数据接口,图中采用的是8位的数据接口,当然也可以当四位数据接口来用。液晶电源正端接5V,负端接地,背光正端接5V,负端接地。此外,液晶的偏压管脚(VO)接到一个电位器的中间抽头,电位器的两端分别接5V 和地,这样就可通过调节电位器来实现对1602 液晶对比度的调节。经实验测试,笔者手里的1602 液晶的偏压管脚的电压调节到0.3~0.4V 时对比度效果最好,也可以将该管脚通过一个1k 的电阻下拉到地。读者可以自己实践测试。

跟我学51单片机(七)——LCD1602液晶显示模块

图2 1602液晶与单片机的连接图

  三、程序设计

  在对1602 液晶设计程序前,我们先看下其读写时序图,从图3 和图4 可以看出,1602 液晶的读写操作时序可总结成表4 所示。

跟我学51单片机(七)——LCD1602液晶显示模块

图3 1602液晶读操作的时序图

跟我学51单片机(七)——LCD1602液晶显示模块

图4 1602液晶写操作的时序图

  对照时序,我们可以很容易的写出驱动液晶的各个子函数,如下所示。

  写命令函数:向寄存器写入控制字

  参数:command - 控制字

  void LCD_en_command(unsigned char command)

  {

  LCD_delay(); // 延时一段时间

  _RW=LOW; // 写命令时,R/W 为低电平

  _RS=LOW; // 写入指令,RS 为低电平

  _EN=HIGH; // 置高使能线

  LCDIO=command; // 接收命令字并送到数据总线上

  LCD1602_EN=LOW; // 在使能线的下降沿写入数据

  }

  写数据函数:向寄存器写入数据

  参数:dat - 待要显示数据

  void LCD_en_dat(unsigned char dat)

  {

  LCD_delay(); // 延时一段时间

  LCD1602_RW=LOW; // 写指令时,R/W 为低电平

  LCD1602_RS=LOW; // 写入数据,RS 为高电平

  LCD1602_EN=HIGH; // 置高使能线

  LCDIO=dat; // 接收数据并送到数据总线上

  LCD1602_EN=LOW; // 在使能线的下降沿写入数据

  }

红外遥控器相关文章:红外遥控器原理


评论


相关推荐

技术专区

关闭