首页 >  知识中心 >  新闻详情

液晶1602的rs端代表什么意思 这是一段LCD1602的显示程序,有谁能帮我解释一下吗?谢谢

来源:朵拉利品网  |  2019-07-28 12:23:03

1, 这是一段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("!");

2, 给个单片机液晶1602显示汉字的程序,谢谢



#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit lcdrs=P1^0;
sbit lcden=P1^2;
sbit lcdwr=P1^1;
uchar CGCODE[]={0x08,0x0F,0x12,0x0F,0x0A,0x1F,0x02,0x02,//"年"代码 0x00
0x0F,0x09,0x0F,0x09,0x0F,0x09,0x13,0x00,//"月"代码 0x01
0x0F,0x09,0x09,0x0F,0x09,0x09,0x0F,0x00,//"日"代码 0x02
0x07,0x04,0x07,0x04,0x07,0x00,0x04,0x07,//"星"左上半部分代码 0x03
0x1F,0x01,0x1F,0x01,0x1F,0x08,0x08,0x1F,//"星"右上半部分代码 0x04
0x08,0x17,0x00,0x1F,0x00,0x00,0x00,0x00,//"星"左下半部分代码 0x05
0x08,0x1F,0x08,0x1F,0x00,0x00,0x00,0x00//"星"右下半部分代码 0x06
};
uchar tab[]={"0","8",0x00,"0","3",0x01,"0","9",0x02};//显示"08年03月09日"
void delay(uint t)
{
uint x,y;
for(x=0;x<t;x++)
for(y=0;y<110;y++);
}
void write_com(uchar com)//向1602写指令
{
lcdrs=0;
P2=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_date(uchar dat)//向1602写数据
{
lcdrs=1;
P2=dat;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init()//程序初始化
{
lcdwr=0;
lcden=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
}
void main()//主函数
{
int i;
init();
lcdrs=0;
lcdwr=0;
write_com(0x40);//将自定义字符写入CGRAM
for(i=0;i<56;i++)//循环56次写入
{
write_date(CGCODE[i]);
}
write_com(0x80);//写入初始地址
for(i=0;i<9;i++)
{
write_date(tab[i]);
}
write_com(0x80+9);//用09H和0AH显示"星"上部分
write_date(0x03);
write_date(0x04);
write_com(0x80+0x40+9);//用49H和4AH显示"星"上部分
write_date(0x05);
write_date(0x06);
while(1);
}

3, 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)。

4, 51单片机液晶1602的C程序谁有,给个简单的显示一个字符A的



#include "reg52.h"
sbit LED=P1^0;//LED锁存器
sbit SEG=P1^1;//数码管段选锁存器
sbit DIG=P1^2;//数码管位选锁存器
unsigned char t;
sbit LCDRS=P2^7;//数据指令控制
sbit LCDRW=P2^6;//读写控制
sbit LCDEN=P2^5;//液晶屏使能控制
//**********延时函数,延时n*1ms*********
void delay(unsigned char n)
{
int i,j;
for (i=0; ifor (j=0; j;
}
//*************写命令***************
void Write_Cmd(unsigned char C)
{
LCDEN=1;//使能端,由高电平跳变成低电平时,液晶屏模块执行命令
LCDRS=0;//指令寄存器选择
P0=C;
delay(5);
LCDEN=0;
}
//**************写数据**************
void Write_Data(unsigned char D)
{
LCDEN=1;//使能端,由高电平跳变成低电平时,液晶屏模块执行命令
LCDRS=1;//选择数据寄存器
P0=D;
delay(5);
LCDEN=0;
}
//**********LCD初始化*****************
void LCD_Init()
{
LCDRS=0;//指令寄存器选择
Write_Cmd(0x01);//清屏
Write_Cmd(0x38);//功能设置8位双行显示5*7点阵
Write_Cmd(0x0F);//开关显示设置
Write_Cmd(0x06);//输入方式设置,光标从左向右移动,内容不移动
}
void main()
{
unsigned char Code1[]="I LOVE MCU!";
unsigned char m;
//LED,数码管锁存器片选设置
LED=0;
DUAN=0;
WEI=0;
LCDRW=0;//写选择
LCD_Init();
Write_Cmd(0x80+0x01);//写入显示缓冲区起始地址为1行2列
for(m=0;m{
Write_Data(Code1[m]);
delay(3);
}
while (1)
;
}//end of main

相关概念


write

write是一个计算机函数,主要功能为写到一文件中。

com

com为commercial简称,表示商业性质的,com结尾的域名为最早通用的顶级域名。历史上第一个com域名的诞生是在1985年3月15日,当时个人电脑操作系统主要还是使用MS-DOS3.0操作系统。

 
相关新闻
液晶1602实际显示区 LCD1602的显示原理 07-28
lcd1602液晶显示屏地址 怎么用LCD1602显示屏 07-28
1602液晶显示器原理 LCD1602的显示原理 07-28
lcd1602怎么跟排针焊接 怎么用LCD1602显示屏 07-28
lcd1602液晶显示屏 怎么用LCD1602显示屏 07-28
LCD1602的输入 LCD1602的显示原理 07-28
1602液晶显示器原理图 lcd1602显示原理 07-28
1602lcd液晶屏 lcd1602功能的介绍 07-28
1602液晶原理图 lcd1602显示原理 07-28
lcd1602RS引脚作用 lcd1602中cv引脚的作用 07-28
相关产品
江浙沪端子机价格,排线端子机厂家,自动排线端子机 07-01
晶程机械KS-P20端子机 半自动PIN软排线打端子机 07-01
供应信哲自动化Jsk-52全自动端子机 排线端子机 07-01
供应东莞三胜SS-102全自动排线端子机 07-01
供应三胜SS166全自动排线端子机 07-01
供应超静音端子机JB-2T/东莞批发排线端子机/经济型端子机/厂家直供端子机 07-01
上海宇恩全自动端子机 新能源线端子机 高速端子机 双线并打端子机 端子机厂家 连剥带打端子机 排线端子压接机 07-01
厂家直供端子机 超静音端子机批发 全自动打端子机企业 单头端子机 双头端子机 沾锡端子机 排线端子机大量生产 07-01
JS-6009半自动排线端子机 07-01
端子机全国全自动端子机 全自动双头压接端子机 高速端子机 全自动单头端子机 端子机厂家 连剥带打端子机 排线端子压接机 07-01

大家都在看