基于FPGA的LCD驱动显示电路的设计与实现(共26页)_第1页
基于FPGA的LCD驱动显示电路的设计与实现(共26页)_第2页
基于FPGA的LCD驱动显示电路的设计与实现(共26页)_第3页
基于FPGA的LCD驱动显示电路的设计与实现(共26页)_第4页
基于FPGA的LCD驱动显示电路的设计与实现(共26页)_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、河南大学民生学院本科毕业论文 PAGE II 学号:1003618019河南大学民生(mnshng)学院毕 业 论 文( 2014 届)年 级 2010级 专 业 班 级 电子信息科学与技术 学 生 姓 名 指导教师姓名 指导教师职称 讲师 论文完成时间 2014年5月10日 河南大学民生学院本科毕业论文 目 录 TOC o 1-4 u 摘 要: PAGEREF _Toc21047 21 绪论(xln) PAGEREF _Toc14395 31.1 选题(xun t)背景 PAGEREF _Toc15592 31.2 LCD发展(fzhn) PAGEREF _Toc26662 31.3 选题目

2、的 PAGEREF _Toc25162 42 关键技术 PAGEREF _Toc18743 42.1 FPGA简介 PAGEREF _Toc31129 42.2 LCD简介 PAGEREF _Toc18791 53 系统分析 PAGEREF _Toc17873 73.1 FPGA的设计方法 PAGEREF _Toc8454 73.2 Verilog HDL PAGEREF _Toc8765 83.3 TC1602液晶模块工作方式 PAGEREF _Toc6534 83.4 系统开发环境 PAGEREF _Toc26768 124 系统设计与验证 PAGEREF _Toc11182 124.1

3、系统概述 PAGEREF _Toc9428 124.2 功能结构设计 PAGEREF _Toc14420 124.3 设计流程图与状态的设计 PAGEREF _Toc28074 124.4 系统实现 PAGEREF _Toc30744 154.5 部分程序代码 PAGEREF _Toc11184 165 系统测试 PAGEREF _Toc25007 205.1 仿真波形 PAGEREF _Toc12561 205.2 对TC1602液晶显示器验证 PAGEREF _Toc954 206 结论 PAGEREF _Toc19076 20参考文献 PAGEREF _Toc30281 21基于FPGA

4、的LCD驱动显示电路(dinl)的设计与实现(河南(h nn)大学民生学院,河南 开封,475004)摘 要: 本课题主要任务是设计基于FPGA的LCD驱动电路的设计和实现,兼顾好程序的易用性,以方便之后模块的移植和应用。控制器部分采用Verilog语言编写,主体程序采用了状态机作为主要控制方式。最后实现使用FPGA在LCD上显示任意的英文字符和阿拉伯数字,另外要能根据输入数据(shj)的变化同步变化LCD上显示的内容。同时要能将储存模块中的数据正常地显示在LCD上。本文中对FPGA,LCD,Quartus II,硬件设计工具等进行了简单的介绍,对其功能进行了简单的描述,并了解了LCD液晶显示

5、器的发展历史,日常应用以及相对比于其他种类显示器的优缺点,并对基于FPGA的LCD液晶显示器驱动电路未来的发展趋势进行了展望。关键词: FPGA LCD Verilog 状态机Design and Implementation of LCD Drive Display Circuit based on FPGAAbstract: In this project, the main object is to design a LCD controller based on FPGA, and at the same time emphasize on the convenience for th

6、e later application and migration.The program of the controller is written by Verilog language, and the main body of the program used state machine as the primary control method. displayed picture which was put earlier. In this project, FPGA, LCD, Quartus II, I hardware design tools simply introduce

7、s its functions were a simple description, and understanding the LCD monitor the development history, and relative everyday applications than in other types of monitor based on FPGA advantages and disadvantages, and the LCD monitor driver circuit future development trends are discussed. Key words: F

8、PGA, LCD, Verilog, State Machine1 绪论(xln)1.1 选题(xun t)背景本课题主要任务是设计基于FPGA的LCD驱动显示电路的设计与实现。设计中保证程序的易用性和可移植性。设计的基本要求要确保输出能够根据(gnj)输入的变化而同时变化。本次设计有FPGA产品的开发有一定的帮助,其开发时间短,移植性高对LCD的开发有指导性的意义。增加了人机之间的交互性,为我们的生活和行业发展提供了便利。FPGA是一种现场可以编程的门阵列器件。FPGA与之前的GAL,PAL,CPLD等可编程器件有很大的不同之处。之前的可编程器件往往在门电路数目上受到局限,所以在功能上也受到

9、了很大程度上的限制。FPGA则在这方面不受制约。作为进一步发展的产物,FPGA有更好的实用性。LCD,即液晶显示器,是一种采用了液晶控制透光技术来实现色彩的显示器,与CRT显示器相比有很多优点,如轻薄、能耗低、辐射小等,已经应用在各行各业,有STN、TFT、LTPS、OLED等多种类型。液晶是一种几乎完全透明的物质。液晶能够作为显示设备是基于它的物理和化学性质。由于液晶内部分子排布的特殊性,造就了液晶可以显示的光学性质。分子排列的改变会引起光线的改变,最初的研究者认为液晶的分子排列时不变的,直到20世纪60年代,有人发现在外加电压的情况下液晶分子排列会发生变化,能引起光线的折射和扭曲,由此发展

10、了液晶显示设备。1.2 LCD发展液晶显示器件(LCD)是目前最有活力的电子产品之一。液晶显示屏已经渗透到各行各业各个领域。LCD在电压,功耗,体积等方面有显著的优点。由于它的优点使得在生产中更加的便宜,产品更容易携带,性能方面也毫不逊色。LCD已经成为现在社会显示设备的首选器件。LCD的快速发展(fzhn)扩大了显示设备的应用领域,它体积小的特点使得它在生活中的应用更加广泛。LCD和CRT是目前显示技术上的两大类,已形成互补,共同发展的局面。在科学技术领域,LCD产业的发展日益受到重视,许多国家都投入了大量的人力与物力。显示设备是我们(w men)生活中不可缺少的一部分,尽管在显示领域出现了

11、有机EL,FFD,PDP等竞争对手,但基于LCD的综合性优点,在未来很长一段时间内,LCD显示设备仍然是首选最重要的显示器件之一。本次研究的LCD驱动电路的设计与实现和现实生活有密切联系,有很大的实用效果。1.3 选题(xun t)目的本课题主要是设计基于FPGA的LCD驱动电路,设计要求是使其更加接近生活,容易使用,同时方便后续的学习和使用。结合外围电路等液晶显示模块,通过软件测试,来实现英文字母的显示。通过不断的改写,调试,使其能正确的在LCD上显示内容,达到最初的设计目的和初衷。2 关键技术2.1 FPGA简介FPGA(FieldProgrammable Gate Array),即现场可

12、编程门阵列FPGA与之前的GAL,PAL,CPLD等可编程器件有很大的不同之处。之前的可编程器件往往在门电路数目上受到局限,所以在功能上也受到了很大程度上的限制。FPGA不仅解决了可编程器件门电路数局限性的不足,还克服了定制电路的不足。作为进一步发展的产物,FPGA有更好的实用性。 FPGA内部包含三部分:输出模块IOB,可配置逻辑模块CLB,内部连线。它采用了一种逻辑单元阵列的新概念。FPGA内部有一个小型的查找表,查找表与一个D触发器的输入端相联接。通过D触发器来驱动其他逻辑电路或I/O接口。逻辑单元阵列的设计既可以实现组合逻辑又可以实现时序逻辑。FPGA最终的逻辑功能是由存储器中的值决定

13、的。2.1.1 FPGA的特点FPGA允许(ynx)无限次编程。FPGA有以下(yxi)几个特点:(1)采用FPGA设计ASIC的电路不需要(xyo)经过生产就能确保得到合适的芯片,节约了成本。(2)FPGA可以作为其它电路的中试样片。(3)FPGA有丰富的触发器和I/O引脚。(4)FPGA设计周期短,开发费用低,风险最小。(5)FPGA采用高速CHMOS工艺,功耗低,能与其他工艺的电平相兼容。综上所述,FPGA芯片是小批量系统的最佳选择之一。它能够提高系统的可靠性和集成度。2.1.2 FPGA的设计法则(1)面积与速度的互换 面积是指FPGA的内部芯片资源,包括逻辑资源和I/O资源等,速度指

14、的是FPGA工作时的最高频率。面积与速度往往不可兼得,因此设计者必须要有所取舍。面积越小,就可以用更低的成本来实现产品的功能。增大芯片的面积可以提高FPGA的工作速度,但面积的增大意为着成本的提高,体积也会随之增大,因此不能一味追求速度而无限的增大面积。在实际的设计中有许多被重复使用次数不同的模块它们占据了大量的资源,造成面积的堆积和资源的浪费。在设计改造中,我们可以用一个最小的复用单元来替代这些被重复使用的模块,当然这样的改进必然需要引进其他的一些资源。总之我们们的要求是在速度得以保证的情况下,尽可能的减小面积,这样不仅能节约成本,同时也能保证产品的竞争力。 (2)硬件可实现原则 FPGA设

15、计有专门的语言。Verilog HDL和VHDL是常用的两种。在采用HDL语言来描述一个硬件电路功能时,一定要确保代码描述的电路是可综合的,在硬件方面是可实现的。Verilog HDL语言描述的是硬件结构,所以一定要确保硬件可实现,编译能够生成硬件电路。 (3)同步设计原则 FPGA设计电路有两种基本形式同步和异步。异步电路有一个最大的缺点就是会产生毛刺。 而同步电路由于是有各种触发器构成的,它的输出食欲时钟边沿驱动触发器产生的,因此可以很好的避免毛刺的产生。2.2 LCD简介(jin ji)LCD ( Liquid Crystal Display 的简称(jinchng))液晶显示器。LCD

16、由两块平行的玻璃基板构成(guchng),上基板为彩色滤光片,下基板为TFT(薄膜晶体管)。工作时光线进入基板后会在液晶分子的作用下发生扭转,这样就可以控制偏振光的出射。液晶分子的转动是由TFT上外加的电压信号控制的。LCD按照背光源的不同可分为CCFL和LED两种。以CCFL(冷阴极荧光灯管)作为背光光源的液晶显示器,功耗较高,但其色彩显示好。 LED液晶显示器以发光二极管作为背光光源,其优势是体积小,功耗低,同时还可达到较高的亮度,不足之处是色彩表现不佳。专业绘图LCD在色彩方面要求比较高,所以大都不采用这种方式。2.2.1 LCD技术参数 对比度:LCD制造中需要选用滤光片,定向膜和控制

17、IC等配件,这些配件与面积对比度有关。 亮度:作为显示设备,亮度是首要考虑因素,LCD借助外光源发光灯管数目越多亮度越大。 信号: 液晶在暗亮之间转换的反应时间,响应时间越小越好,一般以毫秒(ms)为单位。 可视角度:光线通过液晶后的就有了方向性。可视角度是现在技术上需要解决的一个重大问题。为解决可视角度的问题目前有三种比较流的技术:TN+FILM、IPS(IN-PLANE -SWITCHING)和MVA(MULTI-DOMAIN VERTICAL alignMENT)。2.2.2 LCD的分类LCD发展至今它的分类主要依据其控制(kngzh)方式,有主动矩阵式和被动矩阵式两种。两种方式有着各

18、自的优缺点:被动矩阵式的优点是成本低廉,但它的反应速度慢,在亮度和可视角度上不如主动矩阵式。所以在应用上有很大的局限性,但由于它的成本低所以任有一部分显示设备使用被动矩阵式。主动矩阵式的色彩丰富,可视角度宽广,亮度高。这都是因为其内部有一个内建的晶体管。主动矩阵式有更多的优点,所以受到广泛的青睐,市场占有额也大。体积小,耗电量低是LCD显示器的优点,但与CRT显示器相比,LCD显示器还有不足之处,不够成熟稳定。2.2.3 LCD工作(gngzu)原理我们都知道(zh do)物质只有固态、液态、气态三种型态。物质分子的内部结构决定着这个物质的物理和化学性质。液体分子质心排列没有任何规律性,没有规

19、律性我们就无从研究,而液晶是一种分子具有方向性的晶体。被动矩阵式的工作原理是让光线自上而下的照射,由于液晶的方向性所以一般只有一个角度的光线能穿透下来。当有光线穿透时先要进入上夹板的沟槽中,再通过排列不整齐的液晶分子通路,然后进入下面的偏光板,这样就形成了一条光线穿透路径。液晶状态的改变是由外界电压决定的,有外界电压时分子内部的排列方式会变为竖立状态。当有外界电压影响时,液晶的初始状态就会发生改变,由原来的正常排列方式变成竖立的状态。经过液晶的光会被第二次偏光板吸收,但由于整个结构处于不透光的状态,所以显示屏会呈现黑色。没有外加电压时,液晶处于初始态,它会把入射进来的光线折射90度,显示屏会呈

20、现白色。为了使每个像素都能产生色彩,被动矩阵式采用冷阴极灯管作为背光源。主动矩阵式的显示器结构与被动式相似,但显示原理却有许多不同之处。两者的光线射入方式不同,主动矩阵式的光线自下向上射出,借助液晶分子传导光线。主动矩阵式上层电极为FET晶体管,下层是共通电极。主动矩阵式分子状态的改变是由FET电极控制的。通过不断的遮光和透光来达到显示的目的。主动矩阵式与被动矩阵式相比具有记忆保持功能,它能够保持先前液晶分子的状态。当下一次FET电极加电发生变化时状态才会改变。LCD具有以下特点:低电压微功耗体积小被动(bidng)显示型信息量大容易(rngy)彩色化无电磁辐射(din c f sh)寿命长3

21、 系统分析3.1 FPGA的设计方法FPGA的设计方法有“自下而上”和“自顶向下”两种。在大规模的FPGA设计中一般选择第二种设计方法。这种设计方法的特点在于它所采用的语言能够独立制造企业的产品结构。直接在功能级设计上定义产品,与功能仿真技术相结合,最终确保设计产品的正确性。完成功能定义后,要进行布局布线。在布局布线需要有网标文件,同时要结合厂商的布局布线器进行操作。在QuartusII中可以直接由语言生成。布局布线的结果会返回到仿真器中,进行下一步的验证。这样可以避免布局布线产生的门延时和线延时影响设计性能。“自顶向下”的优越性在于:第一,设计可以重复利用。模块化已经成为设计的主流,集成程度

22、的提高使得调用更为方便。“自顶向下”的设计方式与芯片结构无关,设计出的产品可以保存,方便需要时重新利用。第二,“自顶向下”的设计方式与芯片结构无关,所以设计者在设计时可以集中精力在产品上,降低了设计风险,缩短了开发时间,节约成本。第三,设计规模的提高,减小了设计者的工作量。FPGA语言能完成各种功能的描述,通过语言可以直接生成电路图,不需要再手工绘图。最后,在芯片的选择上更加灵活。设计者可以通过比对各种芯片的速度,价格,性能等多方面指标选择最佳的结果进行设计。FPGA设计主要采用VHDL和Verilog HDL两种语言,本次使用的是Verilog HDL语言。3.2 Verilog HDLVe

23、rilog HDL是硬件描述语言的一种,也是本次论文主要运用的语言,主要用于抽象数字系统的建模。它既可以完成简单的门级建模,也可以实现复杂的电子系统建模。Verilog HDL 语言(yyn)具有以下功能:(1)Verilog HDL语言提供了编程语言接口,这样就可以(ky)从外部控制,监测模拟验证期间的问题。(2)Verilog HDL语言作用广,无论是设计,响应监测,验证还是波形(b xn)产生都可以使用同一种建模语言,避免了分别使用多种语言,极大了提高了便利性。(3)Verilog HDL语言定义了语法,每个语法结构都有清晰的模拟,仿真语义。这样编写出来的模型能够在仿真器里进行验证。(4

24、)Verilog HDL提供了扩展的建模功能,便于使用者学习和使用,能够满足大多数的建模应用。3.3 TC1602液晶模块工作方式本次设计采用的TC1602液晶显示模块为标准的16脚接口。引脚功能如下: 引脚1:VSS为电源地,接GND。引脚2:VDD为电源,接+5V电源。引脚3:VL为液晶显示器对比度调节端。引脚4:RS为寄存器选择端。高电平和低电平分别对应数据寄存器和指令寄存器。引脚5:RW为读写信号控制端,低电平时进行的是写操作,高电平时进行的是读操作。当RW=H,RS=L时表示读忙信号。当RW=L,RS=L时表示显示地址或者写入指令。当RW=L,RS=H时可以写入数据。直接接地表示不需

25、要读信号。引脚6:E为使能端。当E端由高电平转变为低电平时,液晶模块开始工作,执行操作命令。引脚714:D0D7为8位双向数据线。引脚15:BLA背光电源正极(+5V)输入引脚。引脚16:BLK背光电源负极,接GND。TC 1602液晶模块之所以能显示字符和数字(shz),是因为其内部带有标准字库。32个510点阵(din zhn)字符和192个57点阵字符存储在内部字符发生存储器(CGROM)中。工作时通过内部寻址,显示所需要(xyo)的字符。表3.1为字符生成RAM,供用户自定义字符。每个字符都对应一个固定代码。 表3.1字符生成器RAMTC1602有11条控制指令,表3.2所示(1为高电

26、平,0为低电平)。 表3.2 TC1602控制指令各指令(zhlng)功能如下:指令(zhlng)1:清显示。功能:送20H“空代码(di m)”到所有的地址计数器中,清除地址计数器中的显示数据,同时地址计数器(AC)清零。光标返回至原始状态,I/D变为高电平,AC为自动加1。 指令2:光标复位。功能:将DDRAM地址计数器(AC)清零光标返回到原始状态,不改变其中的内容。 指令3:输入方式设置。功能:设置光标的移动方向,并且指定整体的显示有没有移动,用来设置需要显示字符的输入方式。字符的输入方式由参数位I/D和SH决定。I/D表示进行DDRAM或CGRAM读/写后,地址的修改方式,也是光标的

27、移动方式:I/D=0:光标自右往左移动,AC减一。I/D=1:光标自左往右移动,AC加一。SH=0:写入字符时,允许显示画面滚动。SH=1:写入字符时,禁止显示画面滚动。指令4:控制(kngzh)显示开关。功能:该指令用来控制光标及画面是否闪烁。有三个状态位:B、C、D:B:控制光标是否(sh fu)闪烁,高电平闪烁,低电平不闪烁;C:控制光标开关控制位。高电平表示有光标,低电平表示无光标;D:控制整体显示的开与关,高电平控制开显示,低电平控制关显示。指令(zhlng)5:光标或显示整体显示移位位置。功能: S/C和R/L对应操作:0 0:光标由右向左移动且AC减一。显示不动0 1:光标由左向

28、右移动且AC加一。显示不动1 0:所有显示由右向左移动,光标跟随移动,AC减一1 1:所有显示由左向右移动,光标跟随移动,AC加一指令6:功能设置命令。功能:设置接口数据位数以及显示模式。DL:DL=H时,DB0DB7有效,数据接口为8位。DL=L时,DB4DB7有效,数据接口为4位。数据传输时先传高4位,后传低4位。N:低电平时为单行显示,高电平时双行显示。 F:点阵字符控制位。低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符,无论高低电平,显示都加光标。指令7: CGRAM地址设置。功能:将CGRAM地址送入AC中。字符发生存储器将成为计算机进行读/写操作的操作对象。指令8:D

29、DRAM地址设置。功能:将地址计数器的地址送入AC中。N为低电平时,DDRAM范围被设置为80H到FFH。N为高电平时,地址计数器范围被分为两行,第一行地址计数器地址范围为80HBFH,第二行地址计数器地址范围为C0HFFH。指令9:读忙标志位及地址。功能:最高位(BF)显示忙信号时,低7位存储地址计数器的内容。BF=H:内部正在执行操作,要等待该指令完成到BF=L再执行下一条指令。指令10:写数据。功能:将数据写入CGRAM 或DDRAM。RS为高RW为低电平时,为数据的写操作;RS和RW均为低电平时,为指令的写操作。执行写操作后,地址自动加/减1(更具输入方式设置指令)。指令11:读数据。

30、功能:从字符发生存储器 或地址计数器读出8位数据。如果从地址计数器读数据,执行(zhxng)读操作后,地址自动加/减1。其中(qzhng),CLK、RST 分别(fnbi)是50MHZ时钟信号和复位输入信号。复位信号低电平有效。RS、RW、E和data分别为与液晶显示屏控制芯片连接的控制信号。RS为寄存器选择控制输出信号,当RS 为低电平时,控制信号被传输,当RS为高电平时,数据信号被传输。RW为输出信号读/写控制位,当RW为低电平时,液晶显示屏控制芯片被写入数据。当RW为高电平时,向液晶显示芯片读取数据。E控制脉冲输出信号的读写,高电平有效;data 为数据信号。3.4 系统开发环境硬件配置

31、:TC1602液晶模块操作系统:Windows XP仿真工具:Quartus II开发语言:Verilog4 系统设计与验证4.1 系统概述该课题研究的是基于FPGA的LCD驱动电路的设计与实现,其主体部分采用状态机作为主要控制方式,控制器部分用Verilog语言编写。通过各部分的联接最终实现在LCD上显示任意数字和字母,同时还兼顾数据的同步性。4.2 功能结构设计4.2.1 接口部分设计该设计使用Max II EPM240T100C5芯片与液晶显示模块相联接来实现显示功能,通过芯片中的驱动程序来驱动液晶模块显示相应的字母或数字。4.2.2 液晶模块内部显示地址液晶显示模块显示速度比较迟钝(c

32、hdn),因此在执行每条指令之前要先确认模块是否在正在进行其他指令。若忙标志为低电平,表示不忙;忙标志为高电平时,指令失效。显示字符时要根据显示字符地址。图4.2为其内部显示地址: 图4.2液晶显示模块内部(nib)显示地址4.3 设计(shj)流程图与状态的设计整体设计框图:FPGA驱动电路 CLKClk_buf, LCD_ETC1602显示模块按键控制 图4.3 整体设计原理方框图 4.3.1 控制指令流程图接通电源等待大于等于15ms重复发送功能控制字发送模式控制字发送打开显示控制字完成初始化命令等待大于等于1.64ms发送DDRAM地址发送需要显示字符的编码如图所示可以通过(tnggu

33、)状态机实现对液晶显示屏控制芯片的控制。该流程采用(ciyng)计数器与状态机相结合的方式,为每个状态机设置各自所需的工作时间,确保了每次操作的顺利进行。通过计数器与状态设置延迟计数值相比较,给状态机发出计数时间到的信号,通知状态机进入到下一个工作状态,直到所有的数据传送完毕后,再循环向液晶显示屏控制芯片发送显示字符的编码数据。 4.3.2 状态机状态机工作(gngzu)图解:S 0S 7S 1S 6S 4S 3S 5S 2!resetDatacnt10Datacnt=39Datacnt=39WrongDatacnt!=39S0:write_instrS1:write_dataup4_1S2:

34、write_datadown4_1S3:set_ddramaddupS4:set_ddramadddownS5:write_dataup4_2S6: write_datadown4_2S7:Default当复位键reset等于1的时候(sh hou),S0进入工作状态,当datacnt小于或等于10的时候S0状态循环工作,当datacnt大于10的时候跳转到S1状态,在S1状态顺序执行完每条语句之后跳转到S2状态,这时判断datacnt是否等于39,若不等于39跳转回S1状态,重新执行S1状态的每条语句直到datacnt等于39时,跳转进入S3状态,在执行完S3状态的每条语句之后,跳转到S4状

35、态。执行完S4状态的语句后,跳转到S5状态。顺序执行S5状态的每条语句,跳转到S6状态。在S6状态时分为两种情况需做出判断:如果datacnt不等于39的时候,跳转回S5状态并重新执行S5状态的语句;如果datacnt=39的时候,跳转回S1状态,并重新执行S1状态到S6状态,不断循环。如果状态机工作出现错误,设置一个错误状态S7,此时跳转到错误状态S7,之后跳转回S0状态,这就是本状态机的整个工作流程。4.4 系统(xtng)实现4.4.1 顶层(dn cn)模块图在Quartus II中仿真(fn zhn)后得到电路图如图所示 顶层模块图参数定义: IDLE = 4d0, /空闲 CLEA

36、R = 4d1, /清屏指令 SET_FUNCTION = 4d2, /工作方式设置指令 SWITCH_MODE = 4d3, /开关控制指令 SET_MODE = 4d4, /输入方式设置 SET_DDRAM1 = 4d5, /设定第一行DDRAM地址指令 WRITE_RAM1 = 4d6, /向第一行写入的数码 SET_DDRAM2 = 4d7, /设定第2行DDRAM地址指令 WRITE_RAM2 = 4d8, /向第2行写入的数码 SHIFT = 4d9, /设定显示屏或光标移动方向指令 STOP = 4d10, 从图中我们可以(ky)看到定义的Parameter,状态机的十个状态,以

37、及输入输出端口,其中,rst是复位端。LCD_RS输出连接至LCD的RS引脚,代表寄存器选择,“1”时为选择(xunz)数据寄存器,“0”时为指令寄存器。LCD_RW输出(shch)连接至LCD的RW引脚,代表读写信号线,“0”时为写操作,“1”时为读操作。LCD_E输出连接至LCD的EN引脚,当该引脚出现下降沿时,液晶执行命令。LCD_DATA输出连接至LCD的D7D0引脚,用于写入待显示字符或指令。4.5 部分程序代码always (posedge clk_int or negedge rst)if(!rst)beginstate=IDLE;address=6b000000;LCD_D=8

38、b00000000;LCD_RS=0;LCD_RW=0;endelsebegincase(state)IDLE: begin LCD_D=8bzzzz_zzzz;state=CLEAR;endCLEAR: begin LCD_RS=0;LCD_RW=0;LCD_D=8b0000_0001; state=SETFUNCTION; endSETFUNCTION:begin LCD_RS=0;LCD_RW=0; LCD_D7:5=3b001; LCD_D4=LCD_Dwidth8; LCD_D3=twoline; LCD_D2=font5x10; LCD_D1:0=2b00; state=SWITC

39、HMODE; endSWITCHMODE :begin LCD_RS=0; LCD_RW=0; LCD_D7:3=5b00001; LCD_D2=open_display; LCD_D1=open_cur; LCD_D0=blank_cur; state=SETMODE;end SETMODE:begin LCD_RS=0; LCD_RW=0; LCD_D7:2=6b000001; LCD_D1=cur_inc; LCD_D0=cur_noshift; state=SHIFT; end SHIFT:begin LCD_RS=0; LCD_RW=0; LCD_D7:4=4b0001; LCD_D

40、3=shift_cur; LCD_D2=left_shift; LCD_D1:0=2b00;state=SETDDRAM1; end SETDDRAM1:begin LCD_RS=0; LCD_RW=0; LCD_D=8b10000000; state=WRITERAM1; end SETDDRAM2:begin LCD_RS=0; LCD_RW=0; LCD_D=8b11000000; state=WRITERAM2; end WRITERAM1:begin if(address=15)beginLCD_RS=1;LCD_RW=0;LCD_D=ddram(address);address=address+1;state=WRITERAM1;endelsebeginLCD_RS=0;LCD_RW=0;state=SETDDRAM2;endendWRITERAM2 :begin if(address=31) beginLCD_RS=1;LCD_RW=0;LCD_D=ddram(address);address=address+1;state=WRITERAM2; end elsebeginLCD_RS=0;LCD_RW=0;state=SHIFT;address=

温馨提示

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

评论

0/150

提交评论