液晶LCD1602简介

LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。它是由字符型液晶显示屏(LCD)、控制驱动主电路HD44780及其扩展驱动电路HD44100,以及少量电阻、电容元件和结构件等装配在PCB板上而组成。不同厂家生产的LCD1602芯片可能有所不同,但使用方法都是一样的。为了降低成本,绝大多数制造商都直接将裸片做到板子上。

液晶LCD1602技术参数

1、显示容量:16×2个字符。

2、芯片工作电压:4.5~5.5V。

3、工作电流:2.0mA(5.0V)。

4、模块最佳的工作电压:5.0V。

5、字符尺寸:2.95mm×4.35mm(宽×高)。

液晶LCD1602引脚功能

LCD1602采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明见下表。

各引脚的功能介绍如下。

1、引脚1:VSS为地电源。

2、引脚2:VDD接5V正电源。

3、引脚3:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”现象,使用时可以通过一个10kQ的电位器调整其对比度。

4、引脚4:RS为寄存器选择脚,高电平时选择数据寄存器、低电平时选择指令寄存器。

5、引脚5:R/W为读/写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或显示地址;当RS为低电平,R/W为高电平时,可以读忙信号;当RS为高电平,R/W为低电平时,可以写入数据。

6、引脚6:E端为使能端,当E端由高电平跳变为低电平时,液晶模块执行命令。

7、引脚7~14:D0~D7为8位双向数据线。

8、引脚15:背光源正极。

9、引脚16:背光源负极。

液晶LCD1602驱动源代码

/***********************LCD驱动基本代码*********************

* 单片机:51单片机

* 开发环境:keil uVision3

* 名称:1602驱动基本代码

**************************************************************/

#include<reg51.h> //包含头文件

#include<intrins.h>

#define LCD_Data P0

#define Busy 0x80

sbit LCD_RS = P1^0;

sbit LCD_RW = P1^1;

sbit LCD_E = P2^5;

unsigned char code welcome[] = {"YOU ARE WELCOME"};

unsigned char code mcu[] = {"SL-51A"};

void Delay5Ms(void);

void WriteDataLCD(unsigned char WDLCD);

void WriteCommandLCD(unsigned char WCLCD,BuysC);

unsigned char ReadDataLCD(void);

unsigned char ReadStatusLCD(void);

void LCDInit(void);

void DisplayOneChar(unsigned char X, unsigned char Y, unsignedchar DData);

void DisplayListChar(unsigned char X, unsigned char Y, unsignedchar code *DData);

void Info_display(void);

/*************************5ms延时函数***************************/

void Delay5Ms(void)

{

unsigned int TempCyc =3552;

while(TempCyc--);

}

/**************************写数据函数***************************/

void WriteDataLCD(unsigned char WDLCD)

{

ReadStatusLCD(); //检测忙

LCD_Data = WDLCD;

LCD_E = 0; //若晶振速度太高可以在这后加小的延时

LCD_E = 0; //延时

LCD_RS = 1;

LCD_RW = 0;

LCD_E = 1;

LCD_E = 0;

}

/*************************写指令函数****************************/

void WriteCommandLCD(unsigned char WCLCD,BuysC) //BuysC为0时忽略忙检测

{

if (BuysC) ReadStatusLCD(); //根据需要检测忙

LCD_Data = WCLCD;

LCD_E = 0;

LCD_E = 0;

LCD_RS = 0;

LCD_RW = 0;

LCD_E = 1;

LCD_E = 0;

}

/**************************读状态函数***************************/

unsigned char ReadStatusLCD(void)

{

LCD_Data = 0xFF;

LCD_RS = 0;

LCD_RW = 1;

LCD_E = 0;

LCD_E = 0;

LCD_E = 1;

while (LCD_Data &Busy); //检测忙信号

return(LCD_Data);

}

/***************************LCD初始化***************************/

void LCDInit(void) //LCD初始化

{

LCD_Data = 0;

WriteCommandLCD(0x38,0); //三次显示模式设置,不检测忙信号

Delay5Ms();

WriteCommandLCD(0x38,0);

Delay5Ms();

WriteCommandLCD(0x38,0);

Delay5Ms();

WriteCommandLCD(0x38,1); //显示模式设置, 开始要求每次检测忙信

WriteCommandLCD(0x08,1); //关闭显示

WriteCommandLCD(0x01,1); //显示清屏

WriteCommandLCD(0x06,1); //显示光标移动设置

WriteCommandLCD(0x0C,1); //显示开及光标设置

}

/**********************按指定位置显示一个字符*********************/

void DisplayOneChar(unsigned char X, unsigned char Y, unsignedchar DData)

{

Y &= 0x1;

X &= 0xF; //限制X不能大于15,Y不能大于1

if (Y) X |= 0x40; //当要显示第二行时地址码+0x40;

X |= 0x80; //算出指令码

WriteCommandLCD(X,0); //这里不检测忙信号,发送地址码

WriteDataLCD(DData);

}

/***********************按指定位置显示一串字符********************/

void DisplayListChar(unsigned char X, unsigned char Y, unsignedchar code *DData)

{

unsigned char ListLength;

ListLength = 0;

Y &= 0x1;

X &= 0xF; //限制X不能大于15,Y不能大于1

while(DData[ListLength]>=0x20) //若到达字串尾则退出

{

if (X <= 0xF) //X坐标应小于0xF

{

DisplayOneChar(X, Y,DData[ListLength]); //显示单个字符

ListLength++;

X++;

}

}

}

void main(void)

{

LCDInit();

DisplayListChar(5,0,mcu);

DisplayListChar(0,1,welcome);

while(1){;}

}

液晶LCD1602驱动代码相关推荐

  1. TFT_LCD液晶屏驱动设计与验证

    TFT_LCD液晶屏驱动设计与验证 注:在本实验工程中,输出信号中包含 HV 同步模式下需要的行.场同步信号(hsync. vsync)和 DE 同步模式下的 tft_de 信号,各信号正确输出.读者 ...

  2. 晶联讯JLX12864G-086-PC-3S LCD显示屏 C51驱动代码

    晶联讯JLX12864G-086-PC-3S LCD显示屏 C51驱动代码 //7.1.2 例程:以下为串行方式显示汉字及 ASCII 字符的例程: //液晶屏型号:JLX12864G-086-PC- ...

  3. 十分钟搞定SSD1963液晶屏驱动

    SSD1963简介 • Display feature − Built-in 1215K bytes frame buffer. Support up to 864 x 480 at 24bpp di ...

  4. STM32CubeMX实战教程(七)——TFT_LCD液晶显示(附驱动代码)

    液晶显示 前言 材料 TFT_LCD FSMC接口 原理图 工程配置 进入代码 驱动程序引入 代码分析 TFTLCD_Init LCD_Drawxxx LCD_Fill LCD_Showxxxx 功能 ...

  5. STM32入门之LCD1602驱动

    LCD1602驱动要点:1. STM32的GPIO不是51单片机一样的准双向IO,读忙时需要设置. 平台:STM32F103RCT6 使用的GPIO:PB5,PB6,PB7 :PA0~PA7,具体的配 ...

  6. LCD 液晶屏驱动详解

    LCD液晶屏驱动详解 开发环境 开发板:JZ2440V3 CPU:samsunS3C2440 内核:Linux3.4.2 编译工具:arm-linux-gcc 4.3.2 LCD:4.3存液晶屏AT0 ...

  7. 液晶LCD1602使用介绍

    液晶LCD1602简介 LCD1602液晶也叫1602字符型液晶模块,LCD1602液晶是一种专门用来显示字母.数字.符号的点阵型液晶模块.LCD1602液晶是由若干个5x7点阵字符位组成,每个点阵字 ...

  8. 【Proteus仿真】STC15单片机+LCD1602驱动显示时间(DEMO)示例

    [Proteus仿真]STC15单片机+LCD1602驱动显示时间(DEMO)示例 Proteus仿真 Proteus加载 STC15单片机说明 在Proteus里面唯一能找到的 STC15一款支持仿 ...

  9. AMG8833的使用与stm32驱动代码

    一.介绍 1.内部框图 可以看到AMG8833的内部有红外点阵测温,并且还带有一个热敏电阻.使用同一个ADC进行采样,然后送给Control. 2.器件参数 测温点数:64(8x8的矩阵) 帧率:10 ...

最新文章

  1. 开源网络备份软件bacula学习笔记
  2. R语言ggplot2可视化改变线图(line plot)中线条的色彩实战
  3. 哈希表的详细介绍 -转载
  4. python语言的语法_Python语言 中的一些特殊语法
  5. SQL Server默认1433端口修改方法
  6. 细谈会话管理-----Cookie和Session
  7. 小米笔记本电脑键盘卡键维修
  8. 《21天学通C语言》总结(2)
  9. C语言教材市场的分析
  10. 多功能表单填报系统V1.2.1-适用于在线报名系统、调查、数据收集等系统应用
  11. 行政地名、行政区划名、地名分类(矢量数据)
  12. 城市公交类毕业论文文献都有哪些?
  13. android10 imei横线,【报Bug】android10设备plus.device.getInfo获取imei为空
  14. iOS-CYLTabBarController【好用的TabbarController】
  15. IOS双重认证增加手机号
  16. Android Camera API 2使用OpenGL ES 2.0和GLSurfaceView对预览进行实时二次处理(黑白滤镜)
  17. C++继承以及菱形继承
  18. 2021日照市地区高考成绩排名查询,日照高中高考成绩排名,2021年日照各高中高考成绩排行榜...
  19. 我也是从寒门走出来的,程序员这个职业是我最好的选择!
  20. 神奇的Redis延迟

热门文章

  1. Error during export:Export job failed !
  2. EventLoopGroupEventLoop
  3. 金融计算机次方的计算,金融理财计算器使用方法CASIOFC100,200.pdf
  4. IOS开发使用@IBInspectable给控件添加额外属性
  5. bzoj2876: [Noi2012]骑行川藏 :拉格朗日乘数法
  6. Unity摄像机跟随转动分析
  7. 国网电费充值api,油卡充值api(中石化中石油)
  8. Vue ElementUI el-tree 修改节点收缩 icon
  9. VC6.0补丁Vs6sp6安装方法
  10. 制作U盘启动盘安装Win11系统