T6963C中文数据手册
- 格式:pdf
- 大小:2.13 MB
- 文档页数:21
液晶模块说明书SPEC NOGood Display YM24064F-1 REV NO 1.0液晶显示模块中文说明书产品类型: 标准产品产品系列号:YM24064F-1产品描述: 240x64图形点阵,蓝白模式控制器:T6963C,白色LED背光编写: Dexun Zou审核:HCC批准: Jingxi Yang发行日期: 2006.1大连佳显电子有限公司 Good Display地址:大连市沙河口区工华街17号电话**************传真**************E-mail: ******************.cn网址: LCD 模块使用手册1.使用范围----------------------------------------------------22.质量保证----------------------------------------------------23.性能特点----------------------------------------------------24.外形图-------------------------------------------------------65.I/O接口特性-----------------------------------------------76.模块与MPU的接口方法-------------------------------167.应用程序举例---------------------------------------------188.质量等级---------------------------------------------------249.可靠性---------------------------------------------------2710.生产注意事项---------------------------------------------2711.使用注意事项---------------------------------------------2912.附表1-------------------------------------------------------301.使用范围该检验标准适用于大连佳显电子有限公司设计提供的标准液晶显示模块。
T6963C控制器系列液晶模块使用说明书感谢您关注和使用我们的液晶产品。
如果您在使用中有任何疑问,请拨打我们的客户服务热线*************寻求技术支持和获取相关资料,我们竭诚为您服务。
您可以登录我们的网站了解最新产品信息。
或者您可以在我公司网站的留言簿栏目留下您宝贵的意见。
深圳市亚斌显示电子有限公司第一章亚斌T6963C控制器系列产品介绍一、 T6963C控制器系列产品主要特性z Intel8080系列微处理器接口z6×8和8×8字体可选z图形方式、文本方式以及图形与文本混合显示,文本方式下的特征显示图形拷贝功能z内置字符发生器CGROM,含128个字符。
模块上带32K显示缓冲区。
二、 产品列表128×64点阵系列160×128点阵系列240×64点阵系列240×128点阵系列YB12864F YB12864FA YB12864T YB12864J YB12864I YB160128AYB160128BYBS24064-1YB24064BYB24064DYB240128-1YB240128-2YB240128-6YB240128EYB240128AYB240128DYB240128BYB240128C三、 接口顺序12864*160128**24064***240128-1*1*240128-2*2*2401281A 240128-6*1 FG FG FG FG FG FG FG2 GND GND GND GND GND GND GND3 VCC VCC VCC VCC VCC VCC VCC4 V0 V0 V0 V0 V0 V0 V05 /WR VEE /WR /WR /WR /WR /WR6 /RD /WR /RD /RD /RD /RD /RD7 /CE /RD /CE /CE /CE /CE /CE8 C/D /CE C/D C/D C/D C/D C/D9 /RST C/D NC /RST /RST /RST NC10 DB0 /HALT /RST DB0 DB0 DB0 /RST11 DB1 /RST DB0 DB1 DB1 DB1 DB012 DB2 DB0 DB1 DB2 DB2 DB2 DB113 DB3 DB1 DB2 DB3 DB3 DB3 DB214 DB4 DB2 DB3 DB4 DB4 DB4 DB315 DB5 DB3 DB4 DB5 DB5 DB5 DB416 DB6 DB4 DB5 DB6 DB6 DB6 DB517 DB7 DB5 DB6 DB7 DB7 DB7 DB618 FS DB6 DB7 FS FS FS DB7BLADB7 FS VEE BLA VEE FS1920 BLK NC VEE BLA BLK BLA*4* VEE21 -- BLA BLK -BLA22 -- BLK --BLK * 12864系列产品接口相同,型号见产品列表** 160128系列产品接口相同,型号见产品列表*** 24064系列产品接口相同,型号见产品列表*1* 与240128-1接口相同的产品有:240128A-1*2* 与240128-2接口相同的产品有:240128B,240128C*3* 与240128-6接口相同的产品有:240128A*4* 2401281A背光的控制脚正负极可选,即20脚可以为BLA,也可以为BLK说明:以上产品都有STN黄绿膜,蓝膜以及FSTN产品可选。
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 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特性功能只支持文本模式,不能在图形或字符组合模式中使用。
使用内藏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的内部字符集。
T6963C的51单片机驱动程序#include;#include;#include ;#include ;#include ;#include ;#include "Test.h"/* 地址定义 */#define d_c_add XBYTE[0x00] //数据口命令口/* 常数定义 */#define uchar unsigned char#define uint unsigned int/* T6963C 命令定义 */#define LCD_CUR_POS 0x21 /* 光标位置设置(只有设置到有效显示地址并打开显示时才看到) */#define LCD_CGR_POS 0x22 /* CGRAM偏置地址设置(可以增加自已的符号) */#define LCD_ADR_POS 0x24 /* 地址指针位置(设置读写操作指针) */#define LCD_TXT_STP 0x40 /* 文本区首址(从此地址开始向屏幕左上角显示字符) */#define LCD_TXT_WID 0x41 /* 文本区宽度(设置显示宽度,N/6或N/8,其中N为x轴的点数) */#define LCD_GRH_STP 0x42 /* 图形区首址(从此地址开始向屏幕左上角显示点) */#define LCD_GRH_WID 0x43 /* 图形区宽度(设置显示宽度,N/6或N/8,其中N为x轴的点数) */#define LCD_MOD_OR 0x80 /* 显示方式:逻辑或 */#define LCD_MOD_XOR 0x81 /* 显示方式:逻辑异或 */#define LCD_MOD_AND 0x82 /* 显示方式:逻辑与*/#define LCD_MOD_TCH 0x83 /* 显示方式:文本特征 */#define LCD_DIS_SW 0x90 /* 显示开关:D0=1/0,光标闪烁启用/禁用 *// * D1=1/0,光标显示启用/禁用 *//* D2=1/0,文本显示启用/禁用(打开后再使用) *//* D3=1/0,图形显示启用/禁用(打开后再使用) */#define LCD_CUR_SHP 0xA0 /* 光标形状选择:0xA0-0xA7表示光标占的行数 */#define LCD_AUT_WR 0xB0 /* 自动写设置 */ #define LCD_AUT_RD 0xB1 /* 自动读设置 */ #define LCD_AUT_OVR 0xB2 /* 自动读/写结束 */ #define LCD_INC_WR 0xC0 /* 数据一次写,地址加1 */#define LCD_INC_RD 0xC1 /* 数据一次读,地址加1 */#define LCD_DEC_WR 0xC2 /* 数据一次写,地址减1 */#define LCD_DEC_RD 0xC3 /* 数据一次读,地址减1 */#define LCD_NOC_WR 0xC4 /* 数据一次写,地址不变 */#define LCD_NOC_RD 0xC5 /* 数据一次读,地址不变 */#define LCD_SCN_RD 0xE0 /* 屏读 */#define LCD_SCN_CP 0xE8 /* 屏拷贝 */#define LCD_BIT_OP 0xF0 /* 位操作:D0-D2--定义D0-D7位,D3--1为置位,0为清除 *//* 定义标志位 */sbit CD = P1^0;sbit CE = P1^1;sbit light = P1^2;extern uchar code HZTable[ ][32];extern uchar code ASCII_DOT_LIB[][16];/************************************************ ************************************************* *******//************************************************ ************************ 名称:LCD_TestStaBit01()* 功能:判断读写指令和读写数据是否允许。
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] & 0x03; while(sta!=0x03); //数据自动读状态检查#define AutoRCheck() unsigned char sta; do sta=XBYTE[ComPort] & 0x04; while(sta!=0x04);//数据自动写状态检查#define AutoWCheck() unsigned char sta; do sta=XBYTE[ComPort] & 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 & 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接口的数据总线,三态。
液晶显示控制器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的指令可带一个、两个参数,或无参数。
若指令中含有参数,则每条指令执行时均须先送入参数,再送入指令代码。
由于状态位作用不一样,因此执行不同指令必须检测不同状态位。
有载分接开关测试仪说明书由于输入输出端子、测试柱等均有可能带电压,在插拔测试线、电源插座时,会产生电火花,小心电击,避免触电危险,注意人身安全!只有合格的技术人员才可执行维修。
—防止火灾或人身伤害使用适当的电源线。
只可使用专用并且符合规格的电源线。
正确地连接和断开。
当测试导线与带电端子连接时,请勿随意连接或断开测试导线。
使用适当的保险丝。
只可使用符合规定类型和额定值的保险丝。
避免接触裸露电路和带电金属。
有电时,请勿触摸裸露的接点和部位。
请勿在潮湿环境下操作。
请勿在易爆环境中操作。
保持产品表面清洁和干燥。
-安全术语警告:警告字句指出可能造成人身伤亡的状况或做法。
1目录一、功能特点 (5)二、结构及面板说明 (6)三、操作指南 (8)(一)接线 (8)(二)测试 (9)(三)存储及查阅 (11)四、设置 (13)五、测试仪记录波形判读说明 (14)(一)测量记录过程的理想直流波形及测试规范 (14)(二)直流电流示波图形的判读说明 (15)一.功能特点电力变压器有载开关测试仪,是用于测量和分析电力系统中电力变压器及特种变压器有载分接开关电气性能指标的综合测量仪器。
它采用计算机控制,通过特殊设计的测量电路,可实现对有载分接开关的过渡时间、过渡波形、过渡电阻、三相同期性、等参数的测量,用户可根据需要和现场条件,直接由分接开关引线进行测量,也可由变压器三相套管及中性点直接接线测量。
2该仪器具有对所测数据进行分析、存贮、打印等功能。
解决了目前电力变压器有载分接开关测量方法落后,没有专用测试手段的问题,可在电力设备预防性试验及变压器大修中及时诊断出有载分接开关的潜在故障,对提高电力系统运行的可靠性具有重要意义.电力变压器有载开关测试仪有以下几种优点:——光线示波器功能仪器分三通道,可同时记录A,B,C三相过渡过程中所有过度及跳变的过程,包括可看出跳变点的时间值。
不受天气引响,功能远比光线示波器优越。
——较强的综合测量能力。