LCD1602液晶显示屏指令详解

news2025/2/25 13:06:52

文章目录

  • LCD1602液晶显示屏
    • 1.简介
    • 2. 液晶引脚说明
    • 3. 指令介绍
      • 3.1 清屏指令
      • 3.2 光标归位指令
      • 3.3 进入模式设置指令
      • 3.4 显示开关设置指令
      • 3.5 设定显示或光标移动方向指令
      • 3.6 功能设定指令
      • 3.7 设定CGRAM地址指令
      • 3.8 设定DDRAM地址指令
      • 3.9 读取忙或AC地址指令
      • 3.10 总图
      • 3.11 DDRAM 与 字模映射表
    • 4. proteus仿真
      • 硬件连接
      • 示例代码
      • 解释

LCD1602液晶显示屏

在这里插入图片描述

1.简介

1602是一款物美价廉的液晶显示屏,可以显示2行标准字符,每行共有16个字符。在通信系统,智能操作仪表和办公设备的自动化中被广泛的应用,主要功能是显示ASCII字符,因此被称为“字符型显示装置”

1602

1602液晶分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别。两者尺寸差别如下图(图3-4)所示:

尺寸

1602LCD主要技术参数:
◆显示容量:16×2个字符
◆芯片工作电压:4.5—5.5V
◆工作电流:2.0mA(5.0V)
◆模块最佳工作电压:5.0V
◆字符尺寸:2.95×4.35(W×H)mm
在这里插入图片描述

2. 液晶引脚说明

1602引脚如图所示:

引脚说明

  • 1:接地电源VSS。

  • 2:5V正电源为VDD。

  • 3:VL为液晶显示器对比度调整的端口,对比度的强弱由接电源的不同决定,对比度的调整可以通过一个10k的电位器。

  • 4:RS是寄存器选择,高电平(1)选择数据寄存器,低电平(0)选择指令寄存器。

  • 5:R / W的读和写信号线,高电平(1)读操作,低电平(0)写操作。其中RS与R/W的关系决定了当时状态,例如两端共同为0时能够写入命令或者显示其地址,当两端同为1时可以读忙碌信号,当RS为1,R/W为0时能够将数据录入

  • 6:使能端E,当E端由1至0时,液晶模块中的命令开始被运行。

  • 7-14:D0-D7为8位双向数据线。

  • 15:背光源正极。

  • 16:背光源负极。

3. 指令介绍

3.1 清屏指令

clear
功能:
1)能够将液晶显示屏清除,就是将DDRAM所有内容都改为“空白”的ASCII码 20H
2)能够使光标回到原始位置,把光标重新摆放回液晶显示屏的左上方
3)把地址显示器即AC的数值归位零

3.2 光标归位指令

position

功能:
1)将光标重新设置回显示器的左上方
2)地址计数器即AC的数值被设为
3)DDRAM所有的内容将保持原样;

3.3 进入模式设置指令

entermode
功能:当写入一位数据之后光标移动的方向将被设置,参数设定的情况如下:
enterset

3.4 显示开关设置指令

setswitch
功能:能够控制显示的开关与否,光标的显示或者关闭,光标是否需要闪烁,参数设定的情况如下:

setprint

3.5 设定显示或光标移动方向指令

setmouse
功能:将光标移动或者整个显示屏幕移动位置,参数设定的情况如下:
setpar

3.6 功能设定指令

Function setting
功能:数据总线的位数所显示出来的行数字型将被设定,参数设定情况如下:
Function setting

3.7 设定CGRAM地址指令

Set the CGRAM address
功能:下一次被存入数据的CGRAM地址将被设置

3.8 设定DDRAM地址指令

Set DDRAM address instruction
功能:下一次要存入数据的DDRAM地址将被设置。

3.9 读取忙或AC地址指令

Address Counter

功能:
1)HF(忙碌信号)读取,假如液晶显示器忙碌的时候则BF=1,暂时不能接收被单片机送出的数据和指令,当BF=0的时候则相反。
2)地址计数器(AC)内容被接收。

在这里插入图片描述

3.10 总图

all

3.11 DDRAM 与 字模映射表

ddram

hash

4. proteus仿真

使用STC89C52单片机点亮1602液晶显示屏(LCD)

硬件连接

  1. 89C52单片机

    • P0口:用于数据总线(D0-D7)
    • P2.0 - P2.3:用于控制信号(RS, RW, E, EN
    • 其他引脚:电源和接地
    • 由于STC89C52的P0口是漏极开路输出,因此在P0口接了一个10K的排阻R1,使得P0口可以作为普通的I/O口使用,本设计用P0口来做液晶的数据口。
  2. 1602 LCD

    • D0-D7:连接到P0
    • RS:连接到P2.0
    • RW:连接到P2.1(通常接地,设置为写模式)
    • E:连接到P2.2
    • VSS:接地
    • VDD:接电源(通常5V)

如图所示
simple

示例代码

#include <reg52.h>

#define uchar unsigned char
#define uint unsigned int

sbit RS = P2^0;
sbit RW = P2^1;
sbit E = P2^2;

void delay(uint ms) {
    uint i, j;
    for (i = ms; i > 0; i--)
        for (j = 110; j > 0; j--);
}

void LCD_Command(uchar cmd) {
    RS = 0;
    RW = 0;
    P0 = cmd;
    E = 1;
    delay(5);
    E = 0;
    delay(5);
}

void LCD_Data(uchar dat) {
    RS = 1;
    RW = 0;
    P0 = dat;
    E = 1;
    delay(5);
    E = 0;
    delay(5);
}

void LCD_Init() {
    LCD_Command(0x38); // 8位数据接口,两行显示,5x7点阵
    delay(5);
    LCD_Command(0x0C); // 显示开,不显示光标
    delay(5);
    LCD_Command(0x06); // 文字不动,地址自动+1
    delay(5);
    LCD_Command(0x01); // 清屏
    delay(5);
}

void LCD_ShowString(uchar *str) {
    while (*str) {
        LCD_Data(*str++);
    }
}

void main() {
    LCD_Init();
    LCD_ShowString("Hello, LCD!");
    while (1);
}

解释

  1. 定义和延时函数

    • ucharuint 定义了无符号字符和无符号整数类型。
    • delay 函数用于产生简单的延时。
  2. LCD控制函数

    • LCD_Command 函数发送命令到LCD。
    • LCD_Data 函数发送数据到LCD。
  3. LCD初始化

    • LCD_Init 函数初始化LCD,包括设置数据接口、显示模式、光标模式以及清屏。
  4. 显示字符串

    • LCD_ShowString 函数用于在LCD上显示字符串。
  5. 主函数

    • 调用 LCD_Init 初始化LCD。
    • 调用 LCD_ShowString 显示字符串 “Hello, LCD!”。
    • 进入一个无限循环。

演示效果
animation
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2254494.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python毕业设计选题:基于大数据的旅游景区推荐系统_django

开发语言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 系统首页界面 用户注册界面 用户登录界面 景点信息界面 景点资讯界面 个人中心界面 …

引领素养教育行业,猿辅导素养课斩获“2024影响力教育品牌”奖项

近日&#xff0c;由教育界网、校长邦联合主办&#xff0c;鲸媒体、职教共创会协办的“第9届榜样教育年度盛典”评奖结果揭晓。据了解&#xff0c;此次评选共有近500家企业提交参评资料进行奖项角逐&#xff0c;历经教育界权威专家、资深教育从业者以及专业评审团队的多轮严格筛…

十七、监控与度量-Prometheus/Grafana/Actuator

文章目录 前言一、Spring Boot Actuator1. 简介2. 添加依赖2. 开启端点3. 暴露端点4. 总结 二、Prometheus1. 简介2. Prometheus客户端3. Prometheus服务端4. 总结 三、Grafana1. 简介2. Grafana安装3. Grafana配置 前言 系统监控‌ 在企业级的应用中&#xff0c;系统监控至关…

PHP语法学习(第六天)

&#x1f4a1;依照惯例&#xff0c;回顾一下昨天讲的内容 PHP语法学习(第五天)主要讲了PHP中的常量和运算符的运用。 &#x1f525; 想要学习更多PHP语法相关内容点击“PHP专栏” 今天给大家讲课的角色是&#x1f34d;菠萝吹雪&#xff0c;“我菠萝吹雪吹的不是雪&#xff0c;而…

关于遥感图像镶嵌后出现斑点情况的解决方案

把几张GF1的影像镶嵌在一起后&#xff0c;结果在Arcgis里出现了明显的斑点情况&#xff08;在ENVI里显示则不会出现&#xff09;&#xff0c;个人觉得可能是斑点噪声问题&#xff0c;遂用Arcgis的滤波工具进行滤波处理&#xff0c;但由于该工具本身没有直接设置对多波段处理方式…

【嵌套查询】.NET开源 ORM 框架 SqlSugar 系列

.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列【数据事务…

单链表---合并两个链表

将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 struct ListNode {int val;struct ListNode* next; }; w 方法一---不使用哨兵位 我们创建一个新链表用于合并两个升序链表&#xff0c; 将两个链表中最小的结点依次尾插到…

vue聊天对话语音消息播放动态特效

vue2写法&#xff0c;vue3也能用&#xff0c;粘之即走&#xff1a; 示例&#xff1a; <template><div class"voice-hidden"><divclass"voice-play-chat":class"[className, { animate-stop: !isPlaying }]"><div class&q…

深度学习7 梯度下降优化、过拟合、手机价格预测

三、BP算法 3、梯度下降 w w - lr * grad&#xff1a; w 表示权重&#xff0c;lr表示学习率&#xff0c;grad表示梯度 传统下降方式分三类&#xff1a;&#xff08;BGD&#xff09;批量梯度下降、&#xff08;MBGD&#xff09;小批量梯度下降、&#xff08;SGD&#xff09;随…

跑一下pyapp

文档&#xff1a;How-to - PyApp 首先没有rust要安装 安装 Rust - Rust 程序设计语言 查看是否安装成功 然后clone下pyapp https://github.com/ofek/pyapp/releases/latest/download/source.zip -OutFile pyapp-source.zip 进入目录中&#xff0c;cmd&#xff0c;设置环境…

Django模板系统

1.常用语法 Django模板中只需要记两种特殊符号&#xff1a; {{ }}和 {% %} {{ }}表示变量&#xff0c;在模板渲染的时候替换成值&#xff0c;{% %}表示逻辑相关的操作。 2.变量 {{ 变量名 }} 变量名由字母数字和下划线组成。 点&#xff08;.&#xff09;在模板语言中有…

【人工智能】Transformers之Pipeline(二十七):蒙版生成(mask-generation)

​​​​​​​ 目录 一、引言 二、蒙版生成&#xff08;mask-generation&#xff09; 2.1 概述 2.2 facebook/sam-vit-base 2.3 pipeline参数 2.3.1 pipeline对象实例化参数 2.3.2 pipeline对象使用参数 2.3.3 pipeline对象返回参数 2.4 pipeline实战 2.5 模型排…

gpt-computer-assistant - 极简的 GPT-4o 客户端

更多AI开源软件&#xff1a; AI开源 - 小众AIhttps://www.aiinn.cn/sources gpt-computer-assistant是一个将 ChatGPT MacOS 应用程序提供给 Windows 和 Linux 的替代工作。因此&#xff0c;这是一个全新且稳定的项目。此时&#xff0c;您可以轻松地将其作为 Python 库安装&am…

高通---Camera调试流程及常见问题分析

文章目录 一、概述二、Camera配置的整体流程三、Camera的代码架构图四、Camera数据流的传递五、camera debug FAQ 一、概述 在调试camera过程中&#xff0c;经常会遇到各种状况&#xff0c;本篇文章对camera调试的流程进行梳理。对常见问题的提供一些解题思路。 二、Camera配…

软件/游戏运行提示xrnm.dll丢失无法继续执行怎么办?xrnm.dll缺少最佳解决方法

xrnm.dll 文件并不是一个标准的Windows系统文件&#xff0c;也不是广泛已知的第三方应用程序的一部分。因此&#xff0c;如果你遇到了提示 xrnm.dll 文件丢失或缺失的问题&#xff0c;这可能是由于特定软件或游戏的要求&#xff0c;或者是某种错误配置、恶意软件感染或其他问题…

流媒体之linux下离线部署FFmpeg 和 SRS

前言 用户对网络做了限制&#xff0c;只能访问指定的网址&#xff0c;和没网没啥区别&#xff0c;导致无法连接外网&#xff0c;无法获取安装包&#xff0c;还有一些编译需要的开源工具 用户需要用平台查看库房的海康摄像头实时监控&#xff0c;只能在库房里一台纯净的ubantu…

在LabVIEW中实现HARQ协议

HARQ&#xff08;Hybrid Automatic Repeat reQuest&#xff09;可以在LabVIEW中实现。HARQ是一种结合了前向纠错&#xff08;FEC&#xff09;和自动重传请求&#xff08;ARQ&#xff09;的技术&#xff0c;用于提高数据传输的可靠性&#xff0c;尤其是在无线通信和数据链路中。…

网络协议(TCP/IP模型)

目录 网络初识 网络协议 协议分层 协议拆分 分层 协议分层的优势 1.封装效果 2.解耦合 TCP/IP五层模型 协议之间配合工作&#xff08;详解&#xff09; 网络初识 网络核心概念&#xff1a; 局域网&#xff1a;若干电脑连接在一起&#xff0c;通过路由器进行组网。 …

PH热榜 | 2024-12-05

1. Oopsie 标语&#xff1a;用AI和会话回放调试Flutter和React Native应用 介绍&#xff1a;Zipy推出的Oopsie是一款你唯一需要的AI赋能移动端调试工具&#xff0c;它能提供▶️会话回放、&#x1f916;错误监控、&#x1f4a1;AI生成的概要分析&#xff0c;以及&#x1f525…

文化央企再一次声明

央企再次声明 中传国华&#xff08;北京&#xff09;科技有限公司&#xff0c;成立于2023年5月29日&#xff0c;原法定代表人曹忠喜&#xff0c;统一社会信用代码&#xff1a;91110117MACL4B9A91&#xff0c;我司中传世纪控股&#xff08;北京&#xff09;有限公司系该司的原股…