本小节目录:

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液晶 介绍相关推荐

  1. STC51-1602、12232、12864液晶

    1 液晶概述 液晶(LiquidCrystal) 是一种高分子材料,因为其特殊的物理.化学.光学特性,20世纪中叶开始广泛应用在轻薄型显示器上.         液晶显示器(LiquidCrystal ...

  2. 12864液晶8x16ascii点阵_【单片机自学】7.液晶实验

    1.液晶1602 硬件原理及连线 图1.1 开发板连线图 图1.2 开发板实物图 图1.3 液晶1602 表格3.7.1.1 引脚功能介绍 液晶1602的使用非常的方便,数据线8条,控制线3条,其实总 ...

  3. 12864液晶深入学习笔记_1——基于msp430g2553

    12864液晶学习笔记 Created on: 2012-8-30 Author: zhang bin 这是我对12864的学习笔记,12864液晶功能很全面,使用起来也很方便,能够满足一般的研究和工 ...

  4. STC51入门笔记(郭天祥C语言)---第八节:通用型1602,12232,12864液晶操作方法

    声明:本篇文章只是个人知识盲区.知识弱点.重点部分的归纳总结,望各位大佬不喜勿喷.梳理顺序是按照书籍的实际顺序梳理,转载请注明出处. 作者:sumjess 一.液晶概述: 液晶(LiquidCryst ...

  5. MSP430程序库三12864液晶程序库

    液晶是单片机系统最常用的显示设备之一,这个程序库是在MSP430F169.MSP1430F149单片机上测试通过的,可以放心使用:液晶选用的是金鹏的:OCMJ4X8C型号的12864液晶:控制液晶用的 ...

  6. 12864液晶驱动源码,独创中英文混合输出

    12864液晶驱动源码,独创中英文混合输出 51单片机学习笔记:ST7920控制器的12864液晶使用总结 转载于:https://www.cnblogs.com/LittleTiger/p/4724 ...

  7. STM32驱动ST7920的12864液晶(串行方式)

    /****************************************************************************************** * 文件名称 : ...

  8. 51单片机三线串行驱动12864液晶

    以前写12864的液晶程序都是用的并行的方式,这种方式焊接起来很麻烦,而且占用的IO口比较多. 今天尝试使用串行方式来驱动该模块. 本程序是基于STC89C52的12864串行模式的程序,硬件电路连接 ...

  9. 基于s3c2440的12864液晶驱动

    基于s3c2440的12864液晶驱动 12864是12864点阵液晶模块的点阵数简称,业界约定俗成的简称. 一.液晶显示模块概述 12864A-1 汉字图形点阵液晶显示模块,可显示汉字及图形,内置 ...

  10. 使用虚拟显存方式操作12864液晶

    通常操作12864液晶时,画点函数没有TFT那么方便,我一直都是使用内存虚拟一个显存方式,画点函数将使用内存的一个bit,然后更新到实际屏幕上.12864液晶将需要1KB的内存,我使用的256128需 ...

最新文章

  1. java object 引用类型_java中的四种引用类型
  2. MyBatis整合Spring的实现(2)
  3. oracle查询哪个sql占用资源,查询oracle最耗资源的sql语句
  4. vue中路径带# vs 不带#
  5. WPF中ListBox的样式设置
  6. 异步类随机多址接入分析
  7. IDEA手动安装Scala插件[zt]
  8. hibernate级联 cascade属性(转)
  9. linux红帽7修改时间,CentOS 7 and RedHat 7 时间同步即chrony服务配置
  10. 嵌入式的苦逼从何而来
  11. this指向问题(箭头函数)
  12. wampserver显示红色、橙色的解决方案
  13. 软件定义边界(SDP)简介
  14. 【MATLAB】MATLAB 仿真模拟调制系统 — DSB 系统
  15. java保存图片_java 保存图片
  16. 图解 生成对抗网络GAN 原理 超详解
  17. 思科网络安全 第十一章测验答案
  18. 获取上一个交易日—python
  19. NXP-RT1052入门
  20. 博途v15模拟量转换_S7-1200PLC中的模拟量转换

热门文章

  1. 中兴机顶盒服务器地址大全,中兴机顶盒网络设置无线路由器教程
  2. 截图上传录屏gif上传工具推荐
  3. iptv管理系统php制作,云水日记-双子星IPTV管理系统搭建教程
  4. iweboffice之word——自定义菜单的使用
  5. php zip扩展文件,php使用ZipArchive扩展实现文件的zip压缩与zip解压
  6. Ubuntu Class ZipArchive not found
  7. ipmitool源码解析(一)——一次带内ipmitool raw data发送过程
  8. PAT 乙级 Java 合集
  9. Windows Ubuntu,软件推荐,小技巧总结,免费内网穿透方案
  10. OC语言基础十:OC文件操作