1, 求LCD1602液晶显示模块的功能 结构 和详细介绍 不胜感谢
1.简介工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)注:为了表示的方便 ,后文皆以1表示高电平,0表示第电平。2.管脚功能1602采用标准的16脚接口,其中:第1脚:VSS为电源地第2脚:VDD接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端。第7~14脚:D0~D7为8位双向数据端。第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。3.操作控制操作控制表 操作 读状态 写指令 读数据 写数据 输入 RS=0,RW=1,E=1 RS=0,RW=0, D0~7=指令码,E=H脉冲 RS=1,RW=1,E=1 RS=1,RW=0, D0~7=数据,E=H脉冲 注:关于E=H脉冲——开始时初始化E为0,然后置E为1,再4.字符集1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如"A"。以下是1602的16进制ASCII码表地址:读的时候,先读左边那列,再读上面那行,如:感叹号!的ASCII为0x21,字母B的ASCII为0x42(前面加0x表示十六进制)。[编辑本段]指令集1602通过D0~D7的8位数据端传输数据和指令。显示模式设置: (初始化)0011 0000 [0x38] 设置16*2显示,5*7点阵,8位数据接口;显示开关及光标设置: (初始化)0000 1DCB D显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效)0000 01NS N=1(读或写一个字符后地址指针加1 &;光标加1),N=0(读或写一个字符后地址指针减1 &;光标减1),S=1 且 N=1 (当写一个字符后,整屏显示左移)s=0 当写一个字符后,整屏显示不移动数据指针设置:数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H)其他设置:01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。
2, 这是LCD1602显示程序流程图,请帮我解释说明一下
让LCD1602显示字符前要输入字符所在的地址,这也是每显示一个字符地址要加一的原因,在下面的一段代码里你会明白怎么设置地址,怎么让地址自动加一,怎么清屏,怎么显示字符,希望你能看懂哦sbit LCD_E=P2^0; //lcd1602控制置位sbit LCD_RW=P2^1; //lcd1602控制置位sbit LCD_RS=P2^2; //lcd1602控制置位void LCD_command(unsigned char com){LCD_E=0;LCD_RW=0;LCD_RS=0;P1=com;delay_us(100);LCD_E=1;delay_us(100);LCD_E=0;}void LCD_date(unsigned char dat){LCD_E=0;LCD_RW=0;LCD_RS=1;P1=dat;delay_us(100);LCD_E=1;delay_us(100);LCD_E=0;} LCD_command(0x38); //设置LCD为16*2显示,5*7点阵,8位数据接口 LCD_command(0x0c); //设置LCD显示开,光标显示关 LCD_command(0x06); //写一个数据后地址加1 LCD_command(0x01); //显示清屏LCD_command(0x80); //数据指针设置为第一行第一位LCD_date("pi");LCD_date("l");LCD_date("e");LCD_date("a");LCD_date("s");LCD_date("e");LCD_date(" ");LCD_date("c");LCD_date("h");LCD_date("e");LCD_date("c");LCD_date("k");LCD_date(" "); LCD_date("t");LCD_date("h");LCD_date("e");LCD_command(0x80+0x40); //LCD地址指针指向第二行第一个位置LCD_date("c");LCD_date("o");LCD_date("n");LCD_date("n");LCD_date("e");LCD_date("c");LCD_date("t");LCD_date("i");LCD_date("o");LCD_date("n");LCD_date("!");LCD_date("!");
3, 求LCD的VHDL显示模块,用1602的芯片
library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity LCD1602 isPort ( CLK : in std_logic;Reset : in std_logic; LCD_RS : out std_logic;LCD_RW : out std_logic;LCD_EN : out std_logic;data : out std_logic_vector(3 downto 0));end LCD1602;architecture Behavioral of LCD1602 istype iState is ( Write_instr, --写命令字Write_DataUP4_1, --写LCD一线高4位Write_DataDown4_1, --写LCD一线低4位Set_DDRamAddUp, --设置DDRam地址高4位 Set_DDRamAddDown, --设置DDRam地址低4位Write_DataUP4_2, --写LCD二线高4位Write_DataDown4_2 --写LCD二线低4位);signal State:iState; type Ram is array(0 to 15) of std_logic_vector(7 downto 0);constant MyRamUp:Ram:=(x"46",x"68",x"69",x"73",x"20",x"49",x"73",x"20",x"4d",x"79",x"20",x"46",x"69",x"72",x"73",x"74"); --This Is My Firstconstant MyRamDown:Ram:=(x"20",x"20",x"46",x"50",x"47",x"41",x"20",x"50",x"72",x"6f",x"67",x"72",x"61",x"6d",x"20",x"20"); --FPGA Programsignal LCD_Clk : std_logic :="0";signal datacnt : integer range 0 to 15:=0; beginLCD_RW --写命令字到LCD控制器 LCD_RS功能设置data模式设定data显示设定data00H 设定读写地址位dataLCD_RSif datacnt=15 thendata --0xc0 : 1100 0000=>40H 设定读写地址位LCD_RSdataLCD_RSif datacnt=15 thendata state
相关概念
字符
在计算机和电信技术中,一个字符是一个单位的字形、类字形单位或符号的基本信息。
16
16(十六),是15与17之间的自然数。 16是4的 平方。