LCD1602_3.3V
模块: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相关推荐
- 大数据的3V和三个层面
张亚勤表示,大数据具有高容量.高速度.多类型等"3V"的特点,应用大数据发挥价值包括数据的管理.数据的扩充.数据的呈现三个层面. 大数据的3V 张亚勤表示,讲到大数据3个V,一个是 ...
- 3.3V稳压IC芯片 1117-3.3V性能测试
简 介: 对于常见使用的AMS1117-3.3V稳压芯片进行测试,特别是对于具有一定输出负载的情况下,它需要比较大(大于1V)的压降,这使得它在一些应用场合对于稳压裕量不太够了.如果想了解更多的情况, ...
- 几类 3.3V降压稳压电源IC芯片简介
简 介: 3.3V的稳压芯片除了常用到的1117-3.3V系列的,还有一些低压差,低功耗的,小封装的芯片.手边有一些这样的芯片,在这里将它们的资料进行了整理,以备将来使用. 关键词: RT8024,X ...
- 液晶12864COG 液晶模块串口/并口ST7565R带背3.3v 12864-14显示屏
➤ 液晶模块 在淘宝购买到 液晶12864COG 液晶模块串口/并口ST7565R带背3.3v 12864-14显示屏 用于之后人工神经网络模式识别图片采集使用. ▲ 液晶外形 1.接口定义 ▲ 外部 ...
- 表贴3.3V稳压芯片 PL3500测试 低压差线性稳压器
■ 实验目标 在 强度光照模块rimg02 BH1750光度传感器模块 实验中碰到一颗 PL3500 芯片,用于从5V转换成3.3V.在平时设计中经常会用到小功率的3.3V的电平场合,这比起 AS11 ...
- 3.3V与5V的电平转换
转自:https://blog.csdn.net/wwt18811707971/article/details/80549244 1.简介 现在大多数的MCU基本都是3.3V供电,而外围器件依旧存在一 ...
- 转发一个深度、实用的技术帖——实现ADM3251E与3.3V系统的RS-232接口隔离
原文地址:https://ezchina.analog.com/thread/8032 随着对处理速度及功耗的需求增长,控制芯片越来越趋向于小体积,低功耗.因此其工作所需的电源电压也降低至3.3V,甚 ...
- ESD二极管 DW3.3-2PLC-S 封装SO-8 电压3.3V
提及电路保护器件,对于新老硬件电子工程师而言,并不陌生.电路保护设计方案过程中,其中电路保护器件选型是最耐电子工程师寻味的过程.电路保护器件主要分为四类:雷击浪涌防护器件.过电压防护器件.过电流保护器 ...
- 电压3.3V的ESD静电保护器件型号大全
不同的厂家,对ESD二极管的命名型号是不一样,没有统一的标准,但是,有一点可以肯定,根据各品牌ESD二极管型号,可以确认ESD的工作电压,比如超低电容ESD静电保护管RCLAMP0524P,其中数字0 ...
- 收藏!5V转3.3V电平的19种方法技巧
技巧一:使用LDO稳压器,从5V电源向3.3V系统供电 标准三端线性稳压器的压差通常是 2.0-3.0V.要把 5V 可靠地转换为 3.3V,就不能使用它们.压差为几百个毫伏的低压降 (Low Dro ...
最新文章
- 深入理解面向对象 -- 基于 JavaScript 实现
- 关于停止发表“每周新闻回顾”的通知
- 国外好的软件测试网站
- 简易贪吃蛇c语言贴吧,熬书几个月,终于编出简易的贪吃蛇了,VS2013
- leetcode - 1201. 丑数 III
- net 架构师-数据库-sql server-001-SQL Server中的对象
- 订阅者java,RxJava:“ java.lang.IllegalStateException:只允许一个订阅者!”
- 同一个网址,根据pc跟移动端,跳到对应页面
- QQ浏览器该站点长时间无响应_消除CNZZ.站长统计代码被Chrome浏览器警告的操作...
- 计算机系统的性能能被准确测量吗,信息技术 基于计算机的软件系统的性能测量与评级...
- ACL(标准/扩展访问控制列表)
- Mac破解软件 “XXX”意外退出 奔溃解决方法
- OJ刷题---找到k个最小数
- 【高等数学笔记】多元向量值函数的导数与微分
- 布兰迪斯大学计算机科学专业,美国布兰迪斯大学计算机科学博士专业介绍
- python处理excel 隐藏sheet
- ESP8266及AT指令学习笔记
- 分享一款电机控制国产32位单片机MM32SPIN360C
- 超市收银系统c语言程序用c 的,C语言 超市收银系统
- NPDP第一章:新产品开发战略
热门文章
- 解决:Field xxMapper in xx.service.impl.xxServiceImpl required a bean of type 'xx.mapper.xxMapper'...
- OKEx徐坤:构建核心壁垒,拓展全球市场
- 142Echarts - 矩形树图(Disk Usage)
- 作为IT售前专家,如何真正调研清楚项目需求?(第二篇)
- html5新年网页做给父母的,2020给父母的新年祝福语
- 计算机组成原理——计算机的运算方法
- 扫地机器人石头爬坡_用了就再也离不开的懒人神器,石头扫地机器人P5初体验...
- 如何进行网站流量分析(一)
- 《认知与设计——理解UI设计准则》笔记(1) 我们感知自己的期望
- 报错: com.alibaba.druid.pool.DruidDataSource : abandon connection, owner thread