LCD12864串口显示
Lcd12864最全中文资料
128*64LCD液晶显示屏中文资料一、概述二、带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
三、基本特性:(1)、低电源电压(VDD:+3.0--+5.5V)(2)、显示分辨率:128×64点(3)、内置汉字字库,提供8192个16×16点阵汉字(简繁体可选) (4)、内置 128个16×8点阵字符(5)、2MHZ时钟频率(6)、显示方式:STN、半透、正显(7)、驱动方式:1/32DUTY,1/5BIAS (8)、视角方向:6点(9)、背光方式:侧部高亮白色LED,功耗仅为普通LED的1/5—1/10 (10)、通讯方式:串行、并口可选(11)、内置DC-DC转换电路,无需外加负压(12)、无需片选信号,简化软件设计(13)、工作温度: 0℃ - +55℃ ,存储温度: -20℃ - +60℃模块接口说明:*注释1:如在实际应用中仅使用串口通讯模式,可将PSB接固定低电平,也可以将模块上的J8和“GND”用焊锡短接。
*注释2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。
*注释3:如背光和模块共用一个电源,可以将模块上的JA、JK用焊锡短接。
2.2并行接口管脚号管脚名称电平管脚功能描述1VSS0V电源地2VCC 3.0+5V电源正3V0-对比度(亮度)调整4RS(CS)H/L RS=“H”,表示DB7——DB0为显示数据RS=“L”,表示DB7——DB0为显示指令数据5R/W(SID)H/L R/W=“H”,E=“H”,数据被读到DB7——DB0R/W=“L”,E=“H→L”,DB7——DB0的数据被写到IR或DR6E(SCLK)H/L使能信号7DB0H/L三态数据线8DB1H/L三态数据线9DB2H/L三态数据线10DB3H/L三态数据线11DB4H/L三态数据线12DB5H/L三态数据线13DB6H/L三态数据线14DB7H/L三态数据线15PSB H/L H:8位或4位并口方式,L:串口方式(见注释1)16NC-空脚17/RESET H/L复位端,低电平有效(见注释2)18VOUT-LCD驱动电压输出端19A VDD背光源正端(+5V)(见注释3)20K VSS背光源负端(见注释3)*注释1:如在实际应用中仅使用并口通讯模式,可将PSB接固定高电平,也可以将模块上的J8和“VCC”用焊锡短接。
LCD12864图形液晶并口显示
LCD12864图形液晶并口显示【教学引入】液晶屏,在生活中很常见,我们常见的液晶显示器,如电脑的显示器,电视机,手机等等。
液晶屏在生活中已得到了普遍应用,它显示个各种各样的画面。
【教学目标】1、掌握LCD12864液晶屏的用法;2、编写LCD12864液晶屏的指令代码;【知识目标】1、掌握LCD12864液晶屏的用法;2、掌握LCD12864液晶屏指令代码;【教学准备】电脑、Proteus、Keil【教学方法】教法:讲授法、讨论法学法:练习法、探究法【教学课时】四课时【教学过程】一、12864液晶介绍(1)12864是128*64点阵液晶模块的点阵数简称,业界约定俗成的简称。
12864点阵的屏显成本相对较低,适用于各类仪器,小型设备的显示领域。
12864M汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。
12864引脚说明查阅“12864M.PDF”12864M液晶显示模块技术手册——四、用户指令集1、指令表1:(RE=0:基本指令表),如下图,讲解了12864的基本指令集和扩充指令集。
当模块在接受指令前,微处理器必须先确认模块内部处于非忙碌状态,即读取BF标志时BF需为0。
“RE”为基本指令集与扩充指令集的选择控制位元,往后的指令集将维持在最后的状态。
当选择G=0 :绘图显示OFF,汉字显示的时,12864屏只能显示8X4=32个汉字,下面是汉字显示的坐标二、12864液晶屏驱动电路原件名称所属类(Category) 所属子类(Sub-category)AT89C52 Microprocessor ICs 8051 FamilyPOT-HG Resistors VariableRESPACK-8 Resistors Resistor PacksLCD12864A 自制-AT89C52的P0口连接12864的并行数据口,RP1为P0口的上拉排阻。
LCD12864_ESUART通过串口命令显示图片
void delay_ms(uint t)//ms 延时函数
{ uint x,y; for(x=t;x>0;x‐‐) for(y=120;y>0;y‐‐);
}
void lcd12864_port_init()//LCD12864 端口初始化函数 {
//TRISB0=0;//选端‐CS,设为输出,低电平有效,已跳线接 GND TRISB2=0;//数据/命令选择端‐CD,设为输出 TRISB3=0;//复位端‐RST,设为输出 TRISB4=0;//数据输入端‐SDI,设为输出 TRISB5=0;//时钟输入端‐SCK,设为输出 TRISA4=0;//背光输入端‐BL,设为输出 //CS=1;//片选端初始化为 1,暂不选中 LCD12864 CD=0;//初始化选择发送命令 RST=1;//初始化复位端为高电平,暂不复位 SDI=1;//数据输入线初始化为 1 SCK=1;//时钟输入线初始化为高电平 }
LCD12864_ESUART 通过串口命令显示图片 原理图 1(图中红色方框处为 MCU 引脚端口)
原理图 2(LCD12864 引脚端口)
图 3(LC12864‐ST7565R 驱动的仅 SPI 写入时序图)
以下 3 幅图为要显示在 LCD12864 上的 BMP 单色位图(128*64 像素)
配置寄存器设置
********************************************************************* ******************************************/ __PROG_CONFIG(1,0xc100);//使能振荡器切换;使能故障保护时钟监控;XT 振荡器; __PROG_CONFIG(2,0x0a16);//看门狗分频 1:32;禁用看门狗;欠压复位 2.7V;硬件使 能欠压复位;使能上电延时定时器; __PROG_CONFIG(3,0x8100);//使能 MCLR 引脚;timer1 高功耗运行;PORTB<4:0>引 脚复位后为数字 I/O;CCP2 与 IO 与 RC1 复用; __PROG_CONFIG(4,0x0081);//禁止后台调试,RB6、7 为通用 I/O 口;禁止变址寻址; 禁止低压编程;堆栈满/下溢导致复位; __PROG_CONFIG(5,0xC00f);//数据 EEPROM 无代码保护;引导区无代码保护;程序 存储块 3-0 无代码保护; __PROG_CONFIG(6,0xe00f);//数据 EEPROM 无写保护;引导区无写保护;配置寄存 器无写保护;程序存储块 3-0 无写保护; __PROG_CONFIG(7,0x400f);//引导区无表读保护;程序存储块 3-0 无表读保护;
LCD12864液晶显示器中文说明
一、液晶显示模块概述12864A-1汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。
主要技术参数和显示特性:电源:VDD 3.3V~+5V(内置升压电路,无需负压);显示内容:128列× 64行显示颜色:黄绿显示角度:6:00钟直视LCD类型:STN与MCU接口:8位或4位并行/3位串行配置LED背光多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等二、外形尺寸1.外形尺寸图2.主要外形尺寸项目标准尺寸单位模块体积113.0×65.0×12.8mm定位尺寸105.0×55.0mm视域73.4×38.8 mm行列点阵数128×64dots点距离0.52×0.52 mm点大小0.48×0.48 mm二、模块引脚说明128X64 引脚说明引脚号引脚名称方向功能说明1 VSS - 模块的电源地2 VDD - 模块的电源正端3 V0 - LCD驱动电压输入端4 RS(CS) H/L 并行的指令/数据选择信号;串行的片选信号5 R/W(SID) H/L 并行的读写选择信号;串行的数据口6 E(CLK) H/L 并行的使能信号;串行的同步时钟7 DB0 H/L 数据08 DB1 H/L 数据19 DB2 H/L 数据210 DB3 H/L 数据311 DB4 H/L 数据412 DB5 H/L 数据513 DB6 H/L 数据614 DB7 H/L 数据715 PSB H/L 并/串行接口选择:H-并行;L-串行16 NC 空脚17 /RET H/L 复位低电平有效18 NC 空脚19 LED_A - 背光源正极(LED+5V)20 LED_K - 背光源负极(LED-OV)逻辑工作电压(VDD):4.5~5.5V电源地(GND):0V工作温度(Ta):0~60℃(常温) / -20~75℃(宽温)三、接口时序模块有并行和串行两种连接方法(时序如下):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)四、用户指令集指令指令码说明执行时间(540KHZ)RSRWDB7DB6DB5DB4DB3DB2DB1DB清除显示0 0 0 0 0 0 0 0 0 1将DDRAM填满“20H”,并且设定DDRAM的地址计数器(AC)到“00H”4.6ms地址归位0 0 0 0 0 0 0 0 1 X设定DDRAM的地址计数器(AC)到“00H”,并且将游标移到开头原点位置;这个指令并不改变DDRAM的内容4.6ms进入点设定0 0 0 0 0 0 0 1 I/D S指定在资料的读取与写入时,设定游标移动方向及指定显示的移位72us显示状态开/关0 0 0 0 0 0 1 D C BD=1:整体显示ONC=1:游标ONB=1:游标位置ON72us游标或显示移位控制0 0 0 0 0 1S/CR/LX X设定游标的移动与显示的移位控制位元;这个指令并不改变DDRAM的内容72us功能设定0 0 0 0 1 DL XREX XDL=1 (必须设为1)RE=1:扩充指令集动作72us备注:1、当模块在接受指令前,微处理顺必须先确认模块内部处于非忙碌状态,即读取BF标志时BF需为0,方可接受新的指令;如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延迟一段较长的时间,即是等待前一个指令确实执行完成,指令执行的时间请参考指令表中的个别指令说明。
一种RS485接口多国语言LCD12864显示器的设计
86电子技术Electronic Technology电子技术与软件工程Electronic Technology & Software Engineering●基金项目:2018年度黑龙江省教育厅高等教育教学改革研究项目《基于“专创融合”的通信类创新创业教育改革研究与实践 》,项目编号:(SJGZ20180020)。
RS485通信标准自从上世纪80年代以来,以其传输距离远、抗干扰能力强、布线成本低等优点,在工业控制领域中得到了广泛应用[1]。
工业领域中的PLC 、变频器、电能表等设备大多采用RS485通信标准,为了方便用户实时监测这些设备的状态信息,设计了一种RS485通信标准的显示屏,可以读取工控设备的状态信息并实时显示到显示屏上,在工控领域有着广阔的应用空间。
1 系统硬件设计系统硬件组成框图如图1所示。
如图1所示,工控设备通过RS485接口把数据传输至MCU ,MCU 将数据解包后,得到需要显示的数据,如果数据中包含文字则会从字库芯片中查找字模,最后将数据显示到12864液晶屏上[2]。
1.1 MAX3485通信芯片MAX3485是MAXIM 公司生产的一款3.3V 供电的RS485电平收发芯片,静态电流仅300uA ,最高可达到2.5Mbps 传输速度,使用广泛。
MAX3485应用电路如图2所示。
MAX3485的2脚和3脚是使能管脚,低电平为接收状态,高电平为发送状态,因此2脚和3脚可以短接,仅需MCU 一个IO 口即可控制。
1.2 STC12LE5A60S2单片机芯片STC12LE5A60S2是STC 公司生产的一款3.3V 供电的单时钟/机器周期(1T )的MCU 芯片,指令集和管脚兼容传统8051单片机(如图3所示),速度比传统51单片机快6~12倍,在工业控制,强干扰场合比较适用。
本系统运行中涉及到字库读取、字模运算等操作,对MCU 运算性能要求高,因此速度快性能强的STC12LE5A60S2是系统正常工作的保障。
LCD12864串行显示文件
LCD12864串行显示文件1、LCD12864.c文件//===================================== ==========================#include "LCD12864.h"#include/**** 串行控制 *****************/sbit RS = P1^0;sbit RW = P1^1;sbit EN = P1^2;/*-----LCD12864相关声明---------*/#define com_byte 0#define dat_byte 1uchar lcdPosX, lcdPosY; //X,Y坐标uchar halfScr, halfLineCnt, basicBlock; //半屏,半屏行数,N*8块/************************************************************** 函数名称:void LCD12864_Delay_Ms (uchar ms)函数功能: LCD12864延时函数**************************************************************/ void LCD12864_Delay_Ms (uchar ms){uchar i;while (--ms){for (i = 0; i < 125; i++);}/************************************************************** 函数名称:void LCD12864_Write_Byte(uchar byte)函数功能: 写字节**************************************************************/ void LCD12864_Write_Byte(uchar byte){uchar i;for(i = 0; i < 8; i++){EN = 0;byte <<= 1;RW = CY;EN = 1;}}/************************************************************** 函数名称:uchar LCD12864_Read_Byte(void)函数功能: 读字节*************************************************************** /uchar LCD12864_Read_Byte(void){uchar i,temp1,temp2;temp1 = 0;temp2 = 0;for(i = 0; i < 8; i++)temp1 = temp1 << 1;EN = 0;EN = 1;EN = 0;if(RW) temp1++;}for(i=0;i<8;i++){temp2=temp2<<1;EN = 0;EN = 1;EN = 0;if(RW) temp2++;}return ((0xf0 & temp1) + (0x0f & temp2));}/************************************************************** 函数名称:void LCD12864_Is_Busy( void )函数功能: 检测忙函数**************************************************************/ void LCD12864_Is_Busy( void ){doLCD12864_Write_Byte(0xfc); //11111,RW(1),RS(0),0while(0x80 & LCD12864_Read_Byte());}/**************************************************************函数名称:void LCD12864_Write(bit dat_byte_com_byte,uchar byt)函数功能: 写入函数*************************************************************** /void LCD12864_Write(bit dat_byte_com_byte, uchar byt){uchar temp;if(dat_byte_com_byte == 0) //为零,写入指令temp = 0xf8; //11111,RS(0),RW(0),0else //否则,写入数据temp = 0xfa; //11111,RS(1),RW(0),0RS = 1;LCD12864_Is_Busy();LCD12864_Write_Byte(temp);LCD12864_Write_Byte(byt & 0xf0); //写入高四位LCD12864_Write_Byte(byt << 4); //写入低四位RS = 0;}/************************************************************** 函数名称:void LCD12864_Clear_Display (void)函数功能: LCD12864 显示清屏*************************************************************** /void LCD12864_Clear_Display (void){LCD12864_Write(com_byte,0x01);}/**************************************************************函数名称:void LCD12864_Write_Position (void)函数功能: LCD12864 显示位置*************************************************************** /void LCD12864_Write_Position (void){LCD12864_Write(com_byte,0x34);LCD12864_Write(com_byte,lcdPosY);LCD12864_Write(com_byte,lcdPosX);LCD12864_Write(com_byte,0x30);}/************************************************************** 函数名称:void LCD12864_DisplayPhoto (uchar *bmp, uchar bmpCls)函数功能: LCD12864 显示一张图片*************************************************************** /void LCD12864_DisplayPhoto (uchar *bmp, uchar bmpCls) {lcdPosX = 0x80;halfScr = 2;for (; halfScr != 0; halfScr--){lcdPosY = 0x80;halfLineCnt = 32;for (; halfLineCnt != 0; halfLineCnt--){basicBlock = 16;LCD12864_Write_Position();for (; basicBlock != 0; basicBlock--){if (bmpCls == 0){LCD12864_Write(dat_byte, *bmp++);}else if (bmpCls == 1){LCD12864_Write(dat_byte, 0x00);}}lcdPosY++;}lcdPosX = 0x88;}LCD12864_Write(com_byte, 0x36);LCD12864_Write(com_byte, 0x30);}/************************************************************** 函数名称:void convertChar (uchar CX, CY, width)* 字符反白显示* 输入参数:CX=要反白字符的行(0-3)* CY=要反白字符的列(0-7)* width=要反白字符的长度(1-16)函数功能: 转换成字符*************************************************************** /void convertChar (uchar CX, CY, width){LCD12864_DisplayPhoto(0,1);lcdPosY = 0x80;if (CX == 0){CX = 0x80;halfLineCnt = 16;}else if (CX == 1){CX = 0x80;halfLineCnt = 32;}else if (CX == 2){CX = 0x88;halfLineCnt = 16;}else if (CX == 3){CX = 0x88;halfLineCnt = 32;}lcdPosX = CX + CY;for (; halfLineCnt != 0; halfLineCnt--){basicBlock = width;LCD12864_Write_Position();for (; basicBlock != 0; basicBlock--){if (halfLineCnt > 16){LCD12864_Write(dat_byte, 0x00);}else{LCD12864_Write(dat_byte, 0xff);}}lcdPosY++;}LCD12864_Write(com_byte, 0x36);LCD12864_Write(com_byte, 0x30);}/************************************************************** 函数名称:void LCD12864_Display_String(uchar X, uchar Y, uchar speed, uchar *msg)函数功能: LCD12864 显示字符串/void LCD12864_Display_String(uchar X, uchar Y, uchar speed, uchar *msg){if (X == 0){X = 0x80;}else if (X == 1){X = 0x90;}else if (X == 2){X = 0x88;}else if (X == 3){X = 0x98;}Y = X + Y;LCD12864_Write(com_byte, Y);while (*msg){LCD12864_Write(dat_byte, *msg++);LCD12864_Delay_Ms(speed);}}函数名称:void init_12864(void)函数功能:初始化12864*************************************************************** /void init_12864(void){LCD12864_Write(com_byte, 0x30); //基本指令功能.LCD12864_Write(com_byte, 0x0c); //显示打开,关光标,反白关.LCD12864_Write(com_byte, 0x01); //清屏指令.LCD12864_Write(com_byte, 0x06); //AC自动加一LCD12864_Write(com_byte, 0x80);}2、LCD12864.h文件//===================================== ==========================#ifndef __LCD12864_H__#define __LCD12864_H__#define uchar unsigned char#define uint unsigned int/************************************************************** 函数名称:void LCD12864_Write(bit dat_byte_com_byte,uchar byt)函数功能: 写入函数*************************************************************** /void LCD12864_Write(bit dat_byte_com_byte, uchar byt);/************************************************************** 函数名称:void LCD12864_Clear_Display (void)函数功能: LCD12864 显示清屏*************************************************************** /void LCD12864_Clear_Display (void);/************************************************************** 函数名称:void LCD12864_Write_Position (void)函数功能: LCD12864 显示位置*************************************************************** /void LCD12864_Write_Position (void);/************************************************************** 函数名称:void LCD12864_DisplayPhoto (uchar *bmp, uchar bmpCls)函数功能: LCD12864 显示一张图片*************************************************************** /void LCD12864_DisplayPhoto (uchar *bmp, uchar bmpCls);/************************************************************** 函数名称:void LCD12864_Display_String(uchar X, uchar Y, uchar speed, uchar *msg)函数功能: LCD12864 显示字符串*************************************************************** /void LCD12864_Display_String(uchar X, uchar Y, uchar speed, uchar *msg);/************************************************************** 函数名称:void init_12864(void)函数功能:初始化12864*************************************************************** /void init_12864(void);#endif。
12864串口并带菜单
zifu_Disp(0,1,"");
if((1+(curr/4)*4)<num)
zifu_Disp(0,2,MainMenu[1+(curr/4)*4]);
else
zifu_Disp(0,2,"");
{
uint i;
while(t--)
{
for(i=0;i<125;i++);
}
}
/*****串行发送一个字节*****/
void SendByte(uchar Dbyte)
{
uchar i;
for(i=0;i<8;i++)
{
delayms(2000);
curr++;
if (curr==10)
curr=0;
}
}
sbit SID = P2^1; //串行数据
sbit SCLK = P2^2; //串行同步时钟
//sbit PSB = P2^4; //串并口选择 1:并口模式; 0:串口模式;
//直接接地
/*****LCD功能初始化指令*****/
/*************************************************
名 称:LCD12864_ST7920串行测试程序
试验功能:测试基于ST7920控制芯片的LCD12864的显示
串行方式连接;晶振11.0592M
*************************************************/
LCD12864程序文档
LCD12864串口显示使用详解LCD12864点阵液晶显示模块(LCM)就是由128*64个液晶显示点组成的一个128列*64行的阵列。
每个显示点对应一位二进制数,1表示亮,0表示灭。
存储这些点阵信息的RAM称为显示数据存储器,要显示某个图形或汉字就是将相应的点阵信息写入到相应的存储单元中。
LCD12864控制芯片:ST7920A 带中文字库MCU:STM32F103源程序下载地址:/detail/wylloong/8538839根据串行连接时序图所示,串行数据传送共分三个字节完成:第一字节:串口控制指令——格式 11111ABC 其中,A为数据传送方向控制:H表示数据从LCD到MCU,L表示数据从MCU到LCD;B为数据类型选择:H表示数据是显示数据,L表示数据是控制指令;C固定为0第二字节:(并行)8位数据的高4位——格式 DDDD0000第三字节:(并行)8位数据的低4位——格式 0000DDDD,发送时将低四位移至发送数据的高四位,即DDDD0000方能正确。
绘图RAM(GDRAM):绘图显示RAM提供128*8个字节的记忆空间,在更改绘图RAM时,先连续写入水平与垂直的坐标值,再写入两个字节的数据到绘图RAM,而地址计数器(AC)会自动加1;在写入绘图RAM的期间,绘图显示必须关闭。
整个写入绘图RAM的步骤如下:1、关闭绘图显示功能。
2、先将水平的位元组坐标(X)写入绘图RAM地址,再将垂直的坐标(Y)写入绘图RAM地址;将D15——D8写入到RAM中;将D7——D0写入到RAM 中;3、打开绘图显示功能。
带中文字库的128X64显示模块时应注意以下几点:①欲在某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地址,再写入中文字符编码。
②显示ASCII字符过程与显示中文字符过程相同。
不过在显示连续字符时,只须设定一次显示地址,由模块自动对地址加1指向下一个字符位置,否则,显示的字符中将会有一个空ASCII字符位置。
LCD12864液晶显示原理电路图程序
LCD12864系列点阵型液晶显示模块使用说明书一、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.重量:大约g补充说明:外观尺寸可根据用户的要求进展适度调整。
二、最大工作X围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.75VminH H D7 D6 D5 D4 D3 D2 D1 D0功能:从DD RAM读数据,读指令执行后Y地址计数器自动加1。
从DD RAM读数据前要先执行“设置页地址〞及“设置列地址〞命令。
六、接口时序1.写操作时序时序11.读操作时序时序2时序参数表:名称符号最小值典型值最大值单位E周期时间Tcyc 1000 nsE高电平宽度Pweh 450 nsE低电平宽度Pwel 450 nsX=7Line60 1/0 1/0 1/0 1/0 ………… 1/0 1/0 1/0 DB4 Line61 1/0 1/0 1/0 1/0 ………… 1/0 1/0 1/0 DB5 Line62 1/0 1/0 1/0 1/0 ………… 1/0 1/0 1/0 DB6 Line631/0 1/0 1/0 1/0…………1/0 1/0 1/0 DB7八、测试硬件电路九、读写模块程序举例● 写指令子程序〔INST 〕 SETB E CLR D _I CLR R _W MOV P1, A CLR E RET● 写数据子程序〔DATA 〕 SETB E SETB D_I CLR R _W MOV P1, A CLR E RET● 写一页显示RAM 数据〔假设指令子程序为INST ,数据子程序为DATA 〕VEE ’V0第三脚VEE 第18脚可调10K〔三极管内置〕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, LOOP带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
LCD12864显示
*//* 单片机开发系统演示程序- 128*64LCD显示显示*//* *///;* LCD型号:TS12864A-3(带汉字库)或兼容型号控制器ST7920 */ //;* MCU:AT89S52 ,晶体频率:11.0592MHz */ /* *//*******************************************************************/#include <reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int/*12864端口定义*/#define LCD_data P0 //数据口sbit LCD_RS = P3^5; //寄存器选择输入sbit LCD_RW = P3^6; //液晶读/写控制sbit LCD_EN = P3^4; //液晶使能控制sbit LCD_PSB = P3^1; //串/并方式控制sbit wela = P2^6;sbit dula = P2^7;uchar code dis1[] = {"久隆电子科技"};uchar code dis2[] = {"51单片机开发板"};uchar code dis3[] = {"一起学习单片机"};uchar code dis4[] = {"是您最好的选择!"};#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};uchar IRDIS[2];uchar IRCOM[4];void dataconv();void lcd_pos(uchar X,uchar Y); //确定显示位置/*******************************************************************//* *//* 延时函数*//* *//*******************************************************************/ void delay(int ms){while(ms--){uchar i;for(i=0;i<250;i++){_nop_();_nop_();_nop_();_nop_();}}}/*******************************************************************//* *//*检查LCD忙状态*/ /*lcd_busy为1时,忙,等待。
12864串行显示中文讲解0001
12864串行显示中文,按键选择显示页面,并且可调数值。
单片机P1 口接矩阵按键,其它接口按程序中定义去接只需要接12864LCD 上GND VCC程序如下/********************************12864 h 头文件 *******************************/#ifndef 12864 h #defi ne _12864_h /***** 句]头文彳牛 **************/ #in clude<reg51.h> /******** 定义 I/0 口 **********/LCD12864_SCLK = P 2人7; //E LCD12864_SID = P 2人5; //RW RS RW E PSB RST A K #defi ne GPI O_KEYP1sbitsbitsbitsbitsbit LCD12864_CS = P 2人6; //RS LCD12864_RET= P 2人0; LCD12864_ PSB =P 2人2;/*声明全局变量*/extern unsigned char keyvalue;/****** 声明全局函数 *********/void Delay1ms(unsigned int); // 声明延时函数 un signed char KeyDow n( void);void LCD_se ndbyte( un sig ned char);void WrCom(un sig ned char);void WrDat( un sig ned char);void Lcdin it(void);//void Pnnt(un sig ned char);void SetAddress( un sig ned char,u nsig ned char );void Disp layStri ng(un sig ned char x ,un sig ned char y,un sig ned char *add); #e ndif/********************************12864 C*************************************/#i nclude"12864.h"#in clude<reg51.h>#in clude"stri ng.h"//#defi ne LCM_ST7920_FIRST_LINE_ADDRESS//#define LCM ST7920 SECOND LINE ADDRESS0x80 0x90 //#defi ne LCM_ST7920_THIRD_LINE_ADDRESS//#defi ne LCM_ST7920_FOURTH_LINE_ADDRESS 0x88 0x98/*定义全局变量*/un sig ned char keyvalue=0;/******************************************************************************:c e :无 :该函数是在12MHZ 晶振下,12分频单片机的延时。
LCD12864液晶显示器中文说明(DOC)
一、液晶显示模块概述12864A-1汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。
主要技术参数和显示特性:电源:VDD 3.3V~+5V(内置升压电路,无需负压);显示内容:128列× 64行显示颜色:黄绿显示角度:6:00钟直视LCD类型:STN与MCU接口:8位或4位并行/3位串行配置LED背光多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等二、外形尺寸1.外形尺寸图2.二、模块引脚说明电源地(GND):0V工作温度(Ta):0~60℃(常温) / -20~75℃(宽温)三、接口时序模块有并行和串行两种连接方法(时序如下):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、当模块在接受指令前,微处理顺必须先确认模块内部处于非忙碌状态,即读取BF 标志时BF 需为0,方可接受新的指令;如果在送出一个指令前并不检查BF 标志,那么在前一个指令和这个指令中间必须延迟一段较长的时间,即是等待前一个指令确实执行完成,指令执行的时间请参考指令表中的个别指令说明。
2、“RE ”为基本指令集与扩充指令集的选择控制位元,当变更“RE ”位元后,往后的指令集将维持在最后的状态,除非再次变更“RE ”位元,否则使用相同指令集时,不需每次重设“RE ”位元。
具体指令介绍:1、清除显示 CODE :功能:清除显示屏幕,把DDRAM 位址计数器调整为“00H ” 2、位址归位 CODE :功能:把DDRAM 位址计数器调整为“00H ”,游标回原点,该功能不影响显示DDRAM 3、位址归位 CODE : 功能:把DDRAM 位址计数器调整为“00H ”,游标回原点,该功能不影响显示DDRAM 功能:执行该命令后,所设置的行将显示在屏幕的第一行。
12864串口时序及反白例程
LCD12864 (ST7920)串行通信1-原理图2.引脚定义描述VSS:液晶显示地(GND)。
VDD:液晶显示电源(+5V)。
CS:片选,使能信号,该引脚为高读写才能成功。
SID:数据信号。
SCLK:同步时钟信号,上升沿有效。
PSB:并「1/串II选择信号。
高电平定义为并I】,低电平定义为串「I通信。
/RST:复位信号,低电平有效。
LEDA:背光电源正。
LEDK:背光电源负。
3・通信协议1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24当PSB接低电位时,将进入串行传输模式。
主要用到CS、SCLK、SID三根线来实现: CS为片选使能SCLK为同步时钟信号,以SCLK上升沿接收1 BITSID为传输的数据从一个完整的串行传输流程来看,一开始先传输启始字节,根据定义启始字节前五位为“同步位”字符串(五个连续的“1”),此时传输计数将被重置并且串行传输将被同步, 再跟随的两个位字符串(第六、第七位)分别指定传输方向位(RW)及寄存器选择位(RS),最后第八位则为“0”。
再接收到包含同步位及RW和RS资料的启始字节后,每一个八位的指令(数据)将被分为两个字节发送接收:高4位(DE7〜DB4)的数据将会被放在第一个字节的LSB部分,而低4位(DB3〜DB0)的数据会被放在第二个字节的LSB部分,至于相关的另四位则以“0”填充。
第一个字节:启始字节,格式Uli 1ABCA传输方向位RW, H表示LCD->MCU, L表示MCU->LCDB数据类型位RS, H表示显示数据,L表示控制指令C固定为0第二个字节:(并行)8位数据的高4位,格式D7~D4 0000第三个字节:(并行)8位数据的低4位,格式0000D3~D0 因为串行通信的数据是以位为单位进行传输,所以只要在每位数据的传输过程中适当的添加一段延时基本上就能保证数据收发成功。
可串行驱动LCD12864的应用之一……基础篇
在网上搜了一下,ST7920控制器的LCD产品可以提供8位,4位并行和串行接口可选,并行的控制接口的LCD较多,前面的贴子也介绍过,我们在这儿不说了,这儿我们讲的是串口控制LCD12864。
买了块ST7920的LCD12864,这个好像价格便宜些,52元。
是不是显示效果要差些呢。
再来个背面:买来后也就只有个管脚说明:(我只说串口的定义)工作于串行模式时的引脚定义:PIN1------------ GND 电源-,一般接0V。
PIN2------------VDD 电源+,一般接5V。
PIN3------------V0 对比度调整端。
PIN4------------CS,片选PIN5------------SID,数据PIN6------------SCK,脉冲PIN7------------NC,不连接PIN8------------NC,不连接PIN9------------NC,不连接PIN10-----------NC,不连接PIN11-----------NC,不连接PIN12-----------NC,不连接PIN13-----------NC,不连接PIN14-----------NC,不连接PIN15-----------PSB 并行:PSB=1,可以接VCC;串行:PSB=0,一般接GNDPIN16 ----------NC,不连接PIN17-----------RST,模块复位(低电平有效)PIN18 ----------NC,不连接PIN19 ----------LED+ ,背光+,一般接5V。
PIN20 ----------LED- ,背光-,一般接GND。
在网上搜了关于ST7920的资料,跟据图上的接法串行驱动只要四根线和S52连接:PIN5----SID 数据线PIN6----SCLK 时钟脉冲线PIN1----VSS(GND)接地PIN2----VDD(Vcc)电源+5V我先试了背光,也就是第20脚接地,19脚通过电流表接电源+5V,测得背光电流为30mA,背光很亮。
LCD12864(串口)显示程序
LCD12864(串口)显示程序#ifndef jh_f330#define jh_f330#include#endiftypedef unsigned char uint8;typedef unsigned int uint16;/*************端口配置**************/sbit LCD_CS = P0^4; //片选信号,低电平有效sbit LCD_RST = P0^3; //复位信号,低电平有效sbit LCD_A0 = P0^2; //数据、指令选择,H:数据、L:指令sbit LCD_DAT = P1^0; //串行输入数据引脚sbit LCD_CLK = P1^1; //串行时钟输入引脚uint8 code word1[]={0x04,0x44,0x84,0x04,0xE4,0x1F,0x84,0x44,0xA4,0x3F,0xA4,0x A4,0x64,0x06,0x04,0x00,0x20,0x10,0x09,0x04,0xFF,0x04,0x04,0x14,0x26,0x05,0x84,0xFF,0x04,0x06,0x04,0x00 };/**********预定义数据*********/#define LCD_X 128-1 //屏幕的X轴的物理宽度#define LCD_Y 64-1 //屏幕的Y轴的物理宽度/***********LCD指令集***************///LCD开关命令#define LCD_ON() Wr_Com(0xaf)#define LCD_OFF() Wr_Com(0xae)//设置显示起始行#define LCD_START_LINE 0x40 //起始行地址为,0x40+(0-63)//页地址设置#define LCD_Page 0xb0 //页地址为:0xb0+(0-8)//列地址设置#define LCD_Ad_H 0x10 //列高四位地址:0x10+()#define LCD_Ad_L 0x00 //列低四位地址:0x00+()//行列地址方向设置#define ADC_Norm() Wr_Com(0xa0);#define ADC_Reve() Wr_Com(0xa1);#define Com_Norm() Wr_Com(0xc0);#define Com_Reve() Wr_Com(0xc8);void Init_f330(){/*****内部振荡器配置******/OSCICL=OSCICL+4; //设置系统时钟为24MHZ,ΔT=(0.005*ΔOSCICL)/fbase // OSCICL=OSCICL+22; //设置系统时钟为22.1184MHZ// OSCICL=OSCICL+45; //设置系统时钟为20MHZ //15MHZ--24.5MHZ/********设置分频*********/// OSCICN|=0x00; //设置时钟为八分频,OSCIN复位值为1100000//00:8分频,01:4分频,10:2分频,11:不分频// OSCICN|=0x01; //设置系统时钟4分频// OSCICN|=0x02; //设置系统时钟2分频OSCICN|=0x03; //设置系统时钟不分频// RSTSRC=0x04;// OSCLCN = 0x82; // 设置内部L-F振荡器为40kHZ// CLKSEL = 0x02; // 内部低频振荡器while(OSCLCN&0x40 == 0); // 等待振荡器频率稳定/*****设置看门狗*****/PCA0MD &=~0x40; // 禁止看门狗定时器EA=1;/*****端口初始化******/P0MDIN = 0xff; //复位值为11111111P1MDIN = 0xff; //1为数字输入,0为模拟输入P0MDOUT = 0xff; //复位值为11111111P1MDOUT = 0xff; //1为推挽输出,0为漏极输出XBR0 = 0x00; // 交叉开关使能XBR1 = 0x40; //交叉开关允许,T0接到引脚//XBR1 = 0x48; // ECI连到端口引脚//XBR1 |= 0x08; // PCA0 外部计数输入使能}/***************************************功能:LCD串行写入数据程序**输入:8位数据**输出:无************************************/ void Wr_Dat(uint8 dat) {uint8 Num;LCD_CS = 0; //选通芯片LCD_A0 = 1; //写数据for(Num=0;Num<8;Num++){if((dat&0x80) == 0) LCD_DAT = 0;else LCD_DAT = 1;dat = dat << 1;LCD_CLK = 0;LCD_CLK = 1;}LCD_CS = 1;}/***************************************函数名称:Wr_Com()**功能:LCD串行写入命令程序**输入:8位数据**输出:无************************************/ void Wr_Com(uint8 com) {uint8 Num;LCD_CS = 0; //选通芯片LCD_A0 = 0; //写入命令for(Num=0;Num<8;Num++){if((com&0x80) == 0) LCD_DAT = 0;else LCD_DAT = 1;com = com << 1;LCD_CLK = 0;LCD_CLK = 1;}LCD_CS = 1;}/***************************************功能:LCD全屏显示数据程序**输入:8位数据**输出:无************************************/void LCD_Fill(uint8 dat){uint8 page;uint8 colume;for(page=0;page<8;page++)Wr_Com(LCD_Page+page);Wr_Com(LCD_Ad_H);Wr_Com(LCD_Ad_L);for(colume=0;colume<lcd_x;colume++)< p="">Wr_Dat(dat);}}/***************************************函数名称:LCD_Clear()**功能:LCD清屏程序(全屏填充0x00)**输入:8位数据**输出:无************************************/void LCD_Clear(){LCD_Fill(0x00);}/******************************************************* ** 函数名称: LCD12864_Init** 功能: LCD1286初始化程序** 输入: 无TimeDelay ** 输出: 无********************************************************/ void TimeDelay(int Time){int i;while(Time > 0){for(i = 0;i < 8000;i++){Time --;}}void LCD_Init(void){LCD_RST=0;TimeDelay(200);LCD_RST=1;TimeDelay(200);ADC_Norm();Com_Reve();Wr_Com(0xa2);Wr_Com(0x2c); //vc onTimeDelay(200);Wr_Com(0x2e); //vr onTimeDelay(200);Wr_Com(0x2f); //internal booster,follower,divided onWr_Com(0x24); //set rb/ra=5.29Wr_Com(0x81); //set reference voltage selectWr_Com(0x1d);LCD_ON();Wr_Com(LCD_START_LINE);}/************************************************************** *********函数名称:LCD_Word()**功能:输入单个汉字(16x16符号)**输入:页地址,列地址、字符数组**输出:无*************************************************************** ********/ void LCD_Word(unsigned char row,unsigned char colume,unsigned char *pword){unsigned char page= row;unsigned char col_high=colume>>4;unsigned char col_low =colume&0x0f;unsigned char i;Wr_Com(LCD_Page+page);Wr_Com(LCD_Ad_H+col_high);Wr_Com(LCD_Ad_L+col_low);for(i=0;i<16;i++){Wr_Dat(*(pword+i));}Wr_Com(LCD_Page+page+1);Wr_Com(LCD_Ad_H+col_high);Wr_Com(LCD_Ad_L+col_low);for(i=0;i<16;i++){Wr_Dat(*(pword+16+i));}main(){Init_f330();LCD_Init();LCD_Clear();LCD_Word(1,1,word1);while(1);}</lcd_x;colume++)<>。
LCD12864显示程序(成功版)
#include<reg51.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned char//--定时使用的IO口--//#define DATA_PORT P0sbit LCD12864_CS = P3^2;sbit LCD12864_RSET = P3^3;sbit LCD12864_RS = P2^6;sbit LCD12864_RW = P2^7;sbit LCD12864_RD = P2^5;//--定义全局函数--//void LcdSt7565_WriteCmd(cmd);void LcdSt7565_WriteData(dat);void Lcd12864_Init();void Lcd12864_ClearScreen(void);void Lcd12864_Write16CnCHAR(uchar x, uchar y,uchar k);void Delay10ms(unsigned int c);unsigned char code table[40][32]={/*-- 文字: 。
--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x24,0x24,0x18,0x00,0x00,/*-- 文字: 都--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x06,0xDA,0x22,0x02,0xFE,0x20,0x26,0x28,0x34,0x24,0x7F,0xA4,0x24,0x24,0x20, 0x00,0x07,0x08,0x10,0x08,0xFF,0x00,0x00,0xFF,0x49,0x49,0x49,0x49,0xFF,0x02,0x04,/*-- 文字: 皇--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x00,0x00,0x7C,0x54,0x54,0x54,0x54,0x55,0x56,0x54,0x7C,0x00,0x00,0x00, 0x00,0x40,0x41,0x49,0x49,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x49,0x49,0x41,0x40,/*-- 文字: 满--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x24,0x24,0x2F,0xE4,0x24,0x24,0xE4,0x2F,0x24,0x24,0x00,0x8C,0x02,0x60,0x10, 0x00,0x7F,0x91,0x49,0x07,0x09,0x19,0x07,0x09,0x11,0xFF,0x00,0x01,0x7E,0x04,0x04,/*-- 文字: 柳--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0xFC,0x04,0x04,0xFC,0x00,0xF8,0x02,0x04,0xFC,0x10,0x90,0xFF,0xD0,0x10,0x10, 0x00,0x07,0x08,0x04,0xFF,0x00,0x0F,0x32,0x44,0x8F,0x01,0x00,0xFF,0x00,0x03,0x04,/*-- 文字: 烟--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0xFE,0x42,0x42,0x42,0xFA,0x42,0x42,0x42,0xFE,0x08,0x10,0xFF,0x00,0x70,0x80, 0x00,0xFF,0x40,0x4C,0x42,0x41,0x46,0x48,0x50,0xFF,0x10,0x08,0x07,0x18,0x60,0x80,/*-- 文字: 胜--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x10,0x10,0x10,0xFF,0x10,0x10,0x3C,0x40,0x00,0xFE,0x22,0x22,0xFE,0x00, 0x00,0x40,0x42,0x42,0x42,0x7F,0x42,0x42,0x42,0x40,0x00,0xFF,0x82,0x02,0x7F,0x80,/*-- 文字: 绝--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0xE0,0x2C,0x34,0xE4,0x24,0x27,0xE8,0x10,0x20,0x10,0x63,0xAC,0x30,0x20, 0x00,0x70,0x43,0x42,0x42,0x43,0x42,0x42,0x3F,0x00,0x00,0x12,0x12,0x22,0x67,0x22,/*-- 文字: ,--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x58,0x00,0x00,/*-- 文字: 处--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x80,0x40,0x20,0x10,0xFF,0x00,0x00,0xF8,0x08,0x08,0x9F,0x60,0x80,0x00, 0x00,0x40,0x41,0x40,0x40,0x40,0x5F,0x40,0x20,0x20,0x13,0x0C,0x13,0x20,0x40,0x81,/*-- 文字: 好--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x80,0x86,0x8A,0x92,0xE2,0x82,0x82,0x80,0x00,0xF0,0x10,0x1F,0xF0,0x10,0x10, 0x00,0x00,0x00,0x00,0x00,0x7F,0x80,0x40,0x00,0x00,0x61,0x16,0x08,0x15,0x22,0x40,/*-- 文字: 春--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x40,0x44,0x54,0x54,0xD4,0x54,0x54,0x5F,0x74,0x54,0xD4,0x54,0x54,0x44,0x40, 0x00,0x04,0x04,0x02,0x01,0xFE,0x92,0x92,0x92,0x92,0x92,0xFE,0x01,0x02,0x04,0x04,/*-- 文字: 年--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x04,0x44,0x44,0x44,0x44,0xFC,0x44,0x44,0x44,0x44,0xC7,0x18,0x20,0x00, 0x00,0x04,0x04,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x07,0x04,0x04,0x04,/*-- 文字: 一--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*-- 文字: 是--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x00,0x00,0x7F,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x7F,0x00,0x00,0x00, 0x00,0x81,0x81,0x89,0x89,0x89,0x89,0x89,0xFF,0x81,0x41,0x21,0x1D,0x21,0x41,0x81,/*-- 文字: 最--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x40,0x40,0x40,0x5F,0x55,0x55,0x55,0x55,0xD5,0x55,0x55,0x5F,0xC0,0x40,0x40, 0x00,0x80,0x80,0x43,0x2D,0x11,0x29,0x47,0x90,0xFF,0x15,0x15,0x25,0x3F,0x60,0x20,/*-- 文字: 。
12864LCD液晶显示屏中文资料
12864LCD液晶显示屏中文资料一、概述二、带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
三、基本特性:(1)、低电源电压(VDD:+3.0--+5.5V)(2)、显示分辨率:128×64点(3)、内置汉字字库,提供8192个16×16点阵汉字(简繁体可选) (4)、内置 128个16×8点阵字符(5)、2MHZ时钟频率(6)、显示方式:STN、半透、正显(7)、驱动方式:1/32DUTY,1/5BIAS (8)、视角方向:6点(9)、背光方式:侧部高亮白色LED,功耗仅为普通LED的1/5—1/10 (10)、通讯方式:串行、并口可选(11)、内置DC-DC转换电路,无需外加负压(12)、无需片选信号,简化软件设计(13)、工作温度: 0℃ - +55℃ ,存储温度: -20℃ - +60℃模块接口说明:*注释1:如在实际应用中仅使用串口通讯模式,可将PSB接固定低电平,也可以将模块上的J8和“GND”用焊锡短接。
*注释2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。
*注释3:如背光和模块共用一个电源,可以将模块上的JA、JK用焊锡短接。
2.2并行接口的J8和“VCC”用焊锡短接。
*注释2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
逻辑工作电压(VDD):4.5~5.5V 电源地(GND):0V 工作温度(Ta):0~60℃(常温) / -20~75℃(宽温)
三、接口时序
模块有并行和串行两种连接方法(时序如下): 8 位并行连接时序图 MPU 写资料到模块
MPU 从模块读出资料
2
、
串
行
连
接
时
序
图
串行数据传送共分三个字节完成: 第一字节:串口控制—格式 11111ABC
一、液晶显示模块概述
12864A-1 汉字图形点阵液晶显示模块,可显示汉字及图形,内置 8192 个中文汉字(16X16 点阵)、128 个字符(8X16 点阵)及 64X256 点阵显示 RAM(GDRAM)。 主要技术参数和显示特性: 电源:VDD 3.3V~+5V(内置升压电路,无需负压); 显示内容:128 列× 64 行 显示颜色:黄绿 显示角度:6:00 钟直视 LCD 类型:STN 与 MCU 接口:8 位或 4 位并行/3 位串行 配置 LED 背光 多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等
H/L
-
功能说明 模块的电源地 模块的电源正端 LCD 驱动电压输入端 并行的指令/数据选择信号;串行的片选信号 并行的读写选择信号;串行的数据口 并行的使能信号;串行的同步时钟 数据 0 数据 1 数据 2 数据 3 数据 4 数据 5 数据 6 数据 7 并/串行接口选择:H-并行;L-串行 空脚 复位 低电平有效 空脚 背光源正极(LED+5V) 背光源负极(LED-OV)
(AC)到“00H”
设 定 DDRAM 的 地 址 计 数 器
地址归
(AC)到“00H”,并且将游
位
0 0 0 0 0 0 0 0 1 X 标移到开头原点位置;这个指 4.6ms
令并不改变 DDRAM 的内容
进入点 0 0 0 0 0 0 0 1 I/D S 指定在资料的读取与写入时, 72us
设定
9、读取忙碌状态(BF)和位址
CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
L
H
BF AC6 AC5 AC4 AC3 AC2 AC1 AC0
功能:读取忙碌状态(BF)可以确认内部动作是否完成,同时可以读出位址计数器(AC) 的值
10、写资料到 RAM
CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
引脚号 引脚名称
1
VSS
2
VDD
3
V0
4
RS(CS)
5
R/W(SID)
6
E(CLK)
7
DB0
8
DB1
9
DB2
10
DB3
11
DB4
12
DB5
13
DB6
14
DB7
15
PSB
16
NC
17
/RET
18
NC
19
LED_A
20
LED_K
方向 H/L H/L H/L H/L H/L H/L H/L H/L H/L H/L H/L H/L
四、用户指令集
1、指令表 1:(RE=0:基本指令集)
指令码
执行时
指令
R R DB DB DB DB DB DB DB DB 说明 S W7 6 5 4 3 2 1 0
间 ( 540 KHZ)
清除显
将 DDRAM 填满“20H”,并且
示
0 0 0 0 0 0 0 0 0 1 设 定 DDRAM 的 地 址 计 数 器 4.6ms
6 5 4 3 2 1 0 器(AC)
72us
读取忙
碌标志 (BF) 0 和地址
1
读取忙碌标志(BF)可以确认 BF AC AC AC AC AC AC AC 内部动作是否完成,同时可以 0us
6 5 4 3 2 1 0 读出地址计数器(AC)的值
写资料
写 入 资 料 到 内 部 的 RAM
到
1 0 D7 D6 D5 D4 D3 D2 D1 D0 ( DDRAM/CGRAM/IRAM/G 72us
12、 待命模式(12H) CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
L
L
L
L
L
L
L
L
L
H
功能:进入待命模式,执行其他命令都可终止待命模式
13、卷动位址或 IRAM 位址选择(13H)
CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
二、外形尺寸
1.外形尺寸图
2.主要外形尺寸
项
目
模块体积
定位尺寸
视
域
标准尺寸 113.0×65.0×12.8
105.0×55.0 73.4×38.8
单
位
mm
mm
mm
行列点阵数 点距离 点大小
128×64 0.52×0.52 0.48×0.48
dots mm mm
二、模块引脚说明
128X64 引脚说明
RAM
DRAM)
读出
从 内 部 RAM 读 取 资 料
RAM 1 1 D7 D6 D5 D4 D3 D2 D1 D0 ( DDRAM/CGRAM/IRAM/G 72us
的值
DRAM)
指令表—2:(RE=1:扩充指令集)
指令码
执行时间
指令
R DB DB DB DB DB DB DB DB 说明 RS
W7 6 5 4 3 2 1 0
具体指令介绍:
1、清除显示 CODE: RW RS
DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
L
L
L
LLLLL NhomakorabeaL
H
功能:清除显示屏幕,把 DDRAM 位址计数器调整为“00H”
2、位址归位
CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
L
L
L
L
A 为数据传送方向控制:H 表示数据从 LCD 到 MCU,L 表示数据从 MCU 到 LCD B 为数据类型选择:H 表示数据是显示数据,L 表示数据是控制指令 C 固定为 0 第二字节:(并行)8 位数据的高 4 位—格式 DDDD0000 第三字节:(并行)8 位数据的低 4 位—格式 DDDD0000 串行接口时序参数:(测试条件:T=25℃ VDD=4.5V)
0
1
DL=1 (必须设为 1)
0 DL X
X X RE=1: 扩充指令集动作
RE
RE=0: 基本指令集动作
72us
设定
CGRA
AC AC AC AC AC AC 设定 CGRAM 地址到地址计数
M 地 0 0 0 1 5 4 3 2 1 0 器(AC)
72us
址
设定
DDRA 001
M 地址
AC AC AC AC AC AC AC 设定 DDRAM 地址到地址计数
18、设定绘图 RAM 位址(018H)
CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
L
L
H
AC6 AC5 AC4 AC3 AC2 AC1 AC0
6、功能设定 CODE: RW RS
DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
L
L
L
L
H
DL X
0 RE X
X
功能:DL=1(必须设为 1) RE=1;扩充指令集动作 RE=0:基本指令集动作
7、设定 CGRAM 位址
CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
L
L
L
L
H
X
功能:把 DDRAM 位址计数器调整为“00H”,游标回原点,该功能不影响显示 DDRAM
3、位址归位
CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
L
L
L
L
L
L
L
H
I/D S
功能:把 DDRAM 位址计数器调整为“00H”,游标回原点,该功能不影响显示 DDRAM 功
1
1
X
G0
RE
作
72us
G=1 :绘图显示 ON
G=0 :绘图显示 OFF
设定
SR=1:AC5—AC0 为
IRAM 地
AC AC AC AC AC
垂直卷动地址
址 或 卷 0 0 0 1 5 4 3 2 1 AC0 SR=0:AC3—AC0 为 72us
动地址
ICON IRAM 地址
设定绘
图 RAM 0 地址
址选择
地址
反白选
选择 4 行中的任一行
择
0 0 0 0 0 0 0 1 R1 R0 作反白显示,并可决定 72us
反白与否
睡眠模
SL=1:脱离睡眠模式
式
0 0 0 0 0 0 1 SL X X SL=0:进入睡眠模式 72us
RE=1: 扩充指令集动
作
扩充功
1
RE=0: 基本指令集动
能设定
0
0
0
0
DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
L
L
L
L
L
L
H
D
C
B
功能: D=1;整体显示 ON
C=1;游标 ON