液晶显示模块开基本步骤
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
液晶显示模块开基本步骤
————————————————————————————————作者:————————————————————————————————日期:
核心器件: SG12864-5C
SG12864-5C是采用三星电子公司生产的KS0713为内显示控制芯片的小型液晶显示模块。该128×64点阵液晶显示模块具有二种不同功耗模式,价格低,数据可读可写,使用方便等优点。其所采用的KS0713更是一种小型的大规模集成并带有驱动器的点阵型液晶控制芯片。KS0713体积小,外观尺寸只有42mm×39mm,29个引脚;可直接由微处理器控制;数据读写操作不受外部时钟控制;集成化程度高,自带液晶所必需的电源驱动。
图1 ADC倒转列地址和显示列地址之间的对应关系示意图
液晶显示模块开发的基本步骤
点阵型液晶显示模块的开发基本可以分为三步:
根据开发系统的要求完成单片机与液晶显示模块的接口,通常的接口有总线模式和I/O模式两种。特别要注意,液晶显示模块对负电压的要求,如果负电压值不符合要求,则会造成液晶屏显示一片全黑,或是对比度太低。
根据控制器的时序图和寄存器的命令表格,通过编写程序往显存的指定地址送一个字节,比如0xFF,只要液晶上显示一条实线线段,如果可以正常启动并有数据显示,无论数据显示的对错甚至显示的是乱码,都表明液晶模块的初始化已经完成,数据传输通道已经基本打通。
仔细研究显存的排列方式/数据的传输方式是纵向还是横向,字节内的位顺序是左高右低,还是左低右高,1是对应黑点还是白点,显存地址是怎样排列的,是自动加1,还是要另外设置等等。
SG12864-5C液晶显示模块中采用的KS0713显示控制芯片
SG12864-5C(128×64点阵式LCD)液晶显示模块在悬空背光源管脚的状态下,其电流最大值仅为0.25mA,通常典型电流值为0.17mA,输入电压为3V~3.6V。满足了绝大部分嵌入
式系统对低功耗液晶显示的要求。模块所采用的KS0713控制器直接接收8位并行数据,在显示的同时将数据存储在模块内的数据存储器中(DDRAM)。
控制芯片KS0713的初始化
KS0713初始化的基本步骤和其它同类控制芯片的初始化基本相同。值得开发人员特别注意的是:KS0713内部的ADC,SHL定义了数据逐行、逐列显示的逐次顺序,其关系顺序如表1所示。
基于TI(德州仪器)公司的16位微处理器MSP430F149在C语言开发环境下对KS0713的初始化:
void Init_LCD(void) //定义初始化函数
{ P6OUT &=~RESET;//复位位置零
Delay(500);
P6OUT |= RESET; //复位位置位
Delay(5);
P6OUT &=~CS;//片选位置零
Send_Command(0xE2);//复位指令
Send_Command(0xA1);//ADC指令(ADC=1)数据传输SEG132~SEG1,液晶屏幕显示SEG1~SEG132
Send_Command(0xC0);//SHL指令(SHL=0)传输,显示COM1~COM64
Send_Command(0xA3);//设定LCD占空比为1/9
Send_Command(0x2F);//设定电源控制
Send_Command(0x26);//调节寄存器选择
Send_Command(0x81);//设定参考电压模式
Send_Command(0x1C);//设定参考电压寄存器
Send_Command(0x40);//设定显示行(COM1)
Send_Command(0xAF); }//等待显示开始
显示数据存储器
DDRAM用来存放液晶的显示数据,它是一个65行.132列的地址空间。65行构成了9页,其中前8页由8列构成(DB0~DB7),第9页是单独的一行(只有DB0)。显示数据DB0~DB7直接通过MCU的数据口送入,并通过DB0~DB7直接读写到对应的8行。同时每一个点阵可以通过确定行地址和列地址来确定位置。
显示数据的起始位置
由于KS0713的地址空间是65×132的,实际在控制LCD时,由于只用到64×128的地址空间,就存在着起始地址的问题。数据并行传输之后始终是从DB0(第一行)开始显示。而列地址则不同。内部地址对应的方式不同则会导致起始数据列地址的不同。如果LCD的第0列地址和KS0713的第0列地址相对应,则相应的起始列地址为0x00;如果LCD的第0列地址和KS0713的第1列地址相对应,则相应的起始列地址为0x01;以此类推。通过实验发现SG1 2864-5C液晶显示模块,其内部LCD的第0列地址实际上和KS0713的第4列地址相对应,而与其所提供的通用汇编演示程序:MOV A,#02;的列起始地址有出入,而且原文件中也未对其所举范例中列地址为何从#02开始做出明确的解释。实际以此液晶显示模块显示传输的并行数据的起始列地址应为#04。
字模点阵数据的提取和传输
SG12864-5C的逐行、逐列显示顺序可以根据用户的不同要求在初始化时加以设置。通过使用SG12864-5C,发现KS0713控制芯片向LCD送数据的方式也和人们通常习惯的横向数据传输方式不同,采用的是竖向数据传输方式:对于64行128列的LCD,先送第1列,第0行~第7行的数据;第2列,第0行~第7行的数据;第3列,第0行~第7行的数据;直到第128列,第0行~第7行的数据。再送第1列,第8行~第15行的数据;第2列,第8行~第15行的数据;最终第128列,第56行~第63行的数据。ADC选择指令可倒转列地址和显示列地址之间的对应关系,如图1所示。因而,要求送数据格式为:先送第1列,第7行~第0行的数据;第2列,第7行~第0行的数据;第3列,第7行~第0行的数据;第1列,第15行~第8行的数据;第2列,第15行~第8行的数据;第128列,第63行~第56行的数据。
由此,对于字模的提取,KS0713也就有了特殊的要求:为了能够在LCD上显示出图2(a)的图形,我们必须先将图2(a)横向左右调换得到图2(b),再将图2(b)沿纵向上下调换得到图2 (c)。最终传输以图2(c)的格式所提取字模数据,才可以得到图2(a)的显示。