液晶LCD1602驱动代码
液晶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驱动代码相关推荐
- TFT_LCD液晶屏驱动设计与验证
TFT_LCD液晶屏驱动设计与验证 注:在本实验工程中,输出信号中包含 HV 同步模式下需要的行.场同步信号(hsync. vsync)和 DE 同步模式下的 tft_de 信号,各信号正确输出.读者 ...
- 晶联讯JLX12864G-086-PC-3S LCD显示屏 C51驱动代码
晶联讯JLX12864G-086-PC-3S LCD显示屏 C51驱动代码 //7.1.2 例程:以下为串行方式显示汉字及 ASCII 字符的例程: //液晶屏型号:JLX12864G-086-PC- ...
- 十分钟搞定SSD1963液晶屏驱动
SSD1963简介 • Display feature − Built-in 1215K bytes frame buffer. Support up to 864 x 480 at 24bpp di ...
- STM32CubeMX实战教程(七)——TFT_LCD液晶显示(附驱动代码)
液晶显示 前言 材料 TFT_LCD FSMC接口 原理图 工程配置 进入代码 驱动程序引入 代码分析 TFTLCD_Init LCD_Drawxxx LCD_Fill LCD_Showxxxx 功能 ...
- STM32入门之LCD1602驱动
LCD1602驱动要点:1. STM32的GPIO不是51单片机一样的准双向IO,读忙时需要设置. 平台:STM32F103RCT6 使用的GPIO:PB5,PB6,PB7 :PA0~PA7,具体的配 ...
- LCD 液晶屏驱动详解
LCD液晶屏驱动详解 开发环境 开发板:JZ2440V3 CPU:samsunS3C2440 内核:Linux3.4.2 编译工具:arm-linux-gcc 4.3.2 LCD:4.3存液晶屏AT0 ...
- 液晶LCD1602使用介绍
液晶LCD1602简介 LCD1602液晶也叫1602字符型液晶模块,LCD1602液晶是一种专门用来显示字母.数字.符号的点阵型液晶模块.LCD1602液晶是由若干个5x7点阵字符位组成,每个点阵字 ...
- 【Proteus仿真】STC15单片机+LCD1602驱动显示时间(DEMO)示例
[Proteus仿真]STC15单片机+LCD1602驱动显示时间(DEMO)示例 Proteus仿真 Proteus加载 STC15单片机说明 在Proteus里面唯一能找到的 STC15一款支持仿 ...
- AMG8833的使用与stm32驱动代码
一.介绍 1.内部框图 可以看到AMG8833的内部有红外点阵测温,并且还带有一个热敏电阻.使用同一个ADC进行采样,然后送给Control. 2.器件参数 测温点数:64(8x8的矩阵) 帧率:10 ...
最新文章
- 开源网络备份软件bacula学习笔记
- R语言ggplot2可视化改变线图(line plot)中线条的色彩实战
- 哈希表的详细介绍 -转载
- python语言的语法_Python语言 中的一些特殊语法
- SQL Server默认1433端口修改方法
- 细谈会话管理-----Cookie和Session
- 小米笔记本电脑键盘卡键维修
- 《21天学通C语言》总结(2)
- C语言教材市场的分析
- 多功能表单填报系统V1.2.1-适用于在线报名系统、调查、数据收集等系统应用
- 行政地名、行政区划名、地名分类(矢量数据)
- 城市公交类毕业论文文献都有哪些?
- android10 imei横线,【报Bug】android10设备plus.device.getInfo获取imei为空
- iOS-CYLTabBarController【好用的TabbarController】
- IOS双重认证增加手机号
- Android Camera API 2使用OpenGL ES 2.0和GLSurfaceView对预览进行实时二次处理(黑白滤镜)
- C++继承以及菱形继承
- 2021日照市地区高考成绩排名查询,日照高中高考成绩排名,2021年日照各高中高考成绩排行榜...
- 我也是从寒门走出来的,程序员这个职业是我最好的选择!
- 神奇的Redis延迟
热门文章
- Error during export:Export job failed !
- EventLoopGroupEventLoop
- 金融计算机次方的计算,金融理财计算器使用方法CASIOFC100,200.pdf
- IOS开发使用@IBInspectable给控件添加额外属性
- bzoj2876: [Noi2012]骑行川藏 :拉格朗日乘数法
- Unity摄像机跟随转动分析
- 国网电费充值api,油卡充值api(中石化中石油)
- Vue ElementUI el-tree 修改节点收缩 icon
- VC6.0补丁Vs6sp6安装方法
- 制作U盘启动盘安装Win11系统