LCD1602_3.3V

本文介绍了一款3.3V供电的LCD1602A液晶显示模块,适用于STM32F4xxxx主控。内容涵盖模块特性,强调3.3V供电需求,接口说明,并重点讨论写时序,包括写指令和写数据的过程。虽然未详述读时序,但提供了IO口初始化、LCD写数据控制等代码示例,以及LCD初始化和宏定义的调用方法。
摘要由CSDN通过智能技术生成

模块: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种:写指令和写数据

 

具体如下:

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
了解,您的需求是通过msp430f5529LP单片机,LCD1602 3.3V点阵式LCD液晶显示和DHT11温湿度传感器实现温湿度显示。接下来我将为您提供一个简单的实现方式: 1. 硬件连接 将DHT11传感器的VCC引脚连接到msp430f5529LP单片机的VCC引脚,将DHT11传感器的GND引脚连接到msp430f5529LP单片机的GND引脚,将DHT11传感器的Data引脚连接到msp430f5529LP单片机的P1.3引脚。将LCD1602液晶显示器的VCC引脚连接到msp430f5529LP单片机的VCC引脚,将LCD1602液晶显示器的GND引脚连接到msp430f5529LP单片机的GND引脚,将LCD1602液晶显示器的RS引脚连接到msp430f5529LP单片机的P1.4引脚,将LCD1602液晶显示器的EN引脚连接到msp430f5529LP单片机的P1.5引脚,将LCD1602液晶显示器的D4~D7引脚分别连接到msp430f5529LP单片机的P1.0~P1.3引脚。 2. 编写程序 使用msp430f5529LP单片机的MSP430G2553.h库文件,编写一个程序,包括初始化LCD1602液晶显示器、读取DHT11传感器数据和在LCD1602液晶显示器上显示温湿度数据等功能。程序流程如下: - 初始化LCD1602液晶显示器。 - 通过P1.3引脚读取DHT11传感器的数据。 - 将读取到的温湿度数据进行处理。 - 在LCD1602液晶显示器上显示温湿度数据。 以下是一个简单的msp430f5529LP单片机读取DHT11传感器数据并在LCD1602液晶显示器上显示温湿度数据的程序示例,您可以参考该示例进行修和优化: ``` #include <msp430.h> #include "MSP430G2553.h" #define LCD1602_RS BIT4 #define LCD1602_EN BIT5 #define LCD1602_D4 BIT0 #define LCD1602_D5 BIT1 #define LCD1602_D6 BIT2 #define LCD1602_D7 BIT3 void delay_us(unsigned int us) { while(us--) { __delay_cycles(1); } } void delay_ms(unsigned int ms) { while(ms--) { __delay_cycles(1000); } } void LCD1602_WriteCmd(unsigned char cmd) { P1OUT &= ~LCD1602_RS; P1OUT &= ~LCD1602_EN; P1OUT &= 0xF0; P1OUT |= (cmd >> 4) & 0x0F; P1OUT |= LCD1602_EN; delay_us(1); P1OUT &= ~LCD1602_EN; P1OUT &= 0xF0; P1OUT |= cmd & 0x0F; P1OUT |= LCD1602_EN; delay_us(1); P1OUT &= ~LCD1602_EN; delay_ms(5); } void LCD1602_WriteData(unsigned char dat) { P1OUT |= LCD1602_RS; P1OUT &= ~LCD1602_EN; P1OUT &= 0xF0; P1OUT |= (dat >> 4) & 0x0F; P1OUT |= LCD1602_EN; delay_us(1); P1OUT &= ~LCD1602_EN; P1OUT &= 0xF0; P1OUT |= dat & 0x0F; P1OUT |= LCD1602_EN; delay_us(1); P1OUT &= ~LCD1602_EN; delay_us(100); } void LCD1602_Init() { P1DIR |= 0xFF; P1OUT &= 0x00; delay_ms(100); LCD1602_WriteCmd(0x28); LCD1602_WriteCmd(0x0C); LCD1602_WriteCmd(0x06); LCD1602_WriteCmd(0x01); delay_ms(2); } void DHT11_Start() { P1DIR |= BIT3; P1OUT &= ~BIT3; delay_ms(18); P1OUT |= BIT3; delay_us(1); P1DIR &= ~BIT3; delay_us(40); } unsigned char DHT11_Check() { unsigned char i; for(i = 0; i < 100; i++) { if((P1IN & BIT3) == 0) { delay_us(80); if((P1IN & BIT3) == 1) { return 1; } else { return 0; } } } return 0; } unsigned char DHT11_ReadBit() { unsigned char i; for(i = 0; i < 100; i++) { if((P1IN & BIT3) == 0) { delay_us(50); if((P1IN & BIT3) == 1) { return 1; } else { return 0; } } } return 0; } unsigned char DHT11_ReadByte() { unsigned char i, dat = 0; for(i = 0; i < 8; i++) { dat <<= 1; dat |= DHT11_ReadBit(); } return dat; } unsigned char DHT11_ReadData(unsigned char *dat) { unsigned char i; DHT11_Start(); if(DHT11_Check() == 0) { return 0; } for(i = 0; i < 5; i++) { dat[i] = DHT11_ReadByte(); } if(dat[4] != (dat[0] + dat[1] + dat[2] + dat[3])) { return 0; } return 1; } void main() { unsigned char dat[5]; unsigned char temp, humi; WDTCTL = WDTPW + WDTHOLD; LCD1602_Init(); while(1) { if(DHT11_ReadData(dat) == 1) { humi = dat[0]; temp = dat[2]; LCD1602_WriteCmd(0x80); LCD1602_WriteData('T'); LCD1602_WriteData(':'); LCD1602_WriteData(temp / 10 + '0'); LCD1602_WriteData(temp % 10 + '0'); LCD1602_WriteData('.'); LCD1602_WriteData(dat[3] + '0'); LCD1602_WriteData('C'); LCD1602_WriteCmd(0xC0); LCD1602_WriteData('H'); LCD1602_WriteData(':'); LCD1602_WriteData(humi / 10 + '0'); LCD1602_WriteData(humi % 10 + '0'); LCD1602_WriteData('.'); LCD1602_WriteData(dat[1] + '0'); LCD1602_WriteData('%'); } delay_ms(1000); } } ``` 该程序通过P1.3引脚读取DHT11传感器的数据,并将读取到的温湿度数据显示在LCD1602液晶显示器上。您可以根据具体需求进行修和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值