FPGA控制的LCD显示电路设计_第1页
FPGA控制的LCD显示电路设计_第2页
FPGA控制的LCD显示电路设计_第3页
FPGA控制的LCD显示电路设计_第4页
FPGA控制的LCD显示电路设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、FPGA控制的LCD显示电路设计一、实验目的1了解12864点阵型液晶显示器的显示原理。2掌握12864点阵型液晶显示器的接口设计。3.利用12864点阵型液晶显示器来实现LCD广告字幕机的设计。二、实验内容与要求利用12864点阵型液晶显示模块设计一个可显示图形和中文字符的LCD广告字幕机。1.基本要求:能够显示图形和文字。要求显示的图形或文字稳定、清晰无串扰。在目测条件下LCD显示屏各点亮度均匀、充足。2.提高要求图形或文字显示有静止、移入移出等显示方式。显示屏刷新频率要求达到85Hz。一.引言LCD液晶显示器是LiquidCrystalDisplay的简称,LCD的构造是在两片平行的玻璃

2、当中放置液态的晶体,两片玻璃中间有许多垂直和水平的细小电线,透过通电与否来控制杆状水晶分子改变方向,将光线折射出来产生画面。比CRT要好的多,但是价钱较其它显示器贵。FPGA是英文FieldProgrammableGateArray的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个概念,内部包括可配置逻辑模块CLB(ConfigurableLogic

3、Block)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有:采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。FPGA可做其它全定制或半定制ASIC电路的中试样片。FPGA内部有丰富的触发器和IO引脚。FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。二.工作原理四、12864点阵型液晶显示器本设计所用的JM12864A是一种图形点阵液晶显示器,它主要由行驱动器、列驱动器及128X64全点阵液晶显示器组

4、成。可完成图形显示;也可以显示8X4个(16X16点阵)汉字。1.12864点阵型液晶显示器的显示原理12864液晶显示屏共有128X64点阵,即每行显示128点,每列显示64点。此种型号的液晶显示屏以中间间隔平均划分为左屏和右屏分别显示,均为64X64点阵,而且各自都有独立的片选信号控制选择。先显示左屏,左屏全部显示完后才能显示右屏。显示屏上的显示数据由显示数据随机存储器DDRAM提供。DDRAM每字节中的每1个bit,对应显示屏上的1个点。bit值为1,对应点显示,反之不显示。DDRAM与显示屏的对应位置如图1所示。每半屏显示数据共有512字节的DDRAM,分为8个数据页来管理,这些页对应

5、显示屏从上到下编号为07页,每页64字节,涵盖半边显示屏的64行X64列X8bit点阵数据。向显示屏写数据实际上是向DDRAM中写数据,DDRAM不同页和不同列中的字节数据唯一对应显示屏一行的8个显示点。例如,向DDRAM第0页的第0列写入数据00010100B,则显示屏左上角第0列的8个显示点只有从上往下的第3和5点显示。不同页和不同列DDRAM的寻址,通过左半屏和右半屏各自的页地址计数器和列地址计数器实现,因此对显示屏DDRAM写显示数据前,需要先设置页地址和列地址。00-000000OOQOOOOOOOOOOOQOO00000000000000-5OOOQOOOOOOOQOOOOO000

6、0000000000000O00O000OOO0OOOOOOOOQOOOO00000000ooocQQ000000000000000000000000000000000图112864液晶显示屏与内部RAM的对应关系212864液晶显示器的内部结构及外部引脚1)12864液晶显示器的内部结构12864液晶显示器的内部结构框图如图2。图212864点阵型液晶显示器的内部结构框图IC1控制模块的左半屏,IC2控制模块的右半屏。IC3为行驱动器。IC1,IC2为列驱动器。IC1,IC2,IC3含有如下主要功能器件。了解如下器件有利于对LCD模块的编程。指令寄存器(IR)IR是用来寄存指令码,与数据寄存

7、器寄存数据相对应当D/I=1时,在E信号下降沿的作用下,指令码写入IR。.数据寄存器(DR)DR是用来寄存数据的,与指令寄存器寄存指令相对应当D/I=1时,在E信号的下降沿作用下,图形显示数据写入DR,或在E信号高电平作用下由DR读到DB7DBO数据总线.DR和DDRAM之间的数据传输是模块内部自动执行的。状态寄存器有效数据位3位,用于记录“忙”信号标志位(BF),复位标志位(RST)以及开/关显示状态位(ON/OFF)。XY地址计数器XY地址计数器是一个9位计数器。高三位是X地址计数器,低6位为Y地址计数器,XY地址计数器实际上是作为DDRAM的地址指针,X地址计数器为DDRAM的页指针,Y

8、地址计数器为DDRAM的Y地址指针。X地址计数器是没有记数功能的,只能用指令设置。Y地址计数器具有循环记数功能,各显示数据写入后,Y地址自动加1,Y地址指针从0到63。显示数据RAM(DDRAM)DDRAM是存贮图形显示数据的。DDRAM与地址和显示位置的关系见图1。Z地址计数器Z地址计数器是一个6位计数器,此计数器具备循环记数功能,它是用于显示行扫描同步。当一行扫描完成,此地址计数器自动加1,指向下一行扫描数据,RST复位后Z地址计数器为0。Z地址计数器可以用指令DISPLAYSTARTLINE预置。因此,显示屏幕的起始行就由此指令控制,即DDRAM的数据从哪一行开始显示在屏幕的第一行。此模

9、块的DDRAM共64行,屏幕可以循环滚动显示64行。2)12864液晶显示器的外部引脚12864液晶显示模块共有20个引脚,包括8位双向数据线、6条控制线及电源线等。具体引脚功能见下表所示。管脚号管脚名称电平管脚功能描述1VSS0V电源地2VDD5.0V电源电压3V0-液晶显示器驱动电压4D/IH/LD/I-“H”,表示DB7DB0为显示数据D/I-“L”,表示DB7DB0为显示指令数据5R/WH/LR/W=“H”,E=“H”,数据被读到DB7DB0R/W=“L”,E=“HL”,DB7DBO的数据被写到IR或DR6EH/L使能信号:R/W-“L”,E信号下降沿锁存DB7DB0R/W=“H”,E

10、=“H”DRAM数据读到DB7DB0(使能端,高电平有效)7DB0H/L数据线8DB1H/L数据线9DB2H/L数据线10DB3H/L数据线管脚号管脚名称电平管脚功能描述11DB4H/L数据线12DB5H/L数据线13DB6H/L数据线14DB7H/L数据线15CS1H/L左半屏片选信号,低电平有效16CS2H/L右半屏片选信号,低电平有效17RESETH/L复位信号,低电平复位18VEE-10VLCD驱动负电压19IED+DC+5V背光板电源20IED-DC0V背光板电源312864液晶显示器的编程指令1)显示开关控制(DISPLAYON/OFF)代码R/WD/IDB7DB6DB5DB4DB

11、3DB2DB1DB0形式0000111111设置屏幕显示开/关。D/I=1,开显示。D=0,关显示。不影响DDRAM中的内容。2)设置显示起始行(DISPLAYSTARTLINE)代码R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0形式0011A5A4A3A2A1A0前面在介绍Z地址计数器时已经描述了显示起始行是由Z地址计数器控制的。A5A06位地址自动送入Z地址计数器,起始行的地址可以是063的任意一行。例如:选择A5A0是62,则起始行与DDRAM行的对应关系如下:DDRAM行:626301232829屏幕显示行:12345631323)设置页地址(SETPAGE“XADDRE

12、SS”)代码R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0形式0010111A2A1A0所谓页地址就是DDRAM的行地址,8行为一页,模块共64行即8页,A2A0表示07页。读写数据对地址没有影响,页地址由本指令或RST信号改变复位后页地址为0。4)设置Y地址(SETYADDRESS)代码R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0形式0001A5A4A3A2A1A0此指令的作用是将A5A0送入Y地址计数器,作为DDRAM的Y地址指针。在对DDRAM进行读写操作后,Y地址指针自动加1,指向下一个DDRAM单元。5)读状态(STATUSREAD)代码R/WD/IDB

13、7DB6DB5DB4DB3DB2DB1DB0形式10BUSY0ON/OFFRET0000当R/W=1D/I=0时,在E信号为“H”的作用下,状态分别输出到数据总线(DB7DB0)的相应位。BF:BF=1,内部正在进行操作,BF=0,空闲状态。ON/OFF:ON/OFF=1,表示显示打开,ON/OFF=0,表示显示关闭。RST:RST=1表示内部正在初始化,此时组件不接受任何指令和数据。6)写显示数据(WRITEDISPLAYDATE)代码R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0形式01D7D6D5D4D3D2D1D0D7DO为显示数据,此指令把D7DO写入相应的DDRAM单

14、元,Y地址指针自动加1。7)读显示数据(READDISPLAYDATE)代码R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0形式11D7D6D5D4D3D2D1D0此指令把DDRAM的内容D7D0读到数据总线DB7DB0,Y地址指针自动加1。五、12864点阵型液晶显示器的接口电路设计通过前面对12864显示屏引脚功能的分析可以知道,该模块有一个整体的片选信号E”,只有当该信号为高电平时,所有的电路才会有效。另外左右半屏各有一个选择信号CS1和CS2,CS1和CS2各自为低电平时,分别选中左半屏和右半屏。为了区分读写的是数据还是指令,还设置了一个数据/指令控制线D/I。根据这些原则

15、,设计出接口电路如图3所示。由于CS0的地址范围为280H-283H,由接口电路的设计可得液晶屏的相关地址,如下表。操作A1A0端口地址向左半屏写指令00280H向右半屏与指令10282H读/写左半屏数据01281H读/写右半屏数据11283H读状态寄存器00280H五、软件设计对12864的具体结构有了比较深入的了解,12864分左右两屏,像素点为128*64个像素点,行有128个像素点,列有64个像素点,行又设置为8页,在12864默认状态下中文字体都是16*16的大小,每个页包含8个像素行,所以要显示一个中文就需要2页;初始行的设定可以使得你要显示的字出现在任意你想要的位置。对液晶显示器

16、的编程就是向DDRAM中写数据。在写DDRAM之前,需要先清除RAM,且左屏和右屏要分别进行清除。方法就是向RAM的所有单元写入0值。12864写驱动程序的时候需要写七个指令分别是:“检忙”,“写指令”,“写数据”,“写显示开关”,“写页”,“写列”,“写初始行”。向LCD写显示数据的流程图如下:液晶显示器的编程流程如下图:YLCD工作忙N已显示64列NYNY页地址已设置8次将起始页地址存入BL页地址加1设置页地址设置列地址显示RAM结束六.LCD的应用广告字幕机是用LCD输出不同的汉字和图形。要液晶显示器显示不同的图形或汉字就是向DDRAM中写入不同的数据。根据前面所说的液晶显示屏与DDRA

17、M的对应关系,可以构造不同的数据来显示不同的图形和汉字。七实验结果用VHDL语言进行仿真后生成的波形如下图所示:生成的RTL电路图如下:I0李国洪,沈明山,胡辉编著,可编程器件EDA技术与实践,北京:机械工业出版社,2004.7源程序附件如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYLCDISPORT(CLK:INSTD_LOGIC;RS,RW,CS1,CS2,E:OUTSTD_LOGIC;ADDRESS:OUTSTD_LOGI

18、C_VECTOR(4DOWNTO0);Q:OUTSTD_LOGIC_VECTOR(7DOWNTO0);END;ARCHITECTUREBEHAVOFLCDISTYPESTATESIS(ST0,ST1,ST2,ST3,ST4,ST5,ST6,ST7,ST8,ST9,ST10,ST11,ST12,ST13,ST14,ST15,ST16);-状态定意SIGNALPRE_STATE,NEXT_STATE:STATES;SIGNALDATALOCK,EN,RST1:STD_LOGIC;SIGNALADDR:INTEGERRANGE0TO65:=0;SIGNALX*/(00100000),(0110000

19、0),(11100000),(11100000),(00100000),(00000000),(00000000),(00000000),(00000000),(00100000),(11100000),(01100000),(00100000),(00000000),(00000000),(00000011),(00111111),(11111100),(11000000),(00000000),(00000000),(11100000),(00111100),(00000011),(00000000),(00000000),(00000000),(00000000),(00000000),

20、(00000000),(00000001),(00011111),0 x7E,(00011110),(00000001),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),/*V,4*/(00000000),(00000000),(00000000),(00000000),(

21、00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(000

22、00000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),/*,5*/(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(

23、00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(000

24、00000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),/*,6*/(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(

25、00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(000

26、00000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),/*, */(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(

27、00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000),(00000000);BEGINCLOCK:PROCESS(CLK)-将时钟进行分频VARIABLECONT:INTEGERRANGE0TO

28、20;BEGINIFCLKEVENTANDCLK=1THENCONT:=CONT+1;IFCONT=12THENDATALOCK=0;CONT:=0;ELSIFCONT=9THENDATALOCK=1;ENDIF;ENDIF;ENDPROCESSCLOCK;EN=NOTDATALOCK;ERS=0;RW=0;CS1=0;CS2=1;Q=00111110;PRE_STATERS=0;RW=0;CS1=0;CS2=1;Q=00111110;PRE_STATERS=0;RW=0;CS1=0;CS2=1;Q=11000000;PRE_STATERS=0;RW=0;CS1=0;CS2=1;Q=XPAGE;PRE_STATERS=0;RW=0;CS1=0;CS2=1;Q=YADDR;PRE_ST

温馨提示

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

评论

0/150

提交评论