摘 要
随着人们生活水平的提高,对显示器的要求也随之提高了。液晶作为一种新兴的显示器,以其节电、低辐射、体积小、散热小等优点,迅速成为最受欢迎的显示器之一。并且它不仅能把想要知道的数据以数字形式表示出来,它甚至可以很直观方便的以汉字与图表的形式表示出来,后者的功能是一般的七段LED数码管所不能实现的。而且液晶显示器是纯数字设备因此与此连接的设备也是数字的,从而可以减少在数模转换过程中的信号损失和干扰,其次不需要进行时钟频率、向量的调整。而基于FPGA控制的液晶显示器以其快速性和稳定性的优势受到了越来越多的研究。
本
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
我们采用的液晶的型号是GDM12864,在理解其显示原理和引脚结构的基础上,把该液晶分为8页,这样可以只用其中的一部分来进行显示。我们主要设计的是显示模块部分的编程,为了简化设计,把该部分分为控制显示程序和字库的调用模块。字库对于编写控制模块的程序,我们要用到Quartus II软件来编译和仿真程序。Quartus II软件自带的仿真器支持波形文件作为激励。
关键字:液晶 FPGA Quartus II 控制
目 录
1.点阵式液晶显示控制模块 1
1.1点阵式液晶显示控制模块基本原理 1
1.2系统硬件介绍 2
2液晶显示控制模块的程序设计 6
2.1 Quartus II软件的简单介绍 6
2.2模块的原理框图 6
2.3主显示控制模块的设计 7
2.4 ROM模块的设计 9
总 结 12
参考文献 13
附录:代码 14
1.点阵式液晶显示控制模块
1.1点阵式液晶显示控制模块基本原理
1.1.1显示控制模块的基本原理
该模块通过对FPGA芯片编程,并通过调用显示ROM文件中的字库,把相应的二进制显示代码逐条送到显示驱动电路,再经放大后送到点阵式液晶显示出来。
1.1.2显示控制模块的原理框图
我们根据1.1.1对点阵式液晶显示控制模块的描述,设计如图1-1的原理框图。
显示驱动控制器
控制信号 控制信号 驱动时序
显示数据
显示数据
显示数据
图1-1点阵式液晶显示控制模块框图
图中FPGA是用来做主控制芯片的,相当于一个微控制器。显示ROM中包含有要显示的字库或图形的代码,FPGA就是通过显示控制电路查询并调用其二进制代码,送到点阵式液晶进行显示。显示ROM与FPGA是两个分别独立的部分,所以对于相同的FPGA控制程序,只需改变要显示的ROM中的字库就可以改变显示内容,而不必对FPGA做另外的修改。
通过这种方式控制设计的硬件的好处在于易于理解、易于维护、调试电路速度快、有很多易于掌握的仿真、综合和布局布线工具,还可以用C语言配合HDL来做逻辑设计的布线前和布线后仿真并验证功能是否正确。
1.2系统硬件介绍
1.2.1 GDM 12864图形点阵式液晶的介绍
一、GDM 12864的硬件组成
DB0~DB7 8
RET VEE
D/I,R/W 3
CS2
CS1
图1-2点阵式液晶主要硬件构成原理图
如上面图1-2所示,是GDM 12864的原理图。其中IC3为行驱动器,IC1和IC2分别为左半个和右半个液晶的列驱动器。
二、GDM 12864的工作时序
RS
R/W
E
ADDRESS N N+1 N+2
Output Address N Address N+1
register
Busy Wire Busy Read data Busy Read data
DB0-DB7 Check address check address N check address N+1
图 1-3 GDM12864引脚时序图
输入输出缓冲寄存器(I/O)
输入缓冲控制器控制决定芯片是否可用。如果CS1和CS2是上升沿,输入或输出数据不会动作,因此内部数据不变。但是RSTB和ADC却可以照常运行,不受其影响。
输入寄存器
输入寄存器用来连接不同运行频率的嵌入式微处理器(MPU)而且输入寄存器还用来暂时存储没写入显示ROM的数据。当CS1和CS2是正值时,R/W和RS选择输入寄存器,来自MPU的数据写到输入寄存器,并送到显示RAM。锁存器的数据在使能信号E的下降沿自动写入显示数据RAM。
输出寄存器
当CS1和CS2是上升沿并且RS=H,被存储的显示RAM的数据送到输出寄存器,输出寄存器存储显示RAM的临时数据。当CS1和CS2是上升沿并且R/W=H,RS=L时,数据总线的数值就能读出了。
重置
打开电源时对RSTB终端设置一个较低的值,系统能够被初试化。当RSTB是0时,系统从MPU接受指令,接下来的程序就可以运行了。
忙碌标记
忙碌标记决定KS0108B是否运行。当忙碌标记是高电平时,KS0108B在内部运行,当忙碌标记是低电平时,KS0108B就可以就收数据或命令了。
显示开关触发器
显示开关触发器决定晶振的开关。当触发器置0时,选择性和非选择性的电压都会体现在输出端子部分;当触发器置1时,不管显示RAM的数据是什么,非选择性电压都会传输到输出端子。显示开关触发器能够通过指令改变状态。当RSTB是低电平时,显示数据就会消失,触发器的状态就会通过读指令输出到DB5。
X页寄存器
X页寄存器表明内部消失数据RAM的页数。计数功能取消,相应的地址被指令置1。
Y地址计数器
Y地址计数器指定内部显示RAM的数据地址。该地址被指令置1并且伴随读写显示数据自动加1。[1]
三、 GDM 12864的主要参数指标
GDM 12864是一种图形点阵液晶显示器,它主要由行驱动器和列驱动器以及128×64全点阵液晶显示器组成,可完成图形显示,也可以显示8×4个的(16×16点阵)汉字。
主要技术参数和性能指标:
1、电源:VDD 为+5V。模块内自带-10V负压,用于LCD的驱动电压;
2、显示内容:128(列) ×64(行)像素点;
3、全屏幕点阵;
4、七种指令;
5、与CPU接口采用8位数据总线并行输入输出和8条控制线;
6、占空比:1/64;
7、工作温度:-10~ +55,存储温度:-20~+60;
1.2.2 FPGA芯片的介绍
在本设计中我们采用ALTERA公司MAX7000系列的FPGA芯片。该系列有四个专用输入,它们可以作为每个宏单元和I/O引脚的高速、全局控制信号,如时钟(clock)、清除(Clear)和输出使能(Output Enable)等。
MAX7000的逻辑阵列块(LAB)有16个宏单元组成,多个LAB通过可编程连线阵列(PIA)和全局总线;连在一起。全局总线有所有的专用输入、I/O引脚和宏单元的提供信号。LAB的输入信号有:①来自通用逻辑输入的PIA的36个信号;②用于寄存器的辅助功能的全局控制信号;③从I/O引脚到寄存器的直接输入通道,用于实现高密度的MAX7000器件的快速建立时间。
在MAX7000中逻辑阵列实现组合逻辑,给每个宏单元提供5个乘积项。乘积项选择矩阵分配这些乘积项作为到或门和异或门的主要输入逻辑,以实现组合逻辑函数,或把这些乘积项作为宏单元组中触发器的辅助输入,即清除(Clear)、置位(Preset)、时钟(Clock)和时钟使能(Clock Enable)控制。每个宏单元的一个乘积项可以反向后回会送到逻辑阵列。这个可共享的乘积项能够连接到同一个LAB中任何其他乘积项上。根据设计的逻辑需要,Quartus II开发环境将自动优化乘积项的分配。
作为寄存器功能,每个宏单元的触发器可以单独地编程为具有可编程时钟控制的D触发器、T触发器、SR触发器或JK触发器。另外,只要需要,也可将触发器旁路,实现组合逻辑工作方式。
每个触发器也支持异步清除和异步置位功能,乘积项现在矩阵分配乘积项去控制这些操作。虽然乘积项驱动触发器的置位和复位信号是高电平有效,但是,在逻辑阵列中将信号反向可得到低电平有效控制。此外,每一个触发器的复位功能可以由低电平有效的、专用的全局复位引脚GCLRn提供。
所有与I/O引脚有关的MAX7000的宏单元都具有快速输入功能。这些宏单元的触发器有的直接来自I/O引脚输入通道,它旁路了PIA和组合逻辑。这些直接输入通道允许触发器作为具有快速输入建立时间(3us)的输入寄存器。[2]
1.2.3 Verilog HDL介绍
Verilog是专门为复杂数字系统的设计仿真而开发的,本身就非常适合复杂数字逻辑电路和系统的仿真和综合。由于Verilog在其门级描述的底层,也就是在晶体管开关的描述方面比VHDL有更强的功能。
采用Verilog输入法的最大优点是其与工艺无关。对于设计出实际的电路,工程师在设计功能和验证逻辑阶段,只需要利用系统设计时对芯片的要求,而不必过多考虑门级及工艺实现的具体细节。逻辑校验与具体工艺库的匹配、布线及时延计算可利用计算机的超强能力并在EDA工具的帮助下来实现,并最终把人们从繁琐的设计中解放出来。[3]
继续阅读