点阵式液晶图形显示控制器T6963C与80C196KC单片机的接口和编程
单片机与LCD液晶显示屏的接口技术

单片机与LCD液晶显示屏的接口技术LCD液晶显示屏是现代电子产品中常见的显示设备之一,它广泛应用于手机、电视、电子手表、智能家居等各种场景。
而单片机则是一种功能强大的集成电路,可以控制和管理各种外部设备。
在很多电子产品中,单片机与LCD液晶显示屏的接口技术起着至关重要的作用。
本文将介绍单片机与LCD液晶显示屏的接口技术原理和实现方法。
1. LCD液晶显示屏的工作原理LCD液晶显示屏采用液晶分子的光学特性来显示图像。
它由液晶面板、驱动电路和背光等组成。
液晶面板通过液晶分子的电场控制来改变光的透过度,从而实现对图像的显示。
驱动电路负责控制液晶分子的电场,使其定向排列以显示所需图像。
背光则提供光源,确保图像在背面光的照射下能够清晰可见。
2. 单片机与LCD液晶显示屏的接口类型通常情况下,使用较小的单片机时,可以采用并行接口的方式与LCD液晶显示屏进行连接。
而当液晶屏规模较大时,例如在电视等大尺寸设备中,采用串行接口更为常见。
2.1 并行接口并行接口是指将单片机的数据引脚与LCD液晶显示屏的数据引脚一一对应连接的方式。
通过这种方式,单片机可以通过并行传输大量数据来驱动LCD液晶显示屏。
通常的并行接口有8位并行和16位并行两种。
2.2 串行接口串行接口是指使用少量的引脚通过串行传输方式来控制和驱动LCD液晶显示屏。
串行接口可以有效减少引脚的使用数量,降低设备的成本和复杂度。
同时,通过串行接口传输数据的速度可以更快,图像显示更加流畅。
3. 单片机与LCD液晶显示屏的数据传输无论是使用并行接口还是串口接口,都需要单片机与LCD液晶显示屏之间进行数据的传输。
在数据传输中,液晶显示屏通常需要通过命令与数据两种不同方式来接收数据。
3.1 命令传输通过发送命令,单片机可以控制LCD液晶显示屏进行各种操作,例如清屏、光标的移动、设置光标位置等。
在数据传输时,单片机将命令数据通过接口发送给液晶显示屏的控制引脚,从而实现对液晶显示屏的控制。
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;}。
SMC1640A点阵液晶显示器及其与80C196KC单片机的接口电路

SMC1640A点阵液晶显示器及其与80C196KC单片机的接
口电路
赵巧娥;李守成
【期刊名称】《电力学报》
【年(卷),期】1999(014)003
【摘要】本文介绍了SMC1640A可编程液晶显示器的引脚功能,控制命令,并且提出了其与80C196KC单片机的接口电路,显示程序设计。
【总页数】5页(P221-225)
【作者】赵巧娥;李守成
【作者单位】太原电力高等专科学校;北方交通大学电气系
【正文语种】中文
【中图分类】TN873.93
【相关文献】
1.点阵图形液晶显示模块DMF5001N与80C196KC单片机的接口应用 [J], 张文普;吴言荪
2.PLC-单片机-点阵液晶显示器双总线监控系统的研究分析 [J], 唐求阳
3.中文图形12864点阵液晶显示模块与51单片机的并行接口电路及C51程序设计 [J], 李志广;李晓泉;淮俊霞
4.键盘/液晶显示器与单片机的接口电路设计 [J], 张震
5.点阵式液晶显示模块与8031单片机的接口电路 [J], 刘书明;刘毅夫;赵占欧
因版权原因,仅展示原文概要,查看原文内容请购买。
T6963c补充说明

T6963c 补充说明(128*64LCD )1. T6963c 具有64KB 的显示缓冲区,也叫做T6963c 的外部RAM 或显示RAM ,它用于存储要显示的文本数据、图形数据和外部字符发生器数据(即外部CG 数据,相对于内部字符发生器CGROM 而言的)。
在单屏扫描的显示功能下(T6963c 还具有双屏扫描功能,由引脚DUAL 决定,我们使用的是单屏扫描),这些文本、图形和外部CG 数据可以自由的放在这个64KB 的RAM 中。
但是为了便于操作,这里推荐类似下图所示的分法:2. 使用128点*64点(16列*8行)的液晶显示屏时,为了在程序中便于对所要显示的图形或文本定位,有必要对实际的液晶屏进行说明。
值得注意的是,图形显示和文本显示所使用的纵坐标是有区别的,因为图形最小可以操作一个位的显示或不显示,而文本只能操作一个字符(8*8)的显示或不显示;所以文本方式下纵坐标只有8行。
为了便于操作,可将液晶屏分为四个区,如下图所示:0000H7FFFH其中外部CG 数据区最大需要2KB ,因为一个字符代码代表一个8*8的字符,即一个字符代码就占用8个字节的数据,如果只选用外部字符发生器,字符代码可以是00H-FFH (如果使用内部CGROM ,00H-7FH 被内部CGROM 占用,外部CGRAM 只能用80H-FFH ),共256个字符,即需要8*256=2048=2KB 。
至于图形显示区和文本显示区的大小就由实际应用决定了。
如果单独使用图形或文本显示方式时,液晶屏上显示的就只是图形显示区或文本显示区的数据;如果采用合成显示(包括或、异或和与)方式,液晶屏上显示的就是图形区和文本区相应单元数据合成后的效果了,如下图所示:图形显示四个显示区大小一样,各有16*16=256个单元,分别各占显示RAM 的256个数据单元,它们的地址是连续的,对应显示RAM中相应的连续单元,也就是说显示屏上所显示的内容与显示RAM中的数据是一一对应的,当然还要考虑显示模式问题(即图形或文本方式以及合成方式)。
图形点阵液晶的原理与应用

从当前地址指针(在图形区内)
-
读一行屏幕显示数据并写回
屏读拷贝 (一行)
11101000(E8H)
-
1 11110XXX
-
11111XXX
-
1111X000
-
1111X001
-
1111X010
-
1111X011
-
显示数据 1111X100
-
位操作设 1111X101
-
置
1111X110
-
1111X111
10000000(80H)
10000001(81H) 10000011(83H) 10000100(84H)
-
-
Y垂直地址 00H 高8位地址
高8位地址 00H 高8位地址 00H
-
10010000(90H)
-
-
10010010(92H)
-
-
显示 10010011(93H)
-
-
状态设置 10010100(94H)
5 6 7 8
9
10~17
/WR
L
/RD
L
/CE
L
C/D
H/L
/RESET
L
DB0~DB7 H/L
写信号 读信号 片选信号 指令/数据选择(H: 指令 L:数据)
复位(模块内已带上电复位电路,加电后可自动复位)
数据总线0 (三态数据总线)
18
FS
H/L
19
LED+
--
20
LED-
--
字体选择 (H:6X8 点;L:8X8 点,图形方式时建议接低) LED 背光电源输入 (+5V)或EL背光电源输入(AC80V) LED 背光电源输入负极
浅谈液晶显示器的接口和编程操作技巧

浅谈液晶显示器的接口和编程操作技巧
佚名
【期刊名称】《电子制作》
【年(卷),期】2013(000)011
【摘要】由于液晶显示器(LCD)具有重量轻、体积小、功耗低、超薄等诸多其他显示器无法比拟的优点,已被广泛应用于各种智能型仪器和低功耗电子产品中。
点阵式(或图形式)LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下左右滚动、动画、闪烁、文本特征显示等功能,用途十分广泛。
本文介绍单片机与液晶显示器LCD的硬件接口电路和编程操作应用。
【总页数】1页(P47-47)
【正文语种】中文
【相关文献】
1.点阵式液晶显示器与单片机的接口与编程 [J], 胡明超;陈志祥
2.液晶显示器的接口和编程技巧 [J], 高伟;钱利民;朱善君
3.液晶显示器的接口和编程技巧 [J], 高伟;钱利民;朱善君
4.DSP与液晶显示器的接口和编程 [J], 王强;王金全;唐友怀
5.图形液晶显示器与单片机的接口及编程 [J], 陈元娣;刘淳
因版权原因,仅展示原文概要,查看原文内容请购买。
内藏液晶显示控制器T6963C与DSP的接口应用
/
De l rt n n n eme it r b e ca ai sa d I tr dae Va i 1 ] il m m d d A .3A 5 ;
/
—
T 93 66 C的最大特点是具有独特 的硬件初 始值设 置功能, 显示驱动所需的参数如 占空比系数 、 驱动传输 的 字 节 数/ ,以 及 字 符 由 引 脚 电 平 设 置 , 样 , 行 这
( M 30 F4 7 。D P和液晶模块 的接 口包括两部 T S2 L20 ) S
分操 作 ; S D P读液 晶模块 状 态 的操 作 ; S D P向液 晶模 块 写数 据和 指令 的操作 。这 些操作 的 实现就是 参考 液晶 模块 的时 序 图 , 生 满 足这 些 时序 的 接 口控 制 逻 辑 。 产 然而,S D P指 令 执行 速 度很 快 , 晶则属 于 慢速 外 设 , 液 两者 直接 接 口速度 不 匹 配 。要想 正 确 操 作 液 晶 , 须 必 在 两者之 间加相 应 的缓 冲电路 。采 用 S 7 H 4 一 N 4 2 5和
中 图分 类号 :N 7 .3 T 8 3 9
0 引 言
点阵式 液 晶显 示模 块 是 一 种 较低 价 位 、 有 较 高 具 显示 功能 的显示 器件 。 其显 著 特 点 是性 能 稳定 、 进 能
2 液晶显示模块与 T 30 F47硬件接 口 MS2 L 20
本设 计 采 用 的嵌 人 式 处 理 器 是 T I公 司 的 D P S
118 图形和 文本可 同时进 行显示 , 选择 O A D、 /2 ; 可 R、 N EO X R等方 式 , 以及 文本方 式 下 的特 征显 示 , 还可 实现 图形拷 贝操作 等 。
液晶显示的软硬件设计
一、硬件实现方案:1.T6963C的特点(1)T6963C是点阵式液晶图形显示控制器,它能直接与80系列的8位微处理器接口;(2)T6963C的字符字体由硬件设置,其字体有4种:5×8、6×8、7×8、8×8;(3)T6963C的占空比可从1/16到1/128;(4)T6963C可以图形方式、文本方式及图形和文本方式进行显示,以及文本方式下的特征显示,还可以实现图形拷贝操作等等;(5)T6963C具有内部字符发生器CGROM,共有128个字符,T6063C 可管理64K显示缓冲区及字符发生器CGRAM。
并允许MPU随时访问显示缓冲区,甚至可以进行位操作。
可见T6963是同类产品功能较强大的一款,足以满足我们竞赛对复杂显示的需要。
2.T6963的硬件连接:(1)直接访问方式MCU可利用数据总线与控制信号直接采用I/O设备访问形式控制T6963C类液晶显示模块。
实验时采用的是89C51与液晶显示模块的直接访问方式,如图1所示。
图1 MCU与T6963外部接口的连接将液晶显示模块直接挂在总线上,SW1为硬件复位开关,Vout 为液晶显示模块本身输出的负压(-15V),该负压经过R的分压接回液晶,用于调节对比度。
由于当3-8译码器的15A EA =;111121314=A A A 时7Y 才为低,所以MCU 访问液晶时:数据通道地址为#F000H,指令通道地址为#F001H 。
(2)间接访问方式:间接控制方式是MPU 通过并行接口间接实现对液晶显示模块控制。
根据液晶模块的需要,并行接口需要一个8位的并行接口和一个3位的并行口,由上图所示。
80312的P1口作为数据总线。
P3口中3位作为读、写及寄存器选择信号。
由于并行接口只用于液晶显示模块,所以/CE 信号接地就行了。
显然这种方式在硬件资源(特别是P 口)紧张并且有快速写缓存需要的情况下,这种方式具有明显的劣势,这里并不予以采用。
单片机是怎样在液晶上显示字符的
单片机是怎样在液晶上显示字符的液晶(LCD)是如何显示的1.线段的显示点阵图形式液晶由M 行×N 列个显示单元组成,假设LCD 显示屏有64行,每行有128 列,每8 列对应1 个字节的8 个位,即每行由16 字节,共16×8=128 个点组成,屏上64×16 个显示单元和显示RAM 区1024 个字节相对应,每一字节的内容和屏上相应位置的亮暗对应。
例如屏的第一行的亮暗由RAM 区的000H~00FH 的16 个字节的内容决定,当(000)=FFH 时,则屏的左上角显示一条短亮线,长度为8 个点;当(3FFH)=FFH 时,则屏的右下角显示一短亮线;当(000H)=FFH,(001H)=00H,(002H)=FFH,(003H)=00H,…(00EH)=FFH,(00FH)=00H 时,则在屏的顶部显示一条由8 段亮线和8 条暗线组成的虚线。
这就是LCD 显示的基本意思。
2.字符的显示当用LCD 显示一个字符时就较复杂了,因为一个字符由6×8 或8×8 点阵组成,即要找到和屏上某几个位置对应的显示RAM区的8 个字节,并且要使每个字节的不同的位为‘1’,其它的为‘0’,为‘1’的点亮,为‘0’的点暗,这样一来就组成某个字符。
但对于内带字符发生器的控制器(如T6963C)来说,显示字符就比较简单了,可让控制器工作在文本方式,根据在LCD 上开始显示的行列号及每行的列数找出显示RAM 对应的地址,设立光标,在此送上该字符对应的代码即可。
3.汉字的显示汉字的显示一般采用图形方式,事先从微机中提取要显示的汉字的点阵码,每个汉字占32 字节,分左右两半部,各占16 字节,左边为1、3、5…,右边为2、4、6…, 根据在LCD 上开始显示的行列号及每行的列数可找出显示RAM 对应的地址,设立光标,送上要显示的汉字的第一个字节,光标位置加1,送第二字节,换行按列对齐,送第三字节…直到32 字节显示完就可在LCD 上得到一个完整的汉字。
基于T6963C的LCD与ARM7的接口设计
基于T6963C的LCD与ARM7的接口设计0 引言液晶模块作为普遍采用的显示器件,具有功耗低、显示内容多、控制灵活等特点。
在中规模图形液晶显示模块中,内置T6963C 控制器的LCD模块是目前较为常用的内置控制器型图形液晶显示模块。
该模块可由硬件电路完成初始化设置,故可节省软件开销。
软件上,T6963C 控制器也提供了丰富的指令集,且控制方式灵活多样。
而以ARM 为内核的32 位微处理器,则具备高性能和低功耗的特点,在工业控制领域应用广泛。
因此,对于不带液晶接口的中低端ARM7 芯片,可由其通用输入输出(GPIO,general purpose input andoutput)引脚来实现与LCD 的连接,并控制LCD 实现其显示功能。
1 LCD 硬件接口设计T6963C 控制器可与液晶模块的行、列驱动器及显示缓冲区RAM 连接,并可通过这种硬件连接方式设置好液晶屏结构(单、双屏)、显示窗口长度、宽度、字体等。
内置T6963C 的单屏结构点阵图形液晶显示模块的原理框图如图1 所示。
图1 中,数据总线和控制总线都直接与CPU 的IO 口线相连。
液晶可采用SMG240128A 点阵图形液晶显示模块;而CPU 则可选用基于ARM7TD-MI-S 核的32 位微处理器芯片LPC2134。
该芯片是基于RISC 的原理设计,指令和译码简单方便。
它采用三级流水线技术,CPU 操作频率最大可达60MHz,并具备47 个通用I/O 口,同时含有丰富的外设资源,十分适合于工业测量及控制领域使用。
该液晶模块与LPC2134 的接口电路如图2 所示。
图2 中的液晶模块采用数据并行传输模式,通过两个驱动芯片74L3245 和74HC14 与LPC2134 相连。
其中74LS245 是八位双向总线收发器,它可将液晶模块的数据总线与CPU 的P0 口的8 条口线相连,负责控制数据的传输,并具备数据锁存和缓冲功能:74HC14 为六输入反相驱动器,可驱动液晶模块的四。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单 片 机访 问方 式 的 电 路 图
() 1
() !
是 点 阵 式 液 晶 图形 显 示 控 制 器 . 与 8 能 0系
可 以 图 形 方 式 、 本 方 式 及 阁 形 和 文 本 合 文
程 序 设 计
的初 始 化 设 置 一般 都 由 硬 件 作 了 设 置 , 此 其 因 指令系统将集 中于显 示功 能 的设置 上 。 的 指 令 可 以 带 一 个 或 两 个 参 数 , 无 参 数 。 每 条 指 令 的 执 行 都 是 先 或 送 人 参 数 ( 果 有 参 数 ) 再 送 人 指 令 代 码 。每 次 操 作 之 前 如 .
() 4 发 生 器 () 5
点 阵式 液 晶 图形 显 示 控 制 器 具 有 内 部 字 符 , 有 共 个 码字符 ; 。允 许 点 阵 式 液 晶 图 形 显 示 控 制 器 可 以 管 理 , 为 显 示 缓 冲 区及 字 符 发 生 器 c 作
价 格 低 、 口控 制 方 便 等 优 点 , 成 为 当 今 显 示 技 术 发 展 的 接 正
l 琳 i , E 5 C
A 一直 DO DlS
一
一
、
l
抒 动组 } 黎嚣 二 一
0 渣
_ —
P 、 P 3 4
{
l
I t
I 琳 l cD /
6
6
轰蠢尊缱 l 了 奢 3 鑫6
— — — — —
; 1
—
H、 }
烈鹱 霉鬈组 i 3
理 图 和 对 T6 6 C操 作 的 通 用程 序 。 93
关 键 词 : 9 3 ; 0 1 6 C; 口 ; 用程 序 T6 6 C 8 C 9 K 接 通 中图分类号 : 3 TP n 文献标识码 : A 文 章 编 号 : 6 2 3 9 ( 0 7 1 — 2 80 1 7— 18 2 0 ) 004 —1
与 8 C1 6 O 9 KC的 接 口
内置 控制器的液 晶显 示模 块与 计算机 的接 口 时 序 。它 与 计 算 机 有 两 种 连 接 方 式 : 直 设 备 直
文 以 清 华 蓬 远 的 T 9 3 控 制 器 为 例 , 绍 其 与 8 C 9 KC 66C 介 0 1 6 时序 为
单 片 机 的 接 口 电路 和 编 程 。
接 访 问 方 式 和 间 接 访 问 方 式 。 直 接 访 问 方 式 是 内 置 控 制 器 的液 晶 显 示 模 块 作 为 存 储 器 或
2 T 93 6 6 C及 其 构 成 的 液 晶 显 示 模 块
T 93 6 6 C液 晶显 示 控 制 器 多 用 于 中 小 规 模 的 液 晶 显 示 接 挂 在 计 算 机 的总 线 上 。模 块 的 数 据 线 接 计 算 机 的 数 据 总 片 器件 . 被 装 配 在 图 形 液 晶显 示 模 块 上 . 内 藏 控 制 器 型 图 线 上 , 选 及 寄存 器 选 择 信 号 线 m 计算 机 的 地 址 总 线 提 供 , 常 以 间 形 液 品 显 示 模 块 的 形 式 出 现 。 在 内置 T66 C 的 液 晶 显 示 读 和 写 操 作 由计 算 机 的 读 写 操 作 信 号控 制 ; 接 控 制 方 式 93
1 引 言
随着 测控 技 术 的 日益 发 展 , 能 仪 器 在 集 成 度 、 能 、 智 功 人 机 界 面 等 方 面 均 有 了 巨 大 的进 步 和 发 展 , 形 液 晶 显 示 器 南于具有 显示 信息 多 、 积小 、 量轻 、 耗低 、 体 重 功 寿命 长 、 6 4
各 种 控 制 芯 片 在 控 制 电路 逻 辑 指 令 、 标 参 数 等 方 面 各 有 指 差 异 . 无 论那 一 种 型 号 的 产 品 , 连 接 信 弓基 本 相 同 。 本 但 其
( 处 理 器 ) 时 访 问 显 示 缓 冲 区 , 至 可 以进 行 换 位 微 随 甚
主 流 。 目前 , 示 器 的 核 心 — — 液 晶 显 示 控 制 器 品 种 繁 多 . 操 作 。 显
韩 磊
( 西安 石 油 大 学 计 算机 学 院 , 西 西 安 7 0 6 陕 1 0 1)
摘 要 : 绍 了液 晶 显 示控 制 器 T 9 3 介 6 6 C的 众 多优 点 和该 控 制 器 与 8 C 9 KC单 片 机 的 接 口设 计 方 法 , 出 了 电路 原 0 16 给
接 口连 接 , 机 通 过 对 该 训算
接 口 的 操
与
窗 口长 度 、 度 等 。 内置 T6 6 C 的 单 屏 点 阵 图 形 液 晶显 示 作 间 接 的 实 现 对 模 块 的 控 制 。 下 图 为 宽 93 模 块 结 构 如 图 1所 示 。
一
. 、
单 片机 采 用 直 接访 问 方 式 的 电路 图 。
照显
埔
^E L J /疆 R D D 五 B n7 B
%
= = =
电潭 缝 l
{。 0 = ,— ; — 一 — ~
{
/ 】
‘ ’ 一
I
置
的点 阵 图 形液 晶显 示 模 块原 理 图 图
的特点 :
与
模 块 上 已 经 实 现 了 T 9 3 与 行 、 驱 动 器 及 显 示 缓 冲 区 是 将 内 置 66C 列
控 制 器 的 液 晶 显 示 模 块 与 计 算 机 系 统 中
RAM 的 接 口 , 时 也 已用 硬 件 设 置 了 数 据 传 输 方 式 、 示 同 显
的某 个并 行
维普资讯
第 1 第 1 期 9卷 O
现 代 商 贸 工 业 M o enB s es rd d s y dr ui s T a e n ut n I r
20 年 1 07 O月
点 阵 式 液 晶 图形 显 示控 制器 T6 6C 93 与 8 1 单 片机 的接 口和 编 程 6 C 0 C 9K