LCD液晶显示模块12864应用笔记(串行方式)
12864液晶屏幕使用说明及程序

12864使用说明一、串/并接口1.1 串口接口管脚信号*注释1:如在实际应用中仅使用并口通讯模式,可将PSB 接固定高电平。
*注释2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。
*注释3:如背光和模块共用一个电源,可以将模块上的JA、JK 用焊锡短接。
1.2 并行接口管脚信号*注释1:如在实际应用中仅使用并口通讯模式,可将PSB 接固定高电平。
*注释2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。
*注释3:如背光和模块共用一个电源,可以将模块上的JA、JK 用焊锡短接。
二、模块主要硬件构成说明控制器接口信号说明:2.1、RS,R/W的配合选择决定控制界面的4种模式:2.2、E信号●忙标志BFBF 标志提供内部工作情况.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 个字)的中文字型显示,当写入显示数据 RAM 时,可分别显示 CGROM 与CGRAM 的字型;此模块可显示三种字型,分别是半角英、数字型(16*8)、CGRAM 字型及 CGROM 的中文字型。
三种字型的选择,由在 DDRAM 中写入的编码选择,在0000H—0006H 的编码中(其代码分别是0000、0002、0004、0006 共4 个)将选择 CGRAM 的自定义字型,02H—7FH 的编码中将选择半角英数字的字型,至于A1 以上的编码将自动的结合下一个位元组,组成两个位元组的编码形成中文字型的编码BIG5(A140—D75F),GB(A1A0-F7FFH)。
lcd12864中文资料汇总(12864引脚说明及功能

lcd12864中文资料汇总(12864引脚说明及功能lcd12864简介带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集。
利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字。
也可完成图形显示。
低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
lcd12864基本特性参数(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℃lcd12864引脚图及功能1VSS-模块的电源地2VDD-模块的电源正端3V0-LCD驱动电压输入端4RS(CS)H/L并行的指令/数据选择信号;串行的片选信号5R/W(SID)H/L并行的读写选择信号;串行的数据口6E(CLK)H/L并行的使能信号;串行的同步时钟7DB0H/L数据08DB1H/L数据19DB2H/L数据210DB3H/L数据311DB4H/L数据412DB5H/L数据513DB6H/L数据614DB7H/L数据715PSBH/L并/串行接口选择:H-并行;L-串行16NC空脚17/RETH/L复位低电平有效18NC空脚19LED_A(LED+5V)背光源正极20LED_K(LED-OV)背光源和负极控制器接口信号说明1、RS,R/W的配合选择决定控制界面的4种模式:2、E信号●忙标志:BFBF标志提供内部工作情况.BF=1表示模块在进行内部操作,此时模块不接受外部指令和数据.BF=0时,模块为准备状态,随时可接受外部指令和数据。
12864液晶屏学习使用手册

12864液晶屏学习手册1.液晶模组概览12864A-1汉字图形点阵液晶显示模块,可显示汉字和图形,内置8192个汉字(16X16点矩阵,16 * 8 = 128,16 * 4 = 64,一行,4行只能写8个汉字;),128个字符(8X16点矩阵)和64X256点矩阵显示RAM(GDRAM)。
主要技术参数和显示特性:电源:VDD 3.3V〜+5伏(内置升压电路,无负压);显示内容:128列X第64行(128分)显示颜色:黄绿色显示角度:直接看6:00LCD类型:STN与MCU的接口:8位或4位并行/ 3位串行配置LED背光多种软件功能:光标显示,屏幕移位,自定义字符,睡眠模式等2.尺寸1.尺寸2。
主要尺寸项目标准尺寸单元模子片身体产品113.0X65.0X12.8毫米2.模块引脚说明逻辑工作电压(VDD):4.5〜5.5V电源地(GND):0V穿孔温度(Ta):0〜60°C(常温)/ -20〜75°C(宽温度)三,接口定时模块有两种连接方式:并行和串行(时间如下):8位并行连接时序图MPU将数据写入模块MPU从模块读取数据2,串行连接时序图串行数据传输以三个字节完成:第一个字节:串口控制—格式11111ABCA是数据传输方向控制:H表示从LCD到MCU的数据,L表示从MCU到LCD的数据B是数据类型选择:H表示数据是显示数据,L表示数据是控制指令C固定为0第二字节:(并行)8位数据的高4位—格式DDDD0000第三个字节:(并行)8位数据的低4位—格式0000DDDD串行接口时序参数:(测试条件:T =25℃VDD = 4.5V)备注:1,在模块接受指令之前,微处理器必须首先确认模块不忙,即读取高炉签到时间高炉需要0接受新说明之前;如果你不这样做’t在发送命令之前检查高炉商标,(通常在输入每日命令之前添加延迟)那么上一条指令和该指令之间必须有很长的延迟,也就是等待上一条命令的执行完成,有关命令的执行时间,请参阅命令表中的各个命令描述。
LCD12864使用手册

文件型号LCD12864文件类型服务文件版本 1.0图形点阵液晶显示模块使用手册LCD12864一.概述HEM12864I是一种图形点阵液晶显示器。
它主要采用动态驱动原理由行驱动—控制器和列驱动器两部分组成了128(列)×64(行)的全点阵液晶显示。
此显示器采用了COB的软封装方式,通过导电橡胶和压框连接LCD,使其寿命长,连接可靠。
二.特性1.工作电压为+5V±10% ,可自带驱动LCD所需的负电压。
2.全屏幕点阵,点阵数为128(列)×64(行),可显示8(/行)×4(行)个(16×16点阵)汉字,也可完成图形,字符的显示。
3.与CPU接口采用5条位控制总线和8位并行数据总线输入输出,适配M6800系列时序。
4.内部有显示数据锁存器。
5.简单的操作指令,显示开关设置,显示起始行设置,地址指针设置和数据读/写等指令。
三.外形尺寸1.外形尺寸图2.主要外形尺寸项目标 准 尺 寸 单 位模 块 体 积 54.0×50.0×6.5mm定 位 尺 寸 49.0×45.0mm视 域43.5×29.0 mm行 列 点 阵 数 128×64dots点 距 离 0.32×0.39mm点 大 小0.28×0.35mm四.硬件说明1.引脚特性2.引脚号引脚名称 级 别 引脚功能描述1 VSS0V电源地2 VDD +5V 电源电压3 VLCD 0~-10V LCD驱动负电压,要求VDD-VLCD=13V4 RS H/L 寄存器选择信号5 R/W H/L 读/写操作选择信号6 E H/L 使能信号7 DB08 DB19 DB210 DB3H/L八位三态并行数据总线11 DB412 DB513 DB614 DB715 CS1 H/L 片选信号,当CS1=H时,液晶左半屏显示16 CS2 H/L 片选信号,当CS2=H时,液晶右半屏显示17 /RES H/L 复位信号,低有效18 VEE -10V 输出-10V的负电压(单电源供电)19 BLA+5V 背光电源20 BLK 0V 背光电源2.原理简图3.主要各部分详解99999991)显示数据RAM(DDRAM)DDRAM(64×8×8 bits)是存储图形显示数据的。
12864液晶显示串行程序(英飞凌xc824)

12864液晶显示串行程序(英飞凌xc824)
先说说我的调试初衷前一阵看实验室的兄弟姐妹们都闲的无聊,就有人DIY 了,有人个BF 做电子时钟,一个液晶30 多,一个12C887 20 多,板子加器件还有单片机算下来少说也有70 大洋。
感觉实在不划算,但是对液晶还是
蛮感兴趣的,一方面熟悉一下串行设备,一方面为以后做准备,毕竟液晶显示
操作起来要比LED 简单,而且能实时显示,到什么时候都能用上。
所以,这
次液晶屏的调试,我就想搜集一些常用的程序,适当的修改,让液晶屏达到拿
来就能用上的目的。
先说说我这次调试的液晶屏,12864,带子库的,蓝色屏幕。
就是这张图了
单片机我选的是英飞凌xc824,新出的哦。
不是有啥特殊偏好,手头就有这个,就先用这个吧,主要是我对这个最小系统板上的触摸按键比较感兴趣。
当
然了,它也有缺点,内存太小,连一个12864 的图片都装不下。
:Q 闲话少说,先从最基本的数据手册开始吧
中显液晶12864.pdf
这是中文资料,因为这种东西已经被使用的多的不能再多了,而且厂家众多,但是有细微差别,比如串行和并行,有的是焊点切换的,有的是软件切换的。
我这个是后者。
刚接线的时候还出了个笑话,太相信实物和datasheet 和对应的了,结果屏幕的背光接反了,幸好没烧。
硬件方面,我选串行是因为它用线少,我很懒的。
:) P1.0 口对应CS,P1.1 口对应SID,P1.2 口对应CLK.
参考时序在datasheet 上写的很清楚有这个当指导思想,照着写程序吧.动手之。
12864液晶屏学习使用手册

12864液晶屏学习手册1.液晶模组概览12864A-1汉字图形点阵液晶显示模块,可显示汉字和图形,内置8192个汉字(16X16点矩阵,16 * 8 = 128,16 * 4 = 64,一行,4行只能写8个汉字;),128个字符(8X16点矩阵)和64X256点矩阵显示RAM(GDRAM)。
主要技术参数和显示特性:电源:VDD 3.3V〜+5伏(内置升压电路,无负压);显示内容:128列X第64行(128分)显示颜色:黄绿色显示角度:直接看6:00LCD类型:STN与MCU的接口:8位或4位并行/ 3位串行配置LED背光多种软件功能:光标显示,屏幕移位,自定义字符,睡眠模式等2.尺寸1.尺寸2。
主要尺寸项目标准尺寸单元模子片身体产品113.0X65.0X12.8毫米2.模块引脚说明逻辑工作电压(VDD):4.5〜5.5V电源地(GND):0V穿孔温度(Ta):0〜60°C(常温)/ -20〜75°C(宽温度)三,接口定时模块有两种连接方式:并行和串行(时间如下):8位并行连接时序图MPU将数据写入模块MPU从模块读取数据2,串行连接时序图串行数据传输以三个字节完成:第一个字节:串口控制—格式11111ABCA是数据传输方向控制:H表示从LCD到MCU的数据,L表示从MCU到LCD的数据B是数据类型选择:H表示数据是显示数据,L表示数据是控制指令C固定为0第二字节:(并行)8位数据的高4位—格式DDDD0000第三个字节:(并行)8位数据的低4位—格式0000DDDD串行接口时序参数:(测试条件:T =25℃VDD = 4.5V)备注:1,在模块接受指令之前,微处理器必须首先确认模块不忙,即读取高炉签到时间高炉需要0接受新说明之前;如果你不这样做’t在发送命令之前检查高炉商标,(通常在输入每日命令之前添加延迟)那么上一条指令和该指令之间必须有很长的延迟,也就是等待上一条命令的执行完成,有关命令的执行时间,请参阅命令表中的各个命令描述。
12864串行方式使用体会

12864使用心得论文一、硬件连接1.1 12864引脚示意图1.2 本次实验中12864与MCU的连接示意图/****************晶振为11.0592**********************/sbit PSB = P1^0; //并1/串0选择//串行接法sbit CS = P1^3; //串片选sbit DS = P1^2; //串数据口sbit SCK = P1^1; //串时钟信号/*//并行接法sbit RS = P1^3; //数据/命令选择端sbit RW = P1^2; //读写选择端sbit E = P1^1; //使能信号端#define DataIO P0 //并行数据口*/二、底层基本程序(串行方式)2.1 基本写字节程序//写一个字节(以SCK上升沿接收一个位)void sendbyte(uint8 zdata){uint16 i;for(i=0; i<8; i++){if((zdata << i) & 0x80){DS = 1;}else {DS = 0;}SCK = 0;SCK = 1;}}2.2 写命令程序(若晶振频率>11.0592,则需加延时处理)//写命令void writeCmd(uint8 cmdcode){CS = 1;sendbyte(0xf8);sendbyte(cmdcode & 0xf0);sendbyte((cmdcode << 4) & 0xf0);// delayMs(1); //若晶振频率>11.0592,则需延时}2.3 写数据程序(若晶振频率>11.0592,则需加延时处理)//写数据void writeData(uint8 dispdata){CS = 1;sendbyte(0xfa);sendbyte(dispdata & 0xf0);sendbyte((dispdata << 4) & 0xf0);// delayMs(1); //若晶振频率>11.0592,则需延时}2.4 通用软件毫秒延时程序//延时程序void delayMs(uint16 xms){uint16 i,j;for (i=0;i<=xms;i++)for (j=0;j<=123;j++);}三、文本显示3.1 LCD12864初始化//LCD12864初始化void LCD12864Init(){PSB = 0; //串行writeCmd(0x30); //基本指令模式writeCmd(0x04); //游标右移一位writeCmd(0x0c); //显示开,关光标writeCmd(0x01); //清除LCD的内容(仅字符模式) }模块控制芯片提供两套控制命令,基本指令和扩充指令如下:指令表1:(RE=0:基本指令)指令表2:(RE=1:扩充指令)3.2 LCD12864字符串的显示//写字符串函数,参数line第1/2行beSpace字符前面的空格数pString指针uint8 write12864String(uint8 line,uint8 beSpace,char *pString){uint8 i=0;uint8 sLength = strlen(pString); //字符串长度if (pString == NULL) //空字符串return -1;writeCmd(0x30); //基本指令模式//设置写在的位置if (line == 1){writeCmd(0x80 + beSpace); //写在第一行的位置}else if (line == 2){writeCmd(0x90 + beSpace); //写在第二行的位置}else if (line == 3){writeCmd(0x88 + beSpace); //写在第三行的位置}else if (line == 4){writeCmd(0x98 + beSpace); //写在第四行的位置}else{return -1;}//写数据for (i=0;i< sLength;i++){writeData ( *pString );pString ++;}return 0;}12864每屏可显示4行8列共32个16×16点阵的汉字,每个显示RAM可显示1个中文字符或2个16×8点阵全高ASCII码字符,即每屏最多可实现32个中文字符或64个ASCII码字符的显示。
12864串行显示中文讲解

12864串行显示中文,按键选择显示页面,并且可调数值。
单片机P1口接矩阵按键,其它接口按程序中定义去接只需要接12864LCD上GND VCC RS RW E PSB RST A K程序如下/********************************12864.h头文件*******************************/ #ifndef _12864_h#define _12864_h/*****包含头文件**************/#include<reg51.h>/********定义I/0口**********/#define GPIO_KEY P1sbit LCD12864_SCLK = P2^7; //Esbit LCD12864_SID = P2^5; //RWsbit LCD12864_CS = P2^6; //RSsbit LCD12864_RET= P2^0;sbit LCD12864_PSB =P2^2;/*声明全局变量*/extern unsigned char keyvalue;/******声明全局函数*********/void Delay1ms(unsigned int); //声明延时函数unsigned char KeyDown(void);void LCD_sendbyte(unsigned char);void WrCom(unsigned char);void WrDat(unsigned char);void LcdInit(void);//void Print(unsigned char);void SetAddress( unsigned char,unsigned char );void DisplayString(unsigned char x ,unsigned char y,unsigned char *add);#endif/********************************12864.C*************************************/ #include"12864.h"#include<reg51.h>#include"string.h"//#define LCM_ST7920_FIRST_LINE_ADDRESS 0x80//#define LCM_ST7920_SECOND_LINE_ADDRESS 0x90//#define LCM_ST7920_THIRD_LINE_ADDRESS 0x88//#define LCM_ST7920_FOURTH_LINE_ADDRESS 0x98/*定义全局变量*/unsigned char keyvalue=0;/****************************************************************************** ** 函数名: Delay1ms* 函数功能: 延时函数,延时1ms* 输入: c* 输出 e : 无* 说名: 该函数是在12MHZ晶振下,12分频单片机的延时。
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分频单片机的延时。
LCD液晶显示12864液晶资料

一、液晶显示模块概述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.主要外形尺寸二、模块引脚说明逻辑工作电压(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)四、用户指令集备注:1、当模块在接受指令前,微处理顺必须先确认模块内部处于非忙碌状态,即读取BF 标志时BF 需为0,方可接受新的指令;如果在送出一个指令前并不检查BF 标志,那么在前一个指令和这个指令中间必须延迟一段较长的时间,即是等待前一个指令确实执行完成,指令执行的时间请参考指令表中的个别指令说明。
2、“RE ”为基本指令集与扩充指令集的选择控制位元,当变更“RE ”位元后,往后的指令集将维持在最后的状态,除非再次变更“RE ”位元,否则使用相同指令集时,不需每次重设“RE ”位元。
(整理)ATmega12812864液晶屏串行操作.

(五)安全预评价方法Write_Command(0x98+y);
6.建设项目环境影响评价文件的其他要求break;
第1页}
for(i=0;p[i]!='\0';i++)
(1)生产力变动法{
Write_one_char(p[i]);
}
}
#define SET_READ_MODLE() DDRE&=~BIT(4)
#define SCLK_CLE DDRE|=(1<<5); PORTE&=~(1<<5)
#define SCLK_SET DDRE|=(1<<5); PORTE|=(1<<5)
#define SID_CLE DDRE|=(1<<1); PORTE&=~(1<<1)
if(date&0x80)
{SID_SET;}
else
{SID_CLE;}
delay_us(1);
SCLK_SET;//时钟总线拉高,数据传送给显示屏
delay_us(10);
SCLK_CLE;
delay_us(3);
date=date<<1;//高位先发
}
date=dat&0xf0;
for(i=0;i<8;i++)//把数据送到线上去
voiddelay_ms(uint x);
voiddelay_us(uint x);
//Òº¾§ÆÁ³õʼ»¯£¬¹Ø¹â±êÏÔʾ£¬»ù±¾Ö¸Á
voidLCD_init(void);
【0727学习笔记】LCD12864液晶显示技术

【0727学习笔记】LCD12864液晶显示技术-硬件介绍2008-07-27 20:18---- 根据相关资料整理,不对之处,欢迎留言或EMAIL ME niejinbo999# (#换成@) ------ 我是用Proteus仿真的,带字库的LCD12864屏近百大元一个,下载个破解版的Proteus,LCD12864屏直接拖出来就可以用了,想拖几个就拖几个,呵呵,闲话少说,进入正题。
先来看一下Proteus里面的12864长什么样,下图中就是我使用的12864屏,型号为:AMPIRE128X64管脚一共18个。
CS1左半屏片选端,CS2右半屏片选端;VCC、GND就是VCC、GND,没啥好说的;V0液晶显示驱动电压,在网上找的仿真实例中有的这个脚就悬空,我是通过一个电位器接到VCC;RS数据指令选择信号,H为数据,L为指令,有的资料上也叫D/I,我估计是DATA和INSTRUCTIONS这两个单词的缩写;R/W读写选择信号,H为读,L为写,这肯定是READ和WRITE的缩写。
E为LCD使能端,R/W为L时,E信号下降沿锁存DB7-DB0;R/W为H时,E为H,DDRAM数据读到DB7-DB0,如果只写不读的话可以接地处理。
DB0-DB7数据传输端口。
RST复位信号,不过还没弄明白是怎么回事,参考一些资料后接VCC处理。
-VOUT估计和V0差不多,液晶显示驱动电压。
PS:我在网上没找到AMPIRE128X64的资料,但其控制系统和市面上卖的有些是一样的,因此可以参考一下。
我就是参考下面这个型号的资料,需要的朋友可以留下EMIAL。
图片截自深圳彩晶科技的文档资料。
指令说明:一共有7个指令,下面分别加以说明(个人理解)显示开关 0x3e:关;0x3f:开(R/W=0,RS=0)显示起始行 0xc0+i : i取值0至63 (R/W=0,RS=0)设置DDRAM页地址(X地址) 0xb8+i: i取值0至7 (R/W=0,RS=0)设置Y地址 0x40+i:i取值0至63 (R/W=0,RS=0)读状态 R/W为H时,暂未弄明白写数据将数据线上的数据DB7-DB0写到DDRAM ,Y地址指针自动加1 (R/W=0,RS=1)读数据将DDRAM中的数据读入1数据线DB7-DB0 ,Y地址指针自动加1 (R/W=1,RS=1)(用到的很少)DDRAM地址表(注意DB0-DB7在DDRAM里的存储空间,竖起排列)写操作时序(当E信号下降沿时写入数据)小声的说下,资料上是 L有效,时序图里怎么就H了呢?写操作时序(时序参数均为NS级,单片机为US级,故不用考虑延时)读操作时序(时序参数均为NS级,单片机为US级,故不用考虑延时)硬件介绍到此结束,有什么不对之处留言或EMAI告之。
12864LCD液晶显示原理及使用方法

12864LCD液晶显示原理及使用方法液晶简介液晶是一种在一定温度范围内呈现既不同于固态液态又不同于气态的特殊物质态,它既具有各向异性的晶体所特有的双折射性又具有液体的流动性液晶显示器件(英文的简写为LCD)就是利用液晶态物质的液晶分子排列状态在电场中改变而调制外界光的被动型显示器件。
点阵式图形液晶显示屏是 LCD 的一种能够动态显示图形汉字以及各种符号信息为各种电子产品提供了友好的人机界面点阵式图形液晶显示屏的主要特点如下(这些特点也就是LCD 的特点):工作电压低、微功耗、体积小、可视面积大、无电磁辐射、数字接口、寿命长等特点。
12864LCD是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128×64 全点阵液晶显示器组成。
可完成图形显示,也可以显示8×4 个(16×16 点阵)汉字或者显示16×4个(8×16 点阵)ASCII码。
分为两种,带字库的和不带字库的。
不带字库的LCD需要自己提供字库字模,此时可以根据个人喜好设置各种字体显示风格,设计上较为灵活。
带字库的LCD提供字库字模,但是只能显示GB2312的宋体。
各有优缺点,根据不同应用场景灵活选择。
其液晶模块原理图如下所示。
12864LCD点阵图形液晶模块原理框图下面给出了其应用连接电路,分别介绍其各引脚的功能和作用。
如下表所示:12864LCD 的引脚说明管脚号管脚名称LEVER 管脚功能描述1GND 0 电源地2VCC+5.0V 电源电压3VLCD - 液晶显示器驱动电压4RS (D/I) H/LD/I=“H”,表示DB7∽DB0 为显示数据D/I=“L”,表示DB7∽DB0 为显示指令数据5R/W H/L R/W=“H”,E=“H”数据被读到DB7∽DB0R/W=“L”,E=“H→L”数据被写到IR 或DR 6EN H/L R/W=“L”,E 信号下降沿锁存DB7∽DB0R/W=“H”,E=“H”DDRAM 数据读到DB7∽DB0 7DB0 H/L 数据线8DB1 H/L数据线9DB2 H/L 数据线10DB3 H/L 数据线11DB4 H/L数据线12DB5 H/L数据线13DB6 H/L数据线14DB7 H/L数据线15CS1 H/L H:选择芯片(右半屏)信号16CS2 H/L H:选择芯片(左半屏)信号17RET H/L复位信号,低电平复位18VEE -10VLCD 驱动负电压19LED+ - LED 背光板电源20LED- - LED 背光板电源12864LCD点阵图形液晶模块应用连接电路液晶驱动设置在理解12864LCD硬件原理和管脚功能之后,可以针对LCD进行驱动的编写,分两种情况:仿真环境下和实物开发板编程。
LCM12864字符液晶显示模块应用

LCM12864显示模块应用LCM128 x 64的点阵字符(带汉字字库)液晶显示屏,可显示4行,每行8个共32个汉字。
一.基本指令集说明:1. 清除显示01H将DDRAM填满“2. 位址归位02H设定DDRAM的位址计数器到“00H”,并将游标移到开头原点位置,该指令不改变DDRAM的内容。
3. 进入点设定06HI/D:位址计数器递增递减选择为1时,游标右移,DDRAM位址计数器加1为0时,游标左移,DDRAM位址计数器减1S:显示画面整体位移S=1,I/D=1 画面整体左移S=1,I/D=0 画面整体右移4. 显示状态开关0CH控制整体显示、游标、游标处是否反白D:整体显示开关位D=1 整体显示开D=0 整体显示关,不会改变DDRAM的内容C:游标开关控制位C=1 显示游标C=0 不显示游标B:游标处反白开关B=1 游标位置字符反白显示B=0 游标位置字符不反白5. 游标或显示移位控制1CH设定游标的移动与显示的移位控制,该指令不改变DDRAM的内容。
6. 功能设定30HDL:4或8位选择位DL=1 为8位数据模式DL=0 位4位数据模式RE: 指令集选择控制位RE=1 为扩充指令集RE=0 为基本指令集同一指令不可同时改变RE及DL,需先改变DL后才能改变RE。
7. 设定CGRAM地址40H设定CGRAM8. 设定DDRAM位址设定DDRAM位址到位址计数器AC第一行AC范围为80H~8FH第二行AC范围为A0H~AFH第三行AC范围为90H~9FH第四行AC范围为B0H~BFH9. 读取忙标志位(BF)和位址读取该位可以判断内部动作是否完成,同时可以读出位址计数器AC的值。
若读出的BF位等于1,表示内部正忙不能接收指令或数据,需等到BF=0时才可以。
10. 写数据到RAM写入数据到内部的RAM中后会使AC改变每个RAM位址(地址)都可连续写入两字节的数据,当写入第二字节时位址计数器AC的值就会自动加一11. 读取RAM的值从内部的RAM读取数据,当读取后会使AC改变当写入设定位址指令后若要读取数据时,需先空读一次才会读取到正确的数据,以后就不需空读一次了,除非又重新写了设定位址指令。
12864学习笔记及常用指令

12864学习笔记及常用指令12864液晶深入学习笔记_1——基于msp430g2553(2012-08-30 15:56:01)转载▼标签:msp430学分类:学习探讨设计12864液晶12864液晶学习笔记Created on: 2012-8-30Author: zhang bin学习笔记for 12864redesigned by zhang bin2012-08-30versions:12_08_01这是我对12864的学习笔记,12864液晶功能很全面,使用起来也很方便,能够满足一般的研究和工程应用的需求。
下面我就对几个方面讲述一下我对它学习过程中的一些体会。
我会尽量全面的介绍,并且会主要针对一些特殊的应用和一些我认为要特别注意的地方进行较为详细的说明。
而对于那些较为固定的,常用的方面会简略一些。
其中的不管串行模式还是并行模式,对液晶的写指令,写数据,读操作等这些基本的操作都是一些比较固定的,基础的东西。
我认为只要能够看懂,并且能够在不同的处理器上移植就够了,没有必要非要自己对着手册时序图写出来。
因为有人已经写好了,而且工作稳定,我们只要在它的基础上学会应用就可以了。
现在是知识爆炸时期,知识,信息迅速膨胀,我们要学会使用已有的成果,然后在这个基础上自己再进行开发应用的研究。
我们不必一定要从底层开始把别人已经做的很成熟的东西再做一遍,这样不但效率不高,而且我们一般人的精力也不允许。
好了,不说废话了,下面就开始介绍,当然,那些基础层面的东西我也会介绍的。
下面所涉及到的程序,是针对msp430g2553的,都是我已经调通的,可以直接应用。
一,12864的介绍1,液晶显示模块是128×64 点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置国标GB2312 码简体中文字库(16X16 点阵)、128 个字符(8X16 点阵)及64X256 点阵显示RAM(GDRAM)。
可与CPU 直接接口,提供两种界面来连接微处理机:8-位并行及串行两种连接方式。
学习笔记:12864液晶模块的详细使用

学习笔记:12864液晶模块的详细使用备注:这篇文章是对12864操作的具体介绍,仅限刚接触12864的新手,大神请拍砖,文章写的较散,建议先参考12864手册及控制驱动器ST7920英文手册有个初步理解之后再阅读该篇文章,将会有更深的认识。
强烈建议阅读ST7920英文手册,细节内容里面有详细介绍,中文的12864也是从中译过来的。
本文分三个步骤介绍12864的内部资源原理,指令集详细讲解,以及应用例子。
对12864的所有操作概括起来有4种:1)、读忙状态(同时读出指针地址内容),初始化之后每次对12864的读写均要进行忙检测。
2)、写命令:所有的命令可以查看指令表,后续讲解指令的详细用法。
写地址也是写指令。
3)、写数据:操作对象有DDRAM、CGRAM、GDRAM。
4)、读数据:操作对象也是DDRAM、CGRAM、GDRAM。
对12864的学习首相要了解其内部资源,知道了它里面有哪些东西,你就可以更加方便的使用它。
先介绍几个英文的名字:DDRAM:(Data Display Ram),数据显示RAM,往里面写啥,屏幕就会显示啥。
CGROM:(Character Generation ROM),字符发生ROM。
里面存储了中文汉字的字模,也称作中文字库,编码方式有GB2312(中文简体)和BIG5(中文繁体)。
笔者使用的是育松电子的QC12864B,讲解以此为例。
CGRAM:(Character Generation RAM),字符发生RAM,,12864内部提供了64×2B的CGRAM,可用于用户自定义4个16×16字符,每个字符占用32个字节。
GDRAM:(Graphic Display RAM):图形显示RAM,这一块区域用于绘图,往里面写啥,屏幕就会显示啥,它与DDRAM的区别在于,往DDRAM中写的数据是字符的编码,字符的显示先是在CGROM中找到字模,然后映射到屏幕上,而往GDRAM中写的数据时图形的点阵信息,每个点用1bit来保存其显示与否。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
data++;
}
}
2
DisplayC_LCD ( 0x93, “
”, 4 );
-3-
2. void DisplayD_LCD ( unsigned char addr,
unsigned char data1, unsigned char data2 ) { SendCMD_LCD( addr ); SendDAT_LCD( data1 ); SendDAT_LCD( data2 ); } 2 DisplayD_LCD ( 0x93, 0xB9, 0xE3 );
case 0: SendDAT_LCD( ‘0’ );
case 1: SendDAT_LCD( ‘0’ );
……
case 14: SendDAT_LCD( ‘E’ );
case 15: SendDAT_LCD( ‘F’ );
default: SendDAT_LCD( ‘R’ );
}
}
2
5
SendCMD_LCD( 0x93 );
//
unsigned char *data,
//
unsigned char num )
//
{
unsigned char n;
SendCMD_LCD( addr );
for ( n=0; n<num; n++){
SendDAT_LCD( data );
//
data++;
SendDAT_LCD( data );
-2-
1.
SendCMD_LCD
void SendCMD_LCD(unsigned char dat){
SendByte_LCD( 0xf8 );
SendByte_LCD( dat & 0xf0 );
SendByte_LCD( (dat << 4 ) & 0xf0 );
}
// 1 1 1 1 1 0 0 0
2.
SendDAT_LCD
void SendDAT_LCD(unsigned char dat){
SendByte_LCD( 0xfa );
SendByte_LCD( dat & 0xf0 );
SendByte_LCD( (dat << 4 ) & 0xf0 );
}
// 1 1 1 1 1 0 1 0
15
PSB
H—
L—
16
NC
17
/RET
18
NC
19
LED_A(+)
20
LED_B(-)
-1-
SendByte_LCD
data—
void SendByte_LCD(unsigned char data){
unsigned char i;
CS
= 1;
CLK = 0;
for(i=0; i<8; i++){
LCD
12864
. 1.
性将个程点然 意将个 成将个 指将个
.
12时×控成
16×引控
引性时
脚致算 个
时
成
意将意V 指将带V
带 控带
-性带
8×引控
64×性指控
点脚 点程K 脚相然 个
7指
个
时引有性 置满符商用然置满符在 个
个
.
1
VSS
2
VDD
3
V0
LCD
4
RS
CS
5
R/W
CLK
6
E
SID
7~14
DB0~DB8
84H
85H
86H
87H
Line 2 90H
91H92H93H源自94H95H96H
97H
======================================================================
ohy3686@ 2012-11-25
-5-
DisplayN2S_LCD( 5 );
//
break; break; break; break; break;
-4-
.
30H
8
04H
DDRAM
1.
0CH
01H
DDRAM 20H
AC
00H
02H
DDRAM
AC 00H
DARAM
.
LCD
12232F
12232F
X
Line 1 80H
81H
82H
83H
if(data & 0x80) {SID =1;}
//
else {SID =0;}
data << 1;
//
CLK = 1;
Delay(200);
//
CLK = 0;
}
CS
= 0;
}
.
11111ABC
A
H—
LCD MCU
L—
MCU LCD
B
H—
L—
C
0.
8
4 D7 D6 D5 D4 0 0 0 0
8
4 D3 D2 D1 D0 0 0 0 0
// // //
B9H, E3H
3.
void DisplayN_LCD ( unsigned char addr,
//
unsigned char *data,
//
unsigned char num )
//
{
unsigned char n;
SendCMD_LCD( addr );
for ( n=0; n<num; n++){
SendDAT_LCD( data );
//
data++;
}
}
2
12345678ABCD
DisplayN_LCD ( 0x93, 12345678ABCD , 12 );
4.
void DisplayN2S_LCD (unsigned char num )
{
SendCMD_LCD( addr );
switch ( num ){
X
Line 1 80H
81H
82H
83H
84H
85H
86H
87H
Line 2 90H
91H
92H
93H
94H
95H
96H
97H
Line 3 88H
89H
8AH 8BH
8CH
8DH 8EH
8FH
Line 4 98H
99H
9AH 9BH
9CH
9DH 9EH
9FH
. LCD
1.
void DisplayC_LCD ( unsigned char addr,