前言:
本文是根据哔哩哔哩网站上“江协科技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 可调电阻的阻值,调整到一个合适的电阻值,液晶屏默认就不会显示白色方块了。