基于单片机的LCD显示屏设计.doc_第1页
基于单片机的LCD显示屏设计.doc_第2页
基于单片机的LCD显示屏设计.doc_第3页
基于单片机的LCD显示屏设计.doc_第4页
基于单片机的LCD显示屏设计.doc_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘 要本文从LCD显示屏的研究背景和国内外发展现状入手,了解了LCD显示屏显示的原理和软硬件设计。首先通过凌阳单片机与SPLC501液晶显示器的硬件连接,以及利用C语言进行软件编程,顺利地实现了对字符“Automation is developing”的显示。其次通过DM Tool工具,利用字模提取方法将汉字提取出ASCII码字模,将编写的C语言编译成汇编语言,在液晶屏上实现了对汉字“自动化申志华”的显示。最后与汉字字模数据类似,利用DM Tool 字模提取工具提取了BMP位图字模,通过软件编译实现了对BMP位图的显示。利用凌阳单片机的实验箱,将液晶显示屏与单片机相连通过反复调试,掌握了LCD显示屏的工作原理以及使用方法,顺利实现了液晶显示,达到了设计的要求。关键词:液晶显示屏;单片机;字模提取AbstractThis article starts from explaining the study background and the developing state all around the world of liquid crystal display, then knowing the work principle and the design of LCD. Firstly, by joining the single chip with SPLC501 liquid crystal display,and proramming with C language, realizing the characer display of “Automation is dveloping ”. Secondly, by using DM tool and the way of captions abstracting turn the chinese into ASCII captions, then changing the C language into assembler language, realizing the chinese show of “Automation Shen Zhihua”. At last, like the chinese show,using DM Tool turn the BMP image into ASCII captions,by software programming realize the display of the BMP image.By taking anvantage of single chip of experiment box, joining the LCD with the single chip and repeatly debugging,I can master the operation principle and the methods of LCD.I also realized the display of LCD and achieved the demands of design.Key words: liquld crystal display ; single chip ;captions abstract目 录第1章 概 述11.1 LCD显示屏设计的背景11.2 液晶显示屏的国内外研究现状及发展趋势11.3 凌阳单片机简介3第2章 LCD显示屏设计62.1 液晶显示原理62.2 液晶显示的特点与结构62.2 LCD显示屏的电路设计82.3 LCD显示屏的程序设计9第3章 软件设计113.1 字模提取方法113.2 SPLC501液晶显示模组API函数介绍15第4章 硬件设计204.1 硬件框图204.2 硬件连接图22第5章 线路的搭建与调试255.1 显示字符 “Automation is developing ”255.2 显示汉字 “自动化申志华”295.3 显示图片33第6章 LCD显示屏的评价与推广37结论38参考文献39致 谢40第1章 概 述1.1 LCD显示屏设计的背景液晶显示器(LCD)已广泛应用于计算机、电视及智能仪表中,它的主要优点是功耗低、控制电压低、集成电路容易控制。LCD显示屏的体积小、重量轻、超薄等特点是其它显示屏无法比拟的。近几年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。LCD可分为段式LCD、字符式LCD和点阵式LCD。其中段位式LCD和字符式LCD只能用于字符和数字的简易显示,而不能够满足图形曲线和汉字显示的要求;而点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线和汉字,并且可以实现屏幕上下左右滚动,动画功能,分区开窗口,反转,闪烁等功能,用途十分广泛1。液晶显示器作为一种新型的显示输出设备,消除了传统CRT的屏幕闪烁和像素抖动,不仅具有高亮度、高对比度、高可靠性、抗干扰能力强等优点,而且体积小、功耗低、宽视野、色彩鲜明、无辐射。随着相关技术的日趋成熟,它的应用领域迅速扩展,尤其是在工业控制、医疗仪器、机电设备、商业消费等方面,正逐渐成为新的热点。LCD显示多采用专用的控制器,功能强大,实现了很好的显示效果。但是其价格高昂,且多要求有的操作系统实现控制功能。这必然限制其在功能要求不高、对价格敏感的小型设备中使用。1.2 液晶显示屏的国内外研究现状及发展趋势在LCD显示应用领域,通常数据源输出图像的分辨率是变化,而从工业生产标准化要求和获得最佳显示效果的角度出发,LCD显示器的物理分辨率则是固定不变的。这就需要将不同分辨率的输入图像经过缩放后输出到分辨率固定的LCD显示器上,当前工业上解决这一问题的方案是在输入数据源和数据显示设备之间设置LCD图像引擎来实现缩放处理2。LCD图像引擎是面向LCD显示器应用的一种高度集成的图像处理芯片,它在整个LCD显示系统中具有不可取代的位置。LCD显示器是纯数字设备,数字接口是其最佳的选择,但由于计算机主机与显示设备之间接口规范和标准的不统一,目前市场上相当一部分的液晶显示器使用的还是模拟信号接口。随着数字接口的技术标准正逐渐地统一起来,越来越多的显示芯片具备了支持数字视频输出的能力,显卡制造商也开始在显卡上集成数字显示接口。基于这种现状,当前LCD图像引擎芯片也就存在基于模拟接口和数字接口两种类型3。两类芯片尽管实现基本功能一致,但是由于标准的不同,结构存在较大差异。采用模拟接口方式时,图像信号处理流程是:显卡首先将数字图像信号变为模拟信号(DAC),然后由电缆送到显示器上,显示器再将模拟信号变为数字信号(ADC),最后经过图像缩放处理后进行图像显示。这样,信号经由DAC、ADC到最后的信号输出实际上是一个多余的循环过程,这个循环没有任何积极的意义,相反还引入了三个信号失真源:DAC、电缆、ADC,最终影响了图像的输出效果。采用数字接口方式则去掉了这些不必要的环节,直接输出数字视频信号,经图像缩放处理后,就可以直接送到显示器进行显示,图像的输出效果毫无疑问会优于前一种模式。数字接口取代模拟接口是大势所趋,考虑到数模接口兼容,目前很多厂商在同一芯片上不仅提供数字接口,而且提供模拟接口。由于进入大尺寸LCD图像引擎IC的门槛较LCD驱动IC要高,涉及专利问题比较多,目前主要由Genesis、PHILIPS、NS(National Semiconductor)、ST(STMicroelectronics)等国际大厂控制。在庞大市场需求的强力吸引下,中国台湾陆续有数十家IC设计厂商投入到LCD显示相关芯片领域。台湾地区厂商如晨星(Mstar)、凌泰(Averlogic)、兆宏(Magicpixel)、联咏(Novatek)、瑞昱(Realtek)、晶磊(Smartasic)、创品(Trumpion)、凌越(Topro)、世纪民生(Myson century)、晶捷科技(MRT)、诠等厂家在LCD图像引擎芯片市场也取得了一定份额。目前我国IC设计公司数量已经突破400家大关,但在LCD图像引擎芯片的研发上,内地IC设计公司参与者却寥寥无几。目前仅有成都威斯达在进行这方面的研发和设计,其面向LCD TV的主打方案WSC1115、WSC2000也已经得到了成功的应用。Genesis目前主推的LCD图像引擎都支持数字和模拟两种接口,而且其集成度也是所有厂商中最好的,其在图像处理方面也一骑绝尘,拥有多项自主产权的图像处理技术。而我国台湾地区厂商无论在集成度,还是图像处理算法上,均与国外的厂商之间有较大的差距。其插值算法和图像色彩调整技术停留在常规算法阶段4。 LCD显示屏的发展主要有如下几个趋势:1)实现分离式图像引擎IC到初期较低程度整合,再到高集成度整合的转变。分离式通常指Scaler IC,初期较低程度包括将Scaler IC、ADC、PLL、OSD整合为一颗IC。数位传输界面兴起之后,整合范围加入了DVI Receiver IC。高集成度整合包括集成记忆体SDRAM、MCU、Video Decoder。甚至加入了面板模组上的TCON,更甚者则加入更高端的HDMI视频接口、MPEG解码等功能。整合度越高,集成难度越大,但经济效益也越好。2)LCD图像引擎数字接口将取代模拟接口。LCD图像引擎中的图形控制引擎及图形缩放引擎內部所做的图形处理均属于数字信号的处理,但是在过去为了配合传统的CRT显示器,图像引擎的输出均为模拟RGB信号。后来由于LCD显示器的出现及广泛使用,随着数字接口标准制订工作的开展,数字接口LCD图像引擎IC陆续上市。期间由于在数字RGB信号的发展了历程中出现了低压差分信号LVDS与转换最小化差分信号TMDS的标准的混战,使得系统厂商及消费者有些无所适从,于是模拟接口式LCD图像引擎遂成了过渡时期的产品。而现在数字接口的主流地位已逐渐显现,所以在不久的将来数字接口将取代传统的模拟接口。3)低摆幅差分信号RSDS逐步导入控制板的输出介面5。基于低压差分信号LVDS标准的低摆幅差分信号RSDS(Reduced Swing Differential Signaling)是由美国国家半导体(NS)所推出的传输接口,该标准将LVDS的性能特点应用到平板显示器的列驱动电路与TCON的芯片的连接上,主要是用来取代目前LCD图像引擎IC与驱动IC的CMOS数字电路,由于这种接口具有降低EMI及省功耗的功能,为LVDS在显示技术领域的应用提供了新的机遇。4)在控制IC中为家庭中的PC、DVD、TV Cable、PS2、xBox等影音数据源提供更加广阔的匹配接口,使大尺寸LCD显示器的功能更加多样化。5)LCD面板开始步入10bits,因此支持10bits的LCD图像引擎也将成为标准要求,同时宽屏LCD显示器成为了消费者的新宠,因此支持宽屏显示的LCD图像引擎将成为未来的主流。总而言之, LCD显示器正朝着更多的输出、更快的速度、更高的品质(考虑电磁兼容等方面的设计加入)、更低的功耗等方向快速发展6。1.3 凌阳单片机简介 随着单片机功能集成化的发展,其应用领域也逐渐地由传统的控制,扩展为控制处理、数据处理以及数字信号处理(DSP)等领域。凌阳的16位单片机就是为适应这种发展而设计的。它的CPU内核采用凌阳最新推出的16位微处理器芯片。围绕所形成的16位系列单片机采用的是模块式集成结构,它以内核为中心集成不同规模的ROM、RAM和功丰富的各种外设接口部件,如图1-1所示。图1-1 家族的模块式结构内核是一个通用的核结构。除此之外的其它功能模块均为可选结构,亦即这种结构可大可小或可有可无。借助这种通用结构附加可选结构的积木式的构成,便可形成各种不同系列派生产品,以适合不同的应用场合。这样做无疑会使每一种派生产品具有更强的功能和更低的成本7。家族有以下特点:(1)体积小、集成度高、可靠性好且易于扩展。家族把各功能部件模块化地集成在一个芯片里,内部采用总线结构,因而减少了各功能部件之间的连线,提高了其可靠性和抗干扰能力。另外,模块化的结构易于系统扩展,以适应不同用户的需求。(2)具有较强的中断处理能力。家族的中断系统支持10个中断向量及10余个中断源,适合实时应用领域。(3)高性能价格比。家族片内带有高寻址能力的ROM、静态RAM和多功能的I/O口。另外的指令系统提供具有较高运算速度的16位16位的乘法运算指令和内积运算指令,为其应用增添了DSP功能,使得家族运用在复杂的数字信号处理方面既很便利,又比专用的DSP芯片廉价。(4)功能强、效率高的指令系统。指令系统的指令格式紧凑,执行迅速,并且其指令结构提供了对高级语言的支持,这可以大大缩短产品的开发时间。(5)低功耗、低电压。家族采用CMOS制造工艺,同时增加了软件激发的弱振方式、空闲方式和掉电方式,极大地降低了其功耗。另外,家族的工作电压范围大,能在低电压供电时正常工作,且能用电池供电。这对于其在野外作业等领域中的应用具有特殊的意义。SPCE061A 是继系列产品SPCE500A等之后凌阳科技推出的又一款16位结构的微控制器。与SPCE500A不同的是,在存储器资源方面考虑到用户的较少资源的需求以及便于程序调试等功能,SPCE061A里只内嵌32K字的闪存(FLASH)。较高的处理速度使能够非常容易地、快速地处理复杂的数字信号。因此,与SPCE500A相比,以为核心的SPCE061A微控制器是适用于数字语音识别应用领域产品的一种最经济的选择。家族产品具有电源电压范围和工作速率范围较宽、集成度高、性能价格比高以及功耗低等特点,故其有非常广泛的应用领域。家族系列产品,涵盖了非常广泛的应用。包括:发音与语音识别的微控制器(SPCE系列)、通信来电辩识应用的微控制器(SPT660x系列)、以及通用型微控制器等等第2章 LCD显示屏设计2.1 液晶显示原理液晶是分子排布或指向具有某种规律、介于固体与液体之间,具有规则性分子排列的有机化合物。它具有液体的流动性和晶体的双折射性,并且在电场的作用下会改变其分子排列。液晶的特点是构成液晶的分子指向有规律,而分子之间的相对位置无规律,前者使液晶具有晶体才具有的各向异性,后者使之具有液体才具有的流动性8。液晶得名于其物理特性:它的分子晶体,以液态存在而非固态。如果电流通过液晶层,这些分子将会以电流的流向方向进行排列,如果没有电流,它们将会彼此平行排列。液晶的这些特点使得它可以被用来当作一种开关,既可以阻碍光线,也可以允许光线通过。液晶单元的底层是由细小的脊构成的,这些脊的作用是让液晶分子呈平行排列。液晶的上表面也是如此,在这两侧之间的分子平行排列,不过当上下两个表面之间呈一定的角度时,液晶则随着两个不同方向的表面进行排列,进而发生扭曲。结果便是这个扭曲了的液晶“螺旋层”使经过其中的光线也发生了扭曲。如果电流通过液晶,所有的分子将会按照电流的方向进行排列,这样就会消除光线的扭转。如果将一个偏振滤光器放置在液晶层的上表面,扭转的光线通过了,而没有发生扭转的光线将被阻碍。因此可以通过电流的通断改变LCD中的液晶排列,使光线在加电时射出,而不加电时被阻断从电子学角度阐述液晶显示器件的显示原理为:在外加电场的作用下具有偶极矩的液晶棒状分子在排列状态上发生变化,使得通过液晶显示器件的光被调制,从而呈现或明或暗、透过与不透过的显示效果。液晶显示器件中的每个显示像素都可以单独被电场控制,不同的显示像素按照驱动信号的控制在显示屏上合成各种图像,液晶显示驱动的功能就是建立这种电场。液晶显示有三大优点:液晶本身不发光,只是反射环境光;用于显示的液晶的厚度一般在几十微米以下,加上电极板也只有几毫米,所以液晶元件一般薄而轻,应用十分方便;液晶显示器耗电量一般极低,基本上不耗电能9。2.2 液晶显示的特点与结构2.2.1 LCD的特点LCD有以下显著特点:(1)低压微功耗:工作电压只有35V,工作电流只有几个微安。因此它成为便携式和手持仪器仪表的显示屏幕。(2)平板型结构:LCD内由两片平行玻璃组成的夹层盒,面积可大可小,且适合于大批量生产,安装时占用体积小,减小了设备的体积。(3)被动显示:液晶本身不发光,而是靠调制外界光进行显示。因此适合人的视觉习惯,不会使人的眼睛疲劳。(4)显示信息量大:LCD的像素可以做得很小,相同面积上可容纳更多信息。(5)没有电磁辐射:在其现实期间不会产生电磁辐射,对环境无污染,有利于人体健康。(6)寿命长:LCD器件本身无老化问题,寿命极长。2.2.2 LCD的结构液晶显示器的结构图如图2-1所示。不同类型的液晶显示器件,其组成可能会有不同,但是多有液晶显示器件都可以认为是由两片刻有透明导电电极的基板,夹持一个液晶层,封接成一个偏平盒(有时在外表面还可能贴装上偏振片等)构成的10。其中,玻璃基板、液晶、偏振片是三大基本部件。(1)玻璃基板。其表面蒸镀有一层或透明导电层,即ITO模层,经光刻加工制成透明导电图形。这些图形由像素图形和外引线图形组成,因此,外引线不能节能型传统的锡焊,只能通过导电橡胶条或导电胶带等进行连接。如果划伤、割断或腐蚀,则会造成器件报废。液晶背电极偏光片反射层定向层背玻璃过渡电极封接边定向层前电极前玻璃偏振片图2-1 液晶显示器结构图(2)液晶。液晶材料是液晶显示器件的主体。不同器件所用液晶材料不同,液晶材料大都是由几种乃至十几种单体液晶材料混合而成。每种液晶材料都有自己固定的清亮点TL和结晶点TS,因此也要求每种液晶显示器件必须使用和保存在TSTL之间的一定温度范围内。如果使用或保存温度过低,结晶会破坏液晶显示器件的定向层;而温度过高,液晶会失去液晶态,也就失去了液晶显示器件的功能。(3)偏振片。偏振片又称偏光片,由塑料膜材料制成,涂有一层光学压敏胶,可以贴在液晶盒的表面。前偏振片表面还有一层保护膜,使用时应揭去,偏振片怕高温、高湿,在高温高湿条件下会使其退偏振或起泡。2.2 LCD显示屏的电路设计LCD显示屏的硬件电路图如图2-2所示。图2-2 LCD的硬件电路实际电路不同,对应的软件编写也会有所不同。本电路采用了直接访问方式,利用数据总线与控制信号直接采用I/O设备访问形式控制T6963C类液晶显示模块。此方法占用较少硬件资源,速度快,代码短,性能稳定可靠。如图4-5所示,AT89C52数据口P0口直接与液晶显示模块的数据口连接,由于T6963C接口适用于8080系列和Z80系列MPU,所以可直接用AT89C52的RD、WR作为液晶显示模块的读、写控制信号。CE信号由地址线译码产生。C/D信号由AT89C52地址线A8(端口P2.0)提供,A8=1为指令口地址,A8=0为数据口地址。由于AT89C52的最大寻址空间为64K,寻址空间足以够本系统的使用,因而不需要对寻址进行扩展。CA12864B液晶模块的系统指令集其实就是T6963C控制器的指令集,模块的初始化设置一般都由管脚设置完成。也就是说,LCD模块的硬件主要完成了其一般初始化设置,对于显示功能上的设置主要由软件方面的指令系统来完成。处理汉字显示时,由于CA12864B液晶显示模块是128 64点阵的,所以显示16 16点阵的汉字一行最多显示8个,且最多显示4行。对于每一个汉字的显示,首先应该计算该汉字在字库中的地址,然后读出该汉字的点阵排列。当显示至一行的末尾时要换行显示。在处理汉字显示时有两种方法:一是一次只显示一个汉字,即对于每一个汉字,先计算出此汉字地址,读出其点阵数据,显示完毕再处理下一个汉字,直到处理完所有的汉字;第二种方法是将所要显示的所有汉字的点阵数据从字库中读出存放外部RAM中,再集中处理显示的问题。本系统采用的是后一种方法11。2.3 LCD显示屏的程序设计CA12864B的应用软件由系统初始化、显示RAM分配、显示功能设置及显示数据的输入等几部分组成。初始化子程序包括清显示RAM子程序和驱动子程序及对显示功能的设置。显示RAM分文本区和图形区,文本区每一个字节对应屏幕88点阵,图形区每一个字节对应屏幕的18点阵。下面为各子程序程序清单:判断读写标志位子程序:RST:MOV DPTR,CADD;设置指令通道地址MOVX A,DPTRRETST01:LCALL RSTJNB ACC.0,ST01JNB ACC.1,ST01RET写指令和写数据子程序: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,#DADD;设置数据通道地址/数据写入入口PR14:MOVXDPTR,A;写入操作RET初始化设置子程序(该程序为通用设置程序,在240128规模以内的液晶显示模块都适用):INT:MOV DAT1,#00H;设置文本显示区域首地址MOV DAT2,#00HMOV COM,#40HLCALL PR1MOV DAT1,#10H;设置文本显示区域宽度MOV DAT2,#00H;即一行显示所占字节数MOV COM,#41HLCALL PR1MOV DAT1,#00H;设置图形显示区域首地址MOV DAT2,#08H;或为文本属性区域首地址MOV COM,#42HLCALL PR1MOV DAT1,#10H;设置图形显示区域宽度MOV DAT2,#00H;或为文本属性区域宽度MOV COM,#43H;即一行显示所占字节数LCALL PR1MOV COM,#0A4H;光标形状设置LCALL PR12MOV COM,#80H;显示方式设置,逻辑“或”合成LCALL PR12MOV COM,#9CH;显示开关设置LCALL PR12RET第3章 软件程序设计3.1 字模提取方法3.1.1 DM Tool工具简介DM Tool是针对unSP系列16位单片机的字模数据提取工具;用户可以利用此工具提取汉字字模、BMP位图字模,还可以很方便地提取ASCII码字模;用户还可以利用此工具对所要取的汉字、位图等进行编辑;生成的字模数据用以Word(字型)数据为基本单元,并以数组的形式保存。字模数据导出时,可以导出一个.C文件和一个.h的头文件,用户可以直接把这两个文件加载到用户的工程中,供汉字显示、位图显示使用12。图3-1为打开后的DM Tool工具的主窗口。图3-1 DM Tool打开后界面而打开一个工程(*.prj)后,工具的界面如图3-2所示:图3-2打开工程后的DM Tool界面3.1.2 提取汉字字模数据安装完DM Tool工具软件后,可以在Windows的开始程序sunplusDM ToolDM选项中打开DM Tool软件;在打开的DM Tool软件中,选择文件News菜单项,新建工程,如图3-3所示:图3-3 新建工程选择后,即新建了一个工程。用户可以选择File菜单中的Save菜单项来保存工程,也可以直接对工程进行操作,进行字模数据提取的操作。然后,在输入区中输入汉字如自动化申志华。如图3-4所示:图3-4 在输入区中输入“自动化申志华”这时利用快捷键组合:“Ctrl+Enter”,则完成了汉字的输入操作,可以看到转换列表中出现“凌阳科技”四个汉字的列表,而在操作区中也会出现汉字的点阵图。下一步进行字模数据的提取。选择菜单File中的Export CChar file菜单项,或者直接用工具栏最右边的“Export”工具,打开字模数据生成窗口。在字模数据生成窗口中,选择File菜单中的Export CChar file菜单项,或工具栏中的“Export CCharfile”工具,开始生成数据,即打开了“Export CChar file”对话框,在对话框的“Select”选项中,选择“Down to Up,Left to Right”选项;在“char.c file:”输入框的右边的工具,可以选择导出文件的路径和文件名,本列保存在“我的文档”中,文件名为“Mychar”;如图3.9所示,然后点击“保存”返回“Export CChar file”对话框;再在“Export CChar file”中点击“OK”,即可生成保存有字模数据的两个文件:“Mychar.c”和“Mychar.h”; 如图3-5所示:图3-5 导出的字模数据文件这时,汉字字模数据的生成操作已完成,已经生成了所需的字模数据文件:“Mychar.c”和“Mychar.h”。导出文件后,用户可以关闭字模数据生成窗口,返回到DM Tool软件的主窗口,以便进行其它的操作,DM Tool的使用方法可以参考DM Tool的用户手册。导出的字模数据以数组的形式保存,可以直接包含到工程中进行引用13。3.1.3 BMP图像字模数据生成这里介绍利用此工具提取BMP位图字模数据的方法。和提取汉字字模数据类似,利用DM Tool字模提取工具提取BMP位图字模的步骤如下:第一步,导入图片:打开DM Tool工具,新建好工程后,在Picture的下拉菜单点击Import Pictures,如图3-6所示。图3-6 导入图片第一步点击Import Pictures后出现打开文件的对话框,通过路径查到我们要提取的BMP图片,本例采用sunplus图标的BMP图像文件sp1(用户自行用其它单色BMP图片文件代替)为例。选择sp1,点击“打开”,出现对话框。按照图中选择“source image”和“Invariable”,点击“OK”就导入图片了。导入的图片就出现在Regionbar转换列表和操作区中。第二步,提取字模并保存:点击图标,打开下图的对话框。图3-7 Edit and Export Cchar File界面“Select”选择“Down to Up,Left to Right”,点击“char.c file:”后浏览图标,这里选择保存到“我的文档”,点击保存,回到“Export Cchar File”窗口,点击“OK”。这时候字模数据的生成操作已完成,生成了sunplus.c和sunplus.h两个字模数据文件。导出文件后,用户可以关闭字模数据生成窗口,返回到DM Tool软件的主窗口,以便进行其它的操作。和导出的汉字字模数据相同,BMP位图字模数据也以数组的形式保存,可以直接包含到工程中进行引用。也可以利用DM Tool工具同时导出多个图片文件的字模数据,按前面所述的步骤,在打开文件时,同时选择多个文件打开即可。3.2 SPLC501液晶显示模组API函数介绍3.2.1 英文字符显示API函数介绍在SPLC501User.c定义了丰富易用的API函数,在SPLC501User.h文件里对这些函数进行了申明;SPLC501液晶显示模组英文字符显示相关的API函数如下: void LCD501_Init(unsigned int InitialData)/初始化液晶显示void LCD501_ClrScreen(unsigned int Mode)/点亮屏幕或清屏void LCD501_SetPaintMode(unsigned ModeCode)/设置图形显示模式unsigned int LCD501_GetPaintMode(void)/获取图形显示模式void LCD501_FontSet(unsinged int Font)/选择显示字符的字体大小unsigned int LCD501_FontGet(void)/获得显示字符的字体大小void LCD501_Char(int x,int y,unsigned int a)/显示字符void LCD501_PutString(int x,int y,unsigned int a)/显示字符串这些函数的详细说明如下:1)【API格式】C:void LCD501_Init(unsigned int InitialData)【功能说明】液晶显示初始化【参数】InitialData初始化显示的字,低八位有效。InitialData=0x00表示全屏不显示InitialData=0xFF表示全屏显示【返回值】无【备注】在使用LCD前,首先应执行该函数,使LCD处于可以正常显示的状态。2)【API格式】C:void LCD501_ClrScreen(unsigned int Mode)【功能说明】液晶整屏清屏函数【参数】清屏类型,Mode=1表示全屏点亮,Mode=0表示全屏清零。【返回值】无3)【API格式】C:void LCD501_SetPaintMode(unsigned int ModeCode)【功能说明】设置图形显示模式【参数】ModeCode选择图形显示模式,可以是下列数值之一:0 PAINT_COVER:覆盖显示。图形所在位置的原有显示内容将被覆盖掉1 PAINT_SET:叠加显示。图形所在位置中原有的黑色点将被保留2 PAINT_CLR:擦除显示。图形反色显示,但图形所在位置中原有的白色点将被保留。3 PAINT_REV:异或显示。图形中每一个点与原有的点做异或,即如果图形中某点的颜色与其所在位置原有的颜色相同,则该点显示白色,如果新颜色与原来颜色不同,则该点显示黑色。 4 PAINT_RECO取反并覆盖显示。原始图像数据取反,然后图形所在位置的原有显示内容将被覆盖掉【返回值】无4)【API格式】C:unsigned int LCD501_GetPaintMode(void)【功能说明】获得图形显示模式【参数】:无【返回值】ModeCode-图形显示模式,可以是下列数值之一:0 PAINT_COVER:覆盖显示。图形所在位置的原有显示内容将被覆1 PAINT_SET:叠加显示。图形所在位置中原有的黑色点将被保2 PAINT_CLR:擦除显示。图形反色显示,但图形所在位置中原保留3 PAINT_REV:异或显示。图形中每一个点与原有的点做异或,点的颜色与其所在位置原有的颜色相同,则该点新颜色与原来颜色不同,则该点显示黑色4 PAINT_RECO取反并覆盖显示。原始图像数据取反,然后图形显示内容将被覆盖掉5)【API格式】C:void LCD501_FontSet(unsinged int Font)【功能说明】选择显示ASCII字符的大小类型【参数】Font选择ASCII字符的大小Font=1,表示字体大小为816Font=0,表示字体大小为68【返回值】无6)【API格式】C:unsigned int LCD501_FontGet(void)【功能说明】获取当前显示ASCII字符的大小类型【参数】无【返回值】选择ASCII字符的大小1,表示字体大小为8160,表示字体大小为687)【API格式】C:void LCD501_Char(int x,int y,unsigned int a)【功能说明】显示单个ASCII字符【参数】x表示显示字符的起始列,x的范围为:0127y表示显示字符的起始行,y的范围为:063a表示字符的ASCII码【返回值】无8)【API格式】C:void LCD501_PutString(int x,int y,unsigned int a)【功能说明】显示ASCII字符串【参数】x表示显示字符的起始列,x的范围为:0127y表示显示字符的起始行,y的范围为:063a表示字符串的首地址送到指针变量a。【返回值】无3.2.2 汉字显示API函数介绍驱动程序文件SPLC501User.c同样定义了显示汉字的API函数,在SPLC501User.h文件里也对这些函数进行了申明。SPLC501液晶显示模组汉字显示相关的API函数如下:void LCD501_Init(unsigned int InitialData)/初始化液晶显示void LCD501_ClrScreen(unsigned int Mode)/点亮屏幕或清屏void LCD501_SetPaintMode(unsigned int ModeCode)/设置图形显示模式unsigned int LCD501_GetPaintMode(void)/获取图形显示模式void LCD501_Bitmap(unsigned int x,unsigned int y,unsigned int*word)/显示汉字或者位图的字模数据前面四个函数在上一实验中已经有详细说明,这里只介绍最后一个函数:1)【API格式】C:void LCD501_Bitmap(unsigned int x,unsigned int y,unsigned int*word)【功能说明】显示汉字或者位图的字模数据【参数】x表示显示字符的起始列(0128)y表示要显示的字模的起始行(064-y_whide)*word表示要显示的汉字字模的数据首地址【返回值】无【备注】只显示用DM Tool取字模软件所取的汉字字模数据;该函数可以在指定位置显示位图。参数x和y是位图的左上角坐标。word是“位图数据”的起始地址。“位图数据”的第一个Word声明了位图的大小,低8位代表位图宽度,高8位代表位图高度。如0x172B表示位图的宽为43像素,高为23像素。从第二个Word开始描述位图每个点的颜色(1-黑色,0-白色)。点对应每个数据位的情况为:从下到上,自左到右,以Word(16bit)为存储单位,不足16位的补0。可以利用凌阳大学计划提供的DM Tool字模提取工具提取出汉字或BMP图像的字模数据,然后直接引用由其生成的字模数组。如果在SPLC501液晶显示模块上显示前面利用DM Tool生成的“凌”的字模数据,可以调用LCD501_Bitmap函数显示;可以看到,生成的Mychar.c文件中,“凌”字的字模数组为:encoding_00;假设“凌”字显示在(0,0)位置,则显示“凌”字的代码如下:LCD501_Bitmap(0,0,(unsigned int*)encoding_00)。3.2.3 图形显示API函数介绍(1)SPLC501液晶显示模组静态图片显示相关的API函数:void LCD501_Init(unsigned int InitialData)/初始化液晶显示void LCD501_ClrScreen(unsigned int Mode)/点亮屏幕或清屏void LCD501_SetPaintMode(unsigned int ModeCode)/设置图形显示模式unsigned int LCD501_GetPaintMode(void)/获取图形显示模式void LCD501_Bitmap(unsigned int x,unsigned int y,unsigned int*word)/显示汉字或者位图的字模数据(2)SPLC501液晶显示模组动态图片显示相关的API函数:void LCD501_Init(unsigned int InitialData)/初始化液晶显示void LCD501_ClrScreen(unsigned int Mode)/点亮屏幕或清屏void LCD501_SetPaintMode(unsigned ModeCode)/设置图形显示模式unsigned int LCD501_GetPaintMode(void)/获取图形显示模式void LCD501_Bitmap(unsigned int x,unsigned int y,unsigned int*word)/显示汉字或者位图的字模数据。第4章 硬件设计4.1 硬件框图SPLC501液晶显示模组上提供了液晶显示器的接口,及其所需的复位电路等;并把对液晶模组的操作接口引出,方便用户使用;此外还提供有背光、电源指示灯14。下面主要介绍SPLC501液晶显示模组的模组接口,如图4-1所示。图4-1 液晶显示模组接口SPLC501液晶显示模组引出了时序操作的接口引脚,还引出了对操作时序进行选择的C86和PS接线,图 4-2为模组的接线原理图: 图4-2 模组接口电路原理图 模组接口各个引脚的定义请参考模组接口引脚定义表。图4-3为实物对照图 图4-3 模组接口实物对照图 SPLC501液晶显示模组中,接口引脚:“+”、“V3”分别为电源输入端和高电平引针(供时序选择跳线用),而“-”、“GND”都是接地引脚。 表4-1 模组接口定义表 接口引脚名说明CS1片选,低有效RES复位脚A0数据命令选择脚R/W对于6800系列MPU的读/写信号(R/W)对于8080系列MPU的写信号(W/R)EP对于6800系列MPU的时钟信号使能脚(EP)对于8080系列MPU的读信号(RD)DB08位数据总线DB1DB2DB3DB4DB5DB6DB7VR端口输出电压C86C86=H选择6800MPU系列C86=L选择8080MPU系列PS串、并行时序选择4.2 硬件连接图硬件连接图如图4-4所示,分别用实验箱跳线连接IOB4与AO,IOB5与RWP,IOB6与EP,IOB9与/CS,IOA8IOA15与D0D7。即用跳线把实验箱JP6(*)的所有引针全部短接。图4-4 硬件连接框图另外,VR、C86和PS跳线都与V3短接,把SPLC501液晶显示模组的时序选择为6800时序。注:1 和上册相同,本文中以v3.0版本实验箱的标号为准,如果使用其他版本的实验箱,以硬件连接图为准。2 如没有特别说明,本文中用排线连接两排引针时的连接顺序为正常连接顺序,比如描述为“用8pin排线连接J16和J26”,即为J16的第0号引针连接J26的第0号引针,J16的第7号引针连接J26的第7号引针。可以用10PIN的排线将61板的J9(即IOA的高八位)对应地接到SPLC501液晶显示模组的“+”和“-”,以及其间的DB07;要注意电源的正负极。控制线CS1、AO、R/W和EP分别用连线与SPCE061A的IOB9、IOB4、IOB5、IOB6相连。实物连接图如4-5所示。图4-5 实物连接图第5章 线路的搭建与调试5.1 显示字符 “Automation is developing ”5.1.1 显示字符程序流程图主程序流程图如图5-1所示,按照原理中讲的利用SPLC501液晶显示模组显示英文字符过程:初始化LCD,全屏点亮;进入显示字符循环,清屏后显示“Automation”,显示字号为816大小,显示在(30,3)坐标开始的位置;延时;分别显示“is”和“developing”,显示字号为68大小,“is”显示在(0,40)坐标开始的位置,“deveoping”显示在(50,50)坐标开始的位置;延时。这里两次延时只是为了能看清实验现象,没有其他特别的作用。开始初始化LCD全屏点亮,延时,清看门狗清屏设置为大号字体显示“Automation”延时,清看门狗设置为小号字体显示“is developing”延时,清看门狗图5-1 主程序流程图5.1.2 显示字符设计步骤 其字符显示步骤如下:1. 新建一个工程ex1_LCD501_Character,在工程中新建一个C语言文件main.c。2. 按照实验原理,凌阳大学计划为SPLC501液晶显示模组提供了显示驱动程序,驱动程序用了常用的一些显示函数,所以这里先拷贝驱动程序文件到ex1_LCD501_Character工程:第一步:在IDE的安装SPCE061Aexamplemodel_ExaDriverSPLC501driver下找到驱动文件DataOSforLCD.asm、SPLC501Driver_IO.asm、SPLC501Driver_IO.inc、SPLC501User.c和C501User.h。第二步:拷贝这些文件到新建的工程文件夹ex1_LCD501_Character以方

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论