欢迎来到朵拉利品网
知识中心
资讯
  • 资讯
  • 产品
  • 供应商
您的位置: 朵拉利品网 >  知识中心 > lcd1602显示程序流程图 这是LCD1602显示程序流程图,请帮我解释说明一下
lcd1602显示程序流程图 这是LCD1602显示程序流程图,请帮我解释说明一下
2019-07-28 12:20:44 来源:朵拉利品网

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, 这是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, 1602液晶显示屏显示程序



1602液晶的程序我有,要做数字锁的话其实用到液晶也不多。
因为你显示密码是时候不应该都是现实*****吗?
你只需把键盘写入的数据存在一个数组中,然后跟密码数组对比就好了。
还有就是值得注意的是数据类型问题。
输入的键值看你处理的方式而定,密码存放的格式,还有输出显示的是ascll码。注意转换。
下面附带一段51的1602LCD的C程序,自己仔细琢磨。
#include
#define uchar unsigned char
#define uint unsigned int
uchar table[16]="abcdefghijklmnyz";
uchar table1[16]="0123456789abcdef";
sbit lcden=P2^0;
sbit lcdrs=P2^1;
sbit dula=P2^6;
sbit wela=P2^7;
uchar num;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write_com(uchar com)
{ wela=0;
lcdrs=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_data(uchar date)
{ wela=0;
lcdrs=1;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init()
{
lcden=0;
write_com(0x38);
write_com(0x0e);
write_com(0x06);
write_com(0x01);
write_com(0x80);
}
void main()
{
init();
for(num=0;num{
write_data(table[num]);
delay(20);
}
write_com(1);
write_com(0x80+0x40);
for(num=0;num{
write_data(table1[num]);
delay(20);
}
while(1);
}

相关概念


write

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

com

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

num

Num Sornram Theappitak(索纳拉姆·泰匹塔克),1973年8月22日出生在泰国曼谷,在泰国蓝甘杏大学(RU)获得政治学专业学士学位,泰国演员、模特、歌手、主持人、制作人、足球运动员、法院调解员。 1991年以平面模特身份入行,1992年主演第一部电视剧[1]。1994年推出首张个人专辑《ลูกไม้ของนายหนุ่ม》,同年在自己主演的大热电视剧《金星/晨之星》中演唱插曲《ดาวพระศุกร์》(晨之星)。国内引进的Num主演泰剧《落难公主》的主题曲《แม่หญิง 》(伊人)、《รักเธอสุดหัวใจ》(全心全意)也由Num本人演唱[2]。