您好,欢迎访问三七文档
4.6液晶显示实验4.6.1实验目的1.学习复杂数字系统的设计方法;2.学习16*2字符型液晶显示器的基本原理;3.掌握液晶显示控制器的设计方法。4.6.2实验设备PC微机一台,TD-EDA实验箱一台,SOPC开发板一块。4.6.3实验内容液晶显示器(LED)由于体积小、质量轻、功耗小等优点,已成为各种便携式电子产品的理想显示器。液晶显示器从其显示的内容可分为字段型、点阵字符型和点阵图形式三种。点阵字符型液晶显示器式专门用于显示数字、字母、图形符号及少量自定义符号的显示器。这类显示器把LED控制器、点阵驱动器全部坐在一块印刷电路板上,构成便于应用的液晶显示器模块。字符型液晶显示模块在国际上已经规范化,控制器主要有KS0066(三星公司产品)、HD44780(日立公司产品)、SED1278(EPSON公司产品)。EDA实验系统使用的液晶模块使用的是HD44780控制器。HD44780控制器的指令如表4-6-1所示。1.清屏(ClearDisplay)指令格式代码:01H功能:将空码(20H)写入DDRAM的全部80个单元。将地址指针计数器闪烁归HOME位,设置输入方式参数I/D=1。该指令多用于商店是或更新全部显示内容是。在使用该指令前腰确认DDROM的当前内容是否有用。2.归HOME位(ReturnHome)格式代码:02H功能:该指令将地址指针计数器AC清零。执行该指令的效果有:将光标或闪烁位返回到显示屏的座上第一字符位上,即DDRAM地址00H单元位置,这是因为光标和闪烁位都是以地址指针计数器AC当前值定位的。如果画面一滚动,则撤销滚动效果,将画面拉回到HOME位。3.输入方式设置(EnterModeSet)格式:代码:04H~07H功能:该指令设置了显示字符的输入方式,即在计算机读/写DDRAM或CGRAM后,地址的计数器AC的修改方式,反映在显示效果上,当写入一个字符后画面或光标的移动,该指令的两个参数位I/D和S确定了字符的输入方式。I/D表示计算机读/写DDRAM或CGRAM的数据后,地址指针计算器AC的修改方式。由于光标位置也是由AC值确定,所以也是光标移动的方式。I/D=0AC为减一计数器,光标左移一个字符位。I/D=1AC为加一计数器,光标右移一个字符位。S表示在写入字符好似,是否允许显示画面的滚动S=0禁止滚动S=1允许滚动S=1且I/D=0显示画面向右滚动一个字符S=1且I/D=1显示画面向左滚动一个字符综合而论,该指令可以实现四种字符的输入方式,如表4-6-2所示。4.显示状态设置(Displayon/offControl)模式:代码:0SH~0FH功能:该指令控制着画面,光标即闪烁的开与关,该指令有伞个状态D,C,B,这三个状态为分别为控制着画面,光标和闪烁的显示状态。D画面显示状态位。当D=1时位开显示,当C=0时位光标消失,光标位底线形式(5×1点阵),出现在第八行或第十一行上,光标的位置由地址指针计数器AC确定,并随其变动而移动。当AC值超出了画面的显示范围,光标将随之消失。B闪烁显示状态位当B=1时为闪烁启动,当B=0时为闪烁禁止,闪烁是指一个字符位交替进行正常显示态和全亮显示态。闪烁频率在控制器工作频率为250KHz时为2.4Hz。闪烁位置通光标一样瘦地址指针计数器AC的控制。闪烁出现在有字符或光标显示的字符段位时,正常显示态为当前字符或光标的显示;全亮显示态为该字符位所有点显示。这种闪烁方式可以设计成光标,如同计算机CRT上块状光标闪烁显示付的效果。该指令代码的功能如表4-6-3所示。5光标或画面滚动(CursororDisplayShift)格式:功能:该指令将产生画面或光标向左或向右滚动一个字符位。如果定时间地执行该指令将产生画面或光标地平滑滚动。画面的滚动式在一行内连续循环进行的,也就是说一行的第一单元与最后一个单元连接起来,形成了闭环式的滚动。当未开光标显示时,执行画面滚动指令时不修改地址指针计数器AC值;当有光标显示时,由于执行任意一条滚动指令时都将使光标产生位移,所以地址指针计数器AC都需要被修改。光标的滚动式在DDRAM内全程进行的。它不是一行显示还是两行显示。S/C滚动对象的选择S/C=1画面滚动S/C=0光标移动R/L滚动方向的选择R/L=1向右滚动R/L=0向左滚动该指令代码的功能如表4-6-4所示。该指令输入方式设置指令都可以产生光标或画面的滚动,区别在于该指令专用于滚动功能,执行一次,显示呈现一个滚动效果;而输入方式设置指令仅是完成了一种字符输入方式的设置,仅在计算机对DDRAM等进行操作室在能产生滚动的效果。6.工作方式设置(FunctionSet)格式:功能:该指令赊着了控制器的工作方式,包括有控制器与计算机的接口形式和控制器显示驱动的占空比系数等。该指令由三个参数DL,N和F。他们的作用是:DL=0设置数据总线为8位长度,即DB7~DB0有效DL=0设置数据总线为4位长度,即DB7~DB4有效。该方式下8位指令代码和数据将按先高4位后低4位的顺序分两次传送N设置显示的字符行数N=0位一行字符行N=1位两行字符行F设置显示的字符行数F=0为5×7点阵字符体F=1为5×10点阵字符体N和F的组合设置了控制器的确定占空比系数。如表4-6-5所示。该指令是字符型液晶显示控制器的初始化设置指令,也是唯一的软件复位指令。HD44780虽然具有复位电路,但为了可靠地工作,HD44780要求计算机在操作时首先对其进行软件复位。也就是说在控制字符型液晶显示模块工作是首先腰进行的软件复位。7.CGRAM地址设置(SetCGRAMAddress)格式:功能:该指令将6位的CGRAM地址写入地址指针计数器AC内,随后计算机对数据的操作是对CGRAM的读/写操作。8.DDRAM地址设置(SetDDRAMAddress)格式:功能:该指令将7位的DDRAM地址写入地址指针计数器AC内,随后计算机对数据的操作是对DDRAM的读/写操作。9.读“忙”标志和地址指针值(ReadBusyFlagandAddress)格式:功能:计算机对指令寄存器通道读操作(RS=0,R/W=1)时,将读出此格式的“忙”标志BF值和7位地址指针计数器AC的当前值。计算机随时都可以对HD44780读“忙”操作。BF值反映HD44780的接口状态。计算机在对HD44780每次操作时首先都要读BF值判断HD44780的当前接口状态,仅有在BF=0时计算机才可以向HD44780写指令代码或显示数据和从HD44780读出显示数据,计算机读出的地址指针及诉求AC当前值可能是DDRAM地址也可能是CGRAM的地址,着取决与最近一次计算机向AC写入的是哪类地址。10.写数据(WriteDatatoCGorCGRAM)计算机向数据寄存器通道写入数据,HD44780根据当前地址指针计数器AC值得属性及数值将该数据送入相应的存储器内的AC所指的单元里。如果AC只为DDRAM地址指针,则认为写入的数据位字符代码并送入DDRAM内AC所指的单元里;如果AC值为CGRAM的地址指针,则认为写入的数据时自定义字符的字模数据并送入CGRAM内AC所指的单元里。所以计算机在写数据操作之前要先设置地址指针或人为的确认地址指针的属性及数值。在写入数据后地址指针计数器AC将根据最近设置的输入方式自动修改。由此可知,计算机在写数据操作之前要做两项工作,其一是设置或确认地址计数器AC值的属性及数值,以保证所写数据能够正确性;其二是设置或确认输入方式,以保证连续写入数据时AC值的修改方式符号要求。11.读数据(ReadDatatoCGorCGRAM)在HD44780的内部运行时序的操作下,地址指针技术区AC的每一次修改,包括新的AC值得写入,光标滚动以为所引起的AC值的修改或由计算机读写数据操作后所产生的AC值得修改,HD44780都会把当前AC所指党员的内容送到接口部数据输出寄存器内,供计算机读取。如果AC值为DDRAM地址指针,则认为接口部数据输出寄存器的数据为DDRAM内AC所指单元的字符代码;如果AC值为CGRAM的地址指针,则认为数据输出寄存器的数据是CGRAM内AC随之单元的自定义字符的字模数据。计算机的读数据是从数据寄存器通道中数据输出寄存器读取当前所存放的数据。所以计算机在首次读数据操作之前需要重新设置一次地址指针AC值,或用光标滚动指令将地址指针计数器AC值修改到所需的地址上,然后进行的读数据操作将能获得所需的数据。在读取数据后地址指针计数器的AC将根据最近设置的输入方式自动修改。由此可知,计算机在读数据操作之前要有两项工作,其一是设置或确认地址计数器AC值的属性及数值,以保证所写数据能够正确性;其二是设置或确认输入方式,以保证连续读取数据时AC值的修改方式符号要求。HD44780控制器的接口时序位M6800时序,其特点是读/写操作时序是由使能信号E完成。E信号时正脉冲信号,部操作室位低电平状态,操作时产生一个正脉冲。在读操作时E信号在高电平时,控制器将所需数据送入数据总线上,供据算计读取;在写操作时,E信号的下降沿处将数据总线上的数据写入控制器接口部的寄存器内。HD44780控制器对读/写操作的识别是判断R/W信号端上的电平状态,R/W=1为读操作选择,R/W=0为写操作选择。R/W信号的宽度要大于E信号的宽度才能保证计算机的操作正确。RS信号时HD44780控制器识别数据总线上的数据上属于质量代码还是属于显示数据。RS=0选通质量寄存器通道,数据总线传输的事质量代码或标志位;RS=1选通数据寄存器通道,数据总线传输的是显示数据或自定义字符的字模数据。本实验使用TD-EDA实验系统的液晶单元,设计一个液晶接口模块,控制LCD动态左循环显示字符窜“welcometouseTD-EDA”。液晶接口模块由三个单元组成:时钟控制模块CLK_CON主要为系统提供时钟源和产生使能信号EN,考虑到动态左移显示时人眼能够方便的观察,时钟控制模块的输入时钟频率宜采用50~100Hz;字符数据模块CHAR_RAM位系统提供显示字符,限于篇幅,书中省略了部分字符,读者可参照ASCLL字符表;逻辑控制模块CON_LOGIC实现LCD的控制命令,采用状态机的描述方式实现LCD的控制功能。其顶层原理图如图4-6-1所示、4.6.4实验步骤1运行Quartus2软件,分别建立新工程,选择File-New菜单,创建VHDL描述语言设计文件,分别编写CLK_CON.VHD、LOGIC_CON.VHD、CHAR_RAM.VHD.2时钟控制模块CLK_CON的VHDL源程序如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTUTYCLK_CONISPORT(CLOCK:INSTD_LOGIC;ENABLE:OUTSTD_LOGIC;_CLOCK信号下降沿的二分频信号OUT_CLK:OUTSTD_LOGIC);_CLOCK信号上升沿的二分频信号ENDENTITYCLK_CON;ARCHITECTURNBEHVOFCLK_CONISCOMPONENTDFFPORT(D:INSTD—LOGIC;CLK:INSTD_LOGIC;Q:OUTSTD_LOGIC);ENDCOMPONENT;SIGNALSIG1,SIG2,SIG3:STD_LOGIC;BEGINSIG1<=NOTSIG2;SIG3<=NOTCLOCK;OUT_CLK<=SIG2;MYDFF1:DFFPORTMAP(D=>SIG1,CLK=>CLOCK,Q=>SIG2);MYDFF2:DFFPORTMAP(D=>SIG2,CLK=>SIG3,Q=>ENABLE);ENDARCHITECTURNBEHV;3.字符数据模块CHAR_RAM的VHDL源程序如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ENTITYCHAR_RAMISPORT(ADDRESS:INSTD_LOGIC_V
本文标题:液晶显示实验
链接地址:https://www.777doc.com/doc-5091605 .html