本文主要是介绍STM32 LCD1602 _1_液晶屏简介和管脚配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
LCD1602介绍
LCD1602中02的意思是可以显示2行,如果是1604就是4行,16的意思是在每行中可以显示16个字符。
引脚号 | 引脚名 | 电平 | 输入/输出 | 作用 |
1 | Vss | 电源地 | ||
2 | Vcc | 电源(+5V/+3.3V) | ||
3 | Vee | 对比调整电压 | ||
4 | RS | 0/1 | 输入 | 0=输入指令 1=输入数据 |
5 | R/W | 0/1 | 输入 | 0=向LCD写入指令或数据 1=从LCD读取信息 |
6 | E | 1,1→0 | 输入 | 使能信号,1时读取信息, 1→0(下降沿)执行指令 |
7 | DB0 | 0/1 | 输入/输出 | 数据总线line0(最低位) |
8 | DB1 | 0/1 | 输入/输出 | 数据总线line1 |
9 | DB2 | 0/1 | 输入/输出 | 数据总线line2 |
10 | DB3 | 0/1 | 输入/输出 | 数据总线line3 |
11 | DB4 | 0/1 | 输入/输出 | 数据总线line4 |
12 | DB5 | 0/1 | 输入/输出 | 数据总线line5 |
13 | DB6 | 0/1 | 输入/输出 | 数据总线line6 |
14 | DB7 | 0/1 | 输入/输出 | 数据总线line7(最高位) |
15 | A | +Vcc | LCD背光电源正极 | |
16 | K | 接地 | LCD背光电源负极 |
HD44780内置了DDRAM(显示数据存放单元),CGROM(字符产生单元)和CGRAM(用户自定义产生器)。
DDRAM
显示数据RAM,用来寄存待显示的代码。共80个字节,其地址和屏幕的对应关系如下表:
显示位置 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ... | 40 | |
DDRAM地址 | 第一行 | 00H | 01H | 02H | 03H | 04H | 05H | 06H | ... | 27H |
第二行 | 40H | 41H | 42H | 43H | 44H | 45H | 46H | ... | 67H |
LCD1602中,使用每行前16个地址即可。对应关系如下:
00H | 01H | 02H | 03H | 04H | 05H | 06H | 07H | 08H | 09H | 0AH | 0BH | 0CH | 0DH | 0EH | 0FH |
40H | 41H | 42H | 43H | 44H | 45H | 46H | 47H | 48H | 49H | 4AH | 4BH | 4CH | 4DH | 4EH | 4FH |
字模
在点阵屏幕上点亮和熄灭的信息数据。例如“A”
A字的字模 | |||||
---|---|---|---|---|---|
01110 | ○ | ■ | ■ | ■ | ○ |
10001 | ■ | ○ | ○ | ○ | ■ |
10001 | ■ | ○ | ○ | ○ | ■ |
10001 | ■ | ○ | ○ | ○ | ■ |
11111 | ■ | ■ | ■ | ■ | ■ |
10001 | ■ | ○ | ○ | ○ | ■ |
10001 | ■ | ○ | ○ | ○ | ■ |
例如:A01000001=0x41
如果对应表中,没有你想要的符号就只能通过字模的方式,自己创建一个。
LCD1602管脚定义
LCD1602_VSS | GND |
LCD1602_VCC | 3.3V |
LCD1602_VEE | 通过电位器接地 |
LCD1602_RS | PA5 |
LCD1602_R/S | PA12 |
LCD1602_E | PA13 |
LCD1602_DB0 | PA14 |
LCD1602_DB1 | PA15 |
LCD1602_DB2 | PA9 |
LCD1602_DB3 | PA10 |
LCD1602_DB4 | PA11 |
LCD1602_DB5 | PA12 |
LCD1602_DB6 | PB5 |
LCD1602_DB7 | PC13 |
LCD1602_A | 3.3V |
LCD1602_K | GND |
初始化配置代码
void LCD1602_GPIO_Configuration(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(GPIOC, &GPIO_InitStructure);
}
这篇关于STM32 LCD1602 _1_液晶屏简介和管脚配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!