LCD1602_3.3V

news/2025/2/13 0:06:36/

模块:LCD1602_3.3V

主控: STM32F4xxxx

目录

一、LCD1602

使用的模块供电电压是3.3V的!!

接口说明:​

二、时序说明


一、LCD1602

使用的是某宝LCD1602A模块

简述:

1602A QAPASS字符型液晶显示模块是专门用于显示字母、数字元、符号
等的点阵型液晶显示模块。分4位和8位数据传输方式。提供5×7点阵+游
标的显示模式。提供显示数据缓冲区DDRAM、字符发生器CGROM和字符
发生器CGRAM,可以使用CGRAM来存储自己定义的最多8个5×8点阵的
图形字符的字模数据。提供了丰富的指令设置:清显示;游标回原点;显示开
/关;游标开/关;显示字符闪烁;游标移位;显示移位元等。提供内部上电自
动复位电路,当外加电源电压超过+4.5V时,自动对模块进行初始化操作,将
模块设置为默认的显示工作状态。
1602A QAPASS为环保型液晶显示模块。

使用的模块供电电压是3.3V的!!

接口说明:

二、时序说明(非常重要)

1.读时序

不看了

2.写时序

写分为2种:写指令和写数据

 

具体如下:

RS

R/W

说明

0

0

写指令

1

0

写数据

 

 

算了,不想写了,上代码

 

1.IO口初始化

void LCD_IO_Init(void)
{GPIO_InitTypeDef  GPIO_InitStructure;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);//使能GPIOB时钟RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);//使能GPIOC时钟RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//使能GPIOA时钟RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);//使能GPIOD时钟//RWGPIO_InitStructure.GPIO_Pin = 1<<LCD1602_RW_PIN;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(LCD1602_RW_PORT, &GPIO_InitStructure);//初始化//RSGPIO_InitStructure.GPIO_Pin = 1<<LCD1602_RS_PIN ;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(LCD1602_RS_PORT, &GPIO_InitStructure);//初始化//ENGPIO_InitStructure.GPIO_Pin = 1<<LCD1602_EN_PIN;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(LCD1602_EN_PORT, &GPIO_InitStructure);//初始化//DB0   //DB1GPIO_InitStructure.GPIO_Pin = (1<<LCD1602_D0_PIN) |(1<<LCD1602_D1_PIN);GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(LCD1602_D0_PORT, &GPIO_InitStructure);//初始化//DB2GPIO_InitStructure.GPIO_Pin = (1<<LCD1602_D2_PIN) ;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(LCD1602_D2_PORT, &GPIO_InitStructure);//初始化//DB3 //DB4 //DB5 //DB6 //DB7GPIO_InitStructure.GPIO_Pin =  (1<<LCD1602_D3_PIN) |(1<<LCD1602_D4_PIN) |        (1<<LCD1602_D5_PIN)|(1<<LCD1602_D6_PIN) |(1<<LCD1602_D7_PIN);GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化}

2.LCD_写数据控制D0~D7(此处使用的是不连续IO)

连续的IO可以直接向端口写

void Write_Port(uint8_t byte)
{LCD_D0_OUT=(byte&0x01)>>0;LCD_D1_OUT=(byte&0x02)>>1;LCD_D2_OUT=(byte&0x04)>>2;LCD_D3_OUT=(byte&0x08)>>3;LCD_D4_OUT=(byte&0x10)>>4;LCD_D5_OUT=(byte&0x20)>>5;LCD_D6_OUT=(byte&0x40)>>6;LCD_D7_OUT=(byte&0x80)>>7;
}

3.写指令

写指令时,RS=0;RW=0,在EN为低电平时写入数据,产生上升沿,让模块读取数据(使用stm32驱动时,延时就对了

EN的周期最小是1000us=1ms,所以速度再快也就1khz

关注

EN的脉宽最小是450us

根据时序图可得下面代码

void LCD_Write_Cmd(unsigned char CMD) //BuysC为0时忽略忙检测
{LCD_Wait_Ready(); LCD_RS=0;LCD_RW=0;LCD_EN=0;LCD_EN=1;	Write_Port(CMD);delay_ms(5);LCD_EN=0;
}

4.写数据

void LCD_Write_Dat(unsigned char LCD_Data)
{LCD_Wait_Ready();LCD_RS=1;LCD_RW=0;LCD_EN=0;LCD_EN=1;	Write_Port(LCD_Data);delay_ms(1);LCD_EN=0;}

5.LCD初始化

void LCD_Init(void)
{LCD_IO_Init();        //    IO口初始化delay_ms(500);LCD_RW=0;delay_us(2);LCD_Write_Cmd(0x38);	//16*2显示,5*7点阵,8位数据口delay_ms(10);LCD_Write_Cmd(0x01);      //清屏delay_ms(10);LCD_Write_Cmd(0x0F);	 //开显示,光标开启,光标闪烁delay_ms(10);LCD_Write_Cmd(0x06);	//文字不动,地址自动+1delay_ms(10);LCD_Write_Cmd(0x80);    //设置坐标为左上角第一个delay_ms(10);
}

6.宏

#define     LCD1602_RS_PIN			13
#define    	LCD1602_RS_PORT	GPIOC#define     LCD1602_RW_PIN			15
#define    	LCD1602_RW_PORT	GPIOA#define     LCD1602_EN_PIN			10
#define    	LCD1602_EN_PORT	GPIOC#define     LCD1602_D0_PIN			11
#define     LCD1602_D0_PORT	GPIOC#define     LCD1602_D1_PIN			12
#define     LCD1602_D1_PORT	GPIOC#define     LCD1602_D2_PIN			2
#define     LCD1602_D2_PORT GPIOD#define     LCD1602_D3_PIN			3
#define     LCD1602_D3_PORT	GPIOB#define     LCD1602_D4_PIN			4
#define     LCD1602_D4_PORT	GPIOB#define     LCD1602_D5_PIN			5
#define     LCD1602_D5_PORT	GPIOB#define     LCD1602_D6_PIN			6
#define     LCD1602_D6_PORT	GPIOB#define     LCD1602_D7_PIN			7
#define     LCD1602_D7_PORT	GPIOB#define   LCD_RS           PCout(13)
#define   LCD_RW           PAout(15)
#define   LCD_EN           PCout(10)#define   LCD_D0_OUT       PCout(11)
#define   LCD_D1_OUT       PCout(12)
#define   LCD_D2_OUT       PDout(2)
#define   LCD_D3_OUT       PBout(3)
#define   LCD_D4_OUT       PBout(4)
#define   LCD_D5_OUT       PBout(5)
#define   LCD_D6_OUT       PBout(6)
#define   LCD_D7_OUT       PBout(7)#define   LCD_D0_IN       PCin(11)
#define   LCD_D1_IN       PCin(12)
#define   LCD_D2_IN       PDin(2)
#define   LCD_D3_IN       PCin(3)
#define   LCD_D4_IN       PCin(4)
#define   LCD_D5_IN       PCin(5)
#define   LCD_D6_IN       PCin(6)
#define   LCD_D7_IN       PCin(7)

 

7.调用

	LCD_Init();LCD_Write_Cmd(0x01);for(i=0;i<4;i++){LCD_Write_Dat('1');delay_ms(1000);}

觉得ok,对你有帮助就留下你的小攒攒吧·······


http://www.ppmy.cn/news/191624.html

相关文章

解决R6034错误

本人的项目使用ATL开发一个具有3D功能的COM组件&#xff0c;组件中使用了OGRE开源库&#xff0c;对OGRE库的Include和Link都配置好以后&#xff0c;编译自己的库&#xff0c;在生成DLL的最后一步register output时&#xff0c;弹出错误 “Microsoft Visual C Debug Library”&a…

高清录播服务器(什么是服务器)

服务器英文名称为“Server”,指的是网络环境下为客户机(Client)提供某种服务的专用计算机,服务器安装有网络操作系统和各种服务器应用系统软件(如Web服务、电子邮件服务),通常分为文件服务器(能使用户在其它计算机访问文件),数据库服务器和应用程序服务器。运行以上软件的…

1计算机系统概述_1.2计算机系统层次结构

1.2 计算机系统层次结构 计算机系统&#xff08;CO 自命名&#xff09; 1、CO的组成 硬件系统和软件系统共同构成了一个完整的计算机系统 ——硬件&#xff1a;有形的物理设备&#xff0c;是CO中实际物理装置的总称 ——软件&#xff1a;在硬件上运行的程序和相关的数据及文…

Java简单实现短信验证登录(Session、Redis)

前端设计 <div class"login-form"><div style"display: flex; justify-content: space-between"><el-input style"width: 60%" placeholder"请输入手机号" v-model"form.phone" ></el-input><e…

自组网对讲机怎么轻松组网

BF-TD930自组网数字对讲机是基于TDMA、DMR/PDT技术研发&#xff0c;人性化的全键盘外观设计&#xff0c;ABSPC材料机身耐磨抗摔&#xff0c;适应各种恶劣工作环境、高强度通信需求。具备直通全双工通话、IP68防护等级、多重安全示警保障、卫星定位、AES256/ARC4语音加密。并支持…

对讲机中继台安装

对讲机中继台安装 对讲机理论距离可以达到近10公里&#xff0c;但由于环境和地形的影响&#xff0c;实际通话距离大打折扣&#xff0c;特别是在室内环境下&#xff0c;通话距离更近。在复杂的地下室&#xff0c;两者之间的通话有可能不足100米&#xff0c;那么遇到这种情况怎么…

建武28a对讲机最大距离_正品对讲机最大通话距离能达到多少?不太了解如何选购对讲机,...

展开全部 正品对讲机和山寨货的区别e68a84e8a2ad3231313335323631343130323136353331333363373036是用料和做工。正品对讲机用料讲究&#xff0c;做工精细&#xff0c;电路工作稳定。 山寨机偷工减料&#xff0c;做工粗糙&#xff0c;大量手工焊接&#xff0c;所以故障率较高。…

科立捷默认频率_科立捷(KOLEEJ) 【京东配送·隔日达】民用大功率自驾游酒店地下室隧道4S店对讲机 KLJ-T10...

香港科立捷电子有限公司泉州分公司是专业研发、生产、销售民用及专用对讲机等无线通信设备的高科技企业。本公司现拥有先进的配套生产设备&#xff0c;雄厚的技术力量与高素质的管理人才&#xff0c;成功推出各种高质量的产品&#xff0c;赢得了国内、国际客户的一致认可。科立…