在本项目中,我们将简要讨论如何将16×2液晶模块与8051系列单片机AT89C51进行接口。我们采用液晶显示器来显示信息,以更交互式的方式来操作系统或显示错误信息等。接口16×2 LCD与8051单片机如果你了解LCD的工作原理,是很容易的。
因此,在这个项目中,我不仅会给出LCD的信息,还会提供C语言的代码,工作很好,没有任何错误。
还要了解一下接口led与8051单片机
关于16×2 LCD的简要说明
16×2液晶显示,它将显示32个字符在两行(16个字符在一行)一次。显示中的每个字符的大小是5×7像素矩阵。这个矩阵对于不同的16×2 LCD模块是不同的,如果你取JHD162A,这个矩阵到5×8。LCD模块有16个引脚,引脚配置如下
|
|
|
---|---|---|
|
|
地面销 |
|
|
5V电源引脚 |
|
|
用于调节通常附在电位器上的对比度。 |
|
|
RS是用于将显示数据写入LCD(字符)的寄存器选择引脚,当将数据写入LCD时,这个引脚必须是高的。在初始化序列和其他命令期间,这个引脚应该是低的。 |
|
|
读写数据到LCD读数据R/W引脚应该是高的(R/W=1)写数据到LCD R/W引脚应该是低的(R/W=0) |
|
|
Enable pin用于启动或启用模块。一个大约450ns的高到低脉冲被给予这个引脚。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DB0-DB7数据引脚,用于提供要显示的数据(普通数据,如数字、字符或命令数据) |
|
|
|
|
|
|
|
|
|
|
|
液晶显示器的背光应该连接到Vcc |
|
|
液晶显示器的背光应与地面相连。 |
因此,通过阅读上面的表格,你可以对如何显示字符有一个简单的了解。为了显示一个字符,你应该通过450ns的脉冲启用启用引脚(引脚6),启用引脚6后,你应该在写模式中选择寄存器选择引脚(引脚4)。要选择在写入模式下的寄存器选择引脚,你必须使这个引脚高(RS=1),选择寄存器选择后,你必须配置R/W为写入模式,即R/W应该低(R/W=0)。
按照以下简单步骤显示字符或数据
- E = 1;使能引脚应该很高
- RS = 1;寄存器选择值应该很高
- R / W = 0;读/写引脚应该低。
向LCD发送命令只需遵循以下步骤:
- E = 1;使能引脚应该很高
- RS = 0;寄存器选择值应该很低
- R / W = 0;读/写引脚应该低。
命令:有一些预设命令将在LCD中执行特定的任务。这些命令对于在LCD中显示数据非常重要。下面给出的命令列表:
|
|
---|---|
|
打开LCD时,闪烁光标。 |
|
清除屏幕 |
|
回家了。 |
|
减量光标 |
|
增量光标 |
|
打开显示,同时打开光标 |
|
将光标强制移到第一行的开头 |
|
将光标强制移到第二行开头 |
|
使用两条线和5x7矩阵 |
|
游标第1行位置3 |
|
激活第二行 |
|
跳到第二排3号位置 |
|
跳到第二排位置1 |
为了得到详细的信息,点击这里下载数据表
16×2 LCD与8051电路图的接口
组件的要求
- AT89C51单片机(8051单片机)
- 16 x2液晶显示器
- 11.0592 mhz的水晶
- 2 X 33pF电容器
- 2 X 10 KΩ电阻
- 1 KΩ X 8电阻包
- 10 KΩ电位计
- 330Ω电阻
- 按钮
- 10μF / 16 v电容器
- 8051年程序员
- 5 v电源
- 连接电线
电路的解释
晶体振荡器,连同两个33pF电容,连接到XTAL1和XTAL2,这将提供系统时钟给微控制器。
RST引脚在10KΩ电阻的帮助下被拉低。通过一个10μF电容和一个按钮,可以复位8051微控制器。EA在10KΩ电阻的帮助下被拉高。
LCD的数据引脚连接到PORT0(首先,PORT0引脚必须在1KΩ的帮助下被拉高电阻包).RS和E连接到PORT2引脚P2.0和P2.1。
一个10KΩ电位器被用来调整液晶显示器的对比度。
编程LCD到8051
在编程中,你应该遵循以下步骤:
- 步骤1:初始化的液晶。
- 步骤2:向LCD发送命令。
- 步骤3:将数据写入LCD。
[也读:如何制作一个可调节的计时器]
初始化液晶
要将LCD初始化到8051,下面的指令和命令将嵌入到函数中
- 0x38用于8位数据初始化。
- 0xoC用于使LCD显示打开和光标关闭。
- 0X01清除LCD显示。
- 0x80用于将光标定位在第一行。
向LCD发送命令
- E = 1;使能引脚应该很高
- RS = 0;为了发送命令,寄存器select值应该很低
- 将数据放在数据寄存器上
- R / W = 0;读/写引脚应该低,以便写入数据。
写入数据到LCD
- E = 1;使能引脚应该很高
- RS = 1;对于写入数据,寄存器选择值应该很高
- 将数据放在数据寄存器上
- R / W = 0;读/写引脚应该低,以便写入数据。
重要的后7段显示器与8051单片机的接口
代码
额外的代码
下面给出的程序将使用上面的函数并显示由程序员提供的显示数据的完整字符串。我们提供了两个正常工作的演示代码,易于理解。
代码1
20的反应
嗨……这是sandhya…我们的DNG项目使用LCD显示。所以我们想在keil程序编码显示接收到的数据....?
是的,我们可以。
哇,这篇文章很好,我姐姐正在分析这些东西,所以我要让她知道。
如果你有答案,把pgm发给我。因为我也有同样的项目。
下面是使用keil在汇编中编写的简单代码。
代码是为8051 uc编写的。有关pin连接或其他东西的信息,请给我发电子邮件srihariash@gmail.com
ORG 0000 h
: MOV, # 38 h
驱使着CMND
MOV, # 0跳频
驱使着CMND
MOV, # 06 h
驱使着CMND
MOV, # 01 h
驱使着CMND
MOV, # 080 h
驱使着CMND
MOV, # ' '
驱使着DISP
MOV, #“H”
驱使着DISP
MOV, #“E”
驱使着DISP
MOV, #“L”
驱使着DISP
MOV, #“L”
驱使着DISP
MOV, #“O”
驱使着DISP
SJMP这里
CMND: MOV P2
CLR P3.5
CLR P3.4
SETB P3.3
CLR P3.3
受潮湿腐烂
DISP: MOV P2
SETB P3.5
CLR P3.4
CLR P3.3
SETB P3.3
受潮湿腐烂
结束
如何燃烧生成的十六进制代码keil到8051
我看过的极好的网站,因为编程写得很好,很容易理解....
谢谢你 ...........
NGDFM,高清FVULDVBDVFDVHBDKFHVBFDMVHBDMFVBMVVHG
非常简化程序。这是我在网上找到的最好的代码。
我知道如何显示简单的字符。
但是假设我想显示一个字符串(例如:“my name is xyz”),那么我应该怎么做呢?
我应该把字符串放在lddata函数中吗?或者需要手动将数据移到左边,以显示空格和同一行中的其他字符?
嗨,先生,我是pratibha,我们正在定液晶显示项目,我们想要代码和图表,请给我
代码是上传在帖子里的..完全通过它。
先生,我正在设计数字压力测量显示…我很困惑,我给adc一个模拟信号,它转换成数字,我想显示压力根据信号应用到adc 0808,我怎么能做到这一点..?
我的儿子,我理解你的担心,如果你只是去早安商店买一个压力8056洗涤锤
请提供使用xmc4500在LCD上显示的代码
好解释!
我能得到一份关于这个项目的完整报告吗
我想通过微控制器从传感器读取实时值并显示在这里。这个代码会工作吗?如果没有,那么谁能帮助我在keil vision软件中的代码
程序中存在太多的空白
你好。我能得到汇编格式的代码吗?