接口16×2 LCD,8051

在该项目中,我们将简要讨论如何将16×2 LCD模块接口到AT89C51,这是一个8051个家庭微控制器。我们使用LCD显示器以更具交互式的方式为显示消息进行操作,以操作系统或显示错误消息等。如果您了解LCD的工作,可以很容易地连接16×2液晶显示器。

因此,在这个项目中,我不仅提供LCD的信息,还提供C语言的代码,该代码在没有任何错误的情况下工作。

还有一个想法亚博彩票下载带8051 MiroController的接口LED

关于16×2液晶的简要说明

16×2液晶显示屏将在两行中显示32个字符(一行中的16个字符)。显示屏中的每个字符都具有5×7像素矩阵。该矩阵对于不同的16×2 LCD模块而异,如果使用JHD162A,则该矩阵进入5×8。LCD模块中有16个引脚,我们在下面给出的引脚配置

别针没有
名称
功能
1
vs.
地面别针
2
vcc.
5V的电源销
3.
v
用于调节常用于电位器的对比度。
4.
卢比
RS是用于将显示数据写入LCD(字符)的寄存器选择引脚,在将数据写入LCD时,此引脚必须高。在初始化序列和其他命令期间,该引脚应低。
5.
R / W.
读取和将数据写入LCD,用于读取数据R / W引脚应高(R / W = 1),将数据写入LCD R / W引脚应低(R / W = 0)
6.
E.
启用引脚用于启动或启用模块。对该销提供约450ns脉冲的高脉冲。亚博彩票下载
7.
DB0.
8.
DB1.
9.
DB2.
10.
DB3.
11.
DB4.
用于提供数据的DB0-DB7数据引脚(类似于数字字符或命令数据)的数据引脚
12.
DB5.
13.
DB6.
14.
DB7.
15.
LED +
应该连接到VCC的LCD的背光
16.
引领-
应连接到地面的LCD背光。

因此,通过阅读上面的表格,您可以了解如何显示字符。为了显示一个字符,您应该通过在启用PIN6之后给出450ns的脉冲来启用启用引脚(引脚6),在启用PIN6之后,您应该在写入模式下选择寄存器选择引脚(PIN4)。要在写入模式中选择寄存器选择引脚,您必须使此引脚高(RS = 1),选择寄存器后,选择您必须配置R / W的R / W为R / W应该低(R / W)= 0)。

遵循这些简单的步骤来显示字符或数据

  • E = 1;启用PIN应高
  • Rs = 1;注册选择应该很高
  • r / w = 0;读/写销应低。

要向LCD发送命令只是遵循以下步骤:

  • E = 1;启用PIN应高
  • rs = 0;注册选择应低
  • r / w = 0;读/写销应低。

命令:有一些预设命令将在LCD中执行特定任务。这些命令对于在LCD中显示数据非常重要。下面给出的命令列表:

命令
功能
0F.
用于在LCD上切换,闪烁光标。
1
清除屏幕
2
回家。
4.
递减游标
6.
递增光标
E.
显示屏和光标上
80
强制光标到第一行的开头
C0.
强制光标到第二行的开始
38.
使用两行和5x7矩阵
83.
光标线1位置3
3C
激活第二行
0C3.
跳到第二行位置3
0C1.
跳到第二行位置1

要获取详细信息,单击此处并下载数据表

接口16×2 LCD带8051电路图

接口16×2 LCD带8051电路图

需要组件

  • AT89C51(8051微控制器)
  • 16x2 LCD显示器
  • 11.0592MHz水晶
  • 2 x 33pf电容器
  • 2 x10kΩ电阻
  • 1kΩx 8电阻包
  • 10kΩ电位器
  • 330Ω电阻
  • 按钮
  • 10μF/ 16V电容器
  • 8051程序员
  • 5V电源
  • 连接电线

电路解释

晶体振荡器以及两个33pf电容器连接到XTAL1和XTAL2,其将向微控制器提供系统时钟。

RST引脚在10kΩ电阻的帮助下被拉低。在10μF电容和按钮的帮助下,您可以重置8051微控制器。ea在10kΩ电阻的帮助下被拉高。

LCD的数据引脚连接到Port0(首先,在1kΩ电阻包的帮助下,必须拉高Port0引脚)。RS和E连接到Port2引脚P2.0和P2.1。

10kΩ电位器用于调整LCD的对比度。

接口16×2 LCD,8051图像1
接口16×2 LCD,8051图像2
接口16×2 LCD,8051图像3

编程LCD至8051

来编程您应该按照以下步骤操作:

  • 步骤1:液晶显示的初始化。
  • 第2步:将命令发送到LCD。
  • 第3步:将数据写入LCD。

[还阅读:如何制作可调整的计时器]

初始化液晶显示器

要将LCD初始化为8051,将嵌入以下指令和命令

  • 0x38用于8位数据初始化。
  • 0xOC用于使LCD显示屏和光标关闭。
  • 0x01清除LCD的显示。
  • 0x80用于将光标定位在第一行。

向LCD发送命令

  • E = 1;启用PIN应高
  • rs = 0;寄存器选择应该是低的发送命令
  • 将数据放在数据寄存器上
  • r / w = 0;读/写PIN应低于编写数据。

将数据写入LCD

  • E = 1;启用PIN应高
  • Rs = 1;寄存器选择应该很高用于写入数据
  • 将数据放在数据寄存器上
  • r / w = 0;读/写PIN应低于编写数据。

重要的帖子 -带8051微控制器的连接7段显示器

代码

附加码

下面给出的程序将使用上面的函数,并显示程序员给出的完整字符串以显示数据。我们提供了两份演示代码,良好地工作,易于理解。

代码1

代码2.

相关帖子:实时时钟(RTC)接口PIC18F

20回应

  1. 嗨......这是Sandhya ....我们是使用LCD显示器的DNG项目。所以我们希望在Keil中编码编码,以显示收到的数据......?

    1. 下面是用keile汇编编写的简单代码。代码显示您好。
      代码是为8051 UC编写的。有关PIN连接或其他内容的信息,请发送电子邮件 -srihariash@gmail.com.

      org 0000h.
      在这里:mov a,#38h
      acall cmnd.
      mov a,#0fh
      acall cmnd.
      mov a,#06h
      acall cmnd.
      mov a,#01h
      acall cmnd.
      mov a,#080h
      acall cmnd.

      mov a,#''
      acall disp.
      mov a,#'h'
      acall disp.
      mov a,#'e'
      acall disp.
      mov a,#'l'
      acall disp.
      mov a,#'l'
      acall disp.
      mov a,#'o'
      acall disp.

      sjmp这里

      CMND:MOV P2,a
      clr p3.5.
      CLR P3.4
      setb p3.3.
      CLR P3.3.

      DISP:MOV P2,A
      setb p3.5.
      CLR P3.4
      CLR P3.3.
      setb p3.3.

      结尾

  2. 我明白如何显示简单的字符。
    但假设我想显示一个字符串(例如:“我的名字是XYZ”)我该怎么办?
    我应该把这些字符串放在lcddata qufcion吗?或者确实要手动将数据转移到左侧,以显示同一行中的空间和其他字符?

  3. 先生,我正在设计数字预设测量显示......我很困惑我给ADC给一个anlog信号,它将它转换为数字,我想根据应用于ADC 0808的信号显示预衰退0808如何做到这一点.. ??

  4. 我想通过微控制器从传感器读取实时值并在此显示它。这段代码是否会工作或如果没有任何人可以帮助我在Keil Vision软件中的代码

发表评论

您的电子邮件地址不会被公开。必需的地方已做标记*