基于51单片机的液晶显示屏控制系统设计毕业设计_第1页
基于51单片机的液晶显示屏控制系统设计毕业设计_第2页
基于51单片机的液晶显示屏控制系统设计毕业设计_第3页
基于51单片机的液晶显示屏控制系统设计毕业设计_第4页
基于51单片机的液晶显示屏控制系统设计毕业设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、基于51单片机的液晶显示屏控制系统设计1 概述1.1系统背景 液晶显示器件在中国已有二十余年的发展历史。二十余年来,液晶显示器件从实验室走向大规模生产集团,形成了独立的产业部门。现在,液晶显示几乎已经应用于生产,生活的各个领域,人们几乎时时处处都要与这一神奇而又普通的面孔打交道。液晶显示是集单片机技术、微电子技术、信息处理于一体的新型显示方式。由于液晶显示器具有低压低功耗,显示信息量大易于彩色化,无电磁辐射,长寿命,无污染等特点。lcd是目前显示产业中发展速度最快,市场应用最广的显示器件,成为众多显示媒体中的佼佼者,在越来越多的领域中发挥作用,是目前显示器件中一个理想的选择。 lcd在监控系统

2、中的应用:目前大多数监控系统自带的显示系统为led数码管显示,这样显示效果比较单一,只能显示监控系统的测量值。而lcd液晶显示器不仅可以显示数值、汉字等,并且可以显示文本和图形。利用lcd和键盘实现人机交互,使监控系统独立工作成为可能。通过监控系统对现场的单回路控制器进行参数设置,对各个单回路控制器的工作进行监控。lcd在时钟中的应用:在日常生活中我们会经常看到时间的显示,这些显示大都是采用液晶显示器来显示的,而对其中的汉字无法用显示来解决。我们利用lcd液晶模块制成的小屏幕实现了时间的显示,显示格式为“时时:分分:秒秒”。另外,可以增加闹钟功能,时间到了则产生音乐声;还可以增加万年历显示“年

3、月日”等多项功能。lcd在大屏幕显示中的应用:大屏幕显示的应用范围极广,随着社会发展,公众生活的加强,人们对能够面向广大公众传递信息的显示装置越来越感到必需。使用液晶投影显示大屏幕,不仅有投影仪,指挥用大屏幕,还有液晶投影彩色电视。它可以用一个体积很小的系统装置,实现100英寸以上的非常漂亮的大屏幕电视显示。它与传统的显示媒体相比,具有分辨率极高,透过性好,显示内容丰富,彩色易于控制等优点。随着计算机技术及电子通信技术的发展,lcd显示屏作为一种新的传媒工具,现已经应用到商业、军事、车站、宾馆、体育、新闻、金融、证券、广告以及交通运输等许多行业,大到几十平方米的大屏幕,小到家庭影院用的图文显示

4、屏,以及政府部门应用的电子黑板,证券、银行等部门用的信息数字混合屏。lcd显示屏带来广泛的社会效益和经济效益,具有良好的发展前景。1.2 系统概述 本实验系统分为单片机最小系统板和液晶显示屏两部分。单片机最小系统负责接收个人计算机所编辑的文本及内容,通过rs232串行接口通信完成单片机与pc机之间的数据传送,而个人计算机(即pc机),主要完成显示内容的编辑、字符码的查找、字符数据的发送等工作。基于windows操作系统下的文本编辑软件有很多种,例如:记事本、micorsoft word、写字板等,我们可以采用任何一种编辑软件将要显示的内容(包括汉字、中英文字母、标点符号等)编辑成一个文本文件,

5、然后通过已经编写好的应用程序在特定的字库中依次搜索到文本文件中的内容,并且取出该字符的字模数据,此项工作称为字模数据的提取;字模数据文件的生成也就是将取出的字模按顺序存放到一个十六进制文件中;字符数据建立好之后将其存放在pc机的硬盘上,等到需要的时候通过串行通信软件将字符数据文件发送给液晶显示系统模块。lcd显示屏包括主控制模块和lcd液晶显示模块。主控制模块负责接收单片机发送过来的字模数据文件,并且协调各个lcd液晶显示模块工作,主控制器模块的核心是t6963c控制器,为了存储字模数据还在主控制器模块中扩展了一片8k存储器芯片6264;lcd液晶显示模块由两片行驱动器t6a40和三片列驱动器

6、t6a39进行驱动,该模块一边接收主控制模块的数据,一边将数据送lcd液晶显示屏显示,为了方便系统的扩展,各模块之间采用串行口接收数据,并且接到系统串行总线上。 本系统主要是实现单片机与液晶显示模块之间的接口技术,可以采用间接控制方式完成。将液晶显示模块接口与单片机系统板中的某个并行i/o接口连接,计算机通过对该i/o接口的操作间接的实现对模块的控制。 2 系统设计方案此lcd液晶显示控制系统设计的关键是要实现lcd的显示控制。应该先从显示方式的确定入手,接下来设计相应显示方式的电路,要实现显示内容的实时更新,就必须考虑字模数据的存储及通信电路的设计。2.1字模数据的存储由于89c51单片机内

7、部程序存储器(rom)只有4k空间,本设计采用1616点阵显示一个汉字,每一行需要两个字节数据,一个汉字占16232字节,汉字一共有6000多个,不可能将庞大的汉字字库存入在单片机内部,即使将预先要显示的内容存入rom中,也不便于实时控制,所以只有考虑扩展外部数据存储器。利用windows自带的字库(即使用软字库)的方式扩展外部数据存储器。通过软件编程直接在字库中找到需要显示字符的区位码并读出其字符码,存于一个文本文件中,待所有显示内容的字符码查询完毕后,将存放所有字符码的文本文件通过串行通信发送给单片机,单片机将接收到的数据存放在外部扩展的数据存储器中,数据接收完毕后,单片机就从存储器中依次

8、读出每一个字符的字符码并送到lcd显示屏显示。该方案与方案一相比,虽然通信过程占整个显示周期的比例相对较大,但是硬件电路设计简单,成本较低,减少了单片机查询硬件字库所需要的时间,提高了单片机动态扫描的速度,字符显示的稳定度较高。2.2 通信电路串行通信是指一个数据的所有位按一定的顺序和方式,一位一位地通过串行输入/输出口进行传送。由于串行通信是数据的逐位顺序传送,在进行串行通信时,只需一根传输线,其传送的数据位多且通信距离长。串行通信方式如图2-1。计算机与单片机的数据通信,采用串行通信,与并行通信相比,串行通信具有传输距离远,接口电路与软件编程简单等特点,所以本系统选用串行通信。串行通信接口

9、电路见后面的硬件电路设计。rxdtxd89c51gndgndtxdrxd外部设备gndgnd图2-1 串行通信方式3 液晶显示模块简介液晶显示模块单元电路主要包括显示控制器、行驱动器、列驱动器、电源偏置电路、显示存储器、液晶显示屏、液晶显示模块接口。(1) 显示控制器 主要由控制器t6963c组成,可提供与外部mcu的数据接口及对显示存储器的读写操作;并可控制行,列驱动器的时序电路,数据格式和显示格式等。(2) 行驱动器 由行驱动器t6a40组成,用于把控制器的串行数据转换成lcd屏所需要的并行行数据。(3) 列驱动器 由列驱动器t6a39组成,可接受控制器的串行数据并将其转换成lcd屏所需要

10、的并行列数据。(4) 电源偏置电路 主要为行、列驱动器提供lcd所需的各种偏置电压。(5) 显示存储器 由一块32k的随机存储器(ram)组成,可为液晶显示模块提供显示数据的存储空间。(6) 液晶显示屏(lcd) 提供128行、240列的点阵显示屏幕。(7) 液晶显示模块接口 用于提供与单片机的接口。液晶显示模块的原理框图如图3-1。行 驱 动 器行 驱动 器显 示控 制 器 液 晶 显 示 屏 240*128 dots列 驱动 器列 驱动 器列 驱动 器显 示 存 储 器电 源 偏 置液 晶 显 示 模 块 接 口图3-1 液晶显示模块原理框图3.1 显示控制器显示控制器主要由t6963c组

11、成,它由振荡器、时序控制电路、工作方式设置寄存器及电路,内部字符库cgrom及光标控制电路,显示存储器管理电路以及运算电路和各种功能电路组成。控制部通过振荡器外接晶体振荡器产生振荡脉冲,经时序控制电路调制产生t6963c的工作时钟脉冲系列,根据工作方式设置电路生成各路控制及驱动时序脉冲,从而实现t6963c的工作控制。其引脚图如图3-2。图3-2 t6963c引脚图控制部提供了使用引脚电平设置内部工作状态的功能,使t6963c上电后就开始对所连接的液晶显示驱动系统进行正常的控制及驱动。这将避免因上电控制器尚未进行初始化而使液晶显示驱动系统不能正常工作,导致液晶显示屏上出现不希望的显示状态。3.

12、2驱动方式的设置驱动方式是指t6963c向液晶显示驱动系统传输显示数据的格式。他根据所要控制的液晶显示驱动系统的数据传输格式的要求而定。t6963c可以实现四种数据传输格式,它由引脚和sdsel的电平状态设置。: 液晶显示器件电极排列形式的设置。 当=1时,液晶显示器件为单屏结构;当=0时,液晶显示器件为双屏结构。 sdsel: 数据传输格式设置。 当sdsel=1时,数据传输格式为2位并行同步传输;当sdsel=0时,数据传输格式为1位串行传输。 这两个设置引脚的电平组合确定了驱动部中数据传输的输出端。如表3-1:sdsel上半屏数据传输线下半屏数据传输线11hod,ed10ed01hod,

13、edlod,ed00eded表3-13.2.1显示窗口长度设置显示窗口长度是指t6963c所要控制的液晶显示器件水平方向最大的像素点数。显示窗口长度的设置将确定了驱动部向液晶显示驱动系统发送的显示数据的个数,不管实际控制的显示屏的点阵数如何,他已固定了驱动信号的时序关系。该设置由引脚md3和md2(显示数据传输量设置端)的电平组合实现,如表3-2:md3md2像素点数字符数1125632103204001512640064080表3-23.2.2显示窗口宽度设置显示窗口宽度是指t6963c所要控制的液晶显示器件垂直方向最大的像素点数。显示窗口宽度的设置将确定了驱动部向液晶显示驱动系统发送的帧信

14、号时序和占空比系数。该设置由引脚mds,md1和md0(显示帧信号设置端)与设置端组合实现,如表3-3:mdsmd1md0像素点行数占空比系数1/001116/32161/001032/64321/000148/96481/000064/128641/011180/160801/011096/192961/0101112/2241121/0100128/256128表3-33.2.3显示字符的字体设置显示字符的字体选择实际上是选择字符间距。t6963c内部字符库是5*8点阵字符字模,在垂直方向字模数据中留有一行的间距,是不可变动的;但在水平方向字模数据将一字节的高三位作为字间距处理,即字间距可

15、以为一点距,两点距或三点距,也可以没有。t6963c可以根据需要通过引脚fs1和fs0(字体选择端)的电平组合来设置字符间距,这里表示为字符的字体。组合设置如表3-4:fs11100fs01010字体5*86*87*88*8表3-4字体选择的实现是在显示数据传输过程中将一字节的8位字模数据有选择地传输几位。比如仅取8位数据中低5位作为显示数据传输而舍弃高3位,那么显示为5*8点阵字体的字符;或取8位数据中低六位作为显示数据传输而舍弃高2位,那么显示为6*8点阵字体的字符;再或取8位数据中低7位作为显示数据传输而舍弃高1位,那么显示为7*8点阵字体的字符;如果8位数据全部作为显示数据传输,那么显

16、示位8*8点阵字体的字符。这是在文本显示方式下。在图形显示方式下,则将是取舍图形数据有效位的问题了。 振荡器的晶体振荡器的选择振荡器时钟与控制器所控制的液晶显示驱动系统的驱动帧频(行数)和数据传输量(列数)有关。晶体的频率f可以由下列公式计算得来: f2f=2*(8m*8n*fr)其中f驱动位移时钟频率,即hscp(lscp)的脉冲频率; m字符数/行,8m即最大驱动的像素数/行; n字符行数/帧,8n即最大驱动的像素行数; fr液晶显示器件所需的扫描频率,通常为60或70hz。控制部的引脚设置功能使得t6963c能够上电就能正常工作,但也给t6963c通用性带来不便,因而t6963c内置液晶

17、显示模块上。t6963c不仅具备基本的文本显示和图形显示功能,而且还具备文本属性显示功能,这是t6963c控制器的独特的功能。文本属性显示功能是将文本显示由通常的单字节数据处理扩大成双字节数据处理。在这种功能下把显示存储器区划分为文本代码区和文本属性区。文本代码区是用与存储作为字符显示的字符代码;文本属性区是用与存储作为相应字符显示的字符属性,这种属性由文本属性区单元中一个字节数据的低4位表示,有6种属性。如表3-5:文本属性码字符显示效果d3 d2 d1 d0 0 0 0 0正向显示,不闪烁 0 1 0 1负向显示,不闪烁 1 0 0 0正向显示,闪烁 1 1 0 1负向显示,闪烁 * 0

18、1 1禁止显示(正向) * 1 * 0禁止显示(负向)表3-5文本属性区的单元与文本显示区对应单元组合在一起控制显示屏上对应的字符块的显示效果。例如:文本属性数据为05h,则对应的字符显示效果是一个负向显示的“0”。字符代码为21h,文本属性数据为08h,则对应的字符显示效果是一个正向闪烁显示的“a”。t6963c的文本属性功能的实现是以牺牲图形显示功能为代价的。t6963c将图形地址指针计数器用作文本属性区的寻址。所以文本属性功能不能与图形显示功能并存。t6963c具有显示合成功能。它可以将文本显示与图形显示通过某种合成逻辑同时在显示屏上显示。这种合成逻辑有逻辑“与”,逻辑“或”以及逻辑“异

19、或”等,是通过选择器实现的。t6963c还可以将显示屏上显示内容“屏读”或“屏拷贝”,这也是t6963c所独特的功能。t6963c将传送给液晶显示驱动系统的合成数据反馈给复制电路,再由其送到数据栈或图形显示区。t6963c还具有光标控制器和光标指针寄存器。它用与在文本显示方式下光标的显示控制。光标数据是在文本数据锁存器处与文本字符数据合成后一起送入液晶显示驱动系统的。t6963c控制部具有管理显示存储器和字符发生器的能力。t6963c内置有128种5*8点阵的asci字符字模库cgrom,字符代码为00h7fh。并允许在显示存储器内开辟一个用户自定义字符8*8点阵字模库cgrom。在使用内部c

20、grom同时,t6963c也可以支持cgram,字符代码定义在80hffh。t6963c可以管理64k的显示存储器。它可以把显示存储器分为文本显示区,图形显示区,文本属性区或自定义字符库区等。t6963c管理显示存储器的引脚有:ad15ad0 输出 16位地址总线。d7d0 三态 8位数据总线。r/w 输出 读写选择控制线。r/w=1为读操作;r/w=0为写操作。 输出 存储器操作使能信号。低电平有效。, 输出 存储器操作使能信号。在单屏结构设置()时有效。它们的有效地址范围是:ce0 0000h07ffh ce1 0800h0fffht6963c多用于单屏结构的液晶显示驱动系统的控制,但也具

21、备控制双屏结构液晶显示驱动系统的能力。在双屏结构的液晶显示驱动系统的控制中,t6963c自动将ad15地址线作为上下屏的显示存储器的分界,ad15=0的部分为上下屏的显示存储器区,ad15=1为下半屏的显示存储区。计算机设置的显示区域都在上半屏的显示存储区内,而t6963c将自动地从相应的下半屏的显示存储区的区域中提取下半屏的显示数据。这样的处理对计算机写入显示数据时是比较麻烦的,这也许是t6963c少用于双屏结构液晶显示驱动控制系统的原因。另外,t6963c保留了四个测试引脚,它们是测试信号输入端t1,t2;检测信号输出端ch1,ch2。在t6963c的应用是,这四个引脚不必考虑。3.3 列

22、驱动方式列驱动器t6a39是80路列驱动器,它采用了cmos工艺,具有低功耗、耐高压和高速运行等特点。列驱动器t6a39电路由两路8*5位双向移位寄存器、串/并转换器及液晶显示驱动电路和数据位选择寄存器、数据方向控制器、驱动时序控制器、lcd偏压电路组成。8*5位双向移位寄存器的作用是把接收到的串行数据转换成符合要求的并行数据,并传递给两组液晶显示驱动电路。液晶显示驱动电路的作用是在lcd偏压电路供给的偏置电路下,将得到的80位并行数据转换成lcd所需的并行输出数据信号电平。t6a39的数据输入端为di1、di2、di3、di4。t6a39的数据接受形式有三种:一位串行、二位并行和四位并行方式

23、。这三种方式通过设置端dual,dir和df1、df2的电位组合设置。t6a39还有两个数据接收使能信号ei01、ei02,正脉冲信号有效,它们中之一作为输入端启动本片数据接收工作,另一个作为输出表示本片数据接收已满,停止接收工作,这两个信号作为级联信号使用,即作为输入的一端与上一级的输出端连接,由上一级数据接收已满信号启动本级工作,作为输出的一端与下一级的输入端连接,本级数据接收已满,停止接收工作,发出信号以启动下一级的工作。当几片t6a39级联使用时,第一片t6a39的数据接收使能信号ei01和ei02中作为输入端的那个信号需与t6963c的lp信号相连。列驱动器t6a39工作原理如下:首

24、先设置好数据位选择电路、数据方向控制电路、驱动时序控制电路,当数据由数据输入端di1、di2、di3、di4输入到串/并转换器后,该电路将等待接收满8位后把数据并行地移入8*5位双向移位寄存器内,然后在lp与fr信号的作用下通过液晶显示驱动电路将数据输出。3.4 行驱动方式行驱动器t6a40是68路行驱动器,它采用cmos工艺,具有低功耗、耐高压和高速运行等特点行驱动器t6a40电路由两路34位双向移位寄存器、数据方向控制器、scp极性控制器、液晶显示驱动电路及lcd偏压电路组成。行驱动器t6a40片内有两个34位双向移位寄存器,串行数据可从di01和di02两个端子输入或输出。数据方向控制器

25、根据单/双屏选择端子dual和流向选择端子dir逻辑电平产生流向控制信号。scp极性控制器产生scp信号,由触发方式选择端子tsw来控制scp的有效触发方式:当tsw=0时,数据在scp的上升沿输出至驱动输出端;当tsw=1时,数据在scp的的下降沿输出至驱动输出端。行驱动器t6a40工作原理如下:两个34位双向移位寄存器产生的两个34位并行数据将输出到两个lcd驱动电路中,并在lcd偏压电路作用下产生68位并行lcd行输出信号,最后加到lcd屏的行输入端。 4 硬件设计4.1硬件电路设计要求(1)控制液晶显示模块实现英文、汉字、图形、及图像的显示。(2)实现便携式设计。(3)可提供实现与计算

26、机的数据传输的接口电路。4.2 总体电路设计构架单片机系统板主要由单片机、eprom、电源电路、rs232接口电路及液晶显示模块接口组成。其电路原理框图如图4-1:电 源电 路单 片 机rs232接口电路eprom液晶显示模块接口图4-1 总电路原理框图单片机系统板的功能是控制液晶显示模块进行显示,它的特点是采用了7805整流电源电路为系统板提供5v电压,可实现便携式设计,另外系统板还配备了一个rs232接口,可以实现与计算机的数据传输。4.3 单片机与液晶显示模块接口单片机与液晶显示模块接口的通信这里采用间接访问方式。间接控制方式是将内置t6963c控制器的液晶显示模块与计算机系统中某个并行

27、i/o接口连接,计算机通过对该i/o接口的间接操作来实现对模块的控制。间接控制方式在硬件电路上需要一个8位并行接口与模块的数据线连接,作为数据总线,还需要一个3位并行接口作为时序控制信号线如89c51的p3.2作为c/d,p3.3作为wr,以及p3.4作为rd。由于使用了专用的并行接口连接模块,而且该并行接口自身在计算机系统中有相应的片选地址,所以模块的片选信号可以直接接地作选通态,间接控制方式的接口电路与时序无关,时序完全靠软件编程实现。计算机间接控制方式下与内置t6963c控制器的液晶显示模块的实用接口电路如下所示。模块的v0端所接的电位器是作为液晶驱动电源的调节器,调节显示的对比度。间接

28、接口电路如图4-2:图4-2 间接接口电路4.4 单片机与计算机的通信接口单片机与计算机的通信采用简化三线的串行通信方式,即把单片机的发送端txd直接和计算机的接收端rxd相连,接收端rxd直接和计算机的发送端txd相连,但是单片机的+5v ttl信号电平与pc机的10v信号电平不相容,所以必须进行电平转换,本设计中采用maxim公司生产的max232芯片,max232包含两路接收器和驱动器,适用于各种eia232c和v2.28/v.24的通信接口。max232芯片内部有一个电源电压变换器,可以把输入的+5v电源电压变换成为rs-232c输出电平所需的10v电压,所以,采用此芯片接口的串行通信

29、系统只需要单一的+5v电源就可以了。不像传统的rs232电平转换器发送器mc1488和接收器mc1489那样必须提供额外的+12v和-12v电源。max232芯片引脚图如图4-3: 图4-3 max232引脚图 图4-4 max232串行接口电路此通信接口电路,只用了max232芯片中的一路接收器和驱动器,接至pc机串口的接口使用rs-232标准的db9芯接插座。max232cpe接线也非常简单,只需要-5v电源,外接四只电容,即可产生+12v和-12v电压,输出标准的rs232接口信号。而且max232cpe的价格不贵,所以采用max232cpe接口芯片实现rs232接口电路。其接口电路如图

30、4-4。4.5 电源电路电源电路是由电源变压器,整流,滤波和稳压电路等四部分组成。电源变压器是将交流电网220v的电压变为所需要的电压值,然后通过整流电路交流电压变为脉动的直流电压。由于此脉动的直流电压还含有较大的波纹,必须通过滤波电路加以滤除,从而得到平滑的直流电压。但这样的电压还随电网电压波动(一般有10%左右的波动),负载和温度的变化而变化.因而在整流,滤波之后,还需接稳压电路。稳压电路的作用是当电网电压波动,负载和温度变化是,维持输出直流电压稳定。电源电路如图4-5:图4-5 电源电路5 系统软件设计5.1 内置t6963c控制器软件特性由于t6963c使用了硬件初始化设置,所以使得其

31、指令功能集中于显示功能的设置上,从而加强了t6963c的显示控制能力。指令状态启动状态检查写参数1(低8位)写指令状态检查写参数2(高8位)状态检查结 束初始化清 零定入显示数据状态读取状态检测写指令(读数据)t6963c模块的控制指令可带1个或2个参数,或无参数。每条指令的执行都是先送入参数,再送入指令代码。而且当向t6963c中读、写数据或向其中写入命令时,必须严格遵循t6963c的时序。如果所送参数多于规定个数,以最后送入的有效。每次操作之前必须先进行状态字检测。显示过程流程图如图5-1:图5-1 显示过程流程图 图5-2 双参数指令传输流程图 以上每一步骤又要完成以下流程:对于无参数或

32、自动指令,以上过程只需1次,单参数指令需两次,而双参数指令则需进行3次(前2次传参数,最后传指令)。图5-2以双参数指令为例给出其指令传输过程。液晶显示模块指令说明如下:(1)读状态字s7s6s5s4s3s2s1s0格式 t6963c的状态字由七位标志位组成,它们是: s0 指令读写状态 1:准备好 0:忙 s1 数据读写状态 1:准备好 0:忙 s2 数据自动读状态 1:准备好 0:忙s3 数据自动写状态 1:准备好 0:忙s4 未用s5 控制器运行检测可能性 1:可能 0:不能s6 屏读/屏拷贝出错状态 1:出错 0:正确s7 闪烁状态检测 1:显示 0:关显示 (2)地址指针设置0010

33、0n2n1n0 格式 d1 d2 该指令为双参数(d1,d2)指令。指令代码中的n1,n2,n0取值”1”为有效,”0”为无效,而且不能同时为”1”,根据n的取值,该指令有三种含义,如表5-1:d1d2指令代码功能水平位置(低7位有效)垂直位置(低5位有效)21h(n0=1)光标地址设置偏置地址(低5位有效)00h22h(n1=1)cgram偏置地址低字节高字节24h(n2=1)显示地址设置 表5-1(3)显示区域设置010000n1n0 格式 d1 d2 该指令是双参数指令,它将在显示存储器内划分出各显示区域的范围。它是由设定显示区域的首地址和宽度来确定该显示区域的范围,同时也确定了显示存储

34、器单元与显示屏上各点像素的对应关系。该指令中n1,n0有四种组合,每种组合有不同的含义。具体功能参见表5-2:n1 n0d1d0 指令代码功能0 0低字节 高字节40h文本显示区首地址 0 1 字节数00h41h文本显示宽度 1 0 低字节高字节42h图形显示区首地址 1 1 字节数00h43h图形显示区宽度 表5-2(4)显示方式设置 1000cgn2n1n0 格式 该指令为显示方式的设置,无参数。它的几个设置位功能如下:cg位 字符发生器选择位。 当cg=0时,启用内部字符发生器cgrom,该字符库有128种字符,其代码为00h7fh;同时可以建立128种88点阵的自定义字符发生器cgra

35、m,其字符代码规定在80hffh范围内; 当cg=1时,禁止内部cgrom,字符显示完全取自自定义字符发生器cgram,该字符库为2k字节容量,字符代码为00hffh。n2,n1,n0位为显示方式设置位,它们的组合产生的显示方式如表5-3:n2 n2 n0显示方式说明 0 0 0逻辑“或”文本与图形以逻辑“或”的关系合成显示 0 0 1逻辑“异或”文本与图形以逻辑“异或”的关系合成显示 0 1 1逻辑“与”文本与图形以逻辑“与”的关系合成显示 1 0 0文本属性文本显示特征以双字节表示 表5-3 (5)显示状态设置 1001n3n2n1n0 格式 该指令设置了当前的显示状态,无参数。该指令有4

36、个设置位,每一位都代表一种显示状态的设置,它们可以同时有效,也可以部分有效,也可以都无效。这4个设置位的功能如下: n0 光标闪烁设置开关 n0=1为启用光标闪烁;n=0为禁止光标闪烁。 n1 光标显示设置开关 n0=1为启用光标显示;n=0为禁止光标显示。 n2 文本显示设置开关 n0=1为启用文本显示;n=0为禁止文本显示。 n3 图形显示设置开关 n0=1为启用图形显示;n=0为禁止图形显示。(6)数据自动读写设置101100n1n0 格式 使用该指令将进入或退出数据的自动读或自动写方式。在自动读或自动写方式中,计算机可以连续的将显示数据写入显示存储器中或从显示存储器中读取数据。在每次读

37、或写的操作后,显示地址自动加一。进入自动读方式或自动写方式时,状态位将由s2(自动读方式)或s3(自动写方式)代替s1和s0。在自动读或自动写方式完成时要输入退出自动读写方式命令。在自动读写方式中写入其他指令都是无效的。该指令中有两位设置位n1,n0。这两位将产生三个子指令,如表5-4:n1 n0指令代码功 能0 0b0h进入自动写方式0 1b1h进入自动读方式1 *b2h/b3h进入自动读写状态表5-4(7)数据一次读写设置11000n2n1n0 格式 该指令是一次读写数据操作指令。在每次读写数据操作后,显示地址都要根据指令代码的设置而修正:加一,减一或不变。该指令在写入数据时所带的一个参数

38、就是所要写入的显示数据。当读数据操作时,该指令不带参数,直接写入指令代码。该指令有三个设置位n2,n1,n0。它们的组合功能如表5-5:参数d1n2 n1 n0指令代码功 能数据 0 0 0c0h数据写,地址加一 0 0 1c1h数据读,地址加一数据 0 1 0c2h数据写,地址减一 0 1 1c3h数据读,地址减一数据 1 0 0c4h数据写,地址不变 1 0 1c5h数据读,地址不变表5-55.2初始化子程序设计初始化部分包括对液晶显示模块的初始化设置、液晶显示模块的显示ram清零、单片机内部ram的清零。其中液晶显示模块的初始化设置包括设置显示方式、显示区域的首地址及宽度、光标形状设置。

39、开 始设置文本显示区首地址设置文本显示区宽度设置图形显示区首地址设置文本属性区首地址设置图形显示区宽度设置文本属性区宽度光标形状设置显示方式设置显示开关设置结 束初始化子程序流程图如图5-3:图5-3 初始化子程序流程图 5.3 串行通信子程序设计 单片机与pc机之间的串行通信主要包括两个过程:由8051传送数据至pc机;8051接收pc机传来的数据。串行通信子程序流程图如图5-4:开 始通信初始化等待pc机传送数据判断收到的是否是数据起始标志开始接收数据,判断是否结束标志中断返回继续接收数据yynn图5-4 串行通信子程序流程图5.4 显示控制子程序设计显示应用程序部分主要是单独的显示子程序

40、,通过一个单独的按键进行控制,按一次按键执行一个显示子程序,显示完最后一个显示子程序,自动回到第一个显示子程序,实现循环显示。显示子程序包括汉字、图形及图象的显示,并且实现了汉字的平移和图形的动态显示。其中汉字的平移是通过执行一个定时中断程序来不断改变显示区域的首地址实现的,由于显示区域的首地址是与液晶显示模块的显示ram单元的每一字节相对应的,首地址加一意味着显示ram单元的一个字节的改变,在黑白模式下即对应着八个像素的改变,所以在显示屏上汉字的平移是跳跃式的,间距为八个像素点;而图形的平移是通过显示控制器t6963c的位操作指令实现的,该位操作指令可以实现对显示屏每一像素点的亮暗操作,因而

41、可以实现图形的平滑移动。显示的子程序通过指针从数据库中逐个提取数据送如液晶显示模块的显示ram进行显示。数据库中的数据为要显示的内容,此汉字字模提取软件不仅可以提取汉字字模的十六进制数据,而且可以提取图象的十六进制数据。开始计算图形显示ram 地址 图形显示区宽度图形显示区首地址计算汉字库字符首地址设置显示ram地址取字库地址指针取字模数据写入数据结束图5-6 文本显示图形流程图开始 始计算显示ram地址文本显示区首地址设置显示ram地址取汉字代码写入汉字代码结束图5-5 文本显示汉字流程图6系统调试 6.1 分步调试 6.1.1 lcd液晶显示电路调试显示 硬件电路设计及软件设计好之后进行各

42、模块的调试,首先调试字符显示部分,单片机的调试使用topice52单片机仿真器。采用直接查字符码表显示的办法,将要显示汉字的字符码直接写在单片机程序中,编程时先将程序存贮区中的字符码全部转移到系统扩展的数据存贮器6264中,然后从6264中查找字符码并输出显示。 6.1.2 计算机串行口调试首先利用“串口精灵”串口调试软件,检查计算机串口的数据收发功能是否有效,具体方法是:将从串口接出的db9芯电缆插头的第2、3脚短接(即将串口的数据发送和接收端短接),然后打开“串口精灵”软件,在发送窗口中输入一串要发送的字符或数据,并将这些字符或数据发送出去,在数据接收窗口中观察接受的到的字符或数据是否与发

43、送的一致。硬件调试完成后,利用同样的办法调试自己在pc机上编写的通信程序。 6.1.3 计算机与单片机通信电路调试因为单片机的通信已经调试完成,将计算机与单片机相连之后调试也就是调试单片机的数据收发功能。编制程序使二者之间互相发送数据,在topice52仿真软件的数据窗口和计算机屏幕中监视接收的数据。 6.2 系统统一调试经过以上每一步的调试并都成功后,就可以将硬件及软件结合起来进行系统的统一调试。经过以上步骤调试,将计算机程序烧录到89c51单片机内部rom中,用屏蔽线将液晶显示系统与计算机串行口连接起来,就能实现计算机对lcd显示屏的实时控制,可以实时更新显示内容、显示方式。 6.3仿真及

44、结果在c8051f020系统实验箱上的液晶显示屏上,我实现了这些动态显示功能,特设计了以下几个显示场景:(1)场景一:第一个场景是在液晶显示屏上静态显示位图,如图6.1所示: 图6.1 位图上下滚动在这个场景中,是对位图128*64的模仿上下滚动。(2)场景二 第二个场景是图形动态显示模拟,它们是从左向右推出的,一直移动到显示屏最右端。具体如图6.2所示: 图6.2 位图右移 (3)场景三第三个场景是静态显示一幅位图如图6.3 图6.3 位图显示(4)场景四这个场景是实现对字符的动态显示如图6.4。用的是“湖南”与“湘”这三个汉字来模仿的。让“湖南”两个字纵向排列,从右向左移动;“湘”字从上下

45、落到液晶屏的底部。在这些场景中,液晶显示屏上显示的汉字,把它当作图形来显示的,汉字和图形的字模我是借助字模软件取模的,并没有自己去设计汉字和图形的字模。当然这样做省了不少的事,就我个人来看,把大量的时间分配在接口的编程上和如何利用c语言实现接口是更有价值的。 图6.4 字符串移动由于这种型号液晶屏的观察角度不同,一般采用成45度的角度来观察为最好,直视比较黑而且图像不明显,所以在系统仿真实验中,没有取到最佳图形。心得体会本系统的设计已经全部完成,基本达到了预期的目的与要求。但是在系统的调试方面还不够健全。还存在诸如:显示内容的单一,亮度不够、动态显示效果不明显等问题需要再次改进。本系统主要应用

46、单片机进行控制,利用程序来实现汉字的显示,这就要运用到汉字库,但是在汉字库中只是收集了一些常用的汉字,对于一些生僻的汉字还没有收录,这就意味着如果要显示一些生僻的汉字就必须自己重新创建汉字库,这必然就带来了一定的难度。在现阶段,由于知识和时间有限,自己创建汉字库就有一定的困难,如何才能更方便快捷的创建汉字库,这需要继续研究和探讨。在整个过程中,本人不仅对lcd控制系统的每一个细节有了比较深入的掌握,而且对关于系统扩展的相关知识有了感性的认识,不仅掌握了大量的专业知识,更学会了系统模块设计的基本思想。 在整个设计过程中诚挚的感谢李建英老师的亲切指导以及帮助才使我的课程设计得以顺利的进行。总之,通

47、过本次课题的设计,本人在理论知识方面和思想方面都有很大的收获。参考文献1李维缇,郭强.液晶显示器件应用技术m.北京:北京邮电学院出版社,19932内藏t6963c控制器点阵图形式液晶显示模块使用手册j.南京国显电子公司3赖麒文.8051单片机c语言彻底应用m.北京:科学出版社,20024何立民,张俊谟.单片机中级教程原理与应用m.北京:航空航天大学出版社,1999.5陈明荧.8051单片机课程设计实训教材m.北京:清华大学出版社,2003.6赵志海.液晶显示器及其应用j.国际光电与显示.2001.7永胜.lcd模块用电源电路j.电讯技术,1995.8范志新.液晶器件工艺基础m.北京:北京邮电大

48、学出版社,2000.9杨泽民,刘培兴等.液晶显示器原理与应用j.大连东显电子有限公司10李锦飞.点阵式液晶显示器图形程序设计j.电子技术应用,199311刘复华.8098单片机及其应用系统设计m.北京:清华大学出版社,199212高传善.接口与通信m.上海:复旦大学出版社,198913李振亭.点阵图形式液晶显示控制器t6963c的应用j.电子技术应用,199414 张毅刚、刘杰主编.mcs-51单片机原理及应用m.黑龙江:哈尔滨工业大学出版社,2004.6,第1版.15马忠梅等.单片机的c语言应用程序设计.北京:北京航空航天大学出版社,200116王建校.51系列单片机及c51程序设计m.北京

49、:科学出版社,200217何立明.单片机实验与实践教程(二)m.北京:北京航空航天大学出版社,2001.6. 18 康华光主编.电子技术基础m,第版.北京:高等教育出版社,1999附 录参考程序:lcd初始化:void initlcd(void)/初始化lcdchar i,j;lcd_rst=0;delay1ms(1);lcd_rst=1;lcd_writecommand1(0xc0);lcd_writecommand2(0xc0);lcd_writecommand1(0x3f); /开显示lcd_writecommand2(0x3f);for (j=0;j8;j+) /清屏lcd_writecommand1(0xb8+j); /清左半屏lcd_writecommand1(0x40);for (i=0;i64;i+)lcd_writedata1(0x00);lcd_writecommand2(0xb8+j); /清右半屏lcd_writecommand2(0x40);for (i=0;i64;i+)lcd_writedata2(0x00); 单个汉字显示:void lcd_write_a_hz(char x,char y,char *dot) /显示16*16点阵汉字 char i;for (i=0;i32;i+) if (x+i%16)64)lc

温馨提示

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

评论

0/150

提交评论