当前位置: 首页 > news >正文

泛微oa办公系统官网网站的标题优化怎么做

泛微oa办公系统官网,网站的标题优化怎么做,免费网站建设教程,wordpress搭建工单文章目录前言一、LCD1602简单介绍二、LCD1602中各个引脚的作用四、LCD1602命令解析1.写命令2.写数据3.清屏指令4.光标归位指令5.进入模式设置指令6.显示开关控制指令7.设定显示屏或光标移动方向指令三、LCD1602代码编写四、代码测试总结前言 本篇文章将为大家讲解LCD1602的使用…

文章目录

  • 前言
  • 一、LCD1602简单介绍
  • 二、LCD1602中各个引脚的作用
  • 四、LCD1602命令解析
    • 1.写命令
    • 2.写数据
    • 3.清屏指令
    • 4.光标归位指令
    • 5.进入模式设置指令
    • 6.显示开关控制指令
    • 7.设定显示屏或光标移动方向指令
  • 三、LCD1602代码编写
  • 四、代码测试
  • 总结

前言

本篇文章将为大家讲解LCD1602的使用方法。

一、LCD1602简单介绍

LCD1602是一种常用的液晶显示器,它的原理是通过液晶分子的振荡来控制显示内容的。液晶分子在电场的作用下,会发生振荡,从而改变液晶分子的极性,从而控制显示内容。液晶显示器的控制电路会根据输入的信号,控制电场的强度,从而控制液晶分子的振荡,从而控制显示内容。

二、LCD1602中各个引脚的作用

LCD1602的引脚有VSS、VDD、VO、RS、RW、E、D0-D7等。VSS和VDD分别为电源正负极;VO为显示屏的背光控制引脚;RS、RW、E分别为控制字符显示和数据读写的控制引脚;D0-D7为数据传输的引脚。

四、LCD1602命令解析

对于如何写命令我们直接看到数据手册就可以了。无论是写命令还是写数据我们只需要关注RS,R/W,E这几个引脚的电平即可。

1.写命令

当RS=0时代表输入指令。
R/W=0时代表向LCD写入指令或数据。
E是使能信号当E从1变为0时也就是下降沿会执行指令。
在这里插入图片描述
这里直接将要执行的命令写入LCD1602对应的数据端口即可。
写入后让E发生一个下降沿执行写入的指令。

void lcd1602_write_cmd(u8 cmd)
{LCD1602_RS=0;//选择命令LCD1602_RW=0;//选择写LCD1602_E=0;LCD1602_DATAPORT=cmd;//准备命令delay_ms(1);LCD1602_E=1;//使能脚E先上升沿写入delay_ms(1);LCD1602_E=0;//使能脚E后负跳变完成写入	
}

2.写数据

当RS=1时代表输入指令。
R/W=0时代表向LCD写入指令或数据。
E是使能信号当E从1变为0时也就是下降沿会执行指令。
其实写数据和写命令的函数只是需要注意RS的电平即可,其他代码原理都是一样的。

void lcd1602_write_data(u8 dat) 
{LCD1602_RS=1;//选择数据LCD1602_RW=0;//选择写LCD1602_E=0;LCD1602_DATAPORT=dat;//准备数据delay_ms(1);LCD1602_E=1;//使能脚E先上升沿写入delay_ms(1);LCD1602_E=0;//使能脚E后负跳变完成写入		
}

3.清屏指令

在这里插入图片描述
根据手册可以知道只需要往数据端口写入0x01即可达到清屏效果。

void lcd1602_clear(void)
{lcd1602_write_cmd(0x01);	
}

4.光标归位指令

在这里插入图片描述
光标归位指令写入0x02即可。

void lcd1602_CursorReset(void)
{lcd1602_write_cmd(0x02);	
}

5.进入模式设置指令

在这里插入图片描述
将DB1设置为1每次写入一个字符后光标右移。
S=0写入数据后显示屏不移动。

void lcd1602_CursorReset(void)
{lcd1602_write_cmd(0x06);	//写入新数据后光标右移,显示屏不移动
}

6.显示开关控制指令

在这里插入图片描述
这里看自己的需求设置对应的指令。

7.设定显示屏或光标移动方向指令

在这里插入图片描述
字体左移

void lcd1602_LeftMove(void)
{lcd1602_write_cmd(0x18);	
}

字体右移

void lcd1602_RightMove(void)
{lcd1602_write_cmd(0x1c);	
}

三、LCD1602代码编写

lcd1602.c

这里使用普中的代码进行讲解。
这里使用的lcd1602是8位的,在lcd1602.h定义了一个宏来决定。

#include "lcd1602.h"/*******************************************************************************
* 函 数 名       : lcd1602_write_cmd
* 函数功能		 : LCD1602写命令
* 输    入       : cmd:指令
* 输    出    	 : 无
*******************************************************************************/
#if (LCD1602_4OR8_DATA_INTERFACE==0)//8位LCD
void lcd1602_write_cmd(u8 cmd)
{LCD1602_RS=0;//选择命令LCD1602_RW=0;//选择写LCD1602_E=0;LCD1602_DATAPORT=cmd;//准备命令delay_ms(1);LCD1602_E=1;//使能脚E先上升沿写入delay_ms(1);LCD1602_E=0;//使能脚E后负跳变完成写入	
}
#else	//4位LCD
void lcd1602_write_cmd(u8 cmd)
{LCD1602_RS=0;//选择命令LCD1602_RW=0;//选择写LCD1602_E=0;LCD1602_DATAPORT=cmd;//准备命令delay_ms(1);LCD1602_E=1;//使能脚E先上升沿写入delay_ms(1);LCD1602_E=0;//使能脚E后负跳变完成写入LCD1602_DATAPORT=cmd<<4;//准备命令delay_ms(1);LCD1602_E=1;//使能脚E先上升沿写入delay_ms(1);LCD1602_E=0;//使能脚E后负跳变完成写入	
}
#endif/*******************************************************************************
* 函 数 名       : lcd1602_write_data
* 函数功能		 : LCD1602写数据
* 输    入       : dat:数据
* 输    出    	 : 无
*******************************************************************************/
#if (LCD1602_4OR8_DATA_INTERFACE==0)//8位LCD
void lcd1602_write_data(u8 dat) 
{LCD1602_RS=1;//选择数据LCD1602_RW=0;//选择写LCD1602_E=0;LCD1602_DATAPORT=dat;//准备数据delay_ms(1);LCD1602_E=1;//使能脚E先上升沿写入delay_ms(1);LCD1602_E=0;//使能脚E后负跳变完成写入		
}
#else
void lcd1602_write_data(u8 dat) 
{LCD1602_RS=1;//选择数据LCD1602_RW=0;//选择写LCD1602_E=0;LCD1602_DATAPORT=dat;//准备数据delay_ms(1);LCD1602_E=1;//使能脚E先上升沿写入delay_ms(1);LCD1602_E=0;//使能脚E后负跳变完成写入LCD1602_DATAPORT=dat<<4;//准备数据delay_ms(1);LCD1602_E=1;//使能脚E先上升沿写入delay_ms(1);LCD1602_E=0;//使能脚E后负跳变完成写入		
}
#endif/*******************************************************************************
* 函 数 名       : lcd1602_init
* 函数功能		 : LCD1602初始化
* 输    入       : 无
* 输    出    	 : 无
*******************************************************************************/
#if (LCD1602_4OR8_DATA_INTERFACE==0)//8位LCD
void lcd1602_init(void)
{lcd1602_write_cmd(0x38);//数据总线8位,显示2行,5*7点阵/字符lcd1602_write_cmd(0x0c);//显示功能开,无光标,光标闪烁lcd1602_write_cmd(0x06);//写入新数据后光标右移,显示屏不移动lcd1602_write_cmd(0x01);//清屏	
}
#else
void lcd1602_init(void)
{lcd1602_write_cmd(0x28);//数据总线4位,显示2行,5*7点阵/字符lcd1602_write_cmd(0x0c);//显示功能开,无光标,光标闪烁lcd1602_write_cmd(0x06);//写入新数据后光标右移,显示屏不移动lcd1602_write_cmd(0x01);//清屏	
}
#endif/*******************************************************************************
* 函 数 名       : lcd1602_clear
* 函数功能		 : LCD1602清屏
* 输    入       : 无
* 输    出    	 : 无
*******************************************************************************/
void lcd1602_clear(void)
{lcd1602_write_cmd(0x01);	
}/*******************************************************************************
* 函 数 名       : lcd1602_show_string
* 函数功能		 : LCD1602显示字符
* 输    入       : x,y:显示坐标,x=0~15,y=0~1;str:显示字符串
* 输    出    	 : 无
*******************************************************************************/
void lcd1602_show_string(u8 x,u8 y,u8 *str)
{u8 i=0;if(y>1||x>15)return;//行列参数不对则强制退出if(y<1)	//第1行显示{	while(*str!='\0')//字符串是以'\0'结尾,只要前面有内容就显示{if(i<16-x)//如果字符长度超过第一行显示范围,则在第二行继续显示{lcd1602_write_cmd(0x80+i+x);//第一行显示地址设置	}else{lcd1602_write_cmd(0x40+0x80+i+x-16);//第二行显示地址设置	}lcd1602_write_data(*str);//显示内容str++;//指针递增i++;	}	}else	//第2行显示{while(*str!='\0'){if(i<16-x) //如果字符长度超过第二行显示范围,则在第一行继续显示{lcd1602_write_cmd(0x80+0x40+i+x);	}else{lcd1602_write_cmd(0x80+i+x-16);	}lcd1602_write_data(*str);str++;i++;	}	}				
}

lcd1602.h

#ifndef _lcd1602_H
#define _lcd1602_H#include "public.h"//LCD1602数据口4位和8位定义,若为1,则为LCD1602四位数据口驱动,反之为8位
#define LCD1602_4OR8_DATA_INTERFACE	0	//默认使用8位数据口LCD1602//管脚定义
sbit LCD1602_RS=P2^6;//数据命令选择
sbit LCD1602_RW=P2^5;//读写选择
sbit LCD1602_E=P2^7; //使能信号
#define LCD1602_DATAPORT P0	//宏定义LCD1602数据端口//函数声明
void lcd1602_init(void);
void lcd1602_clear(void);
void lcd1602_show_string(u8 x,u8 y,u8 *str);#endif

四、代码测试

这里我们实现了LCD1602左移显示。

void main()
{	lcd1602_init();//LCD1602初始化while(1){lcd1602_show_string(0,0,"Hello World!");//第一行显示lcd1602_show_string(0,1,"0123456789");//第二行显示lcd1602_write_cmd(0x18);delay_ms(1000);}	
}

总结

LCD1602是一种液晶显示器,可以用于显示文本和图形信息。它具有低功耗,高分辨率和易于使用的特点,可以用于多种应用,如计算机控制、液晶显示器、汽车仪表板等。它可以用于显示汉字、英文字符、图形和数字,可以实现更高的效率和速度。
使用LCD1602可以帮助我们实现非常多的功能,使用他我们可以制作电子时钟,密码锁等小项目,希望大家好好理解这个模块。

http://www.yayakq.cn/news/887295/

相关文章:

  • 广东省建设局网站两学一做晋中市网站
  • 网站打开加速程序员做笔记的网站
  • 优秀学校网站模板招远网站建设
  • 网站建设修改教程视频介休门户网站
  • 网站建设江门 优荐wordpress做邮件推送
  • 一键生成文案的网站做淘客找单子的网站
  • 网上做头像用什么网站网站设计的基本方法
  • jsp网站 值班青岛网站开发哪家好
  • 陕西找人做网站多少钱流量网站建设教程
  • 国内专业的室内设计网站优化 保证排名
  • 宇泽佛山网站建设wordpress代码修改没反应
  • 北京网站建设q479185700強如何设置wordpress的内存
  • wordpress闭站十大排行装修公司
  • 东莞网站建设 汇卓wordpress多搜索框
  • 西安网站建设项目哪个网站做外贸的
  • wordpress站点语言做防水怎么注册网站
  • 东莞电子产品网站建设装修网站建设价格
  • 专业的外贸网站建设电子商务网站设计包括哪些内容
  • 门户网站开发步骤博客自己创办网站
  • 在线视频网站a做免费下载网站建设公司新员工培训ppt
  • 入境游旅游网站建设山东网站
  • 网站建设部工作职能大浪网站建设 优帮云
  • 郑州网站app建设wamp加wordpress
  • 建设项目招标在什么网站公示上海著名的建筑设计公司
  • 广州网站推广服务商自家房子做民宿的网站
  • 网站后台系统设置php淘客网站开发
  • 上海建设局官方网站技能网站建设项目需求
  • 石英石台面做网单有什么网站wordpress设置静态之后文章打不开
  • 包头有没有专业做淘宝网站的餐饮行业网站建设怎么提要求
  • 手机微网站开发wordpress缩略图变形