模块: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,对你有帮助就留下你的小攒攒吧·······

LCD1602_3.3V相关推荐

  1. 大数据的3V和三个层面

    张亚勤表示,大数据具有高容量.高速度.多类型等"3V"的特点,应用大数据发挥价值包括数据的管理.数据的扩充.数据的呈现三个层面. 大数据的3V 张亚勤表示,讲到大数据3个V,一个是 ...

  2. 3.3V稳压IC芯片 1117-3.3V性能测试

    简 介: 对于常见使用的AMS1117-3.3V稳压芯片进行测试,特别是对于具有一定输出负载的情况下,它需要比较大(大于1V)的压降,这使得它在一些应用场合对于稳压裕量不太够了.如果想了解更多的情况, ...

  3. 几类 3.3V降压稳压电源IC芯片简介

    简 介: 3.3V的稳压芯片除了常用到的1117-3.3V系列的,还有一些低压差,低功耗的,小封装的芯片.手边有一些这样的芯片,在这里将它们的资料进行了整理,以备将来使用. 关键词: RT8024,X ...

  4. 液晶12864COG 液晶模块串口/并口ST7565R带背3.3v 12864-14显示屏

    ➤ 液晶模块 在淘宝购买到 液晶12864COG 液晶模块串口/并口ST7565R带背3.3v 12864-14显示屏 用于之后人工神经网络模式识别图片采集使用. ▲ 液晶外形 1.接口定义 ▲ 外部 ...

  5. 表贴3.3V稳压芯片 PL3500测试 低压差线性稳压器

    ■ 实验目标 在 强度光照模块rimg02 BH1750光度传感器模块 实验中碰到一颗 PL3500 芯片,用于从5V转换成3.3V.在平时设计中经常会用到小功率的3.3V的电平场合,这比起 AS11 ...

  6. 3.3V与5V的电平转换

    转自:https://blog.csdn.net/wwt18811707971/article/details/80549244 1.简介 现在大多数的MCU基本都是3.3V供电,而外围器件依旧存在一 ...

  7. 转发一个深度、实用的技术帖——实现ADM3251E与3.3V系统的RS-232接口隔离

    原文地址:https://ezchina.analog.com/thread/8032 随着对处理速度及功耗的需求增长,控制芯片越来越趋向于小体积,低功耗.因此其工作所需的电源电压也降低至3.3V,甚 ...

  8. ESD二极管 DW3.3-2PLC-S 封装SO-8 电压3.3V

    提及电路保护器件,对于新老硬件电子工程师而言,并不陌生.电路保护设计方案过程中,其中电路保护器件选型是最耐电子工程师寻味的过程.电路保护器件主要分为四类:雷击浪涌防护器件.过电压防护器件.过电流保护器 ...

  9. 电压3.3V的ESD静电保护器件型号大全

    不同的厂家,对ESD二极管的命名型号是不一样,没有统一的标准,但是,有一点可以肯定,根据各品牌ESD二极管型号,可以确认ESD的工作电压,比如超低电容ESD静电保护管RCLAMP0524P,其中数字0 ...

  10. 收藏!5V转3.3V电平的19种方法技巧

    技巧一:使用LDO稳压器,从5V电源向3.3V系统供电 标准三端线性稳压器的压差通常是 2.0-3.0V.要把 5V 可靠地转换为 3.3V,就不能使用它们.压差为几百个毫伏的低压降 (Low Dro ...

最新文章

  1. 深入理解面向对象 -- 基于 JavaScript 实现
  2. 关于停止发表“每周新闻回顾”的通知
  3. 国外好的软件测试网站
  4. 简易贪吃蛇c语言贴吧,熬书几个月,终于编出简易的贪吃蛇了,VS2013
  5. leetcode - 1201. 丑数 III
  6. net 架构师-数据库-sql server-001-SQL Server中的对象
  7. 订阅者java,RxJava:“ java.lang.IllegalStateException:只允许一个订阅者!”
  8. 同一个网址,根据pc跟移动端,跳到对应页面
  9. QQ浏览器该站点长时间无响应_消除CNZZ.站长统计代码被Chrome浏览器警告的操作...
  10. 计算机系统的性能能被准确测量吗,信息技术 基于计算机的软件系统的性能测量与评级...
  11. ACL(标准/扩展访问控制列表)
  12. Mac破解软件 “XXX”意外退出 奔溃解决方法
  13. OJ刷题---找到k个最小数
  14. 【高等数学笔记】多元向量值函数的导数与微分
  15. 布兰迪斯大学计算机科学专业,美国布兰迪斯大学计算机科学博士专业介绍
  16. python处理excel 隐藏sheet
  17. ESP8266及AT指令学习笔记
  18. 分享一款电机控制国产32位单片机MM32SPIN360C
  19. 超市收银系统c语言程序用c 的,C语言 超市收银系统
  20. NPDP第一章:新产品开发战略

热门文章

  1. 解决:Field xxMapper in xx.service.impl.xxServiceImpl required a bean of type 'xx.mapper.xxMapper'...
  2. OKEx徐坤:构建核心壁垒,拓展全球市场
  3. 142Echarts - 矩形树图(Disk Usage)
  4. 作为IT售前专家,如何真正调研清楚项目需求?(第二篇)
  5. html5新年网页做给父母的,2020给父母的新年祝福语
  6. 计算机组成原理——计算机的运算方法
  7. 扫地机器人石头爬坡_用了就再也离不开的懒人神器,石头扫地机器人P5初体验...
  8. 如何进行网站流量分析(一)
  9. 《认知与设计——理解UI设计准则》笔记(1) 我们感知自己的期望
  10. 报错: com.alibaba.druid.pool.DruidDataSource : abandon connection, owner thread