几种常见的12864图形点阵模块
- 格式:doc
- 大小:1.95 MB
- 文档页数:19
用点阵图形液晶模块显示信号曲线关键字:液晶点阵图形液晶模块信号曲线显示液晶应用很广,例如液晶电子手表,计算器以及液晶电视、便携式计算机等,处处可以看到液晶的足迹。
本文主要介绍如何用AT8?S52单片控制点阵液晶模块将现场采集到的信号以实时曲线的方式表达,为信号的现场分析提供便利,有较高的实用价值。
本文先介绍点阵图形液晶模块显示原理,然后介绍整个控制系统的软、硬件设计。
采用点阵图形液晶模块的信号曲线显示,由AT8?S52、12位A/D转换芯片TLC2543和1 28×6?点阵图形液晶模块组成,其AT8?S52的P2.4~P2.7口分别与TLC2543的CS、DO UT、DIN和CLK端连接。
模块软件利用P2.5口向TLC2543写控制字,选择A/D通道并将转换结果通过P2.4口读到AT8?S52的某个寄存器中,再利用P1.0~P1.7口和P3.2~P 3.7口控制点阵图形液晶模块将A/D转换结果从液晶屏幕上显示。
点阵液晶模块显示原理本文采用的128*6?模组的STN点阵图形液晶模块,由两个列驱动器HD61202、和一个行驱动器HD61203组成,可以直接与8位CPU相接。
每个HD61202,每个有512 Byte(40 96bits)供RAM显示。
RAM显示的每位数据与LCD每点的状态ON/OFF完全一致。
介绍点阵图形液晶模块的显示原理,实际上就是介绍它的控制芯片。
HD61202和HD61203控制原理大致相同,下面就HD6120的控制原理简单介绍一下。
每个控制器HD61202,有512 Byte(4096Bits)供RAM显示,RAM显示的每位数据与LCD 每点的状态ON/OFF完全一致。
控制器HD61202指令共有7条,分别是显示ON/OFF指令、设置页(X地址)指令、读状态指令、显示开始行指令、显示器开始行指令、设置Y地址指令、写显示数据指令和读显示数据指令。
具体指令的书写规则,可以查HD61202使用手册,这里就不再罗列。
常见液晶驱动控制芯片详解前言因此各位朋友在选择LCD液晶模块的时候,在考虑到串行,还是并行的方式时,可根据其驱动控制IC的型号来判别,当然你还需要看你选择的LCD模块引脚定义是固定支持并行,还是可选择并行或串行的方式。
一、字符型LCD驱动控制IC市场上通用的8×1、8×2、16×1、16X2、16X4、20X2、20X4、40X4等字符型LCD,基本上都采用的KS0066 作为LCD 的驱动控制器。
二、图形点阵型LCD驱动控制IC2.1、点阵数122X32—SED1520。
2.2、点阵数128×64。
(1)RA8816,支持串行或并行数据操作方式,内置中文汉字字库。
(2)KS0108/RA8808,只支持并行数据操作方式,也是最通用的12864点阵液晶的驱动控制IC。
(3)ST7565,支持中行或并行数据操作方式。
(4)S6B0724,支持中行或并行数据操作方式。
(5)RA6963,支持并行数据操作方式。
2.3、其他点阵数如192×64、240×64、320X64、240X128 的一般都是采用RA6963驱动控制芯片。
2.4、点阵数320X240,通用的采用RA8835 内置ASCII字库,以及RA8806驱动IC内置ASCII和中文等字库。
这里列举的只是一些常用的,当然还有其他LCD 驱动控制IC,在写LCD 驱动时要清楚是哪个型号的IC,再到网上去寻找对应的IC 数据手册吧。
后面我将慢慢补上其它一些常见的。
三、12864 液晶的奥秘CD1601/1602和LCD12864 都是通常使用的液晶,有人以为12864是一个统一的编号,主要是12864 的液晶驱动都是一样的,其实12864只是表示液晶的点阵是128*64点阵,而实际的12864 有带字库的,也有不带字库的:有5V电压的,也有3.3V工作电压:归根到底的区别在于驱动控制芯片,常用的控制芯片有RA8816、KS0108/RA8808、RA6963等等。
一、OCM12864液晶显示模块概述1.OCM12864液晶显示模块是128×64点阵型液晶显示模块,可显示各种字符及图形,可与CPU直接接口,具有8位标准数据总线、6条控制线及电源线。
采用KS0107控制IC。
2.外观尺寸:113×65×11mm(ocm12864-1), 93×70×10mm(ocm12864-2)78×70×10mm(ocm12864-3),3.视域尺寸:73.4×38.8mm(ocm12864-1) 70.7×38mm(ocm12864-2),64×44mm(ocm12864-3)4.重量:大约 gz补充说明:外观尺寸可根据用户的要求进行适度调整。
二、最大工作范围1、逻辑工作电压(Vcc):4.5~5.5V2、电源地(GND):0V3、LCD驱动电压(Vee):0~-10V4、输入电压:Vee~Vdd5、工作温度(Ta):0~55℃(常温) / -20~70℃(宽温)6、保存温度(Tstg):-10~65℃三、电气特性(测试条件 Ta=25,Vdd=5.0+/-0.25V)1、输入高电平(Vih):3.5Vmin2、输入低电平(Vil):0.55Vmax3、输出高电平(Voh):3.75Vmin4、输出低电平(Vol):1.0Vmax5、工作电流:2.0mAmax四、接口说明1.12864-1,12864-2接口说明表管脚号 管脚 电平 说明1 VSS 0V 逻辑电源地。
2 VDD 5.0V 逻辑电源正。
3 V0 LCD驱动电压,应用时在VEE与V0之间加一2K可调电阻。
4 D/I H/L 数据\指令选择:高电平:数据D0-D7将送入显示RAM;低电平:数据D0-D7将送入指令寄存器执行。
5 R/W H/L 读\写选择: 高电平:读数据;低电平:写数据。
6 E H.H/L 读写使能,高电平有效,下降沿锁定数据。
51单片机YM12864汉字图形点阵液晶显示模块­本文以AT89C51单片机控制使用比较普遍的YM12864液晶显示器为基础,介绍了一种采用分页原理实现多级中文菜单操作的方法。
给出了YM12864主要技术参数、显示特性和核心的程序。
设计的中文菜单具有一定的通用性,只需更改其中的菜单项即可将此设计应用到家电、仪器仪表等设备上,为操作者提供友好方便的中文操作界面。
51单片机YM12864汉字图形点阵液晶显示模块-_典型应用电路图。
目前小型的显示器主要有LCD和LED,LED显示器只能显示数字和有限个英文字符,不能显示汉字,显示内容不直观,操作人员只能根据约定格式了解显示内容。
而LCD则可显示各种汉字和图形,尤其能实现中文菜单显示,为操作者提供方便友好的操作界面,并且功耗低,因此LCD得到广泛应用。
而现在市面上带中文字库的LCD比比皆是,价格适中,且大部分具有与MUC统一的标准接口,为使用LCD实现中文菜单操作提供了很大的方便。
相信更多的电子产品在提升性能的同时,设计更加人性化的中文菜单交互界面,将会使产品具有更广阔的前景。
二、YM12864液晶显示模块简介YM12864汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。
主要技术参数和显示特性:电源:VDD 3.3V~+5V(内置升压电路,无需负压)显示内容:128列×64行与MCU接口:8位或4位并行/3位串行多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等。
其引脚功能为通用20脚LCD接口,用户指令集也为通用128*64LCD用户指令集,相关资料很容易获取。
因其内置中文字库,省去了自己造字库的工作量,而只需写入相应的汉字和字符内码即可显示所需要的汉字和字符,这在许多程序开发软件中很容易实现,如:WAVE、KEIL等。
12864系列点阵型液晶显⽰模块12864系列点阵型液晶显⽰模块⼀、OCM12864液晶显⽰模块概述⼀、OCM12864液晶显⽰模块概述1.OCM12864液晶显⽰模块是128×64点阵型液晶显⽰模块,可显⽰各种字符及图形,可与CPU直接接⼝,具有8位标准数据总线、6条控制线及电源线。
采⽤KS0107控制IC。
2.外观尺⼨:113×65×11mm(ocm12864-1), 93×70×10mm(ocm12864-2)78×70×10mm(ocm12864-3),3.视域尺⼨:73.4×38.8mm(ocm12864-1) 70.7×38mm(ocm12864-2),64×44mm(ocm12864-3)4.重量:⼤约 gl 补充说明:外观尺⼨可根据⽤户的要求进⾏适度调整。
⼆、最⼤⼯作范围1、逻辑⼯作电压(Vcc):4.5~5.5V2、电源地(GND):0V3、LCD驱动电压(Vee):0~-10V4、输⼊电压:Vee~Vdd5、⼯作温度(Ta):0~55℃(常温) / -20~70℃(宽温)6、保存温度(Tstg):-10~65℃三、电⽓特性(测试条件 Ta=25,Vdd=5.0+/-0.25V)1、输⼊⾼电平(Vih):3.5Vmin2、输⼊低电平(Vil):0.55Vmax3、输出⾼电平(Voh):3.75Vmin九、读写模块程序举例l 写指令⼦程序(INST)SETB ECLR D_ICLR R_WMOV P1, ACLR ERETl 写数据⼦程序(DATA)SETB ESETB D_ICLR R_WMOV P1, ACLR ERETl 写⼀页显⽰RAM数据(假设指令⼦程序为INST,数据⼦程序为DATA)MOV A,#0B8HLCALL INST ;置页地址为0页MOV A,#40HLCALL INST ;置列地址为0列MOV R2,#40HMOV R1,#00HMOV DPTR,#ADDRLOOP:MOV A,R1MOVC A,@A+DPTRLCALL DATAINC R1DJNZ R2, LOOP12864系列点阵型液晶显⽰模块⼀、OCM12864液晶显⽰模块概述⼀、OCM12864液晶显⽰模块概述1.OCM12864液晶显⽰模块是128×64点阵型液晶显⽰模块,可显⽰各种字符及图形,可与CPU直接接⼝,具有8位标准数据总线、6条控制线及电源线。
12864液晶中文资料一、液晶显示模块概述JM12864M-2汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。
主要技术参数和显示特性:电源:VDD 3.3V~+5V(内置升压电路,无需负压);显示内容:128列× 64行显示颜色:黄绿显示角度:6:00钟直视LCD类型:STN与MCU接口:8位或4位并行/3位串行配置LED背光多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等二、外形尺寸外观尺寸:93×70×12.5mm 视域尺寸:73×39mm外形尺寸图外形尺寸脚说明128X64HZ 引脚说明逻辑工作电压(VDD):4.5~5.5V电源地(GND):0V工作温度(Ta):-10℃~60℃(常温) / -20℃~70℃(宽温)三、接口时序模块有并行和串行两种连接方法(时序如下):8位并行连接时序图MPU写资料到模块MPU从模块读出资料2、串行连接时序图串行数据传送共分三个字节完成:第一字节:串口控制—格式11111ABCA为数据传送方向控制:H表示数据从LCD到MCU,L表示数据从MCU到LCDB为数据类型选择:H表示数据是显示数据,L表示数据是控制指令C固定为0第二字节:(并行)8位数据的高4位—格式DDDD0000第三字节:(并行)8位数据的低4位—格式0000DDDD串行接口时序参数:(测试条件:T=25℃VDD=4.5V)四、用户指令集1、指令表1:(RE=0:基本指令集)指令表—2:(RE=1:扩充指令集)备注:1、当模块在接受指令前,微处理顺必须先确认模块内部处于非忙碌状态,即读取BF标志时BF需为0,方可接受新的指令;如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延迟一段较长的时间,即是等待前一个指令确实执行完成,指令执行的时间请参考指令表中的个别指令说明。
2FM12864F128SEG/64COM DOT MXTIX LCD DRIVER————————————————————————————————————————————————————————————————————————————————2一.概述MS12864F 是一种图形点阵液晶显示器。
它主要采用动态驱动原理由行驱动器、控制器和列驱动器三部分组成了128()×64(行)的全点阵液晶显示。
此显示器采用了SMD 的硬封装方式,通过导电橡胶和压框连接LCD,使其寿命长,连接可靠。
二.特性1.工作电压为+5V ±10% ,可自带驱动LCD 所需的负电压。
2.全屏幕点阵,点阵数为128(列×64(行),可显示/行)×4(行)个(16× 16点阵)汉字,也可完成图形,字符的显示。
3.与CPU 接口采用4条位控制总线和8位并行数据总线输入输出,适配 Inter8080系列时序。
4.内部有显示数据锁存器,和用于文本显示的6×8和8×8的字符库。
5.简单的操作指令。
三.外形尺寸1.外形尺寸图2.主要外形尺寸四.硬件说明1.引脚特性2FM12864F128SEG/64COM DOT MXTIX LCD DRIVER————————————————————————————————————————————————————————————————————————————————June 2004 22.原理简图3.背光接线图LED 背光19 20EL 背光19 20 +5V 0VEL ~ EL ~五、IC 说明及指令表T6963C is LCD controller designed to be used for control LCD driverLCD driver LSIs and display data Memory, It has an 8 bit parallel data bus And control lines for reading or writing through a MPU I/F.It has 128 words character generator ROM with the capability to control External display RAM of up to 128K bytes. Allocation of text, graphicsAnd external generator RAM can be easily made and the display window canBe freely moved within the allocated memory range.It supports a very board range of LCD formats by selecting different Combinations on a set of programmable inputs. It can be used in text,graphic Modes and has various attribute functions.指令表:表 24FM12864F128SEG/64COM DOT MXTIX LCD DRIVER————————————————————————————————————————————————————————————————————————————————June 2004 2六、电气参数1.ABSOLUTE MAXIMUM RATING2.OPTICAL DATA Ta=25°CWave from is switched from one selected one (θ=10°,φ=90°)Note 2: Required time for blackening ratio of segment goes down from 100% to 10% When wave from is switched from one selected one (θ=10°,φ=90°) 3.TIMING CHARACTERISICS驱动波形图6FM12864F128SEG/64COM DOT MXTIX LCD DRIVER————————————————————————————————————————————————————————————————————————————————June 2004 2读写时序图5.EL Backlight Electrical Characteristics七、功能描述7.1 STATUS READBefore sending data(read/write),command it is necessary to check the Status. Status checkStatus of T6963c can read from data lines./RD L/WR H/CE LC/D HD0∽D7 Status wordT6963C status word format is followingFM12864F 128SEG/64COM DOT MXTIX LCD DRIVER(1)Cursor pointer setThe position of cursor is specified by X address. The cursor positionIs moved only by this command. The cursor pointer doesn't have the Function of increment and decrement. The shift of cursor set by this Command. X address, Y address are specified following.X address 00H - - - - 4FH(Low 7bits are valid)Y address 00H - - - - 1FH(Low 5bits are valid)1 Screen driveX address 00H - - - - 4FHY address 00H - - - - 0FH(2) Offset register setThe offset register is used to determine external character generator RAM area.T6963C has 16 bits address lines as follow:Middle 8 bits (ad10 - ad3) are determined by character code. TheLower 3 bit (ad2 - ad10) are determined by vertical counter. TheLower 5 bit of D1(data) are valid. The data format of external character Generator RAM.(3)Address pointer setThe address pointer set command is used to indication the start address10(1) Text home address and area setThe starting address of external display RAM for text display isDefined by this command. The text home address shows the left end and Most upper position .The relationship of external display RAM address and display position Example:Text home address: 0000H Text area: 00A0H MD2=0, MD3=0: 80 COLUMN DUAL=0, MDS=1, MD0=1, MD1=0: 28 LINES(2) Graphic home address and area setThe starting address of external display RAM for Graphic display is Defined by this command. The graphic home address shows the left end most Upper line.The relationship of external display RAM address and display position. Example:Graphic home address: 0000H Graphic area: 0020HMD2=H, MD3=H: 32 COLUMNS DUAL=H, MDS=L, MD0=H, MD1=H: 2 LINES Example:7.33 MODE SETThe display mode is defined by this command. The display mode don't have changed until to send next this command. Logically "OR","EXOR',"AND" of text and graphic display can be displayed. When internal character generator mode is selected, character code 00H - 7FH are selected from built-in character generator ROM. The character code 80H-FFH are automatically selected external character generator RAM.NOTE: Only text display is attributed, because attributed data is located. Attribute function"Reverse display", "Character blink" and "Inhibit" are called "Attribute".The attribute data is written in the graphic area defined by control word set command. The mode set command selects text display only and graphic the mode set command selects text display only and graphic display cannot be displayed. The attribute data of the 1STcharacter in text area————————————————————————————————————————————————————————————————————————————————June 2004 2auto mode , "Data write(or read)" command is not necessary between each data. "Data auto write (or read)" command should follow the "Address pointer set" and address pointer is automatically increment by + 1 after each data. After sending (or receiving) all data"Auto reset" is necessary to return normal operation because all data is regarded "Display data" and no command can be accepted in the auto mode.12Note: status check for auto mode(STA2,STA3 should be checked between each Data. Auto reset should be performed after checking (STA3=1 STA2=1)display RAM to MPU. Data write/data read should be executed after setting address by address(2) When /HALT has been "L", the oscillation is stopped. It is necessary To turn off power supply for LCD, because LCD goes down by DC bias. (3) The HALF function contains the RESET function. (4) After state of RESET/HALT.FM12864F128SEG/64COM DOT MXTIX LCD DRIVER————————————————————————————————————————————————————————————————————————————————June 2004 2L: Level LF: Floating (High impedance)KO: Internal state (TEXT data access) normally open VEND: End signal of V-counter(Line count) if MDS=H, T2=L, HEND (end signal of H-count) normally open.Note 1: In Attribute mode, H or L by state of Graphinc pointer. Note 2: In Attribute mode, DATA of Graphinc pointer.八.应用举例MS12864F 与单片机8031的一种接口如图.所示:注:V0为液晶驱动电压。
几种常见的12864图形点阵模块12864点阵液晶模块分为带汉字库和不带汉字库两大类,目前带汉字库的通常是ST7 920驱动,它可以工作在汉字字符方式和图形点阵方式,很多制作都用它,如果需要显示较多汉字,用它最为方便。
在显示汉字数量很少的场合,我们可以使用更加廉价的、不带字库的点阵液晶模块,这正是本文重点介绍的。
它们的控制电路有KS0108和ST7565两种:KS0108很简单,一共只有7条指令,可是它没有串行接口;ST7565有20多条指令(最常用的也就几条),有串行接口,可选串行或并行工作。
KS0108和ST7565的指令和上述带字库的ST7920区别较大,所以初学者买液晶时一定要搞清楚是哪种驱动电路。
即使同样的驱动电路,不同厂家或者不同型号的产品,具体细节仍可能不同。
例如有的片选信号是高电平有效,有的却是低电平有效,有的把显示区分为左右两半分别选取,有的却不加区分。
所以使用前要仔细看厂家说明,如果没有,就要看液晶模块背面给出的具体型号,根据这个型号去查找使用手册。
笔者最近在淘宝网上搜寻到一款12864的图形点阵液晶,只有4cm宽、3.5cm高,显示面积为3.2cm宽、1.95cm高,非常小巧。
更加难能可贵的是它可以在3V低电压工作,很适合我们制作小型便携装置。
该液晶模块型号是SP12864FPD-12CSBE,由北京集粹电子设备公司出品,它的外形见图A。
图A 12864图形点阵液晶模块图B 小小日历钟(文字界面)图C 小小日历钟(图形界面)图B、图C所示为笔者用它制作的一个小小日历钟,它的特点是具有可以随意转换的文字和图形界面。
文字界面除了显示年月日时分秒,在右上角还有一个小鸡啄米的小动画,图形界面用指针在刻度上指示出时分秒,是不是有点新意呢?图D所示是调频收音机的显示屏,用进度条指示音量,用刻度尺显示信号强度,比1602只能显示数字和字母要生动多了。
没有字库用起来是否很麻烦?其实搞清了图形点阵的基本工作原理,用起来并不麻烦却更灵活,不带字库我们就按需要打造字符!图D 调频收音机图E 液晶模块采用“COG”封装图F点阵液晶显示原理在制作单片机系统时,一般都需要用显示器件来显示单片机的工作状态并显示输出结果,如LED、数码管和液晶显示器等。
LED最简单,但能给出的信息很少。
数码管能清晰地显示数字和部分字母,但是耗电较大,不适合使用电池供电的装置。
常见的液晶显示器有段式液晶、字符液晶和图形液晶等。
其中,段式液晶最省电,但对于通用显示使用起来不很方便,只能显示固定式数字或符号,而且需要专用驱动电路或特殊的单片机。
字符液晶(如1602)用得比较多,容易和单片机配合,但是一般都需要5V工作电压,虽然现在也有3V就可以工作的模块,但是体积还是较大,而且只能显示数字和西文字符,无法显示图形和汉字。
点阵液晶模块既可以显示ASCII字符,又可以显示汉字和图形,相对于前面几种,具有更大的灵活性,所以使用得越来越多。
不过常用的图形液晶因为显示面积增加,体积比字符液晶(如1602)更大,价格也更贵。
初学者要注意的是,12864图形点阵液晶随着厂家设计使用的驱动芯片不同,驱动程序有所区别,不像1602那样基本通用。
液晶模块SO12864-12C简介此型号小液晶包括一系列子型号,详见/chanpin/。
这次所用的SO12864FPD-12CSBE只是其中的一种,我们先来了解一下它的主要特性:◆逻辑或电源电压2.8~5.5V;◆蓝色背光,背光电压3V;◆串行接口,用8个焊盘引出包括电源、背光、地和控制线数据线;◆不带字库,需要自己编辑外部字模数组;◆速度较快,用时钟1MHz的AVR单片机驱动,编程时无须附加脉冲额外延时;◆使用ST7565电路,命令代码一共23条。
显然,它十分适合低压小尺寸场合应用,串行接口最大限度减少了液晶和单片机的连线,虽说比并行慢一点,实际上如果不是频繁刷屏影响并不大。
要自己编制字库确实比较麻烦,但是只要显示的文字量少,制作小字模也不困难,反而可以自己打造个性化的字体,使得显示具有特色。
把液晶模块翻过来,如图5所示,发现电路板上没有通常液晶模块的黑胶封装集成电路,原来这个液晶采用的是“COG”封装,就是把集成电路直接绑定在液晶玻璃板上。
它的8个接口焊盘位于模块上方,定义如下:片选CS:它为低电平才能进行操作,在加载数据后至少维持40ns低电平。
1.复位RES:启动时至少维持1μs低电平以使液晶内部复位,然后升高,再过1μs完成复位,以后才能对液晶进行操作。
2.命令数据选择A0:高电平为数据,低电平为命令。
3.串行时钟SCL:顶底宽度至少25ns,低时A0和SI至少稳定20ns,然后在上升沿加载数据或命令。
4.串行数据SI:同上,在SCL上升沿加载后至少还要保持10ns稳定。
5.电源正VCC:最低2.8V,标准3V,最大5.5V。
6.地VSS。
7.背光LED+:蓝色背光最低2.8V,标准3V,最大3.2V,使用时要注意不要超过。
8.在串行模式时,一个命令或数据字节要分为8次加载,从最高位开始。
液晶SO12864-12C的编程要点控制液晶最基本的工作就是往液晶的控制器写入命令码或往显缓区写入数据码,是命令还是数据由加到上述A0的电平高低决定:高,数据;低,命令。
因为现在是串行传送,所以只能由高到低一位位写。
串行只能写不能读。
以前要靠读来判定液晶是否忙,这个液晶速度较高,实际使用证明串行传输不用读忙。
编程就是用单片机的几根口线按照所需的时序发出高低电平,再往液晶里送入代码或数据。
控制脉冲和代码脉冲的时序关系如图7所示。
图7 控制脉冲和代码脉冲的时序关系图形点阵的显示原理12864点阵液晶的图形显示原理都差不多。
液晶屏x方向(水平)具有128列像素从左到右为第0列……第127列,y方向(垂直)具有64行像素。
每8行组成1页,从上到下就是第0页……第7页。
这样以列号和页号为坐标,就可以指定交叉位置的8个像素。
例如第0、1、2、3列第1页的8个像素,如图6所示。
在液晶内部有一块显示缓存区,按照列号和页号就可以对显缓区的某个字节写数,该字节的8位二进制数就对应了液晶屏同样位置的像素的亮灭,如对第1列第1页的那个缓存单元写入0X80即0b10000000,那么液晶对应位置的最下面一点7亮(低位在上高位在下)其余都灭,如果第2列第1页写入0X0F即0 b00001111,则该位置上方4个点0123亮,其余像素不亮,第3列第1页写0X 33,则该处间隔2点亮。
这样就可以通过程序控制液晶屏的任意像素了。
不同的液晶屏指令代码可能不同(例如这个屏和常见的7920驱动不一样),屏幕划分也可能不同,例如有的是分为左右两半,每半边64列,有的是分为上下两半等。
最常用的几个命令显示开/关:代码:0XAF(开),0XAE(关)启动复位后为“关”,必须在液晶初始化时置“开”。
1.页地址定位:代码:0XB0……0XB7,对应第0页到第7页,复位后自动安置为第0页。
2.列地址定位:列地址是0X00……0X7F,但不是直接用列地址而要转换为双字节代码。
方法是0X10加原高4位和0X00加原低4位。
例如第33列,本是0X21,现在应该转换为0X12和0X01,分2次写入。
3.写显示数据:代码就是显示数据,控制脉冲A0为高。
4.复位:代码0XE2,通过程序使得液晶恢复各种起始默认状态。
5.有了这几条命令就已经可以使液晶画出以像素点为基础的图形或字符了。
有些其他命令(如对比控制、亮度、偏压等)就取默认值,无需修改(初始化要用一下),还有些很有用的命令(如反向列页扫描、起始行、反白显示等),需要时再去查资料不迟。
有了上述命令代码,我们就可以通过汇编或C语言,按照控制时序编出子程序或函数,以便在程序中使用。
C语言因为易读性好、通用性好、移植性好所以用得较多,下面就给出一些C的函数,由它们就构成了液晶的驱动。
驱动液晶的基本C函数我们用C语言编程,在C语言里,用“函数”把单片机的一系列具体操作包装起来起个函数名,需要时直接按名调用即可,非常方便。
首先必须解决怎样对液晶串行写数据的问题,然后按照A0线的高低,我们就可以自行编出写数据函数和写命令函数。
一下只列出函数说明和用法举例,函数的具体内容可到《无线电》网站上下载C程序代码。
串行传送1字节数据函数,参数为待传字节。
1.void LcdWriByte(unsigned char nn) //nn就是待写字节这个是最基本的函数,不过我们不直接用它而是把它放在其他写数据函数里调用。
写命令。
参数为命令码。
2.void LcdWriCommand(unsigned char command);例如,打开显示:LcdWriCommand(0XAF);写数据。
参数为待写的显示数据。
3.void LcdWriData(unsigned char data);例如,写显示一个点的数据:LcdWriData(0X01);指定列、页地址。
参数为列地址x和页地址y。
4.void LcdSetxy(unsigned char x,unsigned chary);例如:LcdSetxy(68,2);//设置显示地址为第68列、第2页。
通常和上一个函数连用,见下一节函数应用举例。
在以上基本函数基础上我们还可以根据命令码推演出几个便于使用的功能函数。
开显示。
5.void LcdOn(void );例:LcdOn( );关显示。
6.void LcdOff(void );例:LcdOff( );软复位。
用它可以在任何时刻使液晶屏回到起始状态而显示缓冲区内容不变。
7. void LcdReset(void );例:LcdReset( );刷屏。
8.void LcdCls(unsigned char data );就是用数据data写满显示缓冲区,data如果为0,那全屏刷白(无像素显示),如果d ata为0XFF则全屏刷黑(像素全部亮)。
如果为0XAA呢?感兴趣的读者不妨实验一下。
例:LcdCls(0 );最后给出该液晶的初始化函数,在系统启动后,MCU初始化以后就进行液晶初始化。
LCD初始化。
9.Void Lcd_ini();通常在程序开始阶段进行,对各种参数进行设置,具体初始化项目请参看函数内容和注解。
函数应用举例在指定位置画1点 1.先给定页和列坐标,就指定了1列8个像素点,1个点的位置从上到下对应数值为0X0 1、0X02、0X04、0X08、0X10、0X20、0X40、0X80。
例如在第9列、第3页最低位画点:LcdSetxy(9,3);LcdWriData(0X80);在指定位置画连续8个点构成的短竖线 2.例如位置同上,则LcdSetxy(9,3);LcdWriData(0XFF);画水平线3.例如从第10列起在第3页底部画1根长度50像素点的连续直线:unsigned char i;LcdSetxy(10,3);for(i=0;i<50;i++){LcdWriData(0X80); //循环中列地址自动递增}明白了以上基础,我们就可以进一步画出长短竖线、更粗的水平线、水平双线矩形方框、黑块等,这样就可以画简单图形了。