LCD12864液晶显示模块的使用与分析
LCD12864液晶显示模块的使用与分析(函代码分析)
一、LCD12864功能应用
LCD12864液晶显示模块能显示中文汉字、数字、字符,能显示数字与字符的个数为64个(4行,每行16个数字或字符),能显示汉字的个数为32个(4行,每行8个汉字)。其内置了8192个中文汉字(16*16的点阵)、128个字符(8*16点阵)、以及 64*256 点阵显示 RAM(GDRAM)。
图1外观尺寸图
图2外观尺寸图
图3 LCD12864读操作时序
图4 LCD12864写操作时序
二、LCD12864主要技术参数
(1)工作电压:3.3V-5.5V,模块最佳电压为5V。
(2)可以在显示界面显示数字、字母和中文汉字。
(3)与外部单片机的通信方式有并行或串行两种通信方式,这里主要介绍并行通信方式。
(4)显示内容:128 列× 64 行
(5)显示颜色:黄绿/蓝屏/灰屏
(6)LCD 类型:STN
(7)与 MCU 接口:8 位或 4 位并行/3 位串行
(8)配置 LED 背光
(9)多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等
三、LCD12864液晶显示的电路用法分析
图5 LCD12864电路连接图
图6 LCD12864电路连接图
LCD12864模块主要用来显示所要的界面信息或数据,所以要求能显示汉字,字符和数字,而LCD12864满足系统要求的显示功能。LCD12864在显示字母和数字时,是4*16的显示字符模块,即可以显示4行,每行可以显示16个字母或数字;在显示汉字时,是4*8的汉字显示模块,即可以显示4行,每行可以显示8个汉字。下面进行介绍的是并行通信的显示方式。
按照电路原理图跟单片机最小系统进行连线,如图6所示。LCD12864共有20个引脚,其引脚具体功能如表1所示,由表可得LCD12864引脚组成为8位数据传输端口(DB0-DB7);两个电源引脚(VCC,GND);两个电源背光引脚(BLK,BLA),控制LCD的背景亮度;一个VO引脚,外接一个上拉电阻(控制LCD12864的字符对比度,让字符更加的清晰可见);RST复位引脚,低电平有效,此处直接接高电平;第16、17位空引脚,不用管;剩下的RS,RW,EN和PSB四个引脚则跟LCD12864的写入息息相关,通过PSB可以控制LCD12864跟单片机的通信方式,输入高电平,则LCD12864跟单片机的通信模式为并行通信,低电平则为串行通信。单片机对RS,RW,EN端口的写入控制,则可以控制LCD12864的数据传输模式,决定单片机写入LCD12864数据端口DB的是命令还是数据。写入命令可以控制LCD的模式和工作状态,然后写入数据,让LCD显示需要的界面。
引脚号 |
引脚名称 |
方向 |
功能简介 |
1 |
GND |
- |
模块的电源的接地引脚 |
2 |
VCC |
- |
模块的电源的正极引脚 |
3 |
V0 |
- |
LCD驱动电压输入端口 |
4 |
RS(CS) |
H/L |
并行的指令/数据选择信号;串行的片选信号 |
5 |
R/W(SID) |
H/L |
并行的读写选择信号;串行的数据口 |
6 |
EN(CLK) |
H/L |
并行的使能信号;串行的同步时钟 |
7 |
DB0 |
H/L |
数据端口0 |
8 |
DB1 |
H/L |
数据端口1 |
9 |
DB2 |
H/L |
数据端口2 |
10 |
DB3 |
H/L |
数据端口3 |
11 |
DB4 |
H/L |
数据端口4 |
12 |
DB5 |
H/L |
数据端口5 |
13 |
DB6 |
H/L |
数据端口6 |
14 |
DB7 |
H/L |
数据端口7 |
15 |
PSB |
H/L |
串/并行接口选择端口 H-并行 L-串行 |
16 |
NC |
空脚 |
|
17 |
/RST |
H/L |
复位引脚,低电平有效 |
18 |
VOUT |
倍压输出脚(VDD=+3.3有效) |
|
19 |
LED_A |
- |
背光电源正极+5V |
20 |
LED_B |
- |
背光电源负极 0V |
表1 LCD12864端口引脚说明
四、LCD12864液晶显示的软件代码分析
LCD12864液晶显示主要包括写入命令和写入数据两种操作方法,其基本代码解释如下。
#include<reg51.h>
#include<intrins.h> /*汇编函数库*/
#include<stdlib.h> /*函数库,可查*/
#define uchar unsigned char /*宏定义-8位的字符型变量*/
#define uint unsigned int /*宏定义-16位的整型变量*/
/*端口定义*/
#define LCD_data P0;
sbit LCD_RS = P2^0;
sbit LCD_RW = P2^1;
sbit LCD_EN = P2^2;
sbit LCD_PSB = P2^3;
/*显把示变量存储到数组里面*/
uchar dis1[] = {" 控制系统 "};
uchar dis2[] = {" N-TEMP: 30℃ "};
uchar dis3[] = {" 30 ℃-40 ℃ **"};
uchar dis4[] = {"S-TEMP: 40℃ LZF"};
/*延时函数*/
void delay_1ms(uint x)
{
uint i,j;
for(j=0;j<x;j++)
for(i=0;i<110;i++);
}
/*写入命令到LCD12864,令RS=L,RW=L,EN=高脉冲,D0-D7=指令码。*/
void write_cmd(uchar cmd)
{
LCD_RS = 0;
LCD_RW = 0;
LCD_EN = 0;
P0 = cmd;
delay_1ms(5);
LCD_EN = 1;
delay_1ms(5);
LCD_EN = 0;
}
/*写入数据到LCD12864,令RS=H,RW=L,EN=高脉冲,D0-D7=指令码。*/
void write_dat(uchar dat)
{
LCD_RS = 1;
LCD_RW = 0;
LCD_EN = 0;
P0 = dat;
delay_1ms(5);
LCD_EN = 1;
delay_1ms(5);
LCD_EN = 0;
}
/*设定显示位置*/
void lcd_pos(uchar X,uchar Y)
{
uchar pos;
if(X==0)
{X=0x80;}
else if(X==1)
{X=0x90;}
else if(X==2)
{X=0x88;}
else if(X==3)
{X=0x98;}
pos = X+Y;
write_cmd(pos);
}
/*LCD初始化设定*/
void lcd_init()
{
LCD_PSB = 1; //并行方式
write_cmd(0x30); //基本指令操作
delay_1ms(5);
write_cmd(0x0C); //显示开,关光标
delay_1ms(5);
write_cmd(0x01); //清除LCD的显示内容
delay_1ms(5);
}
/*主程序*/
void main()
{
uchar i;
delay_1ms(10); //延时
lcd_init(); //初始化LCD
lcd_pos(0,0); //设置显示位置为第一行的第一个字符
i = 0;
while(dis1[i]!='\0')
{
write_dat(dis1[i]); //显示字符
i++;
}
lcd_pos(1,0); //设置显示位置为第二行的第一个字符
i = 0;
while(dis2[i]!='\0')
{
write_dat(dis2[i]); //显示字符
i++;
}
lcd_pos(2,0); //设置显示位置为第三行的第一个字符
i = 0;
while(dis3[i]!='\0')
{
write_dat(dis3[i]); //显示字符
i++;
}
lcd_pos(3,0);
i = 0;
while(dis4[i]!='\0')
{
write_dat(dis4[i]); //显示字符
i++;
}
}
实物显示图
LCD12864液晶显示模块的使用与分析相关推荐
- LCD12864液晶显示
@ LCD12864液晶显示 以Proteus中的AMPIRE12864介绍 LCD12864液晶介绍 LCD12864与LCD1602同样都被广泛使用,两者有相似之处方便介绍LCD12864.LCD ...
- 12864点阵液晶显示模块的原理和实例程序(HJ12864M-1)
12864点阵液晶显示模块(LCM)就是由 128*64个液晶显示点组成的一个128列*64行的阵列.每个显示点对应一位二进制数,1表示亮,0表示灭.存储这些点阵信息的RAM称为显示数据存 储器.要显 ...
- 51单片机+LCD12864液晶显示的俄罗斯方块游戏,Proteus仿真、AD原理图、代码、论文等
设计要求 (1)利用51单片机,设计一款俄罗斯方块游戏,完成硬件电路的开发和程序的编写调试: (2)采用LCD12864液晶作为游戏运行界面: (3)利用按键输入灵活控制方块的移动与变形: (4)能够 ...
- 拓普微智能TFT液晶显示模块
关键词: 串口屏, 液晶屏, TFT,人机界面 概述: 智能模块(Smart LCD)是专为工业显示应用而设计的TFT液晶显示模块. 模块自带主控IC.Flash存储器.实时嵌入式操作系统,客户主机可 ...
- 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----自定义攻击篇
对现有的所能找到的DDOS代码(攻击模块)做出一次分析----自定义攻击篇 //=================================================== 分析者:alal ...
- 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----UDP篇
//========================================= 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----UDP篇 文章作者:alalmn-飞龙 信息来源: ...
- 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----SYN(洪水攻击)篇
对现有的所能找到的DDOS代码(攻击模块)做出一次分析----SYN(洪水攻击)篇 //======================================================== ...
- SMG12232A2标准图形点阵型液晶显示模块的演示程序[C51编程语言]
//SMG12232A2标准图形点阵型液晶显示模块的演示程序[C51编程语言][MCS51总线接口方式] //应用产品: SMG12232A2标准图形点阵型液晶显示模块 // 本演示程序适用于SMG1 ...
- alientek ministm32液晶显示程序_佳显12864中文字库液晶专业生产液晶显示模块
GDRAM:(Graphic Display RAM):图形显示RAM,这一块区域用于绘图,往里面写啥,屏幕就会显示啥,它与DDRAM的区别在于,往DDRAM中写的数据是字符的编码,字符的显示先是在C ...
最新文章
- python3 报错 [Errno 5] Input/output error 没有stdout时使用了print
- Android 实训日志:基于外部存储的音乐播放器V03
- JAVA多线程之先行发生原则
- kotlin 计算平方_Kotlin程序来计算复利
- python比较时间的最大值_时间戳的最大值
- 伺服怎么接单相220伏_三相380伏电机能接单相220伏运行吗?
- 力控批量添加变量_力控组态软件的变量操作函数1
- iPhone 12不支持双卡5G?媒体实测结论终于让大家安心
- HDU2553_N皇后_位运算DFS
- Centos7安装RocketMQ及配置测试
- 机器学习基础算法20-回归曲线拟合
- 树莓派和Ubuntu16 一些软件的安装
- 在那里可以下载jar包?
- 大型电商数据库设计与分析
- win7系统玩游戏提示“运行时出错!初始化DirectX运行库失败 ”的解决方法
- 电脑BIOS为UEFI BIOS,出现蓝屏情况“你的设备遇到问题,需要重启。我们只收集某些错误信息,然后你可以重新启动。100%完成“,解决方法。
- Coursera 申请助学金流程和材料
- 反直觉的一个游戏 - 三门问题 (Monty Hall problem)
- docker java -jar_使用Docker安装Java镜像运行jar包方法
- GitHub 又一黑科技项目面世!网友惊呼:这也太强了
热门文章
- 笔记本计算机风扇声音大怎么办,怎么解决笔记本风扇声音大 笔记本风扇声音大解决办法【图文】...
- APS计划排产软件助家纺企业进行成本控制
- java编写邮箱地址、邮箱验证
- 淘宝美工教程:1小时让店铺高大上-优就业-专题视频课程
- 如何快速自动填充空白单元格上一行的内容
- mac多开屏幕_Mac系统如何实现多屏显示画面?让Mac系统多屏显示画面的设置方法...
- ESP32学习笔记(1)——搭建环境、编译烧写(Windows+VS Code)
- ssm+Vue计算机毕业设计学科竞赛赛场安排系统(程序+LW文档)
- 发扑克牌java程序_Java实现简易扑克牌游戏
- python控制流实例_python学习笔记系列----(二)控制流