欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    FPGA课程设计液晶显示.docx

    • 资源ID:9001459       资源大小:221.38KB        全文页数:19页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    FPGA课程设计液晶显示.docx

    1、FPGA课程设计液晶显示摘 要 如今,科技进步给我们的生活带来了很大的变化。液晶显示设备越来越多,各种各样的液晶显示产品走进我们生活中。从手机到电脑显示器,从掌上电脑到平板电视。无处没有液晶显示技术的身影。液晶显示器由于具有低压、微功耗、显示信息量大、体积小等特点,在移动通信终端、便携计算机、GPS卫星定位系统等领域有广泛用途,成为使用量最大的显示器件。液晶显示控制器作为液晶驱动电路的核心部件通常由集成电路组成,通过为液晶显示系统提供时序信号和显示数据来实现液晶显示。本设计是一种基于FPGA(现场可编程门阵列)的液晶显示控制器。与集成电路控制器相比,FPGA更加灵活,可以针对小同的液晶显示模块

    2、更改时序信号和显示数据。FPGA的集成度、复杂度和面积优势使得其日益成为一种颇具吸引力的高性价比ASIC替代方案。本文选用MAX7000S系列的EPM7128SLC84-15器件,利用硬件描述语言VHDL设计了液晶显示拧制器,实现了替代专用集成电路驱动控制LCD的作用。关键词: EDA(电子设计自动化),VHDL(硬件描述语言),液晶控制器接口设计,LCD(液晶显示器)。目 录第1章 课程设计内容和要求 11.1 设计内容 11.2 设计要求 11.3 设计目的 1第2章 液晶控制器设计方案 22.1 设计思路 22.2 工作原理及框图 22.3 各模块功能描述 4第3章 液晶显示器接口底层电

    3、路设计 63.1设计规划 63.2设计说明 63.3底层电路程序 6第4章 液晶控制器接口的顶层文件设计 114.1设计说明 114.2 顶层文件程序 11第5章 液晶控制器接口设计的测试与运行 135.1仿真结果 135.2 实验箱验证情况 13总结 15参考文献 16第1章 课程设计内容和要求1.1 设计目的设计并实现一个12832的汉字图形液晶显示器的控制器,要求:(1)能够显示几个液晶模块字库中的汉字和ASIC字符。(2)能够显示一个简单的图形(选做)。1.2 设计内容 (1)学习掌握液晶显示模块的工作原理及应用。(2)熟练掌握VHDL编程语言,编写液晶显示模块的控制逻辑。1.3 设计

    4、要求(1)仿真所编写的程序,模拟验证所编写的模块功能。(2)下载程序到芯片中,硬件验证所设置的功能,能够实现汉字的显示。(3)整理设计内容,编写设计说明书。第2章 液晶控制器设计方案2.1 设计思路根据指导教师布置的课题,通过参考书籍、查阅手册、图表和文献资料,网络等获取相关的知识后,了解到:液晶显示模块硬件接口协议为请求/应答(REQ/BUSY)握手方式。应答BUSY 高电平(BUSY =1)表示 OCMJ 忙于内部处理,不能接收用户命令;BUSY 低电平(BUSY =0)表示 OCMJ 空闲,等待接收用户命令。发送命令到 OCMJ可在BUSY =0 后的任意时刻开始,先把用户命令的当前字节

    5、放到数据线上,接着发高电平REQ 信号(REQ =1)通知OCMJ请求处理当前数据线上的命令或数据。OCMJ模块在收到外部的REQ高电平信号后立即读取数据线上的命令或数据,同时将应答线BUSY变为高电平,表明模块已收到数据并正在忙于对此数据的内部处理,此时,用户对模块的写操作已经完成,用户可以撤消数据线上的信号并可作模块显示以外的其他工作,也可不断地查询应答线BUSY是否为低(BUSY =0?),如果BUSY =0,表明模块对用户的写操作已经执行完毕。可以再送下一个数据。2.2 工作原理及框图2.2.1液晶LCD显示器的工作原理:液晶显示器是一种采用了液晶控制透光技术来实现色彩的显示器。从液晶

    6、显示器的结构来看,采用的LCD显示屏都是由不同部分组成的分层结构。LCD由两块玻璃板构成,厚约1mm,其间由包含有液晶材料的5um均匀间隔隔开。因为液晶材料本身并不发光,所以在显示屏两边都设有作为光源的灯管,而在液晶显示屏背面有一块背光板(或称匀光板)和反光膜,背光板是由荧光物质组成的可以发射光线,其作用主要是提供均匀的背景光源。背光板发出的光线在穿过第一层偏振过滤层之后进入包含成千上万液晶液滴的液晶层。液晶层中的液滴都被包含在细小的单元格结构中,一个或多个单元格构成屏幕上的一个像素。在玻璃板与液晶材料之间是透明的电极,电极分为行和列,在行与列的交叉点上,通过改变电压而改变液晶的旋光状态,液晶

    7、材料的作用类似于一个个小的光阀。液晶材料周边是控制电路部分。当LCD中的电极产生电场时,液晶分子就会产生扭曲,从而将穿越其中的光线进行有规则的折射,然后经过第二层过滤层在屏幕上显示出来。2.2.2设计原理图如下:图2-1 液晶控制器接口设计原理图显示国标汉字:命令格式: F0 XX YY QQ WW。该命令为5字节命令(最大执行时间为1.2毫秒,Ts2=1.2mS),其中:XX:为以汉字为单位的屏幕行坐标值,取值范围00到07、02到09、00到09;YY:为以汉字为单位的屏幕列坐标值,取值范围00到01、00到03、00到04;QQ WW:坐标位置上要显示的GB 2312 汉字区位码。2.2

    8、.3设计框图: 图2-2 液晶控制器设计框图2.3 各模块功能描述液晶显示模块共有四个单元电路组成,分别是:时序发生器、地地址发生器、存储器、控制器。引脚功能图和内部结构框图分别如图3-3和图3-4所示。图2-3 液晶控制器引脚功能图图2-4 液晶控制器内部结构框图其中,时钟发生器共有三组时钟输出,分别送给:地址发生器,使其产生存储器读地址;存储器,作为输出数据的同步时钟;控制器,作为控制器的工作时钟及输出信号同步时钟。地址发生器在时钟信号与BUSY信号的共同作用下,产生存储器所需的地址信息。当BUSY信号有效时(BUSY=1),停止输出地址信号;当液晶模块处于空闲状态(BUSY=0)时,输出

    9、地址信号。控制器用来产生液晶模块所需的STOBE和存储器输出使能信号。当BUSY信号有效时(BUSY=1),关闭存储器的输出;当液晶模块处于空闲状态(BUSY=0)时,分别送出STOBE=1和存储器输出使能信号,等待BUSY变为1。当BUSY=1时,使STOBE=0,数据传送结束。存储器主要用来存储液晶模块的命令,在同步时钟的作用下,数据同步输出。该存储器可为ROM型,也可以为RAM型。当为ROM型是,其显示模式及显示数据不可变,即只能显示固定的信息;为RAM型时,其显示模块及数据可根据需要任意配置,即可显示出更为灵活及复杂的信息,如实时的波形显示器等。第3章 液晶显示器接口底层电路设计3.1

    10、设计规划该液晶控制器可显示模块字库中的汉字和ASSIC字符,又具有清零功能。因此。此程序共有两大大模块,汉字显示模块,清零模块。1.汉字显示模块是根据查表对照的方法显示出设计者想要表达的文字。液晶屏上显示的汉字是16*16的像素。2.ASIC字符显示相对汉字来说比较简单。只需要16*8个像素。3.清零功能是强制清除一切记录的功能。3.2设计说明液晶屏幕上是如何显示一些汉字或者是图画,这是我们应该思考的一个问题。在数字电路中,所有数据都是由0、1保存的,同样LCD也是利用这种方法。在点阵LCD上显示的只有两种颜色,因此可用0和1来表示这两种颜色,假设空格是16*16个0组成的,在现实16*16的

    11、字体时,将其中某些点置为1便可在视觉上形成汉字,这些二进制数成为代码。与汉字不同的是一个字符只需要16*8的像素便可。3.3底层电路程序3.3.1 清零模块清零模块的功能:实现将地址清零的功能。当clr为0时,将初始地址置为00000000。当clr为1时,出现上升沿时,如果addr1为00111100,则将addr置为00000001;不出现上升沿时,则将addr加1,以实现地址的循环。如此实现清零模块的功能。清零模块的代码(VHDL)如下:LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;USE

    12、 ieee.std_logic_arith.all;USE work.rom.all;ENTITY lcd1 is PORT(clr,clk,BUSY: IN std_logic; STOBE : OUT std_logic; dout: OUT std_logic_vector(7 DOWNTO 0); -实体端口的设计END lcd1;ARCHITECTURE doit OF lcd1 ISsignal counter,addr1: std_logic_vector(7 downto 0); -结构体的信号设计signal addr : std_logic_vector(7 DOWNTO

    13、0);BEGINP1: process(clr,busy) begin if(clr=0) then addr1=00000000; -给地址清零 elsif(busyevent and busy=1) then if(addr1=00111100) then addr1=00000001; -如果出现busy出现上升沿实现地址的赋值 else addr1=addr1+1; -实现地址的循环 end if; end if;end process P1;P2: process(clr,busy) begin if(clr=0) then addr=00000000; -地址清零 elsif(bu

    14、syevent and busy=0) then addr=addr1; -当busy出现下降沿时地址的赋值 end if;end process P2; 由以上程序可发现:如果clr 为1,初始地址被赋值为000000001,如果busy为1,则准备下一条地址。如果busy为0,则把地址数据传送给存储器,来进行数据的存储。如果clr为0时,地址置00000000清零,则实现了清零的功能。3.3.2 汉字显示模块汉字显示模块的原理是:将汉字内码gb2312码存入只读存储器rom中,用下面程序对汉字内码进行调用,则可以将所对应的汉字显示出来。例如汉字“东”的汉字内码为2211,用显示模块二进制将

    15、2211表示出来,则可以将汉字“东”显示出来。如此,则可以显示出所需要的汉字。此液晶显示器每行显示六个字,一共两行。另外,由于只读存储器的大小为256*8,所以,当所需要的汉字的内码设置完后,应当用00000000对rom进行填充,使其达到256*8的大小,以实现循环,避免产生乱码。汉字显示模块的代码(VHDL)如下:LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;USE ieee.std_logic_arith.all;USE work.rom.all; -调用存储器中的内容ENTITY lcd

    16、1 is PORT(clr,clk,BUSY: IN std_logic; STOBE : OUT std_logic; dout: OUT std_logic_vector(7 DOWNTO 0); -实体端口的设计END lcd1;ARCHITECTURE doit OF lcd1 IS -结构体信号的设计signal counter,addr1: std_logic_vector(7 downto 0);signal addr : std_logic_vector(7 DOWNTO 0);BEGINP1: process(clr,busy) begin if(clr=0) then -清

    17、零功能的实现 addr1=00000000; elsif(busyevent and busy=1) then -busy出现上升沿地址的赋值 if(addr1=00111100) then addr1=00000001; else addr1=addr1+1; end if; end if;end process P1;P2: process(clr,busy) begin if(clr=0) then addr=00000000; -清零功能的实现 elsif(busyevent and busy=0) then -busy出现下降沿地址的赋值 addr=addr1; end if;end

    18、 process P2;P3: process(busy, clk) begin if(busy=1) then counter=00000000; -清零 elsif(clkevent and clk=1) then -clock出现上升沿时进行加法计数 counter=counter+1; end if;end process P3;dout=rom (CONV_INTEGER (addr);stobe=00000011 else 0; END doit;LIBRARY ieee;USE ieee.std_logic_1164.ALL;PACKAGE rom IS CONSTANT rom

    19、_width: NATURAL :=8; -natural表示大于零的整数 CONSTANT rom_length: NATURAL :=256; SUBTYPE rom_word IS STD_LOGIC_VECTOR(rom_width-1 DOWNTO 0); TYPE rom_table IS ARRAY ( 0 To rom_length-1) of rom_word; CONSTANT rom : rom_table :=rom_table (11110000,00000001,00000000,00010110,00001011,-2211“东”用来显示汉字的内码11110000

    20、,00000010,00000000,00010001,00010001,-1717“北”11110000,00000011,00000000,00101010,00001111,-4215“石”11110000,00000100,00000000,00110011,00101101,-5145“油”11110000,00000101,00000000,00010100,01010011,-2083“大”11110000,00000110,00000000,00110001,00000111,-4907“学”-所需要显示的汉字内码输入完整后,为了避免出现乱码,必须用00000000将256*8

    21、的只读存储器rom将存储器填满,以实现地址的循环,且不出现乱码。00000000,00000000,00000000,00000000, -如此填充,为保证rom总共的大小为256*8END rom;为节省空间,大小为256*8的内码只显示主要内容,用00000000填充的其它部分,不再作一一显示,用省略号表示。只需保证该只读存储器rom的真正大小为256*8即可。另外,根据汉字gb2312码更改只读存储器rom中的内容可以相应地更改显示汉字的字数和内容;利用点阵列,则可以显示字符;用英文码,则可以显示英文其它显示命令格式如下(不做一一列举):(1)显示8X8 ASCII字符命令格式:F1 X

    22、X YY AS该命令为4字节命令(最大执行时间为0.8毫秒,Ts2=0.8mS),其中XX:为以ASCII码为单位的屏幕行坐标值,取值范围00到0F、04到13、00到13YY:为以ASCII码为单位的屏幕列坐标值,取值范围00到1F、00到3F、00到4FAS:坐标位置上要显示的ASCII 字符码(2)显示位点阵命令格式: F2 XX YY 该命令为3字节命令(最大执行时间为0.1毫秒,Ts2=0.1mS),其中XX:为以1*1点阵为单位的屏幕行坐标值,取值范围00到7F、20到9F、00到9FYY:为以1*1点阵为单位的屏幕列坐标值,取值范围00到40、00到40、00到40第4章 液晶控

    23、制器接口的顶层文件设计4.1设计说明所谓建立顶层文件就是将已经设计好的各个功能组件组合调用,连成一个整体,使整个系统按照设计要求在实际中工作起来。而此程序中的顶层文件即是将清零模块和汉字内码显示模块结合起来,使其实现清零和显示汉字的两大功能。具体操作:将汉字显示的内码存入到大小为256*8的只读存储器rom中,然后再在清零模块的程序中对该只读存储器rom进行调用。在一个工程中用两个.vhd文件分别存入顶层文件程序和只读存储器rom的程序即可。如此,便将清零模块和汉字显示模块连成了一个整体。在液晶显示器中便可实现清零和显示汉字的两个功能。4.2 顶层文件程序代码如下:LIBRARY ieee;U

    24、SE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;USE ieee.std_logic_arith.all;USE work.rom.all;ENTITY lcd1 is -实体端口的设计 PORT(clr,clk,BUSY: IN std_logic; STOBE : OUT std_logic; dout: OUT std_logic_vector(7 DOWNTO 0);END lcd1;ARCHITECTURE doit OF lcd1 IS -结构体信号的设计signal counter,addr1: std_log

    25、ic_vector(7 downto 0);signal addr : std_logic_vector(7 DOWNTO 0);BEGINP1: process(clr,busy) begin if(clr=0) then -清零功能的实现 addr1=00000000; elsif(busyevent and busy=1) then -busy出现上升沿地址的赋值 if(addr1=00111100) then addr1=00000001; else addr1=addr1+1; end if; end if;end process P1;P2: process(clr,busy) b

    26、egin if(clr=0) then -强制清零功能的实现 addr=00000000; elsif(busyevent and busy=0) then -busy出现下降沿地址的赋值 addr=addr1; end if;end process P2;P3: process(busy, clk) begin if(busy=1) then -清零功能的实现 counter=00000000; elsif(clkevent and clk=1) then -clock出现上升沿时开始计数 counter=counter+1; end if;end process P3;dout=rom (

    27、CONV_INTEGER (addr);stobe=00000011 else 0; END doit;最后创建一个工程,在里面新建两个.vhd文件,一个用于存储顶层文件程序,一个用于输入只读存储器rom中的内容。在顶层文件程序中调用只读存储器rom中的内容,便可实现液晶显示的清零功能和显示汉字的功能。第5章 液晶控制器接口设计的测试与运行5.1液晶控制器设计仿真结果下图5-1是将上述程序在Quartus 中进行仿真后实现的波形图:图5-1:液晶控制器设计仿真结果5.2 实验箱验证情况实验连线:将CLK接时钟模块输出,使其频率为1.25MHZ2.5MHZ,BUSY接液晶模块的BUSY输入端,R

    28、EQ接液晶模块的REQ输出端,dout7.0分别接液晶模块的DB7.0输入端。在MAX7000S系列的EPM7128SLC84-15实验箱中验证情况如下图5-2:图5-2 液晶控制器接口设计实验箱验证结果结 论液晶显示器绿色环保,它的能源消耗相对于传统的CRT来说,简直是太小了(17功率大概在200W以内);对于近来逐渐引起国人重视的噪音污染也与它无缘,因为它的自身的工作特点决定了它不会产生噪音。随着仪器、仪表、电子设备等智能化程度的提高,液晶显示模块的使用也越来越广泛。在于液晶的接口中,关键是满足液晶的时序要求;在软件的编程中,关键是要进行正确的初始化、操作以及显示内容的代码。两个星期的课程

    29、设计主要经历了以下几个过程:广泛查阅资料、文献综述、总体思路的确定、方案的具体化及论证、方案的确定、软件的调试、系统的调试,还包括论文总结。我认为整个过程是一个联系非常紧密的过程,前一过程的结果为后一过程奠定了基础。在整个过程中,我不仅对液晶控制系统的每一个细节有了比较深入的掌握,而且对关于系统扩展的相关知识有了感性的认识,不仅掌握了大量的专业知识,更学会了系统模块设计的基本思想。最后要感谢老师和研究生学长对我们课程设计的指导与帮助!参考文献1侯伯亨,顾新.VHDL硬件描述语言与数字逻辑电路设计M. 西安:西安科技大学出版社,2005.2赵志海.液晶显示器及其应用M.北京:电子工业出版社.20

    30、07.3李朝青.单片机原理及接口技术M.北京:北京航空航天大学出版社,2003.4李勇.CPLD/FPGA应用开发技术与工程实践M. 北京:人民邮电出版社,2004.5李维缇,郭强.液晶显示器件应用技术M.北京:北京邮电学院出版社,2003.6罗苑棠.CPLD/FPGA常用模块与综合系统设计M. 北京:电子工业出版社,2007.7姜雪松,张海风.可编程逻辑器件和EDA设计技术M.北京:机械工业出版社,2006.8马建国,孟宪元.电子设计自动化技术基础M.北京:清华大学出版社,2008.9永胜.液晶显示接口设计与仿真M.机械工业出版社,2005.10姜维.实用电子系统设计基础M.北京:电子工业出版社,2008.


    注意事项

    本文(FPGA课程设计液晶显示.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开