江协科技51单片机学习- p14 调试LCD1602显示屏

 前言:

本文是根据哔哩哔哩网站上“江协科技51单片机”视频的学习笔记,在这里会记录下江协科技51单片机开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了江协科技51单片机教学视频和链接中的内容。

引用:

51单片机入门教程-2020版 程序全程纯手打 从零开始入门_哔哩哔哩_bilibili

c51语言变量语句意思,C51中循环语句-CSDN博客

LCD1602链接:

【常用传感器】LCD1602液晶工作原理详解及例程代码_lcd1602工作原理-CSDN博客

正文:

0. 概述

在淘宝上购买了江协科技51单片机开发板套件(普中科技STC51单片机A2型号),就上在上一篇博文里说的自己计划学习下江协科技51单片机开发教程,通过STC51单片机这种MCU这种贴近于裸机的开发来增加对于系统硬件层面知识的了解和掌握。

1. LCD1602显示屏调试显示

本节只使用江科大已经写好的LCD1602显示屏显示模块用来在STC51单片机开发板通过LCD1602液晶显示屏显示字符串和数字,不详细介绍LCD1602驱动显示的原理,会在后续可能里介绍STC51单片机如何驱动LCD1602显示屏。

这里我们只要会用别人已经写好的LCD模块,通过单片机在LCD1602显示屏上显示数据就可以了。

1.1 LCD1602简介

LCD1602 显示屏简介,引用自如下链接

【常用传感器】LCD1602液晶工作原理详解及例程代码_lcd1602工作原理-CSDN博客

LCD1602液晶显示屏

LCD ( Liquid Crystal Display 的简称)液晶显示器。能够同时显示16x2,32个字符,是一种专门用来显示字母、数字、符号等的点阵型液晶模块。

LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。它是由字符型液晶显示屏(LCD)、控制驱动主电路HD44780及其扩展驱动电路HD44100,以及少量电阻、电容元件和结构件等装配在PCB板上而组成。该显示屏的优点是耗电量低、体积小、辐射低。

LCD1602主要用来显示数字、字母、图形以及少量自定义字符。可以显示2行16个字符,拥有16个引脚,其中8位数据总线D0-D7,和RS、R/W、EN三个控制端口,工作电压为5V,并且带有字符对比度调节V0和背光源AK。

注:
我们所用的LCD屏的命名,基本都是按照其分辨率来进行命名的 比如lcd1602 就是分辨率为16×2 lcd12864 就是分辨率为128×64

1.2 LCD1602主要参数

  • 显示字符:16×2个字符
  • 工作电压:4.5~5V
  • 工作电流:2.0mA
  • 工作温度:-20°C~70°C
  • 模块最佳工作电压:5.0V
  • 单个字符尺寸2.95×4.35(W×Hmm)
  • 引脚:16脚

1.3  LCD1602引脚接线:

各引脚的功能介绍如下

 

2. 江协科技提供LCD1602 显示屏API接口

本实验所提供的 LCD1602 显示屏打印显示字符的API函数接口如下截图所示:

我使用的普中科技STC51单片机开发板A2型号电路原理图中 LCD1602 的接线如下截图所示,在我使用的普中科技STC51单片机开发板上,LCD1602 占用了单片机的 P0 口和 P2_5,P2_6,P2_7 这3个口。

因为普中科技STC51单片机开发板A2型的8位数码管使用的也是P0接口作为段码,所以在此开发板上 LCD1602 就和数码管显示冲突,使用LCD1602显示的时候数码管显示就不能使用了。

3. 源码编写使用LCD1602显示字符

源码编写使用LCD1602显示字符,本实验使用江协科技已经写好的 LCD 模块,直接调用江协科技LCD模块提供的API接口函数。第一步是在 main.c 函数中调用 LCD_init() 初始化LCD显示屏,然后就可以调用 LCD_ShowString() 显示字符串,LCD_ShowNum()显示无符号数,LCD_ShowChar()显示字符。

源码如下,需要使用将江协科技提供的示例源码里的 lcd.c 和 lcd.h 文件拷贝到本次实验的源码目录里。

#include <REGX52.H>
#include <INTRINS.H>
#include "LCD1602.h"
#include "delay.h"

void main()
{
	unsigned int result = 0;
	
	LCD_Init();
	
	LCD_ShowChar(1, 1, 'A');
	LCD_ShowChar(1, 2, 'B');
	LCD_ShowChar(1, 3, 'C');
	LCD_ShowChar(1, 4, 'D');
	
	LCD_ShowChar(1, 5, 'E');
	LCD_ShowChar(1, 6, 'F');
	LCD_ShowChar(1, 7, 'G');
	LCD_ShowChar(1, 8, 'H');
	
	
	LCD_ShowChar(1, 9,  'I');
	LCD_ShowChar(1, 10, 'G');
	LCD_ShowChar(1, 11, 'K');
	LCD_ShowChar(1, 12, 'L');
	
	
	LCD_ShowChar(1, 13, 'M');
	LCD_ShowChar(1, 14, 'N');
	LCD_ShowChar(1, 15, 'O');
	LCD_ShowChar(1, 16, 'P');
	
	
	LCD_ShowString(2, 1, "Hello World, STC51!");
	
	
	
	Delay(2000);
	LCD_Init();
	
	LCD_ShowNum(1, 3, 5, 4);
	
	Delay(2000);
	LCD_Init();
	
	LCD_ShowSignedNum(1, 12, -66, 2);
	
	
	LCD_Init();
	while(1)
	{
		Delay(1000);
		LCD_ShowNum(1,1,result,6);
		result++;

	}
}

使用STC-ISP将编译好的 hex 文件下载到单片机开发板里,显示效果如下,在LCD1602 上下两行全部显示了字符。

4. 总结

本实验使用江协科技已经写好的 LCD 模块,直接调用江协科技LCD模块提供的API接口函数进行LCD1602 屏幕先显示打印调试信息,而先不去分析LCD1602显示屏驱动的原理,在后续可能中会再学习。

LCD1602 显示屏可以显示两行,每行16个字符,共 2 *16 个字符。

4.1 默认插上LCD1602显示屏时显示屏都显示为白色方块

默认插上LCD1602显示屏时显示屏都显示为白色方块,根据哔站视频弹幕的提示需要单片机开发板上液晶显示屏插座位置附件的 103 可调电阻的阻值,调整到一个合适的电阻值,液晶屏默认就不会显示白色方块了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

YouTube API接口:一键获取Playlist视频合集信息

核心功能介绍 在视频内容日益繁荣的今天&#xff0c;YouTube作为全球领先的视频分享平台&#xff0c;为内容创作者、品牌商家以及数据分析师提供了丰富的视频资源。其中&#xff0c;Playlist视频合集作为YouTube上的一种特色内容形式&#xff0c;深受用户喜爱。为了更好地满足…

cpolar:通过脚本自动更新主机名称和端口号进行内网穿透【免费版】

cpolar 的免费版经常会重新分配 HostName 和 Port&#xff0c;总是手动修改太过麻烦&#xff0c;分享一下自动更新配置文件并进行内网穿透的方法。 文章目录 配置 ssh config编写脚本获取 csrf_token打开登陆界面SafariChrome 设置别名 假设你已经配置好了服务器端的 cpolar。 …

计算机视觉解决什么问题?

本节课为「计算机视觉 CV 核心知识」第一节课正式课&#xff1b; 「AI秘籍」系列课程&#xff1a; 人工智能应用数学基础人工智能Python基础人工智能基础核心知识人工智能BI核心知识人工智能CV核心知识 Hi&#xff0c;大家好。我是茶桁。 老同学对我应该都很熟悉了&#xff…

2小时极速入门 TypeScript-慕课网 笔记

TS文档&#xff1a;https://www.tslang.cn/docs/handbook/modules.html 一&#xff0c;什么是TS 注:Typescript无法在浏览器中运行 ,所以需要编译器,将TS转变为JS 问&#xff1a;TS运行这么麻烦&#xff0c;为什么还要有TS&#xff1f; 答&#xff1a;TS强类型 1&#xff0c;规…

图解构建知识体系的过程

点击标题下「蓝色微信名」可快速关注 无论是日常的学习还是工作过程中&#xff0c;每个人其实都可以找到适合自己的学习方式和知识体系&#xff0c;如果方向正确&#xff0c;就可以事半功倍&#xff0c;之前借鉴某些数据库技术的知识体系聊过相关的主题&#xff08;可以参考《搭…

车载以太网权威指南阅读笔记

总体思路&#xff1a; 要基于车载以太网做出相应的机器人以太网神经中枢&#xff0c;需要按照以下步骤&#xff1a; 了解车载以太网&#xff0c;包括但不限于 车载以太网是如何基于汽车需求定义的车载以太网的工作模式车载以太网工作所需要的硬件车载以太网中的数据交互模式 …

Docker如何安装redis

目录 1. 拉取redis的镜像文件 2. 创建redis的容器卷 3. 准备reids的配置文件 4. 以配置文件启动redis 1. 拉取redis的镜像文件 # 默认安装最新版本 如果需要指定版本 docker pull redis:版本号 docker pull redis 详细版本请看dockerhub的官网&#xff1a; hub.docker…

仓颉编程语言入门

华为在 2024 年 6 月 21 日的华为开发者大会上&#xff0c;华为终端 BG 软件部总裁龚体正式官宣了华为自研仓颉编程语言&#xff0c;并发布了 HarmonyOS NEXT 仓颉语言开发者预览版。 仓颉编程语言文件后缀名为 .cj, 以下是第一个入门代码输出&#xff1a;你好&#xff0c;仓颉…

公司倒闭被迫踏上海投简历道路,经历打压受挫后总结的Android面经,互相激励!

红黑树有啥特性? 在oncreate里面可以得到view的宽高吗? view的getwidth和getmesurewidth有啥区别? 遍历hashmap的原理? 23种设计模式 中园博林(有笔试) 如何避免out of menmory和anr? arraymap和hashmap的区别? 如何实现线程同步? 简述android事件分发机制 简…

怎么投资中证全指证券公司指数?

中证全指证券公司指数的代码是399975&#xff0c;有50只成分股&#xff0c;几乎包含了市场上所有主要的证券公司&#xff0c;算是指数基金中投资证券行业的不二选择。 根据天天基金的数据显示&#xff0c;市面上有31只跟踪该指数的基金&#xff0c;规模最大的是南方中证全指证…

EtherCAT笔记(三) —— 主站与从站的硬件组成

1. EtherCAT 主站的硬件组成 EtherCAT主站使用标准以太网控制器&#xff0c;也即EtherCAT主站可以使用以太网控制器的任何设备。当我们有一台带网口的笔记本、工控机&#xff0c;甚至是树莓派也可以作为EtherCAT主站。 EtherCAT协议是对Ethernet协议在实时控制等方面的优化&am…

爬虫笔记14——爬取网页数据写入MongoDB数据库,以爱奇艺为例

下载MongoDB数据库 首先&#xff0c;需要下载MongoDB数据库&#xff0c;下载的话比较简单&#xff0c;直接去官网找到想要的版本下载即可&#xff0c;具体安装过程可以看这里。 pycharm下载pymongo库 pip install pymongo然后在在python程序中我们可以这样连接MongoDB数据库…

git stash Pop 后丢失,要如何找回?

文章目录 须知背景描述解决过程 须知 写在前面&#xff1a;我们都知道 stash list 中如果 pop 出来一条&#xff0c;那 list 里就会少一条&#xff0c;但其实使用 git stash pop 并没有真正地将该条 stash 删掉的&#xff0c;而是删除引用而已&#xff0c;因此当我们误 pop 时…

STM32学习 修改系统主频

前面时钟树的学习说明单片机的主频是可以修改的&#xff0c;那么怎么更改系统的主频&#xff0c;这里做一个简单的介绍。首先要明白&#xff0c;单片机的程序是如何运行&#xff0c;这里简单说明一下。 对应的代码在startup_stm32....文件里面&#xff0c;这里是复位程序的汇编…

vue3封装菜树,递归展示只显示第一层

问题描述 vue3封装菜树&#xff0c;递归展示只显示第一层 解决 需要在递归的组件中导出自己给自己使用

【网络安全的神秘世界】SQL注入漏洞

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 本章知识使用的靶场&#xff1a;DVWA 一、漏洞简介 SQL&#xff1a;结构化查询语言&#xff0c;是一种特殊的编程语言&#…

【设计模式深度剖析】【11】【行为型】【解释器模式】| 以算术表达式求值为例加深理解

&#x1f448;️上一篇:状态模式 设计模式-专栏&#x1f448;️ 文章目录 解释器模式定义英文原话直译 解释器模式中的角色1. 抽象表达式&#xff08;AbstractExpression&#xff09;2. 终端表达式&#xff08;TerminalExpression&#xff09;3. 非终端表达式&#xff08;Non…

电容的命名规则

给如下参数给采购&#xff0c;就可以获取 还有一些参数需要重视 容值随着环境温度而保持的程度 常规应用时是可以不用看材质&#xff0c;但是如果使用在新能源汽车和极端环境下的电子产品&#xff0c;就需要关注材质&#xff0c;曾有供应商把可用级电容供应车企&#xff0c;导致…

微信小程序学习(六):常用原生 API

&#x1f517;API官方文档 1、网络请求 wx.request({// 接口地址&#xff0c;仅为示例&#xff0c;并非真实的接口地址url: example.php,// 请求的参数data: { x: },// 请求方式 GET|POST|PUT|DELETEmethod: GET,success (res) {console.log(res.data)},fail(err) {console.…

vue3源码(五)ref、toRef、toRefs、proxyRefs

1.ref 功能 ref与reactive功能类似,都是将数据变为响应式&#xff0c;ref通常用来定义基本类型数据&#xff0c;如字符串、数字、布尔值等。而reactive用来定义对象&#xff08;或数组&#xff09;类型数据。虽然ref也可以用来定义对象或数组类型的数据&#xff0c;但内部会通…