LCD1602显示屏原理及使用教程

发布时间:2025-12-09 17:43:15 浏览次数:4

1.芯片简介

LCD1602显示屏为字符显示屏,显示字符为16*2。采用 LCD 显示一个字符时比较复杂,因为一个字符由 6×8 或 8×8 点阵组成,既要找到和显示屏幕上某几个位置对应的显示 RAM 区的 8 字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在 LCD1602上开始显示的行列号及每行的列数找出显示 RAM 对应的地址,设立光标,在此送上该字符对应的代码即可。

主要特点如下

  • 显示容量为16×2个字符;

  • 芯片工作电压为4.5~5.5V,**工作电压为5.0V;

  • 工作电流为2.0mA(5.0V);

  • 字符尺寸为2.95×4.35(W×H)mm。

2. 24C02引脚定义

  • VSS(1):显示屏电源地;

  • VDD(2):显示屏电源;

  • V0(3):V0为液晶显示器对比度调整端;

  • RS(4):寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器;

  • RW(5):读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据;

  • EN(6):使能端,当E端由高电平跳变成低电平时,液晶模块执行命令;

  • D0-D7(7-14):8位双向数据线;

  • A(15):背光正极;

  • K(16):背光负极;

  • 3.LCD1602控制时序

    (1)读操作时序如图:

    (2)写操作时序如图

    4.LCD1602驱动程序

    (1)LCD1602.h

    #ifndef __LCD1602_H__#define __LCD1602_H__#include<reg52.h>sbit LCD1602_RS = P2^6;sbit LCD1602_RW = P2^5;sbit LCD1602_E = P2^7;#define LCD1602_Data P0void delay_50us_1602(unsigned int t);void LCD1602_write_com(unsigned char com);void LCD1602_write_data(unsigned int dat);void LCD1602_init(void);/*******************************************函数名称:Disp_ZF功 能:控制液晶显示字符参 数:addr--显示位置的首地址pt--指向显示数据的指针num--显示字符个数返回值 :无********************************************/void LCD1602_Disp_ZF(unsigned char addr,const unsigned char * pt,unsigned char num); #endif

    (2)LCD1602.c

    #include "LCD1602.h"//延时函数void delay_50us_1602(unsigned int t){unsigned char j;for(;t>0;t--)for(j=19;j>0;j--);}//LCD1602写指令void LCD1602_write_com(unsigned char com) {LCD1602_E = 0;LCD1602_RS = 0;LCD1602_RW = 0;LCD1602_Data= com;delay_50us_1602(10);LCD1602_E = 1;delay_50us_1602(20);LCD1602_E = 0;}//LCD1602写数据void LCD1602_write_data(unsigned int dat){LCD1602_E = 0;LCD1602_RS = 1;LCD1602_RW = 0;LCD1602_Data = dat;delay_50us_1602(10);LCD1602_E = 1;delay_50us_1602(20);LCD1602_E = 0;}//LCD1602初始化void LCD1602_init(void){delay_50us_1602(300);LCD1602_write_com(0X38);delay_50us_1602(100);LCD1602_write_com(0X38);delay_50us_1602(100);LCD1602_write_com(0X38);LCD1602_write_com(0X38);LCD1602_write_com(0X08);LCD1602_write_com(0X01);LCD1602_write_com(0X06);LCD1602_write_com(0X0C);}void LCD1602_Disp_ZF(unsigned char addr,const unsigned char * pt,unsigned char num){unsigned char i;LCD1602_write_com(addr); for(i = 0;i < (num*1);i++) LCD1602_write_data(*(pt++)); }

    如需资料可在该账号下载频道下载,或关注公众号-单片机实例设计,发送“LCD1602”获取。

    需要做网站?需要网络推广?欢迎咨询客户经理 13272073477