您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 201100514-基于VHDL的1602液晶显示器实现
基于FPGA的LCD1602液晶显示器控制编写:樊伟敏2011年5月21日液晶显示器是现代智能家电、电子仪器和电子设备中最常见的信息显示方式,其具有良好的人机交互性、功耗低、质量轻、使用寿命长等特点。液晶显示器通常由专用集成电路控制与驱动液晶屏,使用时只要输入数据和指令就可实现所需的显示。常见的液晶显示器有段式显示和点阵显示两种。段式显示器所显示的内容一般具有固定模式,例如:空调遥控器、电子计算器、电子表、数字万用表、电子游戏机等显示的主要是数字、专用符号和固定图形;点阵显示器的通用性比段式显示器强,能根据需要灵活地显示各种信息和内容,例如:字母、数字、符号和图形等。与通用微处理器的方式相比,FPGA更灵活,处理速度更快,控制更灵活。在外扩SRAM或SDRAM后,容易移植在更多可变宽度像素点或者不同接口方式的液晶显示器的驱动上,具有广泛的应用前景。一、LCD1602液晶显示模块简介1.LCD1602液晶显示模块的基本参数及引脚功能LCD1602液晶显示模块的主控制驱动电路为HD44780(HITACHI)及其他公司全兼容电路,如SED1278(SEIKOEPSON)、KS0066(SAMSUNG)、NJU6408(NERJAPANRADIO)等。液晶显示模块可分为带背光和不带背光两种,背光一般为黄绿色。LCD1602液晶显示模块外形尺寸如图1所示。图1LCD1602液晶显示模块外形尺寸(1)LCD1602的基本参数:显示容量:16×2个字符芯片工作电压:4.5~5.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V(2)LCD1602的引脚及功能如表1所示:表1LCD1602的引脚及功能引脚号引脚名电平说明1VSS0V电源地0V2VDD+5V电源正极+5V3VEE0~+5V液晶显示偏压0~5V4RS0/1数据/命令选择;0时为输入指令,1时为输入数据。5R/W0/1读/写选择;0时向LCD写指令或数据,1时读取LCD信息。6E1,1→0使能信号;1时读取信息,1→0(下降沿)执行指令。7D00/1I/O数据线0(最低位)8D10/1I/O数据线19D20/1I/O数据线210D30/1I/O数据线311D40/1I/O数据线412D50/1I/O数据线513D60/1I/O数据线614D70/1I/O数据线7(最高位)15LED++5V背光源电源正极16LED-0V背光源电源地(3)LCD1602主控制器LCD1602主控制器内置DDRAM、CGROM和CGRAM,控制器与4Bit或8Bit微处理器相连能使点阵LCD显示2行16个点阵字符,字符包括大小英文字母、数字和符号等。a.DDRAM(DisplayDataRAM):DDRAM显示数据RAM用以寄存待显示的字符代码。DDRAM寄存器为80×8bit,即:80个字节,每行40个,其中每行前16个地址为显示可见,每行后24个地址为显示不可见。LCD1602显示模块的DDRAM地址与屏幕显示位置的对应关系如表2所示。例如向DDRAM的00H地址写入“A”字的代码,就可在屏幕的第一行第一列显示字母“A”。表2DDRAM地址与屏幕显示位置的关系表.LCD1602可见区域不可见区域显示位置(从左到右)1234567891011121314151617…40DDRAM地址(HEX)第一行000102030405060708090A0B0C0D0E0F10…27第二行404142434445464748494A4B4C4D4E4F50…67为了在屏幕中的指定位置显示字符,需要对控制器发送指令格式如表3所示的“设置ADDRAM”控制指令。表3设置ADDRAM指令格式控制信号控制指令引脚RSR/WD7D6D5D4D3D2D1D0指令001AC6AC5AC4AC3AC2AC1AC0地址计数器高位(0~4)地址计数器低位(0~F)指定第一行第一个字符的地址(00H)时,实际写入的数据应该是80H(=80H+00H);指定第二行第一个字符的地址(40H)时,实际写入的数据应该是C0H(=80H+40H)。b.CGROM(CharacterGeneratorROM):CGROM字符发生ROM是控制器内部的只读存储器,该存储器存储了如表4所示的192个常用的点阵字符图形。表4CGROM地址所对应的字符关系表.从表4可知,在字符发生存储器(CGROM)中存有:阿拉伯数字、大小写英文字母、常用的符号和日文假名等字符,字符产生存储器中的每一个字符都有一个固定的代码,例如,大写英文字母“A”的代码为”01000001”(41H),需要显示字母“A”时,只要指定字符发生存储器地址41H即可。具体操作需要根据控制器中的控制指令格式进行,可参见表6“将数据写入内部CGRAM或ADDRAM”中的内容。c.CGRAM(CharacterGeneratorRAM):CGRAM是用户可通过程序自定义的字符图形RAM,在字符发生随机存取存储器中,可存放8组5×8或4组5×10点阵字符的字模。用户自定义的字符图形存放在表3的第一列CGRAM字符代码区域中,CGRAM在CGROM中的地址为00000000B~00000111B(00H~07H),在CGROM中的00001000B~00001111B(08H~0FH)地址中存放着与00000000B~00000111B(00H~07H)地址的内容相同的8组5×8点阵字符的字模。8组5×8点阵字符字模的CGRAM地址,字符代码(DDRAM)和字符字模(CGRAM的数据)关系如表5所示。表左侧列为写入到DDRAM地址的字符代码,中间列为CGRAM的地址,右侧CGRAM为存放自定义字符的字模。自定义字符图形,先要将自定义字符用5×8点阵提取出“字模”,字符的字模可用软件提取,也可用手工直接提取,点阵字模数据中1表示该点显示,0表示该点不显示。然后逐行设定CGRAM数据内容,每一行对应一个CGRAM,由于5×8点阵字符是采用每行5点共8行表示的,因此需将8行的字模数据依次写入CGRAM中。表5自定义5×8点阵字符的CGRAM地址,字符代码(DDRAM)和字符字模(CGRAM的数据)关系字符代码(DDRAM数据)CGRAM地址CGRAM数据字模编号D7D6D5D4D3D2D1D0AC5AC4AC3AC2AC1AC0P7P6P5P4P3P2P1P00000X000000001010000011100101110111111111000110001XXX1111110001100011111100000字符字模1自定义“日”字光标字模0000X001……001000……XXX*****……字符字模n…….…………(n=2~7)…….0000X110…….110111…….XXX*****0000X111000001010111011100101110111111111000110001XXX1000110001100011111100000字符字模8自定义“口”字光标字模设定8组5×8点阵字符字模的CGRAM行数据内容的指令格式如表6所示。设定8组5×8点阵字符字模的CGRAM行地址指令格式如表7所示。当需要显示自定义字符时,将CGRAM中自定义的字符地址写入DDRAM中即可。表6设定CGRAM数据内容指令格式控制信号控制指令引脚RSR/WD7D6D5D4D3D2D1D0指令10-(一般取000)每行5点的字模数据表7设定CGRAM行地址指令格式控制信号控制指令引脚RSR/WD7D6D5D4D3D2D1D0指令0001AC5AC4AC3AC2AC1AC0AC5~AC3(000~111)定义8个字符地址AC2~AC0(000~111)定义8个行地址2.LCD1602液晶显示模块内部的控制器的控制指令LCD1602液晶模块内部的控制器共有如表8所示的11条控制指令。表8控制器的11条控制指令序号指令功能指令编码功能控制信号控制指令RSR/WD7D6D5D4D3D2D1D01清屏00000000011.将DDRAM的内容全部填入“空白”的ASCII码20H;2.将光标返回到屏幕的左上方;3.将地址计数器(AC)的值设为0。2光标返回000000001-1.将光标返回到屏幕的左上方;2.将地址计数器(AC)的值设为0;3.保持DDRAM的内容不变。3显示模式设置00000001I/DSH设定每次输入1位数据后光标的移位方向,并且设定每次写入的一个字符是否移动。当DDRAM读操作、CGRAM的读/写操作或SH=0,不执行显示整体移位。如果SH=1和DDRAM写操作,显示的字符整体移位操作根据I/D值(I/D=1为左移,I/D=0为右移)。Bit名设置I/D0=写入新数据后光标左移1=写入新数据后光标右移SH0=写入新数据后显示屏不移动1=写入新数据后显示屏整体右移1个字符4显示开关控制0000001DCB控制显示器开/关、光标显示/关闭以及光标是否闪烁。Bit名设置D0=显示功能关1=显示功能开C0=无光标1=有光标B0=光标不闪烁1=光标闪烁5屏幕与光标控制000001S/CR/L--使光标移位或使整个显示屏幕移位。Bit名设置S/CR/L00光标左移1格,且AC值减1。01光标右移1格,且AC值加1。10显示器上字符全部左移一格,但光标不动。11显示器上字符全部右移一格,但光标不动。6功能设置00001DLNF--设定数据总线位数、显示的行数及字型。bit名设置DL0=数据总线为4位1=数据总线为8位N0=显示1行1=显示2行F0=5×7点阵/每字符1=5×10点阵/每字符7设置CGRAM地址0001AC5AC4AC3AC2AC1AC0在地址计数器(AC)中设置CGRAM地址。8个字符地址8个行地址8设置ADDRAM地址001AC6AC5AC4AC3AC2AC1AC0在地址计数器(AC)中设置DDRAM地址9读忙信号或AC地址01BFAC6AC5AC4AC3AC2AC1AC01.读取忙碌信号BF的内容。BF=1表示液晶显示器忙,暂时无法接收微处理器送来的数据或指令;当BF=0时,液晶显示器可以接收微处理器送来的数据或指令;2.读取地址计数器(AC)的内容。10将数据写入内部CGRAM或ADDRAM10写入D7~D0数据1.将字符码写入DDRAM,以使液晶显示屏显示出相对应的字符;2.将使用者自己设计的图形存入CGRAM。D7~D5可为任何数据,一般取“000”D4~D0对应于每行5点的字模数据11从内部CGRAM或ADDRAM读取数据11读出D7~D0数据读取DDRAM或CGRAM中的内容。LCD1602液晶模块内部控制器的基本操作时序如表9所示表9控制器基本操作时序读状态输入RS=0,R/W=1,E=1输出D7~D0=状态字写指令输入RS=0,R/W=0,D7~D0=指令,E=脉冲下降沿输出无读数据输入RS=1,R/W=1,E=1输出D7~D0=数据写数据输入RS=1,R/W=0,D7~D0=数据,E=脉冲下降沿输出无3.控制器接口时序(1)写操作时序写操作时序如图2所示。图2写操作时序(2)读操作时序读操作时序如图3所示。图3读操作时序(3)主要读写时序参数主要读写时序参数如表10所示表10主要读写时序参数项目符号最小值典型值最大值单位写读E信号周期tC10001000--nsE信号脉冲宽度tW450450--nsE信号上升/下降时间tR,tF---25nsR/W和RS建立时间tSU1,tSU6060--nsR/W和RS保持时间tH1,tH2020--ns数据建立时间tSU2195---ns数据保持时间tH2,tDH105--ns读数据延时时间tD---360ns4.初始化过程指令(根据需要可调整)(1)功能设置(38H):8位接口,显示两行,5×7点阵/每字符。RSR/WD7D6D5D4D3D2D1D000001DL=1N=1F=000(2)显示开关控制(08H):显示功能关,无光标,光标不闪烁。RSR/WD7D6D5D4D3D2D1D00000001D=0C=0
本文标题:201100514-基于VHDL的1602液晶显示器实现
链接地址:https://www.777doc.com/doc-6384227 .html