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 P0
void 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++));
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
控制器
+关注
关注
112文章
16302浏览量
177783 -
显示屏
+关注
关注
28文章
4478浏览量
74227 -
电平
+关注
关注
5文章
360浏览量
39882 -
发生器
+关注
关注
4文章
1366浏览量
61662 -
lcd1602显示
+关注
关注
0文章
10浏览量
7923
发布评论请先 登录
相关推荐
如何控制LCD1602显示屏的光标?
(账号里只有一积分了)本人新手一枚,正在做一个单片机开发的小项目,想问一下如何控制LCD1602显示屏里的光标啊?在网上找到了这个函数//获取光标位置的函数void LCD_cursor(uchar
发表于 04-10 20:56
LCD1602显示屏怎么连线呢
一般无特殊计划 买的LCD1602显示屏是5V版本的,不是3.3特殊版本,这时候怎么连线。下图画正方形的2个孔,上面是5V,下面是板子的GND。下图右上角的VCC是3.3V.接线方式:成功:
发表于 11-29 07:17
LCD1602显示屏的相关资料分享
说明 本文并非原创,而是结合了两篇博文,需要看两篇博文原创的可以直接点击本文最后的链接。一、LCD1602显示屏的具体引脚与基本配置一般来说,LCD1602显示屏共有16个引脚,各个厂
发表于 12-03 06:34
请问LCD1602显示屏能显示中文汉字吗?
LCD1602显示屏是外文显示屏,它本身带的ROM固化的字型库,只有英文数字特殊符号和日语假名,没中文。这样的屏能显示中文吗?
发表于 10-28 08:07
使用STM8S003单片机驱动LCD1602显示屏的程序和工程文件免费下载
本文档的主要内容详细介绍的是使用STM8S003单片机驱动LCD1602显示屏的程序和工程文件免费下载。
发表于 10-15 08:00
•64次下载
LCD1602显示屏的资料合集免费下载
LCD1602显示屏的资料合集免费下载包括了:LCD1602显示屏技术手册,库文件,Arduino参考程序,1602基本
发表于 05-27 08:00
•59次下载
单片机控制LCD1602显示屏动态显示字符串
仿真电路图:仿真实验结果:C语言程序代码:/*-----------------------------------------------名称:LCD1602论坛:www.doflye.net编写
发表于 11-18 12:36
•10次下载
(单片机/FPGA)LCD1602基础理论
说明 本文并非原创,而是结合了两篇博文,需要看两篇博文原创的可以直接点击本文最后的链接。一、LCD1602显示屏的具体引脚与基本配置一般来说,LCD1602显示屏共有16个引脚,
发表于 11-23 17:51
•15次下载
评论