液晶显示控制器SED1330的单片机C语言开发
- 格式:pdf
- 大小:131.52 KB
- 文档页数:4
第24卷 增刊2005年9月国 外 电 子 测 量 技 术ForeignElectronicMeasurementTechnologyVol.24,Suppl.Sep.,2005
作者简介:
尹佳喜(1981-),男,华中科技大学电气与电子工程学院04级研究生,研究方向电气电力电子与电力传动。
研究与设计液晶显示控制器SED1330的单片机C语言开发温守江(解放军72537部队 济南250022)
摘要:文中介绍了SED1330液晶显示控制器的接口特性及时序,给出了SED1330控制器分别采用直接和间接访问方式与8031单片机及MSP430系列单片机相连接的电路实例,并介绍C语言开发方法。关键词:液晶显示控制器 SED1330 C语言
TheC2languagedevelopmentofLCDControllerSED1330InSingle2chipSystemWenShoujiang(NO.72537UnitofPLAJi’nan250022)
Abstract:TheinterfacingcharacteristicsandtimesequenceofLCDcontrollerSED1330areintro2ducedinthisarticle.Theexamplecircuitsofthiscontroller’sconnectionwith8031andMSP430sin2glechipcomputer.Meanwhile,thedevelopingmethodswithC2languagearedescribedtoo.Keywords:LCDController,SED1330,C2language.
1 液晶显示控制器SED1330概述 SED1330是日本SEIKOEPSON公司出品的液晶显示控制器,该控制器具有较强功能的I/O缓冲器,指令功能丰富,且四位数据并行发送,最大可驱动640×256点阵。111 SED1330的硬件组成11111 接口单元 SED1330较强的功能表现在以下两个方面:
・MPU访问SED1330不需要判“忙”,SED21330随时准备接收MPU的访问并在内部时序下及时把MPU发来的指令、数据传输就位;
・SED1330在接口单元设置了适配8080系列(见图1)和M6800系列MPU的两种操作时序电
路,通过引脚的电平设置,可选择其中之一。 SED1330接口部由指令输入缓冲器、数据输入缓冲器、数据输出缓冲器和标志寄存器组成。这些缓冲器通道的选择是由引脚A0和读、写操作信号联合控制。忙标志寄存器BF(BusyFlag)是一位只读寄存器。当BF=1时,表示SED1330正向LCM传送有效显示数据。在传送完一行有效显示数据到下一行传送开始之间的间歇时间内BF=0。11112 控制单元 由振荡器、时序逻辑电路、显示RAM管理电路以及产生驱动时序的时序发生器组成。振荡器工作频率在1M~10MHz内选择。控制单元可以管理64K显示RAM,管理内置的字符发生器以及外扩的字符发生器CGRAM或EXCGROM。SED1330将64K显示RAM划分为分别具有文本和图形显示特性的几种显示区:SED1330中专有一组寄存器来管理这两种特性的显示区。它既可以单独显示一个显示特性区,也可以把两个特性的显示区通过某种逻辑关系合成显示。11113 字符方式器CGROM 在该字符方式器中固化了160种5×7点阵字符的字模。此外,还可以通过CGRAM或EXC2GROM外扩字符方式器。11114 驱动单元 该单元具有各显示区的合成显示能力、传输数据的组织功能及产生LCM所需的时序。SED1330
© 1994-2006 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net2005年增刊温守江:液晶显示控制器SED1330的单片机C语言开发27
向LCM传输数据的方式为4位并行方式。112 SED1330指令集 SED1330有13条指令,多数指令带有参数,参数值由用户根据所控制的液晶显示模块的特征和显示的需要来设置。MPU把指令代码写入指令输入缓冲器内,指令的参数则随后通过数据输入缓冲器写入。带有参数的指令代码的作用之一就是选通相应参数的寄存器,任何一条指令的执行(除SLEEP
IN、CSRDIR和MREAD外)都产生在附属参数的输入完成之后。当写入一条新指令时,SED1330将在旧的参数组运行完成之后等待新的参数的到来。MPU可用写入新的指令代码来结束上一条指令参数的写入。此时,已写入的新参数与余下的旧参数有效地组合成新的参数组。需要注意的是,虽然参数可以不必全部写入,但所写参数的顺序不能改变,
也不能省略。
图1SED1330适配Intel8080系列计算机的时序图2 SED1330与单片机的接口单片机与SED1330的接口有两种方式。一是直接访问方式,即将SED1330作为I/O设备或存储器直接挂在CPU总线上,CPU可直接访问SED1330控制器;二是间接控制方式,即把SED1330与单片机并行口相连接,CPU通过对该并行口的控制与操作间接实现对SED1330的访问。211 直接访问方式 SED1330采用直接访问方式适配8031系列单片机的电路图如图2所示。应用中,将P2.7口反相后与SED1330的片选端相连接,因LCD的写指令代码及读数据的地址为8100H,而写参数与数据及读状态的地址为8000H。P2.0作为指令代码、数据控制端。
图28031与SED1330采用直接访问方式连接的电路原理图
212 间接访问方式 因MSP430F149单片机具有丰富的外设资源,
故将SED1330采用间接访问方式与其相连接(如图3所示)。在该方式下,采用P4端口作为数据总线接口,采用P3口中的2~6线作为SED1330的控制线。这样,可方便地通过端口实现各种操作。
图3MSP430F149与SED1330采用间接访问方式连接的电路原理图
213 SED1330与单片机接口应该注意的几个问题21311 单片机的选择单片机的选择通常要从整个系统的角度予以衡量,如芯片的性能价格比、开发的难易程度等。在SED1330的实际应用中,采用何种单片机并不重要,只要满足该控制器的时序要求,并按照指令进行编程即可。在上述两种单片机中,大多数开发工程师可能具有丰富的MCS251系列单片机开发经验,
同时,目前也可找到一些较经典的开发实例。如参考文献[1]中即提供了一些非常实用的51单片机汇编语言子程序,可直接用于实际的开发工作中。因此,单就SED1330的开发来说,采用51系列单片机可能要容易一些。但是,相对于51单片机,
MSP430系列单片机具有较低的功耗、强大的处理能力、丰富的片上外围模块,方便高效的开发方式并
© 1994-2006 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net28 国 外 电 子 测 量 技 术第24卷提供多达60KB的FlashROM和10KBRAM。此外,还具有强大的扩展功能,一般具有48个I/O引脚,每个I/O口分别对应输入、输出、功能选择、中断等多个寄存器,使得功能口和通用I/O口可以复用,大大增强了端口功能和灵活性,提高了对外围设备的开发能力。因此,选择该类单片机可非常方便地构成一个全功能的单片机应用系统。21312 对比度控制SED1330控制器接口提供了对比度调节电压接入端VEE,由专用电源提供-15~-20V负电压,可通过电位器予以改变,以调节液晶显示的对比度。目前在实际应用中常采用数字电位器,通过单片机进行控制。在调试过程中,初学者可能因对比度调整的过低或过高影响观察效果,因此最好先用普通电位器进行模拟,确定合适的负电压范围后再用数字电位器进行编程控制。21313 时序控制SED1330控制器具有严格的控制时序,无论是直接连接还是间接连接,只有满足时序要求,才能正常工作。因此,仔细分析图1所示的时序图,并结合所应用的单片机的开发指令予以实现才可能完成显示器的开发。然而在实际工作中,正确的时序并非唾手可得,一个小小的失误便可能延误整个系统的开发。当然,采用逻辑分析仪有利于即时发现开发工作中的问题。21314 资源的优化在单片机资源较紧张的情况下,可考虑省略CPU对SED1330的复位端/RES和片选端/CS的直接控制,而采用上电复位和/CS端接地的方式,保证SED1330的可靠复位和片选。3 SED1330的C语言开发 近年来,用C语言开发单片机应用系统已经获得了长足的发展。采用美国FranklinSoftware公司开发的基于51系列单片机的高级语言工具C51和IAR公司为MSP430系列单片机提供的Embed2dedWorkbench及C语言调试器C2SPY可以比较方便地完成SED1330C语言开发。311 采用直接方式时的C语言开发 能够进行指针操作是C语言的重要特征,在进行应用程序设计时,我们比较关心如何直接操作各外部器件的地址。为了能够在程序中直接对任意的地址进行操作,可以用指针的方式实现。在图2所示的例子中,必须确定SED1330的地址。根据图中的连接方式,可用下列方式对地址进行定义:
unsignedcharxdata3LCDCOM;/3LCDCOM=0x8000,为写参数及显示数据地址3/ unsignedcharxdata3LCDDAT;/3LCDDAT=0x8100,为写指令地址3/
LCDCOM=0x8000;
LCDDAT=0x8100;
此外,在应用8031单片机时,可以采用C51运行库中提供的预定义宏:
LCDCOM=XBYTE[0x8000];
LCDDAT=XBYTE[0x8100];
完成地址定义后,即可对其进行直接控制。例如一条控制光标移动方向的指令可这样实现:
3LCDCOM=0x4C;//设置光标向右移动 将SED1330的64K显示RAM清零的程序框图如图4所示。
图4清液晶64K显示RAM程序框图312 采用间接方式时的C语言开发 程序开发的算法与直接方式基本相同,但其指令代码、数据参数的写入及状态读出方式都不同。例如,同样是实现控制光标移动的指令,在间接方式中须这样实现:
P3OUT&=~BIT5;//CS=0
P3OUT|=BIT6;//A0=1
P4OUT=0x4C;//设置光标向右移动(下转第32页)
© 1994-2006 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net