12864液晶 介绍
本小节目录:
8.1,12864液晶的简介
8.2,12864液晶连接单片机原理图
8.3,12864时序图的分析和程序编写
液晶是非常能给人视觉享受的东西啦!例如手机的液晶屏,液晶电视,………,浪漫点的还有液晶灯,迷人的液晶鞋,炫酷的液晶手表,,,,,,等等!但不管怎么说,还是学会使用最简单的液晶吧!
8.1.1)12864液晶的简介
常用的12864液晶模块有黄绿背光的、蓝色背光的,有带/不带字库的,其控制芯片主要有如KS0108、T6863、ST7920等,这里本人用的为ST7920为控制芯片的YB12864-ZB液晶屏。但不管用什么类型的12864,其使用操作都大同小异!当然,如果会使用1602了,12864的使用也变得事半功倍啦!
1)关于12864液晶的说明:
1,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM),显然比1602高级!
2,可以选择8位并行或者4位串行操作
3,可以显示128列× 64行内容,可实现文字与图形混合显示功能、可以自由的设置光标、显示移位功能、垂直画面旋转功能、反白显示功能、休眠模式等
图1 12864液晶实物图
2)12864液晶接口说明:
图2 12864液晶接口图
简介上图:
1,引脚3(VL):一般接一个103的电位器,用于调节液晶的显示亮度。
2,引脚15(PSB):高电平时选择并口,低电平时选择串口
3,引脚16(NC):空脚即不需要接任何管脚即可。
3)12864状态字说明
表8-1 状态字分布表
STA7 D7 |
STA6 D6 |
STA5 D5 |
STA4 D4 |
STA3 D3 |
STA2 D2 |
STA1 D1 |
STA0 D0 |
||
STA0~STA6 |
当前地址指针的数值 |
- |
|||||||
STA7 |
读/写操作使能 |
1:禁止 0:使能 |
|||||||
严格来说,对控制器每次进行读写操作之前,都必须进行读写检测,确保STA7为0。也即一般程序中所谓的判断忙操作。
8.1.2)12864指令说明
表8-2基本指令表
指令名称 |
指令码 |
指令说明 |
|||||||
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
||
清屏 |
L |
L |
L |
L |
L |
L |
L |
H |
清屏:1、数据指针清零 2、所有显示清零 |
归位 |
L |
L |
L |
L |
L |
L |
H |
* |
AC = 0,光标、画面回HOME位 |
输入方式 设置 |
L |
L |
L |
L |
L |
H |
ID |
S |
ID=1→AC自动增一; ID=0→AC减一 S=1→画面平移; S=0→画面不动 |
显示开 关控制 |
L |
L |
L |
L |
H |
D |
C |
B |
D=1→显示开;D=0→显示关 C=1→游标显示;C=0→游标不显示 B=1→游标反白;B=0→光标不反白 |
移位控制 |
L |
L |
L |
H |
SC |
RL |
* |
* |
SC=1→画面平移一个字符; SC=0→光标 R/L=1→右移;R/L=0→左移 |
功能设定 |
L |
L |
H |
DL |
* |
RE |
* |
* |
DL=0→8位数据接口; DL=1→4位数据接口 RE=1→扩充指令; RE=0→基本指令 |
设定 CGRAM 地址 |
L |
H |
A5 |
A4 |
A3 |
A2 |
A1 |
A0 |
设定CGRAM地址到地址计数器(AC),AC范围为00H~3FH需确认扩充指令中SR=0 |
设定 DDRAM 地址 |
H |
L |
A5 |
A4 |
A3 |
A2 |
A1 |
A0 |
设定DDRAM地址计数器(AC) 第一行AC范围:80H~8FH 第二行AC范围:90H~9FH |
表8-3扩充指令表
指令名称 |
指令码 |
指令说明 |
|||||||
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
||
待命模式 |
L |
L |
L |
L |
L |
L |
L |
H |
进入待命模式后,其他指令都可以结束待命模式 |
卷动 RAM 地址选择 |
L |
L |
L |
L |
L |
L |
H |
SR |
SR=1→允许输入垂直卷动地址 SR=0→允许输入IRAM地址(扩充指令)及设定CGRAM地址 |
反白显示 |
L |
L |
L |
L |
L |
H |
L |
R0 |
R0=1→第二行反白;R0=0→第一行反白(与执行次数有关) |
睡眠模式 |
L |
L |
L |
L |
H |
SL |
L |
L |
D=1→脱离睡眠模式; D=0→进入睡眠模式 |
扩充功能 |
L |
L |
H |
DL |
* |
RE |
G |
* |
DL=1→8位数据接口; DL=0→4位数据接口 RE=1→扩充指令集; RE=0→基本指令集 G=1→绘图显示开; G=0→绘图显示关; |
设定 IRAM地址 卷动地址 |
L |
H |
A5 |
A4 |
A3 |
A2 |
A1 |
A0 |
SR=1→A5~A0为垂直卷动地址 SR=0→A3~A0为IRAM地址 |
设定 绘图RAM 地址 |
H |
L |
L |
L |
A3 |
A2 |
A1 |
A0 |
垂直地址范围:AC6~AC0 水平地址范围:AC3~AC0 |
A6 |
A5 |
A4 |
A3 |
A2 |
A1 |
A0 |
8.1.3) 12864显示坐标关系
1)汉字显示坐标
表8-4汉字显示坐标地址表
行名称 |
列地址 |
|||||||
第一行 |
80H |
81H |
82H |
83H |
84H |
85H |
86H |
87H |
第二行 |
90H |
91H |
92H |
93H |
94H |
95H |
96H |
97H |
第三行 |
88H |
89H |
8AH |
8BH |
8CH |
8DH |
8EH |
8FH |
第四行 |
98H |
99H |
9AH |
9BH |
9CH |
9DH |
9EH |
9FH |
2)绘图坐标分布图
图3 12864液晶绘图显示坐标
水平方向有128个点,垂直方向有64个点,在更改绘图RAM时,由扩充指令设置GDRAM地址,设置顺序为先垂直后水平地址(连续2个字节的数据来定义垂直和水平地址),最后是2个字节的数据给绘图RAM(先高8位,后低8位)。
最后总结一下12864液晶绘图的步骤,步骤如下:
1) 关闭图形显示,设置为扩充指令模式。
2) 写垂直地址,分上下半屏,地址范围为:0~31。
3) 写水平地址,两起始地址范围分别为:0x80~0x87(上半屏)、0x88~0x8F(下半屏)。
4) 写数据,一帧数据分两次写,先写高8位,后写低8位。
5) 开图形显示,并设置为基本指令模式。
在此说明一点,也是好多新人模糊的地方。ST7920可控制256*32点阵(32行256列),而12864液晶实际的行地址只有0-31行,12864液晶的32-63行是从0-31行的第128列划分出来的。也就是说12864的实质是“256×32”,只是这样的屏“又长又窄”,不适用,所以将后半部分截下来,拼装到下面,因而有了上下两半屏之说。再通俗点说第0行和第32行同属一行,行地址相同;第1行和第33行同属一行,以此类推。
如果还不明白,暂时不需要深究,当会用的时候,自然而然就会明白了!
8.2)12864液晶连接单片机原理图
图4 麦光单片机开发板中液晶连接单片机图
有些初学者可能会问? 为什么电路图是这样连接的,读者可以对照上图2即知
接口说明:
1)液晶1、2为电源接口; 19、20为背光电源。
2) 液晶3端为液晶对比度调节端,其中连接一个10KΩ电位器来调节液晶对比度第一次使用时,在液晶上电状态下,调节至液晶上面一行显示出黑色小格为止。
3) 液晶4端为向液晶控制器写数据、命令选择端,接单片机的P3.5口。
4)液晶5端为读、写选择端,接单片机的P3.4口。
5)液晶6端为使能信号端,接单片机的P3.3口。
6)液晶15端为串(L)、并(H)口选择端,接单片机的P3.2口。
7)液晶16、18为空管脚口,在硬件上不做连接。
8)液晶7~14为8位数据端口,依次接单片机的P0口。
8.3,12864时序图的分析和程序编写
这里本人只介绍并行操作,串行操作基本留给感兴趣的读者去探索吧!
1) 并行写操作时序图
图5 12864写操作时序图
相信看懂1602的人都很容易知道时序图了,在此不多说
/*************************************************
函数功能: 写命令数据到LCD
入口参数: Cmd
出口参数: void
RS=L; RW=L, E=高脉冲,D0~D7=指令码
**************************************************/
void Write_LCD_Command(Uchar8 Cmd) // 写命令
{
LCD_Busy_Wait(); // 忙检测
LCD_Rs = 0;
LCD_Rw = 0;
LCD_En = 0;
P0 = Cmd;
Delay_1ms(5);
LCD_En = 1;
Delay_1ms(5);
LCD_En = 0;
}
/*************************************************
函数功能: 写数据
入口参数: Data
出口参数: void
RS = H, RW = L, E= 高脉冲, D0~D7= 数据。
*************************************************/
void Write_LCD_Data(Uchar8 Date) // 写数据
{
LCD_Busy_Wait(); // 忙检测
LCD_Rs = 1;
LCD_Rw = 0;
LCD_En = 0;
P0 = Date;
Delay_1ms(5);
LCD_En = 1;
Delay_1ms(5);
LCD_En = 0;
}
以上程序的说明基本跟1602液晶是一样的
/*******************************************************
函数功能:行列(位置)选择,设定显示位置
入口参数:X(行)、Y(列)
出口参数:无
******************************************************/
void lcd_pos(Uchar8 X, Uchar8 Y)
{
Uchar8 pos;
if(X ==1) {X = 0x80;} // 第一行
else if(X == 2) {X = 0x90;} // 第二行
else if(X == 3) {X = 0x88;} // 第三行
else if(X == 4) {X = 0x98;} // 第四行
pos = X+Y;
Write_LCD_Command(pos); // 显示地址
}
由于程序太长,为了更好编辑,本人已将剩下程序上传,需看可下载。
本人见过有些程序中没有忙检测也是可以的,但个人一直认为:加上忙检测LCD_Busy_Wait()是非常有必要的,为什么?1,对于电子学习的一种严谨,培养这种意识吧 2,为日后我们使用更大,更复杂液晶的时候避免出现不必要的麻烦呀!3,一颗不严谨,不靠谱的心,如何给女人安全感呀?嘿嘿………..
怎么说液晶也算是有点娇气的东东啦!并且很多液晶价格蛮贵的!还是建议看看佳佰科技有关于液晶使用注意事项吧:
1.处理
(1)要避免在处理机械振动和对模块施加外力,都可能使屏不显示或损坏。
(2)不能用手或坚硬工具或物体接触、按压、磨擦显示屏,否则屏上的偏光片被物体划坏。
(3)如果屏破裂液晶材料外漏,液晶可以通过空气被吸入,而且要避免液晶与皮肤接触,如果接,触应立即用酒精冲洗,然后再用水彻底冲洗。
(4)不能使用可溶有机体来清洗显示屏。因为这些可溶的溶剂对偏光片不利,清洗显示屏时,可
用棉花蘸少量石油苯轻轻擦拭或用透明胶带粘起脏物。
(5)要防止高压静电产生的放电,将损坏模块中的 CMOS 电路。
(6)不能把模块放在温度高的地方,尤其不能长时间放在湿度大的地方,最好把模块放在温度为
0℃-35℃,湿度低于 70%的环境中。
(7)模块不能贮存在太阳直射的地方。
2.操作
(1)当电源接通时,不能组装或拆卸模块。
(2)在电源电压的偏差、输入电压的偏差及环境温度等最坏条件下,也不能超过最大的额定值,
否则将损坏 LCD 模块。
12864液晶 介绍相关推荐
- STC51-1602、12232、12864液晶
1 液晶概述 液晶(LiquidCrystal) 是一种高分子材料,因为其特殊的物理.化学.光学特性,20世纪中叶开始广泛应用在轻薄型显示器上. 液晶显示器(LiquidCrystal ...
- 12864液晶8x16ascii点阵_【单片机自学】7.液晶实验
1.液晶1602 硬件原理及连线 图1.1 开发板连线图 图1.2 开发板实物图 图1.3 液晶1602 表格3.7.1.1 引脚功能介绍 液晶1602的使用非常的方便,数据线8条,控制线3条,其实总 ...
- 12864液晶深入学习笔记_1——基于msp430g2553
12864液晶学习笔记 Created on: 2012-8-30 Author: zhang bin 这是我对12864的学习笔记,12864液晶功能很全面,使用起来也很方便,能够满足一般的研究和工 ...
- STC51入门笔记(郭天祥C语言)---第八节:通用型1602,12232,12864液晶操作方法
声明:本篇文章只是个人知识盲区.知识弱点.重点部分的归纳总结,望各位大佬不喜勿喷.梳理顺序是按照书籍的实际顺序梳理,转载请注明出处. 作者:sumjess 一.液晶概述: 液晶(LiquidCryst ...
- MSP430程序库三12864液晶程序库
液晶是单片机系统最常用的显示设备之一,这个程序库是在MSP430F169.MSP1430F149单片机上测试通过的,可以放心使用:液晶选用的是金鹏的:OCMJ4X8C型号的12864液晶:控制液晶用的 ...
- 12864液晶驱动源码,独创中英文混合输出
12864液晶驱动源码,独创中英文混合输出 51单片机学习笔记:ST7920控制器的12864液晶使用总结 转载于:https://www.cnblogs.com/LittleTiger/p/4724 ...
- STM32驱动ST7920的12864液晶(串行方式)
/****************************************************************************************** * 文件名称 : ...
- 51单片机三线串行驱动12864液晶
以前写12864的液晶程序都是用的并行的方式,这种方式焊接起来很麻烦,而且占用的IO口比较多. 今天尝试使用串行方式来驱动该模块. 本程序是基于STC89C52的12864串行模式的程序,硬件电路连接 ...
- 基于s3c2440的12864液晶驱动
基于s3c2440的12864液晶驱动 12864是12864点阵液晶模块的点阵数简称,业界约定俗成的简称. 一.液晶显示模块概述 12864A-1 汉字图形点阵液晶显示模块,可显示汉字及图形,内置 ...
- 使用虚拟显存方式操作12864液晶
通常操作12864液晶时,画点函数没有TFT那么方便,我一直都是使用内存虚拟一个显存方式,画点函数将使用内存的一个bit,然后更新到实际屏幕上.12864液晶将需要1KB的内存,我使用的256128需 ...
最新文章
- java object 引用类型_java中的四种引用类型
- MyBatis整合Spring的实现(2)
- oracle查询哪个sql占用资源,查询oracle最耗资源的sql语句
- vue中路径带# vs 不带#
- WPF中ListBox的样式设置
- 异步类随机多址接入分析
- IDEA手动安装Scala插件[zt]
- hibernate级联 cascade属性(转)
- linux红帽7修改时间,CentOS 7 and RedHat 7 时间同步即chrony服务配置
- 嵌入式的苦逼从何而来
- this指向问题(箭头函数)
- wampserver显示红色、橙色的解决方案
- 软件定义边界(SDP)简介
- 【MATLAB】MATLAB 仿真模拟调制系统 — DSB 系统
- java保存图片_java 保存图片
- 图解 生成对抗网络GAN 原理 超详解
- 思科网络安全 第十一章测验答案
- 获取上一个交易日—python
- NXP-RT1052入门
- 博途v15模拟量转换_S7-1200PLC中的模拟量转换
热门文章
- 中兴机顶盒服务器地址大全,中兴机顶盒网络设置无线路由器教程
- 截图上传录屏gif上传工具推荐
- iptv管理系统php制作,云水日记-双子星IPTV管理系统搭建教程
- iweboffice之word——自定义菜单的使用
- php zip扩展文件,php使用ZipArchive扩展实现文件的zip压缩与zip解压
- Ubuntu Class ZipArchive not found
- ipmitool源码解析(一)——一次带内ipmitool raw data发送过程
- PAT 乙级 Java 合集
- Windows Ubuntu,软件推荐,小技巧总结,免费内网穿透方案
- OC语言基础十:OC文件操作