关注我们  

中安网微信
收藏中安网
cps icon
cps icon
主营产品:
液晶显示技术开发,LCD/LCM液晶显示模块
所在地区:
广东 深圳 宝安区
联系电话:
15712102869
手机号码:
联 系 人:
赵先生
在线联系:
公司邮箱:
  • 总人气:1456
  • 商铺人气:474
  • 产品人气:982
  • 资讯人气:0
产品详细
12232液晶显示模块 带中文字库
  • 型号:12232
  • 价格:电议
  • 最小起订量:1个
  • 供货总量:100000个
  • 产品介绍

深圳市迪威液晶显示技术有限公司

SHEN ZHEN DV LCD HI-TECH CO., LTD

DV12232G(带中文字库)


一、概述

DV12232G 是一种内置8192 个16*16 点汉字库和128 个16*8 点ASCII 字符集图形点阵液晶显示器,它主

要由行驱动器/ 列驱动器及128×32 全点阵液晶显示器组成。可完成图形显示,也可以显示7.5×2 个(16×16

点阵)汉字.与外部CPU 接口采用并行或串行方式控制。

主要技术参数和性能:

1.电源:VDD:+3.0∽+5.5V。(电源低于4.0 伏LED 背光需另外供电)

2.显示内容:122(列)×32(行)点。

3.全屏幕点阵。

4.2M ROM(CGROM)总共提供8192 个汉字(16×16 点阵)。

5.16K ROM(HCGROM)总共提供128 个字符(16×8 点阵)。

6.2MHZ 频率。

7.工作温度: -20℃ ∽ +70℃ ,存储温度: -30℃ ∽ +80℃

UnRegistered

第 3 页

二、外形尺寸及接口图

三、模块主要硬件构成说明

四、指令说明

UnRegistered

第 4 页

控制器接口信号说明

1、RS,R/W 的配合选择决定控制界面的4 种模式:

RS R/W 功能说明 L L MPU 写指令到指令暂存器(IR)

L H 读出忙标志(BF)及地址记数器(AC)的状态

H L MPU 写入数据到数据暂存器(DR)

H H MPU 从数据暂存器(DR)中读出数据

2、E 信号

E 状态 执行动作 结果

高——>低 I/O 缓冲——>DR 配合/W 进行写数据或指令

高 DR——>I/O 缓冲 配合R 进行读数据或指令

低/低——>高 无动作

● 忙标志:BF

BF 标志提供内部工作情况.BF=1 表示模块在进行内部操作,此时模块不接受外部指令和数据.BF=0 时,模

块为准备状态,随时可接受外部指令和数据.

利用STATUS RD 指令,可以将BF 读到DB7 总线,从而检验模块之工作状态.

● 字型产生ROM(CGROM)

字型产生ROM(CGROM)提供8192 个此触发器是用于模块屏幕显示开和关的控制。DFF=1 为开显示(DISPLAY

ON),DDRAM 的内容就显示在屏幕上,DFF=0 为关显示(DISPLAY OFF)。

DFF 的状态是指令DISPLAY ON/OFF 和RST 信号控制的。

● 显示数据RAM(DDRAM)

模块内部显示数据RAM 提供64×2 个位元组的空间,最多可控制4 行16 字(64 个字)的中文字型显示

(本模块只用到其中的7.5*2 个),当写入显示数据RAM 时,可分别显示CGROM 与CGRAM 的字型;此模块可显

示三种字型,分别是瘦长的英数字型(16*8)、CGRAM 字型及CGROM 的中文字型,三种字型的选择,由在DDRAM

中写入的编码选择,在00~0F 的编码中将选择CGRAM 的字定义字型,10~7F 的编码中将选择

瘦长英数字的字型,至于A0 以上的编码将自动的结合下一个位元组,组成两个位元组的编码形成中文字型的

编码(A140~D75F)。

● 字型产生RAM(CGRAM)

字型产生RAM 提供图象定义(造字)功能, 可以提供四组16×16 点的自定义图象空间,使用者可以将内部

字型没有提供的图象字型自行定义到CGRAM 中,便可和CGROM 中的定义一般的通过DDRAM 显示在荧屏中。

● 地址计数器AC

地址计数器是用来贮存DDRAM/CGRAM 之一的地址,它可由设定指令暂存器来改变,之后只要读取或是写

入DDRAM/CGRAM 的值时,地址计数器的值就会自动加一,当RS 为“0”时而R/W 为“1”时,地址计数器的值

会被读取到DB6~DB0 中。

● 游标/闪烁控制电路

此模块提供硬体游标及闪烁控制电路,由地址计数器的值来指定DDRAM 中的游标或闪烁位置。

UnRegistered

第 5 页

五、指令说明

模块控制芯片提供两套控制命令,基本指令和扩充指令如下:

指令表1:(RE=0:基本指令)

指 指 令 码 功 能

令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0

清除

显示

0 0 0 0 0 0 0 0 0 1

将DDRAM填满"20H",并且设定DDRAM的地址计

数器(AC)到"00H"

地址

归位

0 0 0 0 0 0 0 0 1 X

设定DDRAM 的地址计数器(AC)到"00H",并且

将游标移到开头原点位置;这个指令不改变

DDRAM 的内容

显示状

态开/关

0 0 0 0 0 0 1 D C B

D=1: 整体显示 ON

C=1: 游标ON

B=1:游标位置反白允许

进入点

设定

0 0 0 0 0 0 0 1 I/D S

指定在数据的读取与写入时,设定游标

的移动方向及指定显示的移位

游标或

显示移

位控制

0 0 0 0 0 1 S/C R/L X X

设定游标的移动与显示的移位控制位;

这个指令不改变DDRAM 的内容

功能

设定

0 0 0 0 1 DL X RE X X

DL=0/1:4/8 位数据

RE=1: 扩充指令操作

RE=0: 基本指令操作

设定

CGRAM

地址

0 0 0 1 AC5 AC4 AC3 AC2 AC1 AC0 设定CGRAM 地址

设定

DDRAM

地址

0 0 1 0 AC5 AC4 AC3 AC2 AC1 AC0

设定DDRAM 地址(显示位址)

第一行:80H-87H

第二行:90H-97H

读取忙

标志和

地址

0 1 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0

读取忙标志(BF)可以确认内部动作是

否完成,同时可以读出地址计数器(AC)

的值

写数据

到RAM

1 0 数据 将数据D7~D0 写入到内部的RAM

(DDRAM/CGRAM/IRAM/GRAM)

读出RAM

的值

1 1 数据 从内部RAM 读取数据D7~D0

(DDRAM/CGRAM/IRAM/GRAM)

指令表2:(RE=1:扩充指令)

指 指 令 码 功 能

令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0

待命

模式

0 0 0 0 0 0 0 0 0 1

进入待命模式,执行其他指令都棵终止

待命模式

卷动地址

开关开启

0 0 0 0 0 0 0 0 1 SR

SR=1:允许输入垂直卷动地址

SR=0:允许输入IRAM 和CGRAM 地址

反白

选择

0 0 0 0 0 0 0 1 R1 R0

选择2 行中的任一行作反白显示,并可

决定反白与否。初始值R1R0=00,第一

次设定为反白显示,再次设定变回正常

睡眠

模式

0 0 0 0 0 0 1 SL X X

SL=0:进入睡眠模式

SL=1:脱离睡眠模式

UnRegistered

第 6 页

扩充

功能

设定

0 0 0 0 1 CL X RE G 0

CL=0/1:4/8 位数据

RE=1: 扩充指令操作

RE=0: 基本指令操作

G=1/0:绘图开关

设定绘

图RAM

地址

0 0 1

0

AC6

0

AC5

0

AC4

AC3

AC3

AC2

AC2

AC1

AC1

AC0

AC0

设定绘图RAM

先设定垂直(列)地址AC6AC5…AC0

再设定水平(行)地址AC3AC2AC1AC0

将以上16 位地址连续写入即可

备注;当IC1 在接受指令前,微处理器必须先确认其内部处于非忙碌状态,即读取BF 标志时,BF 需为零,方可接

受新的指令;如果在送出一个指令前并不检查BF 标志,那么在前一个指令和这个指令中间必须延长一段较长

的时间,即是等待前一个指令确实执行完成。

六.时序图

并口读写时序图:

MPU 写数据

MPU 读数据

T p w

V ih 1

V i l1

T r T d s w T h

V a l id D a t a

T c

R S

R /W

E

D B 0 ~ D B 7

T a s

T a h

T a h

T c

T d s w T h

D B 0 ~ D B 7 V a l id D a t a

V i l i

V i h i V ih i

V i l i

T p w

T a s

V ih i

R /W

E

T r

R S V i h i

V i l i V i l i

V i h i

V ih i

T a h

T a h

T d d r

UnRegistered

第 7 页

串口读写时序:

七、软件初始化:

RS RW D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 0 1 1 X X X X

…….在此指令前,不能检查BF 标志

0 0 0 0 1 1 X X X X …….在此指令前,不能检查BF 标志

电源开启

延迟时间超过40ms

延迟时间超过100us UnRegistered

第 8 页

0 0 0 0 1 1 X X X X …….在此指令前,不能检查BF 标志

0 0 0 0 1 1 1 1 x x …… 在此指令前,不能检查BF 标志

0 0 0 0 1 1 1 0 0 0 ….. 设为基本指令

0 0 0 0 0 0 0 0 0 1 ….. 荧屏显示清除

0 0 0 0 0 0 0 1 I/D S ….. 进入点设定

DV12232G (ST7920) 并口演示程序 Keil C51

// DV12232G 测试程序(并口)

//***************************************************************************

//连线表: CPU=89C52 *

//RS=P2.0 RW=P2.1 E=/(WR*RD) *

//FOSC=12MHz D0-D7=P0.0-P0.7 /RSET=/(CPU RSET) *

//***************************************************************************

#include

#include

#include

#include

char xdata LcmWriteCom _at_ 0x0000; //写指令

char xdata LcmWriteData _at_ 0x0100; //写数据

char xdata LcmReadBF _at_ 0x0200; //读BF&AC

char xdata LcmReadData _at_ 0x0300; //读数据

sbit Key=P3^4;

unsigned char code AC_TABLE[]={

0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, //第一行汉字位置

0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, //第二行汉字位置

};

unsigned char code str2[]="欢迎光临dvlcd!!";

unsigned char code str1[]="迪威液晶显示技术欢迎您!内含八千汉字库。";

unsigned char code bmp1[];

void CheckBusy( void )

{

while(LcmReadBF&0x80); //BF=1 Busy

延迟时间超过37us

初始设定结束

UnRegistered

第 9 页

}

void WriteCommand( unsigned char Cbyte )

{

CheckBusy();

LcmWriteCom = Cbyte;

}

void WriteData( unsigned char Dbyte )

{

CheckBusy();

LcmWriteData = Dbyte;

}

unsigned char ReadData( void )

{

CheckBusy();

return LcmReadData;

}

void Delay(unsigned int MS)

{

unsigned char us,usn;

while(MS!=0) //for 12M

{ usn = 2;

while(usn!=0)

{

us=0xf5;

while (us!=0){us--;};

usn--;

}

MS--;

}

}

//迪威液晶测试架专用延时函数

void DelayKey(unsigned int Second , unsigned int MS100)

{ //输入精确到0.1S,是用","

unsigned int i;

for(i=0;i

{

if(Key==0)

{

Delay(20);

while(Key==0) {Delay(20);}

break;

}

else Delay(10);

}

}

void LcmInit( void )

{

WriteCommand(0x30); //8BitMCU,基本指令集合

WriteCommand(0x03); //AC 归0,不改变DDRAM 内容

WriteCommand(0x0C); //显示ON,游标OFF,游标位反白OFF

WriteCommand(0x01); //清屏,AC 归0

WriteCommand(0x06); //写入时,游标右移动

UnRegistered

第 10 页

}

//文本区清RAM 函数

void LcmClearTXT( void )

{

unsigned char i;

WriteCommand(0x30); //8BitMCU,基本指令集合

WriteCommand(0x80); //AC 归起始位

for(i=0;i<64;i++)

WriteData(0x20);

}

//图形区和文本区显示在两个不同的RAM 区

//图形区清RAM 函数

void LcmClearBMP( void )

{

unsigned char i,j;

WriteCommand(0x34); //8Bit 扩充指令集,即使是36H 也要写两次

WriteCommand(0x36); //绘图ON,基本指令集里面36H 不能开绘图

for(i=0;i<32;i++) //12864 实际为256x32

{

WriteCommand(0x80|i); //行位置

WriteCommand(0x80); //列位置

for(j=0;j<32;j++) //256/8=32 byte

WriteData(0);

}

}

void PutStr(unsigned char row,unsigned char col,unsigned char *puts)

{

WriteCommand(0x30); //8BitMCU,基本指令集合

WriteCommand(AC_TABLE[8*row+col]); //起始位置

while(*puts != '\0') //判断字符串是否显示完毕

{

if(col==8) //判断换行

{ //若不判断,则自动从第一行到第三行

col=0;

row++;

}

if(row==2) row=0; //一屏显示完,回到屏左上角

WriteCommand(AC_TABLE[8*row+col]);

WriteData(*puts); //一个汉字要写两次

puts++;

WriteData(*puts);

puts++;

col++;

}

}

void ReadDemo( void )

{

unsigned char i;

unsigned char x,y;

PutStr(0,0,str2); //显示一行文字

for(i=0;i<8;i++) //只操作第一行

UnRegistered

第 11 页

{

WriteCommand(0x80|i);

x = ReadData(); //假读一次,无作用

x = ReadData(); //第二个读取才能正确

y = ReadData(); //每个循环读和写要两次

//每个AC 地址有高低两个字节

WriteCommand(0x90|i); //将读取的内容写到第二行

WriteData(x);

WriteData(y);

}

}

void PutBMP(unsigned char *puts)

{

unsigned int x=0;

unsigned char i,j;

WriteCommand(0x34); //8Bit 扩充指令集,即使是36H 也要写两次

WriteCommand(0x36); //绘图ON,基本指令集里面36H 不能开绘图

for(i=0;i<32;i++) //12864 实际为256x32

{

WriteCommand(0x80|i); //行位置

WriteCommand(0x80); //列位置

for(j=0;j<16;j++) //122/8=15.25=16(只能为整数)

{ //列位置每行自动增加

WriteData(puts[x]);

x++;

}

}

}

//迪威液晶测试用点阵显示

void DisplayDots(unsigned char DotByte)

{

unsigned char i,j;

WriteCommand(0x34); //8Bit 扩充指令集,即使是36H 也要写两次

WriteCommand(0x36); //绘图ON,基本指令集里面36H 不能开绘图

for(i=0;i<32;i++) //12864 实际为256x32

{

WriteCommand(0x80|i); //行位置

WriteCommand(0x80); //列位置

for(j=0;j<16;j++) //122/8=15.25=16(只能为整数)

{ //列位置每行自动增加

WriteData(DotByte);

}

DotByte=~DotByte;

}

}

void main( void )

{

Delay(100); //等待复位

LcmInit();

LcmClearTXT();

LcmClearBMP();

while(1)

{

UnRegistered

第 12 页

LcmClearTXT();

PutBMP(bmp1);

DelayKey(1,5);

DisplayDots(0x55);

DelayKey(1,5);

LcmClearBMP();

PutStr(0,0,str1);

DelayKey(1,5);

LcmClearTXT();

ReadDemo();

DelayKey(1,5);

LcmClearTXT();

DisplayDots(0xaa);

DelayKey(1,5);

}

}

unsigned char code bmp1[]={

//********************************************************//

//***** 转换的文件:E:\!Program\!BmpSample\12832_12232.bmp

//***** 源图形宽度 * 高度:128 * 32

//***** 调整后宽度 * 高度:128 * 32

//***** 字模格式:横向取模,冗余模式,字节正序,正色取模,

//***** 点阵转换时间:2005/03/15 13:37:14

//***** 位图点阵占用512 字节

//********************************************************//

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,

0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,

0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,

0x80,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x0C,0x00,0x00,0x41,

0x80,0x00,0x00,0x30,0x00,0xE0,0xF0,0x00,0x18,0x30,0x00,0x07,0x18,0x00,0x00,0x41,

0x80,0x00,0x00,0x7F,0x80,0x63,0xCF,0xF0,0x18,0x30,0x30,0x06,0x18,0x00,0x00,0x41,

0x80,0x03,0xFF,0x7F,0xE0,0x76,0x0C,0x30,0x1C,0x30,0x60,0x66,0x3F,0xFE,0x00,0x41,

0x80,0x00,0x07,0xC0,0x60,0x3E,0x18,0x60,0x1C,0x60,0xC0,0x6C,0x30,0x00,0x00,0x41,

0x80,0x00,0x06,0xCC,0xE0,0x0C,0x18,0x60,0x0C,0x61,0x80,0xCC,0x60,0x00,0x00,0x41,

0x80,0x03,0x07,0x98,0xC0,0x0C,0x38,0xE0,0x0C,0xE3,0x00,0xCC,0xCC,0x00,0x00,0x41,

0x80,0x03,0x0D,0x99,0xC0,0x1C,0x30,0xC0,0x0C,0xC6,0x00,0xD8,0xCF,0x00,0x00,0x41,

0x80,0x03,0x1F,0x19,0x87,0xD8,0x30,0xC0,0x00,0xC0,0x01,0x99,0x83,0x80,0x00,0x41,

0x80,0x03,0x9F,0x33,0x00,0xD8,0x71,0xC3,0xFF,0xFF,0xF1,0x9B,0x01,0xC0,0x00,0x41,

0x80,0x01,0xB0,0x37,0x01,0xF8,0x61,0x80,0x0C,0x30,0x01,0xB6,0x00,0xE0,0x00,0x41,

0x80,0x01,0xE0,0x70,0x01,0xB0,0x61,0x80,0x0C,0x70,0x03,0x30,0x00,0x00,0x00,0x41,

0x80,0x01,0xE0,0x70,0x01,0xB0,0xE3,0x80,0x1C,0x60,0x03,0x33,0xFF,0xC0,0x00,0x41,

0x80,0x01,0xC0,0xF0,0x03,0x60,0xC3,0x00,0x18,0x60,0x03,0x67,0x18,0xC0,0x00,0x41,

0x80,0x03,0xC1,0xF0,0x03,0x67,0xC3,0x00,0x30,0xE0,0x06,0x66,0x30,0xC0,0x00,0x41,

0x80,0x07,0xC3,0xB0,0x03,0x7F,0xC7,0x00,0x30,0xC0,0x06,0x6E,0x30,0xC0,0x00,0x41,

0x80,0x0E,0xE3,0x30,0x06,0x71,0xF6,0x00,0x60,0xC0,0xC6,0xCC,0x31,0x80,0x00,0x41,

0x80,0x1C,0xE6,0x38,0x06,0x01,0xBC,0x00,0xC1,0xC1,0x8C,0xCC,0x61,0x80,0x00,0x41,

0x80,0x38,0xEC,0x38,0x0F,0x03,0x80,0x01,0x81,0x81,0x8C,0xD8,0x61,0x80,0x00,0x41,

0x80,0x60,0x78,0x18,0x1B,0x83,0x00,0x07,0x01,0x83,0x0D,0x98,0x63,0x00,0x00,0x41,

0x80,0xC0,0x70,0x1C,0x71,0xC6,0x00,0x1E,0x03,0x87,0x01,0x98,0xC3,0x00,0x00,0x41,

0x80,0x00,0xE0,0x0C,0xE0,0xFF,0xFE,0x38,0x01,0xFE,0x01,0x9F,0xFE,0x00,0x00,0x41,

0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,

UnRegistered

第 13 页

0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,

0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,

0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,

0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,


关于中安网 | 广告服务 | 诚聘英才法律声明隐私声明 |  服务条款 | 帮助中心 | 联系我们网站地图
Copyright © 1999-2011 cps.com.cn All Rights Reserved
版权所有:CPS中安网    电信增值业务经营许可证:粤B2-20100259