T6963模块中文使用说明书

合集下载

12864(T6963)原理与应用(白林峰-单片机技术)

12864(T6963)原理与应用(白林峰-单片机技术)

6.2 LCD12864的原理与应用LCD12864为128х64绘图型点阵液晶模块,可以显示汉字、ASCII码字符和任意图形。

根据生产厂家不同,12864控制芯片有KS0108,T6963,ST7920等,其中KS0107(或KS0108)不带字库,ST7920带国标二级字库(8千多个汉字)。

T6963C带有ASC码字符库,并且完善的指令集和较简便的控制方式,所以本节以T6963C控制的12864为列,介绍12864的显示原理和程序设计方法,并通过项目实例介绍12864的一般应用。

6.2.1 12864点阵液晶显示模块的原理一、功能原理T6963C 是日本东芝公司专门为中等规模LCD模块设计的一款控制器,它通过外部MCU方便地实现对LCD驱动器和显示缓存的管理。

其内部有128个常用字符表,可管理外部扩展显示缓存64KB(12864模块为32KB),与单片机连接采用并行接口。

图6-2-1 12864液晶显示器12864液晶显示器除T6963控制器外,内部还包括行驱动器T6A40、列驱动器T6A39、液晶驱动偏压电路、显示存储器以及液晶屏,能够显示字符及图形,也可以显示8×4个16×16点阵的汉字。

12864外形见图6-2-1所示,与外部接口共有20个引脚,分显示器电源、表6-2-1 12864液晶引脚功能背光电源、并行数据接口、控制端口和对比度调节控制端口。

LCD正面时引脚在上,引脚编号从左依次为1~20。

二、12864的指令集T6963C的指令表见表6-2-2所示,分读状态字操作、设置指令、数据的读写操作指、令位操作指令四种。

(1)读状态字操作在T6963C中有一个一字节的状态字,单片机无论是向T6963C读写数据还是写入命令,都必需对状态字进行忙状态判断,以决定是否可以继续对T6963C进行操作;读状态字操作格式为/RD = 0;/WR = 1;/CE = 0;C/D = 1;此时数据端口D0~D7输出状态字,8为状态字从高到低分别为STA7~ STA0,其各位表示的状态描述见表6-2-3所示。

液晶显示技术T6963C的使用(C语言)

液晶显示技术T6963C的使用(C语言)

T6963C的使用(C语言)内置T6963C的128×128图形液晶显示模块从图1我们可以看出:(1)偏压电路的设计≈),电阻R1~R5组成了分压电液晶显示驱动电源采用了1/1313=≈)R。

路,其中:R1=R2=R4=R5=R,R38.319驱动负电源由接口V0提供。

(2)驱动电路的组成在液晶显示驱动控制系统中,由两片T6A39列驱动器和两片T6A40行驱动器组成驱动电路。

(3)T6963C工作参数的设置T6963C的工作参数设置如下:/DUAL=1 单屏结构SDSEL=0 一位串行数据传输MDS=1、MDl=MD0=0 N=16即1/128占空比系数MD2=MD3=1 M=32即256点列/行FS0=0 通过计算机选择6×8点阵字体或8×8点阵字体(4)晶振频率选择根据T6963的设置参数可以求得:Fosc= F R×64×2×M×N =60×64×2×32×16=3.932MHz。

通过查表6-32也可以得到频率值,大小也为3.932MHz。

这个时候,选用4MHz的晶振。

(5)显示存储器显示存储器为8K字节容量,存储器芯片为6264或其它SRAM。

图1 内置T6963C的128×128图形液晶显示模块的电原理图内置T6963C控制器的液晶显示模块的接口技术内置T6963C控制器的液晶显示模块与计算机的接口时序为Inter8080时序。

本节以常用的单片机AT89C51为实验样机,以模块128128为显示样片叙述计算机与内置T6963C控制器的液晶显示模块的接口技术。

1 直接访问方式直接访问方式是把内置T6963C控制器的液晶显示模块作为存储器或I/O设备直接挂在计算机的总线上。

模块的数据线接计算机的数据总线上,片选及寄存器选择信号线由计算机的地址总线提供,读和写操作由计算机的读写操作信号控制。

T6963C控制器中文使用说明书

T6963C控制器中文使用说明书

杭州门市: 杭州市登云路 639 号杭州电子市场 2A095
0571-88256346 89902095(f)
北京分公司: 北京市海淀区中关村新中发电子市场 B1618
010-62051209 62000662 62568913 82036512(f)
网址:

背光
LED CCFL
● ● ● ● ● ●
● ● ●● ●● ●● ● ● ● ● ● ●● ●●
STN GRAY
● ●
● ● ●
● ●
显示模式
STN
STN
YELLOW BLUE


































FSTN
● ● ●
● ● ●
● ●
清达光电技术有限公司
sales清达光电技术有限公司内藏t6963c控制器图形液晶模块使用手册目录使用须知3第一章点阵液晶图形模块汇总6第二章液晶模块的结构特点8第三章液晶模块供电说明9第四章液晶模块控制器介绍11第五章液晶模块指令系统16第六章液晶模块接口技术及测试程序21第七章液晶模块应用经验28附录一t6963c的内部字符集29附录二清达光电配套产品29附录三清达光电维修服务规范29清达光电技术有限公司电话
如果温度低于结晶温度,液晶就会结晶,如果温度过高,液晶将变成各向同性的
液体,破坏分子取向,使器件报废;
7. 用力按压显示部分,会产生异常显示。这时切断电源,稍待片刻,重新上电,即

LCD12864(T6963)驱动程序

LCD12864(T6963)驱动程序

液晶显示模块的应用一、结构特点内藏T6963C 的液晶显示模块上已经实现了T6963C 与行、列驱动器及显示缓冲区RAM 的接口,同时也已用硬件设置了液晶屏的结构(单双屏、数据传输方式、显示窗口长度、宽度等等。

我们常用的液晶显示模块一般都是单屏结构,因此我们这里只讨论单屏结构的液晶显示模块。

内藏T6963C 的单屏结构点阵图形液晶显示模块的方框图如下:二、T6963C 的特点(1) T6963C 是点阵式液晶图形显示控制器它能直接与8 位微处理器接口;(2) T6963C 的字符字体可由硬件或软件设置,其字体有4 种5X8 、6X8、7X8、8X8;(3) T6963C 的占空比可从1/16 到1/128;(4) T6963C 可以图形方式、文本方式及图形和文本合成方式进行显示,以及文本方式下的特征显示,还可以实现图形拷贝操作等等;(5) T6963C 具有内部字符发生器CGROM,共有128 个字符。

T6963C 可管理64K显示缓冲区及字符发生器CGRAM,并允许MPU 随时访问显示缓冲区,甚至可以进行位操作。

 三、该类液晶模块的管脚定义见下表:说明:对于单电源模块,标志为V0/POFF。

当该管脚为高或悬空时,内部DC/DC功能开启;为低时,内部DC/DC 功能关闭。

该功能可用作屏幕保护和休眠方式。

如果用其直接替代双电源模块,该管脚直接悬空即可。

四、液晶显示模块的供电说明1. 如果您所选用的液晶模块是双电源(VDD/V0)供电的就需要提供一个负电压(液晶驱动电压V0/VEE),用以调节对比度,接在液晶模块的V0 引脚上。

因为液晶材料的物理特性,液晶的对比度会随着温度的变化而相应变化,所以,您加的负电压值应该随温度作相应的调整,大致是温度变化10°C 电压变化1伏左右。

为满足这一要求您要选择较大值的负电源,然后做一个温度补偿电路,或者安排一个电位器调整负电压值。

例如对于QH12864T-HT-LED04,当室温(VDD=5V)时,V0=-10.5V,如果要用到-20°C,液晶驱动电压将要变到V0=-14.5V,再考虑到负载消耗所以您提供的负电源应该为-16V 左右。

T6963C液晶

T6963C液晶

在文本属性显示方式下,图形显示开关也应启用,只是特性不同。光标显示及光
标闪烁功能的启用要在文本显示启用时进行,否则无效。
● 光标形状设置
格式
1
0
1
0
0
N2
N1
N0
该指令设置光标的显示形状。无参数补充。在指令中的三个设置位设置了光标点
8
数。光标是以 8 点列 X N 行,行的取值由位 N2,N1,N0 组合完成。
一. 主要功能
1. 可用在字符、图形、字符和图形组合模式。 2. 显示模式可通过引脚电平设置
列数:32,40,64,80 行数: 2,4,6,8,10,12,14,16,20,24,28,32 3. 字符字体可通过引脚电平设置
水平点数:5,6,7,8 垂直点数:8(固定不变) 即字体可为:5X8,6X8,7X8,8X8 4. 显示 DUTY:1/16 TO 1/128 5. 有一个 128-WORD 字符产生 ROM, 可控制 64KB 外部静态显示 RAM。 6. 具有良好的 CPU 接口(8 位数据线,4 位控制线:/WR,/RD,/CE,C/D)
文本与图形以逻辑异或
的关系合成显示
011
逻辑与
文本与图形以逻辑与的
关系合成显示
100
文本属性
文本显示特征以双字节
显示
在设置了文本属性显示方式后,图形显示区将转换成文本属性区,用于存储字符
的属性代码,其地址与显示屏上的对应关系与文本显示区相同。因此在显示屏上
某位置上显示的字符是由双字节数据组成,第一字节为字符代码存储在文本显示
● 地址指针设置
1. 光标地址设置
D1
D2
指令代码
水平位置(低 7 位有效)

T6963C中文数据手册完整版(免费共享)

T6963C中文数据手册完整版(免费共享)

T6963C TOSHIBA点阵LCD集成控制芯片2009-8-21 T6963C是一个用在LCD控制驱动集成电路(LSI)和数据显示存储器上的LCD控制器。

它有一个8位的并行数据总线和控制线与MPU接口进行读写操作,它可以直接与TMPZ-80相连接。

T6963C有一个128-word的字符生成ROM,可用来控制最大为64KB的外部显存RAM。

文本、图形和外部字符生成RAM的分配很简单,显示窗口能自由地在已分配存储器范围内移动。

通过编程输入引脚电平的不同组合,器件支持很宽范围的LCD显示尺寸。

它支持文本、图形以及文本与图像混合显示模式。

另外,还包括多种特性功能。

1.特性z显示模式(可通过选择引脚电平来设置)列:32、40、64、80行:2、4、6、8、10、12、14、16、20、24、28、32行列数的组合不能使频率超过5.5MHz(看图2)z字符字体(可通过选择引脚电平来设置)水平点数:5、6、7、8垂直点数:8(固定)和在文本模式中一样,在图形模式中也可以设置字符字体大小。

在选择字体大小时,晶振频率不会改变。

z显示占空比:1/16~1/128。

(duty = 1/8N,N表示行数)z内置一个128-word的字符生成ROM(T6963C-0101)z外部显存:最大支持64KB显存内文本区域大小、图形区域大小、外部字符生成区域大小可由软件编程设置。

z CPU的读写操作不影响LCD显示。

z内置晶体振荡电路,振荡频率可以根据显示大小进行调整。

如果使用外部时钟,XI 引脚作为时钟输入引脚(XO 断开)。

外接电容大小:晶体振荡器:20~30pF陶瓷振荡器:30~100pF内置反馈电阻: 900KΩz Toshiba LCD驱动集成电路(不带内置RAM)也可与T6963C连接。

z外部显存必须为静态RAM,因为T6963C不支持动态RAM的刷新功能。

z特性功能只支持文本模式,不能在图形或字符组合模式中使用。

T6963驱动程序

T6963驱动程序

//***************************************************************************** *****T6963驱动程序,已调试通过// LCM(OCM-240128)显示程序//***************************************************************************** *****//#include "stc12c5a56s2.h"#include "includes.h"#include "intrins.h"#include "math.h"#include "ZIMO.H"// T6963C 端口定义//#define LCMDW XBYTE[0x0000] //数据口0x8000//#define LCMDW XBYTE[0x0100] //命令口0x8100#define LCMDW P0#define LCMCW P0sbit LCMCD = P4^6; //命令数据通道选择sbit LCMWR = P4^2; //写sbit LCMRD = P1^0; //读sbit LCMRST = P1^4;sbit LCMCE = P1^1;sbit LCMFS = P1^5;#define End 0xff //结束项// T6963C 命令定义#define CUR_POS 0x21 // 光标位置设置#define CGR_POS 0x22 // CGRAM偏置地址设置#define ADD_POS 0x24 // +地址指针位置#define TXT_STP 0x40 // +文本区首址#define TXT_WID 0x41 // +文本区宽度#define GRH_STP 0x42 // +图形区首址#define GRH_WID 0x43 // +图形区宽度#define MOD_OR 0x80 // +显示方式:逻辑“或”#define MOD_XOR 0x81 // 显示方式:逻辑“异或”#define MOD_AND 0x82 // 显示方式:逻辑“与”#define MOD_TCH 0x83 // 显示方式:文本特征#define DIS_SW 0x90 // +显示开关:D0=1/0:光标闪烁启用/禁用;// D1=1/0:光标显示启用/禁用;// D2=1/0:文本显示启用/禁用;// D3=1/0:图形显示启用/禁用;#define CUR_SHP 0xA0 // +光标形状选择:0xA0-0xA7表示光标占的行数#define AUT_WR 0xB0 // +自动写设置#define AUT_RD 0xB1 // 自动读设置#define AUT_OVR 0xB2 // +自动读/写结束#define INC_WR 0xC0 // 数据一次写,地址加1#define INC_RD 0xC1 // 数据一次读,地址加1#define DEC_WR 0xC2 // 数据一次写,地址减1#define DEC_RD 0xC3 // 数据一次读,地址减1#define NOC_WR 0xC4 // 数据一次写,地址不变#define NOC_RD 0xC5 // 数据一次读,地址不变#define SCN_RD 0xE0 // 屏读#define SCN_CP 0xE8 // 屏拷贝#define BIT_OP 0xF0 // 位操作:D0-D2:定义D0-D7位;D3:1置位;0:清除/*******************************************************// 状态位STA1,STA0判断(读写指令和读写数据)********************************************************/unsigned char fnST1(void){unsigned char i;LCMCW = 0xff;LCMCD = 1; //打开指令通道LCMRD = 0; //允许读LCMWR = 1; //禁止写for( i = 10; i > 0; i-- ){if((LCMCW & 0x03) == 0x03)break;}LCMRD = 1;return i; //若返回零,说明错误}/*******************************************************// 状态位ST3判断(数据自动写状态)********************************************************/unsigned char fnST3(void){unsigned char i;LCMCW = 0xff;LCMCD = 1; //打开指令通道LCMRD = 0; //允许读LCMWR = 1; //禁止写for( i = 10; i > 0; i--){if((LCMCW & 0x08) == 0x08)break;}LCMRD = 1;return i; // 若返回零,说明错误}/*-------------------------------------------------------写数据,需要将LCMCD 置零---------------------------------------------------------*/void fnWrDat(unsigned char uDat){LCMCD = 0; //数据通道打开LCMRD = 1; //读数据无效LCMDW = uDat; //返回数据LCMWR = 0; //写数据有效_nop_();_nop_();LCMWR = 1; //写数据禁止,产生一个上升沿}/*-------------------------------------------------------写命令,需要将LCMCD 置1---------------------------------------------------------*/void fnWrCmd(unsigned char uDat){LCMCD = 1; //命令通道打开LCMRD = 1; //读数据无效LCMDW = uDat; //返回数据LCMWR = 0; //写数据有效_nop_();_nop_();LCMWR = 1; //写数据有效}/******************************************************// 写双参数的指令*******************************************************/void fnPR1(unsigned char uCmd,unsigned char uPar1,unsigned char uPar2) {if( fnST1() != 0 ) fnWrDat(uPar1);if( fnST1() != 0 ) fnWrDat(uPar2);if( fnST1() != 0 ) fnWrCmd(uCmd);//LCMCW = uCmd;}/*****************************************************// 写无参数的指令******************************************************/ void fnPR12(unsigned char uCmd){if( fnST1() != 0 ) fnWrCmd(uCmd);}/****************************************************// 写数据****************************************************/ void fnPR13(unsigned char uData){if( fnST3() != 0 ) fnWrDat(uData);}/************************************************** //30列*16,8行X:行Y:列***************************************************/ void fnSetPos(unsigned char X, unsigned char Y){unsigned int Z;Z = Y * 30 + X;fnPR1(ADD_POS,Z ,Z >> 8);//+以点阵为单位}/*************************************************// 清屏**************************************************/ void fnClrScreen(void){unsigned int i;EA = 0;fnPR1(ADD_POS,0x00,0x00); // 置地址指针fnPR12(AUT_WR); // 自动写for( i = 0; i <256*64; i++){fnPR13(0x00); // 0x00写数据}fnPR12(AUT_OVR); // 自动写结束fnPR1(ADD_POS,0x00,0x00); // 重置地址指针EA = 0;}//*************************************// LCM 初始化void INI240128(void){EA = 0;LCMFS = 0;LCMRST = 0;LCMCE = 0;LCMWR = 1;LCMRD = 1;LCMRST = 1;fnPR1( TXT_STP, 0x00, 0x10 ); // 1000H文本显示区首地址1000-11ffh fnPR1( TXT_WID, 0x1E, 0x00 ); // 文本显示区宽度:30fnPR1( GRH_STP, 0x00, 0x00 ); // 图形显示区首地址0000-0fffhfnPR1( GRH_WID, 0x1E, 0x00 ); // 图形显示区宽度:30 左上角的第一个8点列像素fnPR12( CUR_SHP | 0x01 ); // 光标形状,2行fnPR12( MOD_OR ); // 显示方式设置:文本与图形以"或"合成fnPR12( DIS_SW | 0x0f ); // 显示开关设置:启用图形显示EA = 1;}/*****************************************************显示ASCII字符输入参数:X:行Y:列N:显示的ASCII()Z:是否反显,1/0:反显/正常显示输出:无******************************************************/void DisAsc(unsigned char x,y,x1,y1,n,bit z){unsigned char i;if(z){y = y+y1;for(i=0;i<12;i++){fnSetPos(x+x1,y+i);fnPR12(AUT_WR); //自动写设置fnPR13(~ASC1212[n].OUT[i]);fnPR12(AUT_OVR); //自动写结束}}else{y = y+y1;for(i=0;i<12;i++){fnSetPos(x+x1,y+i);fnPR12(AUT_WR); //自动写设置fnPR13(ASC1212[n].OUT[i]);fnPR12(AUT_OVR); //自动写结束}}}/*****************************************************显示汉字字符输入参数:X:行Y:列N:显示的ASCII()Z:是否反显,1/0:反显/正常显示输出:无******************************************************/void DisHz(unsigned char x,unsigned char y ,unsigned char x1,unsigned char y1 ,unsigned char n,bit z){unsigned char i;if(z){y+=y1;for(i=0;i<12;i++){fnSetPos(x+x1,y+i);fnPR12(AUT_WR); //自动写设置fnPR13(~HZ1212[n].OUT[2*i]);fnPR13(~HZ1212[n].OUT[2*i+1]);fnPR12(AUT_OVR); //自动写结束}}else{y+=y1;for(i=0;i<12;i++){fnSetPos(x+x1,y+i);fnPR12(AUT_WR); //自动写设置fnPR13(HZ1212[n].OUT[2*i]);fnPR13(HZ1212[n].OUT[2*i+1]);fnPR12(AUT_OVR); //自动写结束}}}/*****************************************************显示ASCII字符、汉字字符输入参数:X:行Y:列x1: 行偏移几个点y1: 列偏移几个点Z:是否反显,1/0:反显/正常显示ptr:显示的字符串输出:无******************************************************/void Dis(unsigned char x,unsigned char y,unsigned char x1,unsigned char y1 ,bit z,unsigned char *ptr){unsigned char n;EA = 0;y *= 15;fnPR1(ADD_POS,y,x); /* 置地址指针*/while(*ptr!=0){if(*ptr<0xa0) //显示ASC字码{if( x > 30 ){y += 12;x = 0;}n=0;while(ASC1212[n].In != End && ASC1212[n].In != *ptr){ n++; }DisAsc(x,y,x1,y1,n,z); //DisAsc(0,0,0,3,1,0); DisAsc(0,0,0,3,1,0);//DisAsc(1,0,0,3,2,0);//DisAsc(2,0,0,3,3,0);x += 1;ptr += 1;}else //显示汉字{if(x/2>30){y += 12;x = 0;}n=0;while(HZ1212[n].In[0]!=End&&(HZ1212[n].In[0]!=*ptr||HZ1212[n].In[1]!=*(ptr+1))) { n++; }DisHz(x,y,x1,y1,n,z);x += 2;ptr += 2;}}EA = 1;}void DisAsc24(unsigned char x,y,x1,y1,n,bit z){unsigned char i;if(z){y = y+y1;for(i=0;i<16;i++){fnSetPos(x+x1,y+i);fnPR12(AUT_WR); //自动写设置fnPR13(~ASC[n].OUT[i]);fnPR12(AUT_OVR); //自动写结束}}else{y = y+y1;for(i=0;i<16;i++){fnSetPos(x+x1,y+i);fnPR12(AUT_WR); //自动写设置fnPR13(ASC[n].OUT[i]);fnPR12(AUT_OVR); //自动写结束}}}/*****************************************************显示ASCII字符、汉字字符输入参数:X:行Y:列Z:是否反显,1/0:反显/正常显示ptr:显示的字符串输出:无******************************************************/void DisASC1616(unsigned char x,unsigned char y,unsigned char x1,unsigned char y1 ,bit z,unsigned char *ptr){unsigned char n;EA = 0;y *= 19;fnPR1(ADD_POS,y,x); /* 置地址指针*/while(*ptr!=0){if(*ptr<0xa0) //显示ASC字码{if( x > 30 ){y += 16;x = 0;}n=0;while(ASC[n].In != End && ASC[n].In != *ptr){ n++; }DisAsc24(x,y,x1,y1,n,z); //DisAsc(0,0,0,3,1,0); DisAsc(0,0,0,3,1,0);//DisAsc(1,0,0,3,2,0);//DisAsc(2,0,0,3,3,0);x += 1;ptr += 1;}}EA = 1;}void delay1(int i){int j = 2000;while(i--){while(j--);}}/*x,y为坐标,l为长度,Bp为第几个点,Lm为横竖线*/void DrawLine(unsigned char x,y,l,char Bp,bit Lm){unsigned char i,j;EA = 0;if(Lm) //画横线{for( i = 0; i < l;i ++){fnSetPos(x+i, y);for(j = 0;j< 8;j++){if((Bp>>j)&0x01){fnPR12(0xf8 + j);}}/* fnPR12(0xf8 + ((Bp>>0)&0x01));fnPR12(0xf8 + ((Bp>>1)&0x01));fnPR12(0xf8 + ((Bp>>2)&0x01));fnPR12(0xf8 + ((Bp>>3)&0x01));fnPR12(0xf8 + ((Bp>>4)&0x01));fnPR12(0xf8 + ((Bp>>5)&0x01));fnPR12(0xf8 + ((Bp>>6)&0x01));fnPR12(0xf8 + ((Bp>>7)&0x01)); */}}else //画竖线{for( i = 0; i < l;i ++){fnSetPos(x, y+i);fnPR12(0xf8|(7-Bp%8));}}EA = 1;}/**/void DrawPont(unsigned char x,y,Bp) {unsigned char j;EA = 0;fnSetPos(x, y);for(j = 0;j< 8;j++){if((Bp>>j)&0x01){fnPR12(0xf8 + j);}}EA = 1;}。

T6963C中文资料

T6963C中文资料

使用内藏T6963C控制器的液晶显示模块的注意事项1.部分内藏T6963C控制器的液晶模块为含EL 场致发光背光器件在点背光时需用逆变器型号为PYE-D32-49 PYE-D32-50或可替换的其客观存在型号逆变器供电为5V直流电源输出交流电压接至液晶的背光引脚逆变器为配件损坏将无法修理也请注意使用2.常用负电源产生为法1 采用79系列三端集成稳压器可产生-18V 7918 -24V 7924 等电源2 采用DC-DC模块市场上常见的5D**系列型号可选择使用3 采用DC-DC集成电路制作负电源如MAX749 MAX680等3.相关液晶模块的工作负电压参考值(仅供参考负电源提供的负压范围尽可能宽例如下面的12864T及其背光型所需的V0=-5.4V 负电源提供的负压可在-10V左右这样可提供较大的调节余地因为液晶材料的物理特性液晶的对比度会随着温度的变化而相应变化所以您加的负电压值应该随温度作相应的调整大致是温度变化10 电压变化1伏为满足这一要求您可做一个温度补偿电路或者安排一个电位器测度环境温度T6963C液晶显示模块上以内藏控制器型然后详细叙述内藏T6963C控制器一T6963C的特点(1)T6963C是点阵(2)T6963C的字符(3)T6963C的占空(4)T6963C可以图特征显示还可以实现图形拷贝操(5)T6963C具有内字符发生器CGRAM并允许MPU随时二T6963C的引脚T6963C的QFP(1)D0-D7:T6963C与MPU接口的数据总线,三态(2)/RD /WR 读写选通信号低电平有效输入信号(3)/CE T6963C的片选信号低电平有效(4)C/D 通道选择信号1为指令通道0为数据通道(5)/RESET /HALT /RESET 为低电平有效的复位信号它将行列计数器和显示寄存器清零关显示/HALT具有/RESET的基本功能还将中止内部时钟振荡器的工作(6)DUAL SDSELDUAL=1为单屏结构DUAL=0为双屏结构SDDEL=0为一位串行数据传输方式(7)MD2,MD3:设置显示窗口长度,从而确定了列数据传输个数的最大值,其组合逻辑关系如下:MD3 1 1 0 0MD2 1 0 1 0每行字符数32 40 64 80(8)MDS,MD1,MD0:设置显示窗口宽度(行),从而确定T6963C的帧扫描信号的时序和显示驱动的占空比系数,当DUAL=1时,其组合功能如下:MDS 0 0 0 0 1 1 1 1MD1 1 1 0 0 1 1 0 0MD2 1 0 1 0 1 0 1 0 字符行 2 4 6 8 10 12 14 16 总行数16 32 48 64 80 96 112 128 占空比1/16 1/32 1/48 1/64 1/80 1/96 1/112 1/128 当DUAL=0时,以上设置中的字符行和总行数增至原来的2倍,其它都不变,这种情况下的液晶屏结构为双屏结构出端三T6963C指令集T6963C的初始化设置一般都由管脚设置完成因此其指令系统将集中于显示功能的设置上T6963C的指令可带一个或两个参数每条指令的执行都是先送入参数如果有的话再送入指令代码每次操作之前最好先进行状态字检测T6963C的状态字如下所示STA7 STA6 STA5 STA4 STA3 STA2 STA1 STA0STA0 指令读写状态 1 准备好 0 忙STA1 数据读写状态 1 准备好 0 忙STA2 数据自动读状态 1 准备好 0 忙STA3 数据自动写状态 1 准备好 0 忙STA4 未用STA5 控制器运行检测可能性 1 可能 0 不能STA6 屏读/拷贝出错状态 1 出错 0 正确STA7 闪烁状态检测 1 正常显示 0 关显示由于状态位作用不一亲友因此执行不同指令必须检测不同状态位在MPU一次读写指令和数据时STA0和STA1要同时有效—处于准备好状态当MPU读写数组时判断STA2和STA3状态屏读写拷贝指令使用STA6STA5和STA7反映T6963C内部运行状态字符代码: D7 D6 D5 D4 D3 D2 D1 D0行地址指针: +) R2 R1 R0实际地址: V15 V14 V13 V12 V11 V10 V9 V8 V7 V6 V5 V4 V3 V2 V1 V0(3)地址指针设置:设置将要进行操作的显示缓冲区(RAM)的一个单元地址,D1 D2为该单元地址的低位和高位地址2 显示区域位置指令格式为D1 D2 0 1 0 0 0 0 N1 N2根据N1 N0的不同取值该指令有四种指令功能形式N1 N0 D1 D2 指令代码功能0 0 低字节高字节40H 文本区首址0 1 字节数00H 41H 文本区宽度字节数/行1 0 低字节高字节42H 图形区首址1 1 字节数00H 43H 图形区宽度字节数/行文本区和图形区地址对应显示屏上左上角字符位或字节位修改该地址可以产生卷动效呆D1 D2分别为该地址的低位和高位字节文本区宽度字节数/行设置和图形区宽度字节数/行设置用于调整一行显示所占显示RAM的字节数从而确定显示屏与显示RAM单元的对应关系T6963C硬件设置的显示窗口宽度是指T6963C扫描驱动的有效列数需说明的是当硬件设置 6 8字位时图形显示区单元的低6位有效对应显示屏上 6 1显示位3N3字符代码时将自N2—当设区改为文示与不显征区内D3 字符闪烁控制位D3=1为闪烁D3=0为不闪烁D2—D0的组合如下D2 D1 D0 显示效果0 0 0 正常效果1 0 1 负向效果0 1 1 禁止显示空白启用文本特征方式时可在原有图形区和文本区外用图形区域设置指令另开一区作为文本特征区以保持原图形区的数据 显示缓冲区可划分如下单屏结构SAD1 SAD1ˊ SAD14 显示开关 指令格式如下无参数 1 0 0 1 N3 N2 N1 N0N0 1/0 光标N1 1/0 光标N2 1/0 文本N3 1/0 图形5 光标形状选光标开头为86 数据自动读该指令执行后动增 1 自动读 写结束时 必7 数据一次读 写方式 指令格式如下D1 1 1 0 0 0 N 2 N1 N0D1为需要写的数据 读时无此数据N2 N1 N0 指 令 代 码 功 能 0 0 0 C0H 数据写 地址加 1 0 0 1 C1H 数据读 地址加 1 0 1 0 C2H 数据写 地址减 1 0 1 1 C3H 数据读 地址减 1图形显示区文本特性区 文本显示区 CGRAM 2K显示缓冲区R A M1 0 0 C4H 数据写地址不变1 0 1 C5H 数据读地址不变8 屏读指令格式为无参数 1 1 1 0 0 0 0 0该指令将屏上地址指针处文本与图形合成后显示的一字节内容数据送到T6963C的数据栈内等待MPU读出地址指针应在图形区内设置9 屏拷贝指令格式为无参数 1 1 1 0 1 0 0 0该指令将屏上当前地址指针图形区内处开始的一行合成显示内容拷贝到相对应的图形显示区的一组单元内该指令不能用于文本特征方式下或双屏结构液晶显示器的应用上10 位操作该指令可将显示缓N3=1置 1 N3=0清N2—N0 操作位至此T6963C的指内藏T6963C的液晶同时也已用硬件设置了液晶的结液晶显示模块一般都是单屏结构阵图形液晶显示模块的方框图如下第法一接访问方式MPU可利用数据总线口电路以公司提供的演示板为例8031数据口P0口直接与液晶显示模块的数据连拉接由于T6963C接口适于8080系列和Z80系列MPU 所以可以直接用8031的RD /WR作为液晶显示模块的读写控制信号液晶显示模块/RESET /HALT挂在+5V 上/CE信号可由地址线译码产生C/D信号由8031地址线A8提供A8=1为指令口地址A8=0为数据口地址各驱动子程序如下DAT1 EQU 30H 第一参数单元DAT2 EQU 31H 第三参数/数据单元COM EQU 32H 指令代码单元C-ADD EQU 8100H 指令通道地址D-ADD EQU 8000H 数据通道地址1.读状态字子程序占用寄存器: DPTR,A 输出寄存器 A 存储标志字R-ST MOV DPTR #C-ADD 设置指令通道地址MOVX A @DPTRRET由此程序派生出判断有关标志位的子程序(1)判状态位STA1,STA0子程序(读写指令和读写数据状态),在写指令的读写数据之前这两个标志位必须同时为 1ST01 LCALL R-STJNB ACC.0,STO1JNB ACC.1,ST01RET(2)判状态位STA2子程序(数据自动读状态),该位在数据自动读操作过程中取代STA0和STA1有效在连续读过程中每读一次之前都要确认STA2=1ST2 LCALL R-STJNB ACC.2,ST2RET(3)判状态位STA3子程序(数据自动写状态)ST3: LCALL R-STJNB ACC.3,ST3RET(4)判状态位STA6子程序(屏读/屏拷贝状态)ST6: LCALL R-STJNB ACC.6,ST6RETERR: LJMP ST6 出错处理程序1.写指令和写数据子程序PR1: LCALL ST01 双字节参数指令写入入口MOV A DAT1 取第一参数单元数据LCALL PR13 写入参数PR11 LCALL ST01 单字节参数指令写入入口MOV A DAT2 取第二参数单元数据LCALL PR13 写入参数PR12 LCALL ST01 无参数指令写入入口MOV A COM 取指令代码单元数据LJMP PR14 写入指令代码PR13 MOV DPTR #D-ADD 设置数据通道地址/数据写入入口PR14 MOVX @DPTR A 写入操作RET此程序是通用程序当写入单参数指令时应把参数或数据送入DAT2内其子程序入口为PR11 无参数指令写入子程序入口为PR122.读数据子程序PR2 LCALL ST01 判状态位MOV DPTR #D-ADD 设置数据通道地址MOVX A @DPTR 读数据操作MOV DAT2 A 数据存入第二参数/数据单元RET一间接控制方式间接控制方式是MPU通过并行接口间接实现对液晶显示模块控制根据液晶显示模块的需要并行接口需要一个8位的并行接口和一个3位并行口由下图所示8031的P1口作为数据总线P3口中3位作为读写及寄存器选择信号由于并行接口只用于液晶显示模块所以/CE信号接地就行了MPU通过并行接口操纵液晶显示模块要对其时序关系有一个清楚的了解并在程序中应明确地反映出来间接控制方式的基本程序如下CD EQU P3.2 通道选择信号WR EQU P3.3 写操作信号RD EQU P3.4 读操作信号1 读状态字子程序R-ST MOV P1 #0FFH P1口置 1SETB CD CD=1CLR RD /RD=0MOV A P1 读操作SETB RD RD=1RET此程序可以直接调节器用直接访问方式中的ST01 ST2 ST3和ST6等子程序2 写指令和写数据子程序PR1 LCALL ST01 双字节参数指令写入入口MOV A DAT1 取第一参数单元数据LCALL PR13 写入参数PR11 LCALL ST01 单字节参数指令写入入口MOV A DAT2 取第二参数单元数据LCALL PR13 写入参数PR12 LCALL ST01 无参数指令写入入口MOV A COM 取指令代码单元数据LJMP PR14 写入指令代码PR13 CLR CD CD=0/数据写入入口PR14 MOV P1 A 设置数据CLR WR /WR=0SETB WR /WR=1RET3 读数据子程序PR2 LCALL ST01 判状态位CLR CD C/D=0MOV P1 1#0FFH P1口置 1CLR RD /RD=0MOV A P1 读取数据SETB RD /RD=0MOV DAT2 A 数据存入第二参数/数据单元RET第五章应用举例示例一初始化程序该程序为通用设置程序在240 128规模以内的液晶显示模块都适应1 始化设置子程序INT MOV DAT1 #00H 设置文本显示区域首地址MOV DAT2 #00HMOV COM #40HLCALL PR1MOV DAT1 #20H 设置文本显示区域宽度MOV DAT2 #00H 即一行显示年占字节数MOV COM #41HLCALL PR1MOV DAT1 #20H 设置图形显示区域首地址MOV DAT2 #08H 或为文本属性区域首地址MOV COM #42HLCALL PR1MOV DAT1 #20H 设置图形显示区域宽度MOV DAT2 #00H 或为文本属性区域宽度MOV COM #43H 即一行显示所占字节数LCALL PR1MOV COM #0A7H 光标形状设置LCALL PR12MOV COM #80H 显示方式设置逻辑或合成LCALL PR12MOV COM #9CH 显示开关设置LCALL PR12RET2 演示程序段MOV SP #60HORL P3 #1CH 间接控制方式控制线初始化LCALL INTLCALL CLEAR示例二清显示RAM区1 清显示RAM子程序CLEAR MOV DAT1 #00H 设置显示RAM首地址MOV DAT2 #00H 设置CGRAM偏置地址MOV COM #24HLCALL PR1MOV R3 #00H 设置循环量MOV R4 #20HMOV COM #0B0H 设置自动写方式LCALL PR12CLEAR1 LCALL ST3 判状态位S2MOV A #00H 置数据0LCALL PR13 写入数据DJNZ R3 CLEAR1 循环DJNZ R4 CLEAR1MOV COM #0B2H 设置自动写结束指令LCALL PR12RET示例三建立CGRAM程序1 建立CGRAM子程序地址设定在代码为80H起处COUNT EQU 34H 西文字符8 8点阵个数CGRAM MOV DAT1 #03H 设置CGRAM偏置地址MOV DAT2 #00HMOV COM #22HLCALL PR1MOV DAT1 #00H 设置RAM地址指针MOV DAT2 #1CHMOV COM #24HLCALL PR1MOV COM #0B0H 设置自动写方式LCALL R12MOV A COUNT 计算写入的字节数MOV B #08HMUL ABMOV COUNT A 计算器低8位数据INC B 计算器高8位数据MOV DPTR #CGTAB 取字符库首地址PUSH DPH 存字符库指针PUSH DPLCGRAM1 LCALL ST3 判自动写状态位POP DPL 取字符库指针POP DPHCLR AMOVC A @A+DPTR 取数据INC DPTR 字符库指针加一PUSH DPH 存字符库指针PUSH DPLLCALL PR13 写入数据DJNZ CONUT CGRAM1 计数循环DJNZ B CGRAM1MOV COM #0B2H 定入结束自动写指令LCALL PR12POP ACC 修正栈指针POP ACCRET2 汉字库(本字库由PICKHZB.EXE软件提取生成)CGTAB:DB 000H,040H,037H,010H,081H,061H,022H,00AH液DB 016H,02BH,0E2H,022H,022H,022H,023H,022HDB 080H,044H,0FEH,020H,020H,03CH,044H,064HDB 098H,048H,050H,020H,050H,08EH,004H,000HDB 00FH,008H,008H,00FH,008H,008H,00FH,008H晶DB 07EH,042H,042H,07EH,042H,042H,07EH,042HDB 0E0H,020H,020H,0E0H,020H,020H,0E0H,024HDB 0FEH,084H,084H,0FCH,0084,084H,0FCH,084H3 建立CGRAM步骤以汉字液晶为例(1)建立偏置寄存器内容(2)建立字符字模数据及定义该字符的字符代码;“液晶”的字模数据建立在CGTAB内其字符代码分别定义为80H和84H 因为一个汉字字模需要占用四个西文字模的空间所以汉字代码的定义方法如下以80H为例80H 汉字代码表示汉字左上半部字模代码81H 隐含代码表示汉字左下半部字模代码82H 隐含代码表示汉字右上半部字模代码83H 隐含代码表示汉字右下半部字模代码(3)定入CGRAM例如:将汉字“液晶”二字作为自定义字符建立程序如下MOV COUNT #08HLCALL CGRAMSJMP $示例四西文显示1 西文字符写入子程序文本属性显示方式的应用CODE EQU 33H 字符代码ATTR EQU 34H 字符属性码低4位有效O-Y EQU 35H Y坐标0-15O-X EQU 36H X坐标0-29WRI-C MOV A O-Y 计算文本显示RAM地址MOV B #20H 文本显示区宽度为20HMUL ABADD A O-XMOV DAT1 AMOV A BADDC A #00HMOV DAT2 APUSH ACC 存地址的高8位MOV COM #24H 设置地址指针LCALL PR1MOV DAT2 CODE 写入字符代码MOV COM #0C4HLCALL PR11POP ACC 取地址的高8位ADD A #08H 计算相应的属性区RAM地址MOV DAT2 AMOV COM #24H 设置地址指针LCALL PR1MOV DAT2 ATTR 写入属性参数MOV COM #0C4HLCALL PR11RET2 文本属性方式设置程序段MOV COM #84H 设置文本属性显示方式LCALL PR12MOV COM #9FH 开文本和图形显示LCALL PR123 文本属性方式显示演示程序段MOV DAT1 #0EHMOV DAT2 #01HMOV COM #21HLCALL PR1MOV R1 #00HLOOPA MOV R2 #00HMOV R3 #00HMOV R4 #01HLOOPB MOV A R2MOV DPTR #DTABMOVC A @A+DPTRMOV CODE AMOV O-X R3MOV O-Y R4LCALL WRI-CINC R2INC R3MOV A R2CJNE A #14 LOOPBLCALL DELAYINC R1LJMP LOOPADELAY MOV R5 #00HMOV R6 #00HDELAY1 NOPDJNZ R5 DELAY1DJNZ R6 DELAY1RETDTAB DB 37H 45H 4CH 43H 4FH 4DH 45H 00H 39H 4FH 55H WELCONE YOU 示例五汉字显示方式一文本方式下的汉字显示1 汉字写入子程序文本方式CODE EQU 33H 汉字字符代码O-Y EQU 35H Y坐标0-15O-X EQU 36H X坐标0-29WRI-CT MOV A O-Y 计算显示RAM地址MOV B #20HMUL ABADD A O-XMOV DAT1 AMOV A BADDC A #00H 文本显示区首地址为0000HMOV O-Y AMOV DAT2 A 设置显示RAM地址MOV COM #24HLCALL PR1MOV A CODE 取汉字代码MOV DAT2 A 写入左上半部汉字代码MOV COM #0C0HLCALL PR11MOV A CODEADD A #02HMOV DAT2 A 写入右上半部汉字代码LCALL PR11MOV A #20H 显示RAM地址修正ADD A O-XMOV DAT1 ACLR AADDC A O-YMOV COM #24H 设置显示RAM地址LCALL PR1MOV PR1MOV A CODEINC AMOV DAT2 A 写入左下半部汉字代码MOV COM #0C0HLCALL PR11MOV A CODEADD A #03HMOV DAT2 A 写入右下半部汉字代码LCALL PR11RET在示例三上我们已经提供CGRAM的方法并且作为示例建立了汉字液晶二字的字库在此以文本方式显示汉字液晶二字演示程序如下MOV CODE #80H 液MOV O-X #00HMOV O-Y #00HLCALL WRI-CTMOV CODE #84H 晶MOV O-X #07HMOV O-Y 02HLCALL WRI-CTSJMP $示例六汉字显示方式二形方式下的汉字显示软件PICKHZB.EXE建立的汉字库而编制的1 汉字写入子程序图形方式CODE EQU 33H 汉字字符代码O-Y EQU 35H Y坐标0-127O-X EQU 36H X坐标0-29COUNT EQU 34H 计数器WRI-CC MOV A O-Y 计算图形显示RAM地址MOV B #20H 图形显示A区宽度为20HMUL ABADD A O-XMOV O-X AMOV A BADDC A #80H 图形显示区首地址为0800HMOV O-Y AMOV DPTR #CCTAB 计算汉字库字符首地址MOV A CODEMOV B #20HMUL ABADD A DPLMOV DPL AMOV A BADDC A DPHMOV DPH APUSH DPH 存字库地址指针PUSH DPLMOV COUNT #10H 计数器设置为16次WRI-CC1 MOV DAT1 O-X 设置显示RAM地址MOV DAT2 O-YMOV COM #24HLCALL PR1POP DPL 取字库地址指针POP DPHCLR AMOVC A @A+DPTR 取左部字模数据MOV DAT2 A 设置数据MOV A #10H 偏置地址为16MOVC A @A+DPTR 取右部字模数据MOV DAT1 A 暂存数据INC DPTR 字库地址指加一PUSH DPH 存字库地址指针PUSH DPLMOV SOM #0C0H 设置一次写数据指令代码LCALL PR11 写入数据MOV DAT2 DAT1 设置右部数据LCALL PR11 写入数据MOV A #20H 显示RAM地址修正ADD A O-XMOV O-X ACLR AADDC A O-YMOV O-Y ADJNZ CONUT WRI-CC1 计数器循环POP ACC 修正栈指针POP ACCRET2 汉字库(PICKHZB.EXE软件提取生成)CCTAB: DB 004H,00EH,0F8H,008H,008H,0FEH,008H,01CH;科DB 01AH,029H,028H,048H,088H,008H,008H,008HDB 010H,010H,090H,050H,010H,090H,050H,014HDB 01EH,0F0H,010H,010H,010H,010H,010H,010HDB 001H,007H,07CH,004H,004H,005H,0FFH,00CH;利DB 00EH,015H,014H,024H,044H,004H,004H,004HDB 004H,084H,004H,024H,024H,024H,0A4H,024HDB 024H,0A4H,0A4H,024H,004H,004H,014H,008HDB 000H,040H,020H,020H,000H,00FH,0E0H,021H;达DB 021H,022H,022H,024H,028H,050H,08FH,000HDB 080H,080H,080H,080H,088H,0FCH,080H,000HDB 040H,020H,010H,018H,008H,006H,0FCH,000HDB 00/H,00/H,00/H,00/H,00/H,00/H,00/H,00/H;DB 00/H,00/H,00/H,00/H,00/H,00/H,00/H,00/HDB 00/H,00/H,00/H,00/H,00/H,00/H,00/H,00/HDB 00/H,00/H,00/H,00/H,00/H,00/H,00/H,00/H3 图形方式下汉字显示演示程序MOV CODE #00HMOV O-X #00HMOV O-Y #00HLCALL WRI-CCMOV CODE #01HMOV O-X #03HMOV O-Y #00HLCALL WRI-CCMOV O-X #06HMOV O-Y #00HLCALL WRI-CCMOV CODE #03HMOV O-X #09HMOV O-Y #00HLCALL WRI-CCRET附录一T6963C的内部字符集。

T6963CLCD240128驱动

T6963CLCD240128驱动
//版权信息: 长沙太阳人电子有限公司版权所有,转载请指明出处.
//参考网页: http://lcm/product/SMG240128A.html
//-------------------------------------------------------------------------------
void putstr(unsigned char code *s); //显示字符串子程序,字符码为0时退出
unsigned char code *getchinesecodeposd char code *getenglishcodepos(unsigned char ac);
//SMG240128A产品引脚说明及演示连线
//PIN1: FG [构造地]-------------------VSS
//PIN2: VSS [电源地]-------------------VSS
//PIN3: VDD [电源正极]-----------------VDD(+5V)
//PIN10:RST [复位端 低有效]------------VDD
//PIN11:D0 [Data I/O]-----------------P1.0
//PIN12:D1 [Data I/O]-----------------P1.1
//PIN13:D2 [Data I/O]-----------------P1.2
//位描述 - LVD_P4.6 ALE_P4.5 NA_P4.4 - - - -
//初始值=x000,xxxx x 0 0 0 x x x x
void point(bit b);
void line(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,bit b);

t6963c驱动程序1

t6963c驱动程序1

t6963c驱动程序藏控制器型图形液晶显示模块的形式出现。

评:系转载,液晶控制器T6963的C语言驱动程序,T6963应用广泛,特别是240×128的液晶基本上都是用这个芯片。

#include "absacc.h"#include "math.h"#include "ASCII816.h" //字符点阵库0x20--0x7F#include "HZTable.h" //汉字点阵库(自做)#include "menu.h" //汉字点阵库(自做)//set following data by user according to LCD#define ComPort 0xB101#define DataPort 0xB000#define GraphAddr 0x0000 //head of graph//以8*8字符计算,显示屏横向、纵向可以显示的字符个数//以240*128为例:#define LineChar 30 //一行16个字符(8*8)#define ColumnChar 16 //总共16列//指令,数据读写状态检查#define RWCheck() unsigned char sta; do sta=XBYTE[ComPort] &amp; 0x03; while(sta!=0x03); //数据自动读状态检查#define AutoRCheck() unsigned char sta; do sta=XBYTE[ComPort] &amp; 0x04; while(sta!=0x04);//数据自动写状态检查#define AutoWCheck() unsigned char sta; do sta=XBYTE[ComPort] &amp; 0x08; while(sta!=0x08);/*------输入/出函数,与T6963通讯------------------------------------------------*//*------------------------------------------------------------------------*///向数据口发Data#define OutPortData(dat ) RWCheck(); XBYTE[DataPort]=dat;//写有1个参数命令#define OutPortCom1(command) RWCheck(); XBYTE[ComPort]= command;//写有2个参数命令#define OutPortCom2(dat, command) OutPortData(dat); OutPortCom1(command);//写有3个参数命令#define OutPortCom3(data1, data2, command) OutPortData(data1); OutPortData(data2); OutPortCom1(command);unsigned char InPortData() RWCheck(); return(XBYTE[DataPort]);/*-----------------------------------------------------------------------------------*///显示8*16字符//lin:行(0-7), column:列(0-15)//ch:字符代码(标准ASCII码)void ShowChar(unsigned char lin,unsigned char column,unsigned char ch)unsigned char i;unsigned char dat;unsigned int StartAddr;StartAddr=lin*LineChar +column; //定位起始行for(i=0;i<16;i++)dat=ASCII816[ ch-0x20 ][i];OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 0x24); //set address OutPortCom2( dat, 0xc4);StartAddr=StartAddr + LineChar;/*----------------------------------------------------------------------------------------------*///显示一个汉字(16*16点阵)//lin:行(0-7), column:列(0-7)//hzcode:汉字代码(自定义的)void ShowHZ(unsigned char lin,unsigned char column,unsigned int hzcode)unsigned char i;unsigned int StartAddr;StartAddr=lin*LineChar + column; //定位起始行for(i=0;i<16;i++)OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 0x24); OutPortCom2( HZTable[hzcode][i*2], 0xc0); //左半部地址加一OutPortCom2( HZTable[hzcode][i*2+1], 0xc4); //右半部字模地址加一StartAddr=StartAddr + LineChar;///////////////////////////////////////////////////////////////////////////////////////////////显示一个汉字(16*16点阵)//lin:行(0-7), column:列(0-7)//hzcode:汉字代码(自定义的)void ShowHZD(unsigned char lin,unsigned char column,unsigned int hzcode)unsigned char i,j;unsigned int StartAddr;StartAddr=lin*LineChar*16 +column; //定位起始行for(i=0;i<35;i++)OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 0x24); //定位当前操作位置for(j=0;j<5;j++) OutPortCom2( HZTable[hzcode][i*5+j], 0xc0); //显示当前一行StartAddr=StartAddr + LineChar;/////////////////////////////////////////////////////////////////////////////////////////////*-----------------------------------------------------------------------------------*///显示一行字符串(汉字,字母混排,一行16字节)//lin:行//lineheadaddr:此行汉字代码区首地址void ShowLine(unsigned char lin,unsigned char column,unsigned char linehead[])unsigned char i,j;unsigned char byte;unsigned int hzcode;for( i= column,j=0; i< column+14 ; )byte=linehead[j];if(byte < 0x80) //字母ShowChar(lin, i , byte);i=i+1;j=j+1;else // byte >= 0x80(汉字)byte=byte &amp; 0x7f; //最高位置0,即:减去0x8000hzcode=byte*256 + linehead[j+1]; //加低8位,组合成整型数地址ShowHZ( lin,i,hzcode);i=i+2;j=j+2;/*-----------------------------------------------------------------------------------*///显示一屏汉字//pageheadaddr:此屏汉字代码地址区首地址void ShowPage(unsigned char lin,unsigned char column1,unsigned char pagehead[][14]) unsigned char i;for(i=0;i< 4 ;i++)ShowLine((lin+i*20),column1,pagehead[i]); //1行8个汉字,16字节/*----------------------------------------------------------------------------------------------------*///反显一个字符//lin:行(0-7), column:列(0-15)void ReverseShowChar(unsigned char lin,unsigned char column)unsigned char i;unsigned char dat;unsigned int StartAddr;StartAddr=lin*LineChar +column; //定位起始行for(i=0;i<16;i++)OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 0x24); //set address OutPortCom1( 0xc5 ); //数据一次读,地址不变dat=InPortData(); //读入数据dat=~dat; //取反OutPortCom2( dat, 0xc4); //送回StartAddr=StartAddr+ LineChar;/*----------------------------------------------------------------------------------------------------*///反显一个汉字//lin:行(0-7), column:列(0-15)void ReverseShowHZ(unsigned char lin,unsigned char column)ReverseShowChar(lin,column);ReverseShowChar(lin,column+1);/*----------------------------------------------------------------------------------------------------*///反显一行汉字//lin:行(0-7)void ReverseShowLine(unsigned char lin)unsigned char column;for(column=0; column< ColumnChar; column++) ReverseShowChar(lin,column);//////////////////////////////////////////////////////////////////////////////////////void ShowPicture(unsigned char Startline,unsigned char Startcolumn,unsigned charLineWidth,unsigned char ColumnWidth,unsigned int address)unsigned char i,j;unsigned int StartAddr;StartAddr=Startline*LineChar + Startcolumn; //定位起始位置for(i=0;i<ColumnWidth;i++)OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 0x24); //set address for(j=0;j<LineWidth;j++)OutPortCom2( CBYTE[address + i*LineWidth+ j ], 0xc0);StartAddr=StartAddr + LineChar;//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////图形函数,用于描点画图//---------------------------------------------------------------------------//在指定位置显示一个点//如果显示屏超过了256*256,请修改这个函数PointX,PointY的类型//Mode 1:显示0:清除该点Pixel(unsigned char PointX,unsigned char PointY, bit Mode)unsigned int StartAddr=0;unsigned char dat;StartAddr=PointX*LineChar + PointY/8;dat=0xf0+7-PointY%8;if(Mode) dat=dat 0x08;OutPortCom3( (unsigned char)(StartAddr),(unsigned char)(StartAddr>>8),0x24 ); //设置该点所在单元地址OutPortCom1(dat);//-------------------------------------------------------------------------------//划线函数void Line( unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2, bit Mode) unsigned char x,y;double k,b;if( abs(y1-y2) <= abs(x1-x2) ) // k <=1k=(float)(y2-y1) / (float)(x2-x1) ;b=y1-k*x1;if( x1 <= x2 )for(x=x1;x<=x2;x++)y=k*x+b;Pixel(x, y, Mode);elsefor(x=x2;x<=x1;x++)y=k*x+b;Pixel(x, y, Mode);else // abs(y1-y2) > abs(x1-x2) K >1k=(float)(x2-x1) / (float)(y2-y1) ;b=x1-k*y1;if( y1 <= y2 )for(y=y1;y<=y2;y++)x=k*y+b;Pixel( x , y,Mode );elsefor(y=y2;y<=y1;y++)x=k*y+b;Pixel( x , y,Mode );/*--------------------------------------------------------------------------------------*/void ClearScreen()unsigned int i;/////////清显示RAM区0000h--2000h (8k)OutPortCom3(0x00,0x00,0x24); //设置指针地址0000HOutPortCom1(0xb0); //设置自动写状态for(i=0x00;i<0x2000;i++) OutPortData(0x00); // data=0;OutPortCom1(0xb2); //自动写结束//初始化LCD//需要手动设置void InitLCD()OutPortCom3( 0x00,0x00,0x42 ); //设置图形显示区域首地址GraphAddrOutPortCom3( 30,0x00,0x43 ); //设置图形显示区域宽度: LineChar// OutPortCom3( 0x00,0x00,0x42 ); //设置图形显示区域首地址GraphAddr// OutPortCom3( 0x10,0x00,0x43); //设置图形显示区域宽度:10HOutPortCom1(0xa7); //设置光标形状cursor size 8x8OutPortCom1(0x80); //设置显示方式:CGROM方式文本\图形"或"OutPortCom1(0x98); //设置显示开关:1001 1100图形ClearScreen();T6963C引脚说明T6963C的QFD封装共有67个引脚,各引脚说明如下:1、D0-D7:T6963C与MPU接口的数据总线,三态。

T6963正确程序温控

T6963正确程序温控
Clear_Dian(0);//文本RAM清零
Clear_Dian(1);//图形RAm清零
Chars_dis(Arr);
Dis_line(4);
}
void main ()
{ int jj,j;
uint T;
xian();
while(1)
Out_com(0xb0);
for(l=0;l<16;l++)
{
Out_data(Disp_Buff[l]-0x20);
}
Out_com(0xb2);
}
float AD()
{ float A,Vin,Vout,Rt,R0,m,wendu;
A=0.0039;
Dis_line(1);
Chars_dis("Temperature is: ");
Dis_line(3);
Chars_dis(Arr);
Dis_line(4);
if(WD>70)
{ Chars_dis("jiao zhun hou: ") ;
void Clear_Dian(uchar a); //字符显示清屏
void Dis_line(uchar Line_num); //点阵显示一行字符
void Init_Serial_Interrupt(void);
void Init_Serial_Timer1(void);
wendu=97.8;
return (wendu);
}
}
void xian()
{
Init_Dian();//初始化点整

T6963CFG资料

T6963CFG资料

z External display memory : 64 KB Max
The addresses in display memory of the text area, graphic area and external character generator area are
determined by software.
元器件交易网
T6963CFG
TOSHIBA CMOS DIGITAL INTEGRATED CIRCUIT SILICON MONOLITHIC
T6963CFG
DOT MATRIX LCD CONTROLLER LSI
The T6963CFG is an LCD controller designed to be used with LCD control driver LSIs and data display memories. The device has an 8−bit parallel data bus and control lines for reading or writing through an MPU interface. It can be directly connected to a TMPZ−80. It has a 128−word character generator ROM which can control an external display RAM of up to 64 Kbytes. Allocation of text, graphics and external character generator RAM can be made easily and the display window can be moved freely within the allocated memory range. The device supports a very broad range of LCD formats by allowing selection of different combinations via a set of programmable inputs. It can be used in text, graphic and combination text−and−graphic modes, and includes various attribute functions. The T6963CFG is lead (Pb)-free (Sn-Ag) product.

T6963使用的一般方法

T6963使用的一般方法

T6963 使用的一般方法,希望对你有所帮助T6963 有两段显存,对应文本区和图形区,而这两个显示区在屏幕上是重叠的由此有四种显示模式,前三种是两个显示层的位运算与模式、或模式、异或模式第四种模式是文本特征模式。

在该模式下,文本区显示字符,图形区对应的内存控制字符显示的属性:正常、反白、闪烁一、文本特征模式必须先创建字符发生器CGRAM,就是将你用到的字模存入字符发生器对应的内存。

然后跟写西文的方式完全一样,调用你的ShowChar 就可以显示汉字了要注意二点:1、T6963 字符码只有256个,内置的西文字符码占去了128个,所以你能用的只有128个(从0x80-0xff), 将你的字模按顺序装入CGRAM后,你的第一个字符的内码是0x80,第二个是0x81……2、以16X16点阵的汉字为例,大小为32字节,要占4个西文字符码,也就是说,CGRAM 一次只能装32 个汉字汉字,显示的时候必须按西方式连续显示4个字符,将这四个字符按一定的顺序(跟你取字模时的方向有关)显示在连续二行二列上就显一个完整的汉字。

字符发生器可以在程序中刷新,但同一时间同一屏显示不同的汉字无法超过32个。

屏幕上的字符对应文本区的一个内存地址addr,则图形区的地址addr 就控制该字符的显示方式。

该模式要求字模大小必须是8的倍数(如12X8的字模最少要扩展成16X8),在屏幕上的显示位置也字符行列的限制。

二、图形方式此三种基本一样,只是两个层单独显示,并在重叠的地方可选择按位进行三种运算。

文本层的控制方式与特征模式相同,只是没有了显示属性控制。

图形层的显示更简单,将显示存的某一位置1就在屏上显示一个点,只须要将字模着到图形区显存就可以显示汉字。

要注意的是该模式下在行的方向最小控制单位是一个点,列的方向最小控制单位是8个点(一个字节)。

所以图形模式下的显示的字模和在屏幕上的位置纵向不受8的倍数限制,可以精确定到一个点。

字模的传送必须在显示的时候实进传到显存,所以速度会比字符模式慢很多,但可实现一些特殊的显示,如二色的图像。

液晶显示控制器T6963C与单片机的接口及编程

液晶显示控制器T6963C与单片机的接口及编程

液晶显示控制器T6963C与单片机的接口及编程作者:武汉大学电气工程学院李晓静蒋云峰刘开培文章来源:电子设计应用点击数:379 更新时间:2005-2-23摘要:本文介绍了液晶显示控制器T6963C的众多优点,给出了其与单片机的接口电路。

并阐述了以模块化为基础的显示软件设计,具体分析了状态位检测、显示初始化、英文显示、汉字显示等功能的程序设计。

引言液晶显示器件(LCD)由于具有显示信息多、体积小、重量轻、功耗低、寿命长、价格低、接口控制方便等优点,正在测量及控制领域被广泛地推广和应用。

液晶显示器按其功能可分为笔段式和点矩阵式两种。

后者又可以分成字符点阵式和图形点阵式,图形点阵式液晶显示器不仅可显示数字、字符等内容,还能显示汉字和任意图形。

目前用于图形液晶模块的控制器很多。

本文以T6963C为例简单介绍一下液晶显示模块与CPU的接口以及软件编程问题。

图1 内置T6963C的点阵图形液晶显示模块原理图图2 接口部分硬件原理图图3 非自动写命令/数据流程图图4 非自动读数据流程图图5 自动写数据程序流程图图6 汉字显示流程图T6963C及其构成的液晶显示模块T6963C 是图形点阵式液晶显示控制器,能直接与80 系列的8 位微处理器接口。

字符字体可由硬件或软件设置,字体有4 种:5×8、6×8 、7×8、8×8。

在内置T6963C 的液晶显示模块上已经实现了T6963C 与行、列驱动器及显示缓冲区RAM 的接口,同时也已用硬件设置了数据传输方式、显示窗口长度、宽度等。

内置T6963C 的单屏点阵图形液晶显示模块结构如图1所示。

此模块的初始化设置一般由管脚设置完成,所以初始化时,由软件编写的指令就集中在显示功能的设置上。

T 6963C的指令可带一个、两个参数,或无参数。

若指令中含有参数,则每条指令执行时均须先送入参数,再送入指令代码。

由于状态位作用不一样,因此执行不同指令必须检测不同状态位。

t6963驱动芯片调试程序

t6963驱动芯片调试程序
* 功能:读T6963的状态值
* 入口参数:
*
* 出口参数:状态值
* LCD的操作时序:CD置位到CS变高之间的时间>100ns,且在CS变高后要保持10ns
* WR为上升沿有效,并保持40ns;
* RD在变低150ns后,数据有效;
lcd_parameter[1] = 0x00;
write_command_lcd(0x42,2,lcd_parameter);
lcd_parameter[0] = 40; //图形字节数/行
lcd_parameter[1] = 0x00;
#define LCDCE 0x00010000 //O P0.16口 LCD的片选信号:低有效
#define LCDCD 0x00020000 //O P0.17口 LCD的数据/命令:1=命令,0=数据
{ uint8 xi;
if(xlen > 2) xlen = 2;
for(xi = 0; xi < xlen; xi++)
{ Write_Byte_T6963(xp[xi],0);
}
Write_Byte_T6963(xd,1);
//P0.18~P0.25为LCD的8位数据接口 //O
#define LCD_GRAPHICS_ADDR 0x0000 // LCD图形显示区的地址
#define LCD_XMAX 30; //LCD的一行最多显示的字符数(8*16字符)
void lcd_initi(void) // ;初始化lcd
{ uint16 xt;
lcd_parameter[0] = 0x00; //文本区首址0000H

T6963C控制器图形液晶显示模块使用手册

T6963C控制器图形液晶显示模块使用手册

该类液晶模块的管脚定义见下表 表二 而各型号的管脚排列见附录三
表二
管脚名称 FG VSS VDD V0(Vadj) * VEE /WR /RD /CE C//D /RST DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 FS LED+ LED-
管脚定义 边框地 用于防静电 防雷击 应与大地连 禁止悬空 数字地 逻辑电源+5V 对比度调节 不与 VEE 成对提供时 也作液晶驱动电源 液晶驱动电源 写 读 片选 指令数据通道 复位信号 可通过对+5V 接 4.7K 电阻 对地接 4.7u 电容来实现 **
-10.5V
78×70
128×64
0.39×0.55 62×44
85×70(-CCFL) ****
QH12864T -HT-LED04
LED 底光
VPG12864T -SC-HT-LED03
LED 边光
宽温型 无须外部提供
VPG12864T -SC-HT-LED04
LED 底光
MGLS128128T-LED03
MGLS24064 - HT-LED04
LED 底光
VPG24064-SC-HT-LED04
LED 底光
常温型 宽温型 军品型 宽温型 军品型 半宽温型
-16V -13.0V
128×128 0.50×0.50 73×73
92×106
160×128 0.54×0.54 101×82 129×102
常温型 宽温型
-16V
常温型 宽温型
宽温型 宽温型
无须外部提供 -10V
240×128 320×64
0.4×0.4 114×64 0.44×0.44 167×35

LCD12864T6963驱动程序-19页word资料

LCD12864T6963驱动程序-19页word资料

液晶显示模块的应用一、结构特点内藏T6963C 的液晶显示模块上已经实现了T6963C 与行、列驱动器及显示缓冲区RAM 的接口,同时也已用硬件设置了液晶屏的结构(单双屏、数据传输方式、显示窗口长度、宽度等等。

我们常用的液晶显示模块一般都是单屏结构,因此我们这里只讨论单屏结构的液晶显示模块。

内藏T6963C 的单屏结构点阵图形液晶显示模块的方框图如下:二、T6963C 的特点(1) T6963C 是点阵式液晶图形显示控制器它能直接与8 位微处理器接口;(2) T6963C 的字符字体可由硬件或软件设置,其字体有4 种5X8 、6X8 、7X8、8X8;(3) T6963C 的占空比可从1/16 到1/128;(4) T6963C 可以图形方式、文本方式及图形和文本合成方式进行显示,以及文本方式下的特征显示,还可以实现图形拷贝操作等等;(5) T6963C 具有内部字符发生器CGROM,共有128 个字符。

T6963C 可管理64K显示缓冲区及字符发生器CGRAM,并允许MPU 随时访问显示缓冲区,甚至可以进行位操作。

三、该类液晶模块的管脚定义见下表:说明:对于单电源模块,标志为V0/POFF。

当该管脚为高或悬空时,内部DC/DC 功能开启;为低时,内部DC/DC 功能关闭。

该功能可用作屏幕保护和休眠方式。

如果用其直接替代双电源模块,该管脚直接悬空即可。

四、液晶显示模块的供电说明1. 如果您所选用的液晶模块是双电源(VDD/V0)供电的就需要提供一个负电压(液晶驱动电压V0/VEE),用以调节对比度,接在液晶模块的V0 引脚上。

因为液晶材料的物理特性,液晶的对比度会随着温度的变化而相应变化,所以,您加的负电压值应该随温度作相应的调整,大致是温度变化10°C 电压变化1伏左右。

为满足这一要求您要选择较大值的负电源,然后做一个温度补偿电路,或者安排一个电位器调整负电压值。

例如对于QH12864T-HT-LED04,当室温(VDD=5V)时,V0=-10.5V,如果要用到-20°C,液晶驱动电压将要变到V0=-14.5V,再考虑到负载消耗所以您提供的负电源应该为-16V 左右。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

BLA BLK -
BLK - -
BLA*4*
VEE BLA BLK
2 深圳汉昇实业有限公司 SHENZHEN HANSHENG INDUSTRIAL CO.,LTD
T6963C 控制器系列液晶模块中文说明书
版本号:20091016
* 12864 系列产品接口相同,型号见产品列表 ** 160128 系列产品接口相同,型号见产品列表 *** 24064 系列产品接口相同,型号见产品列表 *1* 与 240128-1 接口相同的产品有:240128A-1 *2* 与 240128-2 接口相同的产品有:240128B,240128C *3* 与 240128-6 接口相同的产品有:240128A *4* 2401281A 背光的控制脚正负极可选,即 20 脚可以为 BLA,也可以为 BLK 说明:以上产品都有 STN 黄绿膜,蓝膜以及 FSTN 产品可选。背光有 LED 背光,EL 背光可选。 用户可以根据需要自己选定常温、宽温或者超宽温产品。
第三章 T6963C 控制器系列产品接口时序
版本号:20091016
一、 引脚功能(T6963C 适配 Intel8080 时序)
D7-D0 /RD /WR /CE C/D
三态 输人 输人 输人 输人
数据总线 低电平有效,MCU 对 T6963C 的读操作信号 低电平有效,MCU 对 T6963C 的写操作信号 低电平有效,MCU 对 T6963C 的片选信号 通道选择信号,C/D=1 指令通道,C/D=0 数据通道
二、 时序参数表(Vdd=5.0V±10%,Vss=0V Ta= -10℃-70℃)
项目 C/D 建立时间 C/D 保持时间 CE,/RD,/WR 脉冲宽度 数据建立时间 数据保持时间 取数时间 输出保持时间
符号 Tcds Tcdh Tce,Trd,Twr Tds Tdh Tacc Toh
最小值 100 10 80 80 40 - 10
5 深圳汉昇实业有限公司 SHENZHEN HANSHENG INDUSTRIAL CO.,LTD
T6963C 控制器系列液晶模块中文说明书
版本号:20091016
文本属性码
D3
D2
D1
D0
字符显示效果
0
0
0பைடு நூலகம்
0
正向显示,不闪烁
0
1
0
1
负向显示,不闪烁
1
0
0
0
正向显示,闪烁
1
1
0
1
负向显示,闪烁
*
0
四、 接口说明
名称 型态 电平
功能描述
FG GND VCC V0 /WR /RD /CE C/D /RST
- - 输入 输入 输入 输入 输入 输入 输入
― 铁框地 - 电源地 - 电源输入(+5V) - LCD 驱动电压输入端(对比度调节) H/L 写信号 H/L 读信号 H/L 片选信号 H/L 寄存器选择端 H:命令寄存器;L:数据寄存器 H/L 复位信号
C/D
C/D
C/D
C/D
C/D
9
/RST
C/D
NC
/RST
/RST
/RST
NC
10 DB0 /HALT /RST
DB0
DB0
DB0
/RST
11 DB1 /RST
DB0
DB1
DB1
DB1
DB0
12 DB2 DB0
DB1
DB2
DB2
DB2
DB1
13 DB3 DB1
DB2
DB3
DB3
DB3
DB2
14 DB4 DB2
1. 逻辑工作电压(Vcc): 4.5~5.5V
2. 电源地(GND):
0V
3. 输入电压:
0~Vcc
4. 输入高电平(Vih): Vcc-2.2V~Vcc
5. 输入低电平(Vil): 0~0.8V
6. 输出高电平(Voh): Vcc-0.3~Vcc
7. 输出低电平(Vol): 0~0.3V
8. 模块工作电流:
六、 复位电路
T6963C 控制器系列模块提供复位引脚/RST,,以便 MCU 在硬件电路上能控制 T6963C 的 工作。/RST 是低有效,它将驱动用的计数器和寄存器清零,并且关显示。
6 深圳汉昇实业有限公司 SHENZHEN HANSHENG INDUSTRIAL CO.,LTD
T6963C 控制器系列液晶模块中文说明书
T6963C 控制器系列液晶模块中文说明书
版本号:20091016
T6963C 最大的特点是具有独特的硬件初始值设置功能,显示驱动所需的参数如占空比、驱 动传输的字节数/行及字符的字体都有引脚电平设置数。初始化在上电时已基本完成。
一、 显示字符的字体
T6363C 通过 FS1 和 FS0 的电平状态组合来设置字体。组合设置见下表:
版本号:20091016
内置 T6963C 控制器型图形液晶模块的驱动和控制系统是由 T6963 控制器及其周边电路的、 行驱动器组、列驱动器组及偏压电路组成。从模块的外接口考察模块的电路特性,实际上就是 T6963C 的电路特性。其原理图和引脚图见图 1 和图 2。
图1
图2
4 深圳汉昇实业有限公司 SHENZHEN HANSHENG INDUSTRIAL CO.,LTD
240×128 点阵系列 HS240128-1 HS240128A-1 HS240128-2 HS2401281A HS240128-6 HS240128B HS240128-8 HS240128C HS240128A
三、 接口顺序
12864* 160128** 24064*** 240128-1*1* 240128-2*2* 2401281A 240128-6*3*
二、 T6963C 内部字符集
三、 文本属性显示功能
T6963C不仅具备基本的文本显示和图形显示功能,而且还具备文本属性显示功能。文本属 性显示功能是将文本显示由通常的单字节数据(字符代码)处理扩大为双字节数据(字符代码+ 属性数据)处理。在这种功能下把显示存储器区划分为文本代码区和文本属性区。文本代码区 用于存储作为字符显示的字符代码。文本属性区用于存储作为相应字符显示的字符属性,这种 属性由文本属性区单元中一字节数据的低4位表示,有6种属性,见下表:
T6963C 控制器系列液晶模块中文说明书
第一章 汉升 T6963C 控制器系列产品介绍
版本号:20091016
一、 T6963C 控制器系列产品主要特性
z Intel8080 系列微处理器接口 z 6×8 和 8×8 字体可选 z 图形方式、文本方式以及图形与文本混合显示,文本方式下的特征显示图形拷贝功能 z 内置字符发生器 CGROM,含 128 个字符。模块上带 32K 显示缓冲区。
深圳汉昇实业有限公司
SHENZHEN HANSHENG INDUSTRIAL CO.,LTD
地 址:深圳市南山区西丽镇官龙工业村东区 18 栋 5 楼 邮 编:518055 公司主页: 联系电话:0755-86114312 传 真:0755-86114314
1 深圳汉昇实业有限公司 SHENZHEN HANSHENG INDUSTRIAL CO.,LTD
1
1
禁止显示(正向)
*
1
*
0
禁止显示(负向)
文本属性区的单元与文本显示区对应单元组合在一起控制显示屏上对应的字符块的显示效
果。例如:
字符代码为21H,文本属性区数据为0DH,则对应的字符显示效果是一个负向显示的“A”。
T6963C的文本属性功能的实现是以牺牲图形显示功能为代价的。T6963C将图形地址指针计
数器用作文本属性区的寻址。所以文本属性功能不可能与图形显示功能共存。
四、 显示合成功能和“屏读”、“屏拷贝”功能
T6963C 具有显示合成功能。它可以将文本显示与图形显示通过某种合成逻辑同时在显示屏 上显示。这种合成逻辑有逻辑“与”,逻辑“或”以及逻辑“异或”等,是通过显示选择器实现 的。T6963C 还可以将显示屏上的显示内容“屏读”或“屏拷贝”。 T6963C 将传送给液晶显示 驱动系统的合成数据反馈给复制电路,再由它送至数据栈或图形显示区。
五、 字符发生器
T6963C 内置 128 种 5×8 点阵的 ASCI 字符字模库 CGROM,字符代码为 00H~07H,见第 二章第二节。并允许用户在显示存储器内开辟一个用户自定义字符 8×8 点阵字模库 CGRAM。 在使用内部 CGROM 的同时,也可以支持 CGRAM,字符代码定义在 80H~FFH。T6963C 可以 管理 64K 的显示存储区,实际模块上只带 32K 的存储器。T6963C 将 32K 的存储器分成包括文 本显示区、图形显示区、文本属性区或自定义字符库区等。+
FS1
1
1
0
0
FS0
1
0
1
0
字体
5×8
6×8
7×8
8×8
T6963C 内部的字库都是 5×8 点阵的,选择字体其实是选择字符间距。在垂直方向字模数
据中留有一行间距是不可变动的,但是在水平方向,字符间距可以是 1 点距,2 点距,3 点距,
甚至是 0 点距。
字体选择的实现是在显示数据传输过程中将一字节的 8 位字模数据有选择的传输几位。比
最大值 - - - - - 150 50
单位 nS nS nS nS nS nS nS
三、 工作时序图
7 深圳汉昇实业有限公司 SHENZHEN HANSHENG INDUSTRIAL CO.,LTD
T6963C 控制器系列液晶模块中文说明书
相关文档
最新文档