基于单片机的LCD图片与汉字显示_第1页
基于单片机的LCD图片与汉字显示_第2页
基于单片机的LCD图片与汉字显示_第3页
基于单片机的LCD图片与汉字显示_第4页
基于单片机的LCD图片与汉字显示_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

密级:公开NANCHANGUNIVERSITY学士学位论文THESISOFBACHELOR〔2006—2023年〕题目基于单片机的LCD图片与汉字显示南昌大学学士学位论文原创性申明本人郑重申明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究作出重要奉献的个人和集体,均已在文中以明确方式说明。本人完全意识到本申明的法律后果由本人承当。作者签名:日期:学位论文版权使用授权书本学位论文作者完全了解学校有关保存、使用学位论文的规定,同意学校保存并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权南昌大学可以将本论文的全部或局部内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。保密□,在年解密后适用本授权书。本学位论文属于不保密□。〔请在以上相应方框内打“√〞〕作者签名:日期:导师签名:日期:基于单片机的LCD图片与汉字显示专业:电子信息工程学号:6102106078学生姓名:许森指导老师:陈根华摘要本文回忆了目前的液晶显示技术并搭建硬件电路实现了液晶的图片与汉字显示,硬件电路的控制核心是AT89C51单片机,液晶显示局部是由基于控制器为ST7920的QY-12864液晶模块构成,实现了在并行数据传输方式下控制液晶模块QY-12864显示一幅128x64图片和四行16x16的汉字。由于目前液晶显示的普遍性,而且本研究的硬件电路有很大的扩展空间,所得到的研究结果具有重要的应用意义。关键词:单片机;液晶图片与汉字显示;控制器ST7920Microcontroller-basedimageandcharacterLCDdisplayAbstractThisarticlebrieflyintroducedmodernLCDdisplaytechnologyandestablishedahardwarecircuittofulfillanimageandchartersdisplay.ThehardwarecircuitcontrolcoreisAT89C51,LCDcontrollerisbasedonthepartoftheST7920forQY-12864LCDmodulecomposition,realizedinparalleldatatransmissionmodecontrolQY-12864showsapictureofLCDmodule128x64picturesandfourrowsof16x16characters.Becauseoftheuniversalitythatliquidcrystalusingatpresent,thehardwarecircuitstudyingoriginallyhasverybigexpansionspaceandtheresulthasimportantapplicationmeaning.Keyword:MCU;Imageandcharacterdisplay;ContronllerST7902目录TOC\o"1-3"\h\u24073摘要 I8883Abstract II3670第一章概述 144761.1LCD显示原理 174331.2LCD显示技术 1178741.3LCD优势 225201.4本文所作的工作 324729第二章硬件设计 466662.1方案设计与比较 45222.2主要芯片介绍 5257952.2.1单片机AT89C51 595632.2.2液晶模块QY-12864 5159942.3模块电路设计 9253082.3.1电源局部 9258942.3.2晶振局部 950972.3.3复位电路 1068972.3.4液晶模块 1028497第三章软件设计 1229343.1程序流程设计 12107963.2主要显示程序设计 12306613.2.1命令数据的写入 12184913.2.2命令数据的读出 13183793.2.3汉字的显示 14246283.2.4图片的显示 14214653.2.5液晶初始化 16316773.3图片数据的提取 1739163.4软件仿真测试 17142963.5PCB板的制作 1917845第四章硬件调试结果 22128134.1显示控制信息 22260884.2汉字显示 23285734.3图片显示 236009总结 2412360参考文献〔Perference〕 2523770致谢 264441附录程序代码 27第一章概述1.1LCD显示原理液晶的物理特性是:当通电时导通,排列变的有秩序,使光线容易通过;不通电时排列混乱,阻止光线通过。让液晶如闸门般地阻隔或让光线穿透。从技术上简单地说,液晶面板包含了两片相当精致的无钠玻璃素材,称为Substrates,中间夹著一层液晶。当光束通过这层液晶时,液晶本身会排排站立或扭转呈不规那么状,因而阻隔或使光束顺利通过。大多数液晶都属于有机复合物,由长棒状的分子构成。在自然状态下,这些棒状分子的长轴大致平行。将液晶倒入一个经精良加工的开槽平面,液晶分子会顺着槽排列,所以假设那些槽非常平行,那么各分子也是完全平行的。液晶显示器(LCD/LiquidCrystalDisplay)的显像原理,是将液晶置于两片导电玻璃之间,靠两个电极间电场的驱动,引起液晶分子扭曲向列的电场效应,以控制光源透射或遮蔽功能,在电源关开之间产生明暗而将影像显示出来,假设加上彩色滤光片,那么可显示彩色影像。在两片玻璃基板上装有配向膜,所以液晶会沿着沟槽配向,由于玻璃基板配向膜沟槽偏离90度,所以液晶分子成为扭转型,当玻璃基板没有参加电场时,光线透过偏光板跟着液晶做90度扭转,通过下方偏光板,液晶面板显示白色;当玻璃基板参加电场时,液晶分子产生配列变化,光线通过液晶分子空隙维持原方向,被下方偏光板遮蔽,光线被吸收无法透出,液晶面板显示黑色。液晶显示器便是根据此电压有无,使面板到达显示效果。1.2LCD显示技术目前液晶显示器可分成三大种类,分别是扭转向列型〔TwistedNematic;简称TN〕、超扭转向列型〔SuperTwistedNematic简称STN〕和彩色薄膜型〔ThinFilmTransistors;简称TFT〕。

TN-LCD

TN是继DSM型的液晶材料後,所开展的新液晶材料,TN-LCD的最大特点就如同其名称「扭转向列」一般,其液晶分子从最上层到最下层的排列方向恰好是呈90度的3D螺旋状。TN-LCD的出现奠定了现今LCD开展的主要方式,但是由於TN-LCD具有两个重大缺点,那就是无法呈现黑、白两色以外色调,以及当液晶显示器越做越大时其比照会越来越差,使得各种新的技术陆续出现。

STN-LCD

STN-LCD的出现是为了改善TN-LCD比照不佳的问题,最大差异点在於液晶分子扭转角度不同以及在玻璃基板的配合层有预倾角度,其液晶分子从最上层到最下层的排列方向恰好是180度至260度的3D螺旋状。但是,STN-LCD虽然改善了TN-LCD的比照问题,其颜色的表现依然无法获得较好的解决,STN-LCD的颜色除了黑、白两个色调外,就只有橘色和黄绿色等少数颜色,对於色彩的表达仍然无法到达全彩的要求,因此仍然不是一个完善的解决方式。

TFT-LCD

为了改善对於色彩的要求,又创造了TSTN〔TripleSuperTwistedNematic〕和FSTN〔FilmSuperTwistedNematic〕两种新技术。TSTN和FSTN的根本构造原理与STN相同,差异在於TSTN在两片玻璃上加上两片色补偿用薄膜,而FSTN那么是加上一片色补偿用薄膜。TSTN和FSTN具有高解析度和全彩的优点,完全改善TN的比对问题和STN的色彩问题。但可惜的是,TSTN和FSTN却有液晶分子的反响较慢的问题,在放映数量较大的资料时,会造成无法负荷的缺点,因此也不是完善的解决方式。1.3LCD优势1.低压、微功耗液晶显示器的工作电压极低,而工作电流也仅几个微安,这是其他任何显示器件无法比较的。要知道,只有低压、微功耗的显示器件才可能深入人间的每个角落,伴随人们生活和工作。在工作电压和功耗上液晶显示正好与大规模集成电路的开展相适应。从而使液晶与大规模集成电路结成了孪生兄弟。使电子手表、计算器、便携仪表、以至手提电脑、GPS电子地图等成为可能。2.平板型结构液晶显示器件的根本结构是由两片玻璃基板制成的薄形盒。这种结构最利于用作显示窗口,而且它可以在有限的面积上容纳最大量的显示内容,显示内容的利用率最高。此外,这种结构不仅可以做的很小,如照相机上所用的显示窗,也可以做的很大,如大屏幕液晶电视及大型液晶广告牌。此外,这种结构还便于大批量、白动化生产。目前液晶显示器件的生产大都采用自动化半自动化的集成化工艺生产,仅少量工人即可开动一条年产上千万片的生产线。3.被动型显示液晶显示器件本身不能发光,它靠调制外界光到达显示目的。即它不像主动型显示器件那样,靠发光刺激人眼实现显示,而是单纯依靠对外界光的不同反射形成的不同比照度来到达显示目的的。被动显示更适合于人眼视觉,更不易引起疲劳。这个优点在大信息量、高密度、快速变换、长时间观察的显示时尤其重要。此外,被动显示还不怕光冲刷。所谓光冲刷,是指当环境光较亮时,被显示的信息被冲淡,从而显示不清晰。而被动型显示,由于它是靠反射外部光到达显示目的的,所以,外部光越强,反射的光也越强,显示的内容也就越清晰。因此液晶显示不仅可以用于室外进行显示,而且可以在阳光等强烈照明环境下也可以显示得很清晰。4.显示信息量大液晶显示在同样大小的显示窗面积内,比可以容纳更多的像素,显示更多的信息。这对于制作高清晰度电视、笔记本式电脑都非常有利。5.易于彩色化液晶本身虽然一般是没有颜色的,但它实现彩色化确很容易,方法很多。一般使用较多的是滤色法和干预法。由于滤色法技术的成熟,使液晶的彩色化具有更精确、更鲜艳、更没有色失真的彩色化效果。6.长寿命液晶材料是有机高分子合成材料,具有极高的纯度,而且其他材料也都是高纯物质,在极净化的条件下制造而成。液晶的驱动电压又很低,驱动电流更是微乎其微,因此,这种器件的劣化几乎没有,寿命很长。从实际应用考查。一般使用中,除撞击,破碎或配套件损坏外,液晶显示器件自身的寿命终结几乎没有可能。7.无辐射,无污染液晶显示器件在使用时不会产生像CRT使用中产生的软X射线及电磁波辐射。这种幅射不仅污染环境还会产生信息泄露。而液晶显示不会产生这类问题。它对于人身平安和信息保密都是十分理想的。1.4本文所作的工作本课题的主要任务是实现液晶的图片与汉字显示,实现简单的人机交互。掌握和熟练使用相关软件,设计硬件电路并编写相应的程序实现相应功能。课题完成过程中,阅读了很多关于液晶显示原理和单片机控制电路方面的文献。本设计是采用了QY-12864在并行方式下实现图片与汉字显示,应用Zimo21字模提取软件提取了128x64的图片显示数据和16x16的汉字数据,使用proteus软件进行仿真。应用DXP2004进行了电路原理图的和PCB板的制作。第二章硬件设计方案一:一般51单片机有4K程序存储单元,128Byte的RAM,足以满足一般的控制需求,而且具有较高的性价比,所以选择AT89C51单片机作为控制单元.通过串行方式控制液晶模块,优点是串行方式节省端口,可利用其他端口进行另外的扩展。缺点是串行数据传输速度有限制,如果要显示动态图片或者流畅的播放视频那么效果会比较差,而且串行数据控制比较复杂,因为要考虑到信号传输的同步问题。这也是串行方式方式数据传输比较慢的一个原因。图2-1串行连接方式方案二:采用并行数据传输方式,优点数据传输速度较快可以克服串行显示动态图片显示效果不佳现象,控制方式也较串行简单。缺点占用较多的I/O口,8根数据线就需要8个I/O口。图2-2并行连接方式由上边两个方案比照,由于本设计I/O较充足,应选择并行数据传输方式进行液晶控制,控制信号简单较容易设计实现。单片机AT89C51AT89C51是ALTEM公司的一种高效微控制器,它将多功能8位cpu和闪烁存储器组合在单个芯片中,带有4k字节可编程可擦除只读存储器,有128Byte片内RAM。并且与工业标准的MCS-51指令集和输出管脚想兼容,灵活运用于各种控制领域。液晶模块QY-12864QY-12864液晶模块是128x64点阵的汉字图形液晶显示模块,可显示汉字及图片,内置国标GB2312码简体中文字库〔16x16点阵〕、128个字符〔8x16点阵〕及64x256点阵显示RAM。可与MCU直接接口,提供两种界面来连接微处理机:8位并行及串行两种连接方式。具有多种功能:光标显示、画面移位、睡眠模式等。QY-12864引脚图如表2-3所示:12345678910VSSVDDVORSRWED0D1D2D311121314151617181920D4D5D6D7PSBNCRSTVEEL+L-图2-3QY-12864引脚图VSS:电源地。VDD:+5V电源输入。VO:液晶显示比照度调节。RS:数据命令选择端。高电平数据,低电平命令。RW:读写选择端。高电平读信号,低电平写信号。E:读写使能端。DB0-DB7:数据总线。PSB:并串选择端口。高电平并行传输,低电平串行传输。RST:复位端,低电平有效。L+:背光源正端〔+5V〕。L-:背光源负端。QY-12864指令去除显示RWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLLLH功能:去除显示屏幕,把DDRAM位址计数器调整为“00H〞位址归位RWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLLHX功能:把DDRAM位址计数器调整位“00H〞,游标回原点,该功能不影响显示DDRAM位址归位RWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLLI/DS功能:执行该命令后,所设置的行将显示在屏幕第一行。显示起始行是由Z地址计数器控制的,该命令将A0-A5位地址送入Z地址计数器,起始地址可以是0-63范围内任意一行。Z地址计数器具有循环计数功能,用于显示行扫描同步,当扫描完一行后自动加一。显示状态开/关RWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLHDCHX功能:D=1;整体显示ON;游标ON;B=1;游标位置ON游标或显示移位控制RWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLHS/CR/LXX功能:设定游标的移动与显示的移位控制位,这个指令不改变DDRAM的内容功能设定RWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLHDLX0REXX功能:DL=1〔必须设为1〕RE=1:扩充指令集动作RE=0:根本指令集动作设定CGRAM位址RWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLHAC5AC4AC3AC2AC1AC0功能:设定CGRAM位址到位址计数器〔AC〕设定DDRAM位址RWRSDB7DB6DB5DB4DB3DB2DB1DB0LLHAC6AC5AC4AC3AC2AC1AC0功能:设定DDRAM位址到位址计数器〔AC〕读取忙碌状态〔BF〕和位址RWRSDB7DB6DB5DB4DB3DB2DB1DB0LLBFAC6AC5AC4AC3AC2AC1AC0功能:读取忙碌状态〔BF〕可以确认内部动作是否完成,同时可以读出位址针计数器〔AC〕的值写字料到RAMRWRSDB7DB6DB5DB4DB3DB2DB1DB0HLDB7DB6DB5DB4DB3AC2DB1DB0功能:写入资料到内部RAM〔DDRAM/CGRAM/TRAM/GDRAM〕读出RAM的值RWRSDB7DB6DB5DB4DB3DB2DB1DB0HHDB7DB6DB5DB4DB3AC2DB1DB0功能:从内部RAM读取资料〔DDRAM/CGRAM/TRAM/GDRAM〕待命模式〔12H〕RWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLLLH功能:进入待命模式,执行其它命令都可终止待命模式卷动位址或IRAM位址选择〔13H〕RWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLLHSR功能:SR=1;允许输入卷动位址SR=O;允许输入IRAM位址反白选择〔14H〕RWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLHR1R0功能:选择4行中的任一行作反白显示,并可决定反白的与否睡眠模式〔15H〕RWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLHSLXX功能:SL=1;脱离睡眠模式SL=0;进入睡眠模式16、扩充功能设定〔16H〕

RWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLHHX1REGL功能:RE=1;扩充指令集动作RE=0:根本指令集动作G=1绘图显示ONG=0;绘图显示OFF设定IRAM位址或卷动地址〔17H〕RWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLHAC5AC4AC3AC2AC1AC0功能:SR=1;AC5-AC0为垂直卷动位址SR=0;AC3-AC0写ICONRAM位址设定绘图RAM位址〔18H〕RWRSDB7DB6DB5DB4DB3DB2DB1DB0LLHAC6AC5AC4AC3AC2AC1AC0功能:设定GDRAM位址到位址计数器〔AC〕显示步骤:显示资料RAM显示资料RAM提供64x32个位元组的空间,最多可以控制4行16字〔64个字〕的中文字型显示,当写入显示资料RAM时,可以分别显示CGROM、HCGROM的字型;ST7902A可以显示三种字型,分别是办宽的HCGROM字型、CGRAM字型及中文CGRAM字型,三种字型的选择,由在DDRAM中写入的编码选择,在0000H-0006H的编码中将自动的结合下一个位元组,组成两个位元组的编码达成中文字型的编码〔A140-D75F〕,各种字型详细编码如下:显示半宽字型:将8位元资料写入DDRAM中,范围为02H-7FH的编码。显示CGRAM字型:将16位元资料写入DDRAM中,总共有00H,02H,04H,06H四种编码。显示中文字型:将16位元资料写入DDRAM中,范围为A1A1H-F7FEH的编码。绘图RAM〔GDRAM〕绘图显示RAM提供64x32个元组的记忆空间,最多可以控制256x64点的二维绘图缓冲空间,在更改绘图RAM时,先连续写入水平与垂直的坐标值,在写入两个8位元的资料到绘图RAM,而地址计数器〔AC〕会自动加一;在写入绘图RAM的期间,绘图RAM显示必须关闭,整个写入绘图RAM的步骤如下:关闭绘图显示功能;先将垂直的坐标〔Y〕写入绘图RAM地址;再将水平的位元组坐标〔X〕写入绘图RAM地址;将D15-D8写入到RAM;将D7-D0写入到RAM;翻开绘图显示功能。2.3模块电路设计电源局部图2-4总电源如图2-4所示通过USB接口给整个电路提供+5V的电压驱动电路。当开关S1闭合,LED灯DS1发光,表示电路供电。晶振局部图2-5晶振如图2-5所示两根线分别连接AT89C51的XTAL1与XTAL2引脚为系统提供的6MHz的时钟频率。复位电路图2-6复位电路如图2-6所示连接AT89CT1的RST端,单片机上电后会自动复位,当软件运行出现未知错误需要复位时,按下开关S2本电路在RST端产生高电平,系统复位,程序重新开始执行。液晶模块图2-7液晶模块如图2-7所示PSB端接高电平,使用并行数据传输方式,DB0-DB7与单片机P1口连接,RS、R、WE分别接P3.0、P3.1、P3.2,数据的并行传输比数据的串行传输控制简单,而且有较高的数据传输速率。当I/O口较少且对数据传输速率要求不严格时可采用串行的数据传输方式。RST端接低电平时复位,本设计不需要硬件复位,每次执行程序时进行软件初始化,故RST端接高电平。LED+与LED-之间接可变电阻用来改变背景亮度。电路原理图如下列图所示:图2-8电路原理图第三章软件设计3.1程序流程设计程序实现功能:本设计可以实现16x16汉字与128x64图片显示,程序中还设置S1S2两个按键,有四种不同的组合,根据不同的组合可实现控制信息显示,汉字显示,图片显示,汉字与图片显示。程序流程图如图3-1所示:3-1程序流程图PCB板上电,单片机上电复位。开始执行程序,液晶初始化,设置显示模式游标状态显示地址等。显示作者信息,条件判断,根据按键不同的组合信息进入相应的显示模式,完成某种显示任务后再次判断,实现显示任务的灵活执行。3.2主要显示程序设计命令数据的写入图3-2MCU写资料到液晶模块如图3-2所示,并行方式下由单片机写数据或命令到液晶模块的过程,当要写数据RS置高,写命令时RS置低,然后RW置低表示写入,数据或命令在I/O等待,E置高电平,资料读入液晶模块。命令数据的读出图3-3MCU从液晶模块读资料如图3-3所示,和命令数据的写入不同的是当读入时。RW应该置高电平,数据或命令在DB0-DB7等待,然后E置高电平,数据或命令被MCU读出。结合读写操作编写写入命令的局部代码如下:uchartemp=0;RS=0;//RS置低对命令进行操作RW=1;//RW置高MCU进行读操作do//检测LCD是否处于忙状态{EN=1;//EN置高DB0-DB7数据输出_nop_();temp=P1;//从P1口读入数据EN=0;//EN置低阻止MCU和QY-12864通信}while(temp&0x80);RW=0;//RW置低MCU进行写操作P1=cmd;//命令在P1口等待EN=1;//EN置高命令写入QY-12864_nop_();EN=0;//写完命令后阻止MCU与QY-12864通信注意:上边的一个do···while···语句是用来判读液晶是否处于忙碌状态,如果处于忙碌状态那么继续执行循环继续检测,直到液晶不忙碌时进行下一步操作。每次对液晶进行操作时都要进行这个询问,否那么会出错。汉字的显示图3-416x16汉字显示坐标QY-12864是带字库的液晶,也就是说可以直接写入汉字,当写入汉字时先写入它的坐标,如果连续写入它的地址指针会自动加1,所以这种控制还是比较方便的,当然也可以自己提取字模,它的写入方式是先写列在写行就是和我们一般写字的方式是一样的,提取字模是应该注意这一点,用Zimo21字模软件或其他软件时应该进行横向取模。局部汉字写入代码如下:voidDisplay_hz(ucharaddress,constuchar*pt,ucharnum){uchari;Write_cmd(address);//先写入汉字显示坐标addressfor(i=0;i=(num*2);i++)//写入汉字个数Write_data(*(pt++));}//写入汉字〔pt为汉字数组首地址〕图片的显示图片数据的写入是先写入图片显示的纵坐标再写入横坐标,地址指针会自动加1,图片显示坐标如图3-5所示,图片写入的局部代码如下:uchari,j,k;Write_cmd(0x34);i=0x80;for(j=0;j<32;j++)//画上半屏幕32行{Write_cmd(i++);//写入图片显示纵坐标Write_cmd(0x80);//写入图片显示横坐标for(k=0;k<16;k++)//地址指针会自动加1故循环{故会写满一行〔128列〕Write_data(*ptr++);//ptr为图片数组首地址}}i=0x80;for(j=0;j<32;j++)//画下半屏幕{Write_cmd(i++);Write_cmd(0x88);for(k=0;k<16;k++);{Write_data(*ptr++);}}Write_cmd(0x36);//翻开绘图Write_cmd(0x30);//回到根本指令集图3-5图片显示坐标液晶初始化液晶初始化时根据控制器ST7920的初始化顺序进行初始化设置的,局部代码如下:Delay_Nms(500);Write_cmd(0x30);//根本指令集Delay_Nms(1);Write_cmd(0x02);//地址归位Delay_Nms(1);Write_cmd(0x0c);//整体显示翻开,游标关闭Delay_Nms(1);Write_cmd(0x01);//去除显示Delay_Nms(1);Write_cmd(0x06);//游标右移Delay_Nms(1);Write_cmd(0x80);//设定显示的起始位置3.3图片数据的提取Zimo21字模提取软件提取128x64图片步骤:新建宽度128高度64图像翻开图片文件。参数设置横向取模。取模格式C51。生成数据。汉字字模提取与图片步骤相同,只是图像大小改为16x16。图3-6图片数据提取3.4软件仿真测试进行软件仿真测试应按照如下步骤:在keil软件先建立一个工程文件。然后选择ALTEM公司AT89C51单片机。对单片机进行一些根本设置,晶振频率存储器选片内还是片外大小等,一定要设置软件编译后要生成hex文件〔protues仿真需要〕。然后编写程序,编译运行直至没有错误。翻开protuesISIS编辑器绘制原理图。给单片机中加载keil中生成的hex文件。开始软件调试。从message中可以看到查找错误原因进行调整,也可是添加以写辅助工具,如逻辑分析仪等分析波形是否正确。汉字与图像的仿真结果如下列图3-7图3-8所示。图3-7protues汉字仿真图3-8protues图像仿真3.5PCB板的制作2.建立原理图文件,绘制原理图并编译。3.生成网络报表。4.新建PCB文件,进行根本属性设置〔大小,层数等〕。5.将建好的PCB文件参加工程文件。6.导入网络报表。7.调整元件封装,调整元件布局。8.布线〔设置好布线规那么,线宽,布线层面等〕。9.对所有过孔加焊盘。10.覆铜。图3-8PCB板图图3-9PCB3D视图第四章硬件调试结果如下图显示控制信息,使用者可根据控制信息实现图片与汉字有选择的显示。图4-1控制信息显示如下图可以显示程序设定的16x16汉字。图4-2汉字显示如图4-3所示可以显示设定的128x64图片。图4-3图片显示总结通过本课题使我学会了资料的快速查找,提高了独立分析问题、解决问题的能力。我觉得本课题的最大难点在于对于对液晶点阵书写方式的理解也就是显示坐标的理解,不同的液晶控制器有不同的书写方式,例如本设计使用的ST7920控制器是横向书写,而有的采用SED1565控制器是纵向书写,而且是先从低位开始写数据,所以在字模提取的时候应该根据不同的书写方式来进行字模的提取。否那么在显示的时候出现乱码等情况。在PCB板的布线,一定要耐心,适中选取线的宽度与焊盘大小,采取和理的布局,尽量防止使用飞线。在硬件调试工程中,一定要要注意细节问题的分析,只有这有这样才能快速准确的解决所遇到的问题。总体来说本课题难度不大,本设计实现了128x64图片与16x16汉字的显示,是一个完整的实际问题的解决,是一个理论转化位实践的过程,对以后的工作和学习都有很大的帮助。最后感谢陈根华老师给我这个课题,让我对单片机和液晶方面有了比较深入的了解,也对keil,protel,protues等软件的使用有了一定了解。参考文献〔Perference〕[1]——C51编程技术[M].西南交通大学出版社,2004.3.[2]张毅刚,彭喜元,董继成.单片机原理及应用[M].高等教育出版社,2003.12.[4]王阵营,李满,杨君等.ProtelDXP2004电路设计与制版使用教程[M].中国铁道出版社,2006.6.[5]臧铁钢,唐才峰,陈学锋,刘伟俭.ProtelDXP电路设计与应用[M].中国铁道出版社,2005.5.[6]李宏,张家田.液晶显示器件应用技术[M].机械工业出版社,2004.7.[7]小林俊介,乔双,高岩译.下一代液晶显示[M].科学出版社,2003.4.[8]孟庆龙.单片机与三种液晶显示器的接口技术[J].信息化研究,第35卷第6期.[9]孟臣,李敏.中文液晶图文显示器及其应用[J].电子器件应用,第5卷第8期.致谢毕业设计的结束预示着大学生活的结束,而在毕业设计过程中得到了很到老师和同学的帮助与支持,在此真挚的感谢陈根华老师在繁忙的工作中挤出时间给予的指导,感谢所有任课老师无私的教诲,感谢四年同窗的关心与帮助,谢谢你们为我创造的大学生活。同时也借此时机感谢父母无私的爱,感谢他们给我接受教育的时机,感谢他们的养育之恩。附录程序代码/**********************************************程序功能:用并行方式在液晶上显示汉字和图片许森日期:2010年5月20日**********************************************/#include"subroutine.h"#include"disdata.h"voidmain(){unsignedchari;Ini_lcd();Delay_Nms(100); s1=0; s2=0; for(i=5;i>0;i--) //检测程序{led=0; Delay_Nms(100); led=1; Delay_Nms(100);} Write_cmd(0x01);Display_hz(0x81,line11,6); //显示作者信息Display_hz(0x91,line12,6);Display_hz(0x8a,line13,5);Display_hz(0x9a,line14,4);Delay_Nms(1000); loop:if(s1==0&&s2==0){Write_cmd(0x01); //显示控制信息Display_hz(0x80,line31,3); Display_hz(0x91,line32,7);Display_hz(0x89,line33,7);Display_hz(0x99,line34,7); Delay_Nms(3000); gotoloop;} elseif(s1==1&&s2==0) { do {Write_cmd(0x01); //清屏picture(pic1); //显示小狗图片1Delay_Nms(1500); //等待两秒Write_cmd(0x01); //清屏picture(pic2); //显示小狗图片2Delay_Nms(1500); //等待两秒 }while(s1==1&&s2==0); gotoloop;} elseif(s1==1&&s2==1) {do{Write_cmd(0x01);Display_hz(0x81,line21,4); //显示昌大校训Display_hz(0x8a,line23,4);Display_hz(0x9a,line24,4);Delay_Nms(1500); //等待两秒 Write_cmd(0x01); //显示文字 Display_hz(0x90,line41,8);Display_hz(0x88,line42,8);Delay_Nms(1500); } while(s1==1&&s2==1); gotoloop;} elseif(s1==0&&s2==1) {do{Write_cmd(0x01);Display_hz(0x81,line21,4); //显示昌大校训Display_hz(0x8a,line23,4);Display_hz(0x9a,line24,4);Delay_Nms(1000); Write_cmd(0x01); //清屏picture(pic1); //显示小狗图片1Delay_Nms(1000); Write_cmd(0x01); picture(pic2); //显示小狗图片2Delay_Nms(1000); Write_cmd(0x01); Display_hz(0x90,jieshu1,7); //显示结束语 Display_hz(0x8a,jieshu2,4); Delay_Nms(1000);}while(s1==1&&s2==0); gotoloop;}}/*************************************************************************************/#include<reg51.h>#include"intrins.h"typedefunsignedcharuchar;typedefunsignedintuint;sbitRS=P3^0;//P3.0高电平表示数据,低电平表示命令sbitRW=P3^1;//P3.1高电平表示读出,低电平表示写入sbitEN=P3^2;//P3.2高电平使能,低电平为串行数据移位脉冲〔本程序用并行数据输入〕sbitled=P3^3;//检测程序引脚/*******************************************函数名:Delay_Nms功能:延时N个ms参数:n--延时度返回值:无******************************************/voidDelay_Nms(uintn){uinti,j;for(i=n;i>0;i--)for(j=150;j>0;j--)//延时1ms_nop_();}/********************************************函数名称:Write_cmd功能:向液晶中写入命令参数:cmd--控制命令返回值:无********************************************/voidWrite_cmd(ucharcmd){uchartemp=0;RS=0;RW=1;P1=0xff;do//检测LCD是否处于忙状态{EN=1;_nop_(); _nop_(); _nop_();temp=P1;EN=0; _nop_();}while(temp&0x80);RW=0;//给LCD中写入命令P1=cmd;EN=1;_nop_();_nop_();_nop_();EN=0; _nop_();}/********************************************函数名称:Write_data功能:向液晶中写显示数据参数:data--显示数据返回值:无*********************************************/voidWrite_data(uchardat){uchartemp=0;RS=0;RW=1; P1=0xff;do//检测LCD是否处于忙状态{EN=1;_nop_();_nop_();_nop_();temp=P1;EN=0;}while(temp&0x80);RS=1;//给LCD中写入数据RW=0;P1=dat;EN=1;_nop_();_nop_();EN=0;}/*****************************************函数名称:Ini_lcd功能:初始化液晶模块参数:无返回值:无*****************************************/voidIni_lcd(void){Delay_Nms(500);Write_cmd(0x30);//根本指令集Delay_Nms(1);Write_cmd(0x02);//地址归位Delay_Nms(1);Write_cmd(0x0c);//整体显示翻开,游标关闭Delay_Nms(1);Write_cmd(0x01);//去除显示Delay_Nms(1);Write_cmd(0x06);//游标右移Delay_Nms(1);Write_cmd(0x80);}//设定显示的起始位置/****************

温馨提示

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

评论

0/150

提交评论