基于FPGA的LCD12864液晶汉字显示设计 及VHDL语言的应用_第1页
基于FPGA的LCD12864液晶汉字显示设计 及VHDL语言的应用_第2页
基于FPGA的LCD12864液晶汉字显示设计 及VHDL语言的应用_第3页
基于FPGA的LCD12864液晶汉字显示设计 及VHDL语言的应用_第4页
基于FPGA的LCD12864液晶汉字显示设计 及VHDL语言的应用_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

本科毕业论文(设计)基于FPGA的LCD12864汉字显示设计1、引言2、系统设计(包括设计任务和要求)3、结束语4、参考文献5、致谢1引言1.1本设计的研究背景和研究目的LCD液晶显示器是LiquidCrystalDisplay的简称,LCD的构造是在两片平行的玻璃当中放置液态的晶体,两片玻璃中间有许多垂直和水平的细小电线,透过通电与否来控制杆状水晶分子改变方向,将光线折射出来产生画面。比CRT要好的多,但是价钱较其它显示器贵。FPGA是英文Field-ProgrammableGateArray的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。本课题主要任务是设计基于FPGA的LCD控制器,兼顾好程序的易用性,以方便之后模块的移植和应用。最后在FPGA上的任意位置显示任意的16*16D的中文字符以及16*8的英文字符,另外要能根据输入数据的变化同步变化LCD上显示的内容。同时要能将储存模块中的图片数据正常地显示在LCD上。该课题的研究将有助于采用FPGA的系列产品的开发,特别是需要用到LCD得采用FPGA的产品的开发。同时可以大大缩短FPGA的开发时间。另外,由于模块的易用性,也将使得更多的采用FPGA的产品之上出现LCD,增加人机之间的交互性,为行业和我们的生活带来新的变化。1.2EDA概述本设计采用EDA的自顶向下的设计方法。EDA(ElectronicDesignAutomation,即电子设计自动化)技术是微电子和计算机技术飞速发展的产物,它融多学科于一体,是一门综合性的学科。它以计算机硬件和系统软件为基本的工作平台,继承和借鉴前人在电路和系统、数据库、图形学、图论和拓扑逻辑、计算数学、优化理论等多学科的最新科技成果而研制成的商品化EDA通用支撑软件和应用软件包,其目的在于帮助电子设计工程师在计算机上完成电路的功能设计、逻辑设计、性能分析、时序测试直至PCB(印刷电路板)的自动设计等。与早期的电子CAD软件相比,EDA软件的自动化程度更高,功能更完善,运行速度更快,而且操作界面友好,有良好的数据开放性和互换性,即不同厂商的EDA软件可相互兼容。因此,EDA技术一经出现,就很快在世界各大公司、企业和科研单位得到了广泛的应用,并已成为衡量一个国家电子技术发展水平的重要标志。1.3.1状态机简介本设计通过编写状态机的VHDL语言来完成控制部分。状态机在某种程度上可以称是一种时序电路,如前面的触发器、计数器等,都可以看成是功能固定的状态机。在状态机中常使用以状态图及状态表描述的方式,然后根据这个状态图去设计符合要求的电路。状态机简写为FSM(FiniteStateMachine),主要分为2大类:第一类,若输出只和状态有关而与输入无关,则称为Moore状态机:第二类,输出不仅和状态有关而且和输入有关系,则称为Melay状态机。要特别注意的是,因为Melay状态机和输入有关,输出会受到输入的干扰,所以可能会产生毛刺(Gitch)现象,使用时应当注意。事实上现在市面上有很多EDA工具可以很方便的将采用状态图的描述转换成可以综合的VHDL程序代码。1.3.2一般状态机的VHDL设计用VHDL设计有限状态机方法有多种,但最一般和最常用的状态机设计通常包括说明部分,主控时序部分,主控组合部分和辅助进程部分。1)说明部分说明部分中使用TYPE语句定义新的数据类型,此数据类型为枚举型,其元素通常都用状态机的状态名来定义。状态变量定义为信号,便于信息传递,并将状态变量的数据类型定义为含有既定状态元素的新定义的数据类型。说明部分一般放在结构体的ARCHITECTURE和BEGIN之间。2)主控时序进程是指负责状态机运转和在时钟驱动正负现状态机转换的进程。状态机随外部时钟信号以同步方式工作,当时钟的有效跳变到来时,时序进程将代表次态的信号next_state中的内容送入现态信号current_state中,而next_state中的内容完全由其他进程根据实际情况而定,此进程中往往也包括一些清零或置位的控制信号。3)主控组合进程根据外部输入的控制信号(包括来自外部的和状态机内容的非主控进程的信号)或(和)当前状态值确定下一状态next_state的取值内容,以及对外或对内部其他进程输出控制信号的内容。4)辅助进程用于配合状态机工作的组合、时序进程或配合状态机工作的其他时序进程。在一般状态机的设计过程中,为了能获得可综合的,高效的VHDL状态机描述,建议使用枚举类数据类型来定义状态机的状态,并使用多进程方式来描述状态机的内部逻辑。例如可使用两个进程来描述,—个进程描述时序逻辑,包括状态寄存器的工作和寄存器状态的输出,另一个进程描述组合逻辑,包括进程间状态值的传递逻辑以及状态转换值的输出。必要时还可以引入第三个进程完成其它的逻辑功能。(1)设计任务和要求(2)总体设计方案(3)软件设计2、系统设计(1)设计任务和要求本设计的主要任务是基于FPGA的LCD控制器的设计研究,并兼顾程序的易用性以方便以后模块的移植。该设计到得FPGA的应用,LCD驱动的研究,字符的显示模式的研究等知识。并利用QUARTUSII9.1实现相关模块的设计,在FPGA上实现对LCD的控制,显示任意中文。a)能通过VHDL程序,在QUARTUSII9.1软件的编译仿真下,并在EDA实验箱上进行下载显示,验证程序的正确性。b)要求显示的字符为“广西师范学院”、“物理与电子工程院”、“07电本陈岸”、“指导老师:刘桂英”

1)方案一:用单片机实现,可以用AT89S52单片机实现128*64液晶屏显示。程序方面可以用C语言成语,亦可以用汇编程序。整个设计首先是在protues软件中进行硬件的搭建及仿真的,然后才下载到目标芯片上,进行调试。其连接方式如下:(2)总体设计方案图1单片机与液晶屏的连接其工作的具体流程图如下:开始结束延时使LCD复位脉冲函数设置显示方式设置地址指针取消连续写方式输送数据到显示器设置成连续写方式设置起始地址写数据输送命令到显示器设置显示屏列数写完否?可否连续写NNYY

图7用单片机设计的具体流程图2)方案二:采用EDA的自顶向下的思想,并在EDA实验平台上实现。使用的软件是QUARTUSII9.1,可以用Verilog语言,也可以用VHDL语言,这里采用的是VHDL语言。并使用Altera公司的cycloneII系列的EP2C8Q208C8来作为核心的控制器。具体设计流程图如下:图8用EDA的设计方法设计的流程图3)方案比较两种方法都能实现汉字的显示,尽管设计思路不同,但最终效果是一样的。考虑到单片机的设计方法更适合用在点阵LED的显示设计方面,EDA的设计方法明显更适合用于LCD的汉字显示,并且考虑到学校实验室的资源,实验室里有完善的EDA实验箱,并且有设计所需要的控制芯片和显示器件,而如果用单片机的设计方法实现的话,资源明显不够。两相比较之下,EDA的设计方法明显有优势,所以选用方法二。(3)软件设计a)QUARTUSII概述QuartusII是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。b)VHDL代码(顶层设计)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYlcd12864ISPORT(CLOCK:INstd_logic;--全局时钟Q_KEY:INstd_logic;--异步复位--LCD12864的接口LCD12864_DATA:OUTstd_logic_vector(7DOWNTO0);--数据总线LCD12864_E:OUTstd_logic;LCD12864_RS:OUTstd_logic;--数据/指令LCD12864_RW:OUTstd_logic);--读/写ENDlcd12864;这个部分主要实现的功能是实例化LCD12864显示驱动模块并且把要输入的数据传给底层,由于所使用的GJ12864C-1带有字库,这就需要调用字库,字库的调用其实很简单,首先是要在字库中找到所要现实的汉字,然后转换成VHDL语言能识别的ASCII码,再写入程序中即可,更改程序可以显示任意汉字、英文和标点符号等。例如,“广”字在字库中的代码为B9E3,转换成ASCII码就是“1011100111100011”。C)底层设计LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYlcd12864_driveISPORT(clk:INstd_logic;-- 全局时钟rst_n:INstd_logic;--异步复位row1_val:INstd_logic_vector(127DOWNTO0);--数据的第一行row2_val:INstd_logic_vector(127DOWNTO0);--数据的第二行row3_val:INstd_logic_vector(127DOWNTO0);--数据的第三行row4_val:INstd_logic_vector(127DOWNTO0);--数据的第四行lcd_data:OUTstd_logic_vector(7DOWNTO0);--数据总线lcd_e:OUTstd_logic;lcd_rs:OUTstd_logic;--数据/指令lcd_rw:OUTstd_logic);--读/写ENDlcd12864_drive;这个部分的主要功能是实现具体功能,并进行时钟分频,写入数据。这个部分状态机描述部分的功能是实现状态转变,不停的改变状态,把次态赋给当前状态。达到不断写入数据的目的。d)字库的调用由于所使用的GJ12864C-1液晶模块是自带有字库的,所以要写入汉字之前,必须先调用12864液晶模块里面的字库,调用字库的方法如下:首先必须在字库中找到做要显示的汉字,确定其在字库中的编码,使用编码就可以直接调用了。本实验所要显示的是“广西师范学院”、“物理与电子工程院”、“07电本陈岸”、“指导老师:刘桂英”。以下是这些汉字在字库中的编码。由于使用的语言是VHDL,还需要把这些十六进制的编码改成ASCII码,然后放入顶层程序的数据写入部分即可。“广”:B9E3、“西”:CEF7、“师”:CAA6、“范”:B7B6、“学”:D1A7、“院”:D4BA“物”:CEEF、“理”:C0ED、“与”:D3EB、“电”:B5E7、“子”:D7D3、“工”:B9A4、“程”

:B3CC、“院”:D4BA“0”:A3B0、“7”:A3B7、“电”:B5E7、“本”

:B1BE、“陈”:B3C2、“岸”:B0B6“指”

:D6B8、“导”:B5BC、“老”:C0CF、“师”:CAA6、“:”:A1C3、“刘”:C1F5、“桂”:B9F0、“英”:D3A2e)仿真结果f)实物演示结果分析仿真结果和实验演示均一致,符合本设计要求。3、结束语经过这次毕业设计,我对VHDL语言有了更加深刻的认识。VHDL是超高速集成电路的硬件描述语言,它能够描述硬件的结构、行为与功能。另外,VHDL具有并发性,采用自上而下的结构式设计方法,适合大型设计工程的分工合作。在编写程序的时候,我才发现能看懂程序和能自己写程序是两个完全不同的概念,自己一开始写程序时,即便是一个很简单的功能模块,在编译时也可能产生很多错误,在不断的改错过程中,自己对VHDL语言的语法结构有了深刻的理解,对编译过程中常见的错误也有了全面的认识。通过这次毕业设计,我在熟悉了基于FPGA设计的同时,也学到了很多在学习课本知识时所体会不到的东西。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。完成此次设计后,我不仅能对QuartusII开发仿真软件熟练操作,能达到学以致用,同时还掌握了点阵型液晶12864的工作原理。经过这一过程,我发现平常的学习在注重理论知识的掌握同时,要加强实验环节,只有通过不断地实践,我们才能把知识掌握的更牢固,理解的更透彻。参考文献杨恒,FPGA/CPLD最新实用技术指南[M],清华大学出版社.2005。刘皖,FPGA设计与应用[M],清华大学出版社,2006。潘松,EDA技术实用教程[M],科学出版社,2005。朱正伟,数字电路逻辑设计[M],清华大学出版社,2006。李维,液晶显示应用技术[M],电子工业出版社,2000。[英]渥伦斯基,VHDL数字系统设计[M],电子工业出版社,2004。郭振东,常昌云,吴金等.STN-LCD显示驱动技术[J],电子器件,2001(4):338~345。柳义筠,李湘伟,熊建玲.液晶显示控制器HD61202的接口方式研究与编程[J]匡安云,刘湘云.SMG12864液晶模块在中文人机界面设计中的应用,中国科技信息[J],2008(19):85~89。SungguLee,AdvancedDigitalLogicDesign[M],Pohan

温馨提示

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

评论

0/150

提交评论