LCD12864(T6963)驱动程序

上传人:平*** 文档编号:11198832 上传时间:2017-10-12 格式:DOC 页数:30 大小:760.67KB
返回 下载 相关 举报
LCD12864(T6963)驱动程序_第1页
第1页 / 共30页
LCD12864(T6963)驱动程序_第2页
第2页 / 共30页
LCD12864(T6963)驱动程序_第3页
第3页 / 共30页
LCD12864(T6963)驱动程序_第4页
第4页 / 共30页
LCD12864(T6963)驱动程序_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《LCD12864(T6963)驱动程序》由会员分享,可在线阅读,更多相关《LCD12864(T6963)驱动程序(30页珍藏版)》请在金锄头文库上搜索。

1、液晶显示模块的应用一、结构特点内藏T6963C 的液晶显示模块上已经实现了T6963C 与行、列驱动器及显示缓冲区RAM 的接口,同时也已用硬件设置了液晶屏的结构(单双屏、数据传输方式、显示窗口长度、宽度等等。我们常用的液晶显示模块一般都是单屏结构,因此我们这里只讨论单屏结构的液晶显示模块。内藏T6963C 的单屏结构点阵图形液晶显示模块的方框图如下:二、T6963C 的特点(1) T6963C 是点阵式液晶图形显示控制器它能直接与8 位微处理器接口;(2) T6963C 的字符字体可由硬件或软件设置,其字体有4 种5X8 、6X8 、7X8、8X8;(3) T6963C 的占空比可从1/16

2、 到1/128;(4) T6963C 可以图形方式、文本方式及图形和文本合成方式进行显示,以及文本方式下的特征显示,还可以实现图形拷贝操作等等;(5) T6963C 具有内部字符发生器CGROM,共有128 个字符。T6963C 可管理64K显示缓冲区及字符发生器CGRAM,并允许MPU 随时访问显示缓冲区,甚至可以进行位操作。三、该类液晶模块的管脚定义见下表:说明:对于单电源模块,标志为V0/POFF。 当该管脚为高或悬空时,内部DC/DC 功能开启;为低时,内部DC/DC 功能关闭。该功能可用作屏幕保护和休眠方式。如果用其直接替代双电源模块,该管脚直接悬空即可。四、液晶显示模块的供电说明1

3、. 如果您所选用的液晶模块是双电源(VDD/V0)供电的就需要提供一个负电压(液晶驱动电压V0/VEE), 用以调节对比度,接在液晶模块的V0 引脚上。因为液晶材料的物理特性,液晶的对比度会随着温度的变化而相应变化,所以,您加的负电压值应该随温度作相应的调整,大致是温度变化10C 电压变化1伏左右。为满足这一要求您要选择较大值的负电源,然后做一个温度补偿电路,或者安排一个电位器调整负电压值。例如对于QH12864T-HT-LED04, 当室温(VDD=5V)时,V0=-10.5V, 如果要用到-20C, 液晶驱动电压将要变到V0=-14.5V,再考虑到负载消耗所以您提供的负电源应该为-16V

4、左右。但如果超过此值太多或说超过了液晶驱动电源的极限值的话应该考虑保护电路。2. 常用负电源产生办法1) 采用79 系列三端集成稳压器可产生-18v(7918) -24v(7924)等电源2) 采用DC-DC 模块市场上常见的5D*系列型号可选择使用3) 采用DC-DC 集成电路制作负电源如MAX749、 MAX680、 MC34063 等。3. 液晶模块可选用带背光的型号大部分为LED 背光方式,供电为3.8 4.3V 直流电源,严格限制5V 电源直接供电,否则不仅会增加您的功耗,更会增加损坏背光灯的可能性和缩短液晶模块的使用寿命。推荐电压如下:当背光方式为LED04 即底背光时VLED#i

5、nclude #include #include #include #define ulong unsigned long#define uint unsigned int#define uchar unsigned char#define TRUE 1#define FALSE 0#define HIGH 1#define LOW 0/ T6963C 端口定义#define LCMDW XBYTE0x08100H / 数据口#define LCMCW XBYTE0x08000H / 命令口/ T6963C 命令定义#define LCM_CUR_POS 0x21 / 光标位置设置#defin

6、e LCM_CGR_POS 0x22 / CGRAM 偏置地址设置#define LCM_ADD_POS 0x24 / 地址指针位置#define LCM_TXT_STP 0x40 / 文本区首址#define LCM_TXT_WID 0x41 / 文本区宽度#define LCM_GRH_STP 0x42 / 图形区首址#define LCM_GRH_WID 0x43 / 图形区宽度#define LCM_MOD_OR 0x80 / 显示方式:逻辑 或#define LCM_MOD_XOR 0x81 / 显示方式:逻辑 异或#define LCM_MOD_AND 0x83 / 显示方式:逻辑

7、 与#define LCM_MOD_TCH 0x84 / 显示方式:文本特征#define LCM_DIS_SW 0x90 / 显示开关: D0=1/0:光标闪烁启用/禁用;/ D1=1/0:光标显示启用/禁用;/ D2=1/0:文本显示启用/禁用;/ D3=1/0:图形显示启用/禁用;#define LCM_CUR_SHP 0xA0 /光标形状选择: 0xA0-0xA7 表示光标占的行数#define LCM_AUT_WR 0xB0 / 自动写设置#define LCM_AUT_RD 0xB1 / 自动读设置#define LCM_AUT_OVR 0xB2 / 自动读 /写结束#define

8、 LCM_INC_WR 0xC0 / 数据一次写,地址加 1#define LCM_INC_RD 0xC1 / 数据一次读,地址加 1#define LCM_DEC_WR 0xC2 / 数据一次写,地址减 1#define LCM_DEC_RD 0xC3 / 数据一次读,地址减 1#define LCM_NOC_WR 0xC4 / 数据一次写,地址不变#define LCM_NOC_RD 0xC5 / 数据一次读,地址不变#define LCM_SCN_RD 0xE0 / 屏读#define LCM_SCN_CP 0xE8 / 屏拷贝#define LCM_BIT_OP 0xF0 /* 位操作

9、:D0-D2 :定义 D0-D7 位;D3:1 置位;0:清除 */* - 定义液晶屏内部 RAM - */#define LCM_T_BASE 0x00 / 文本区内存首地址#define LCM_G_BASE 0x00 / 图形区内存首地址#define LCM_BYTES_PER_ROW 16 / 定义屏幕文本宽度为 16 字节/ 绘图坐标限制#define LCM_XMAX 128 #define LCM_XMIN 0#define LCM_YMAX 64#define LCM_YMIN 0/判准备好子程序uchar fnST01(void) / 状态位 STA1,STA0 判断(读写

10、指令和读写数据)uchar i;for(i=10;i0;i-)if(LCMCW & 0x03) = 0x03)break;return i; / 若返回零,说明错误uchar fnST2(void) / 状态位 ST2 判断(数据自动读状态)uchar i;for(i=10;i0;i-)if(LCMCW & 0x04) = 0x04)break;return i; / 若返回零,说明错误uchar fnST3(void) / 状态位 ST3 判断(数据自动写状态)uchar i;for(i=10;i0;i-)if(LCMCW & 0x08) = 0x08)break;return i; / 若

11、返回零,说明错误uchar fnST6(void) / 状态位 ST6 判断(屏读/屏拷贝状态)uchar i;for(i=10;i0;i-)if(LCMCW & 0x40) = 0x40)break;return i; / 若返回零,说明错误uchar fnPR10(uchar uCmd,uchar uPar1,uchar uPar2) / 写双参数的指令if(fnST01() = 0)return 1;LCMDW = uPar1;if(fnST01() = 0)return 2;LCMDW = uPar2;if(fnST01() = 0)return 3;LCMCW = uCmd;retu

12、rn 0; / 返回 0 成功uchar fnPR11(uchar uCmd,uchar uPar1) / 写单参数的指令if(fnST01() = 0)return 1;LCMDW = uPar1;if(fnST01() = 0)return 2;LCMCW = uCmd;return 0; / 返回 0 成功uchar fnPR12(uchar uCmd) / 写无参数的指令if(fnST01() = 0)return 1;LCMCW = uCmd;return 0; / 返回 0 成功uchar fnPR13(uchar uData) / 一次写数据if(fnST01() = 0)ret

13、urn 1;LCMDW = uData;return 0; / 返回 0 成功uchar fnPR14(uchar uData) / 自动写数据if(fnST3() = 0)return 1;LCMDW = uData;return 0; / 返回 0 成功uchar fnPR2(void) / 一次读数据if(fnST01() = 0)return 1;return LCMDW;/设置地址void LCM_set_address(unit addr) fnPR1(LCM_ADD_POS, addr & 0xFF, addr / 256); /0x24 为设定地址命令/文本方式设置显示坐标vo

14、id LCM_xy(uchar x, uchar y)uint addr;addr = LCM_T_BASE + (y * LCM_BYTES_PER_ROW) + x;LCM_set_address(addr); / 设置显示地址/文本清屏void LCM_clear_text(void)uint i;fnPR1(LCM_ADD_POS, LCM_T_BASE,0x00); / 置地址指针fnPR12(LCM_AUT_WR); / 自动写for(i=0;i=LCM_XMAX) | (row=LCM_YMAX) )return;addr = LCM_G_BASE + (row*LCM_BYTES_PER_ROW) + (column/8);LCM_set_address(addr)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号