文档详情

LCD1602及其控制器的基本显示方法.pdf

发布:2017-06-05约1.25万字共7页下载文档
文本预览下载声明
LCD显示及键盘用法 LCD1602及其控制器的基本显示方法 向LCD 输入的数据为ASCII 码,需要通过数码扫描依次送 LCD 显示,下面介绍LCD 控制器IP 核LCD16X2A 及其相关程序。逻辑符号如下图: U_lcd_ctrl 模块即为该控制器核在AltiumDesinger 原理图中的符号表示。其作用是接受 前面用户自己的逻辑单元送来的ASCII 码数据和控制信号,然后与外部的LCD 显示器通 讯,显示相应字符。数据总线使用输入输出分离模式,IP 核后面需要增加双向BUF 控制 单元(U8 )。LCD 控制器端口说明如下: 用户控制逻辑接口: CLK :控制器工作时钟,上升沿有效 RS :复位信号,高电平有效 DATA[7..0] :ASCII 码数据总线 ADDR[3..0] :字符在LCD 屏幕上的地址(共两行,每行16 个字符) ADDR= “0000 ” ~ “1111”对应每行的第0~15 个字符 LINE : LCD1602 屏幕上的行选择信号,LINE=0 时数据在第一行显示,LINE= 1 时数据在第二行显示 BUSY : 控制器忙信号,数据未显示稳定时BUSY=1 ;反之为0 STROBE: 数据输入有效使能,高电平有效 LCD 显示器接口: LCD_E :LCD 显示器使能 LCD_RW :LCD 读写方向控制 LCD_RS :LCD 命令,数据选择 LCD_DATA_TRI :LCD 数据高阻态控制 LCD_DATAO :LCD 数据输出总线 LCD_DATAI :LCD 数据输入总线 控制器工作原理如下: A 控制器复位 当RS 信号有效时(高电平),控制器进入LCD 复位与初始化操作,此时,BUSY 信 号持续高电平,表示控制器忙,LCD 不能进行用户请求的操作。 RS 信号由高变低后的大约80us 之后,LCD 控制器初始化完成,可以响应用户的操作 请求,此时,BUSY 信号变低。LCD 处于显示模式。 B 字符显示 上电后的LCD 必须初始化一次,之后LCD 控制器停留于 “WAI FOR DATA ” 状态。 在用户向LCD 控制器申请字符显示操作时,ADDR 、DATA、LINE 信号必须保持稳定,同 时使用STROBE 信号触发显示操作。具体步骤如下: 表示字符显示位置的4bit 地址信号加载 ADDR 信号线上; 表示字符显示行号的 1bit 选择信号加载 LINE 信号线上; 字符ASCII 编码加载 DATA 总线上并保持稳定; 用户送入STROBE 的有效电平,LCD 控制器进入与LCD 显示器通讯的过程,显示相 应地址和行位置的ASCII 码对应字符,同时BUSY 信号变为高电平,表示控制器忙。此时, 用户需要等待。 一定时间后,LCD 字符显示稳定,BUSY 信号变为低电平,等待用户下一次操作申请。 如此循环。 根据LCD 控制器的工作原理编写的字符扫描和LCD 接口控制逻辑如下: ******************************************************************************************** ***************************************功能:显示三个字符********************************* ******************************************************************************************* library ieee; use ieee.std_logic_1164.all; entity lcd_scan is port( clk_in: in std_logic; --工作主时钟 rstn_in: in std_logic; --复位信号,高电平有效 ascii_ 1_in: in std_logic_vector(7 do
显示全部
相似文档