2025 Make Blocks阶段2 -16x2字符型LCD并口驱动板
该项目使用了STM32,实现了LCD1602的设计,它的主要功能为:背光调节、亮度调节、字符显示。
标签
STM32
LCD1602
MakeBlock
你豪吗
更新2026-02-26
18
KiCad文件
全屏

项目介绍

本项目设计并实现了一款功能完整的 16x2 字符型 LCD 并口驱动板,采用并行通信接口,支持与各类微控制器(MCU)便捷连接。驱动板具备背光亮度调节、液晶显示器对比度调整、字符/数字显示等核心功能,适用于工业控制、智能设备、便携式终端等多种应用场景。

设计思路

任务要求设计一个一款16x2字符型LCD的驱动板,经过搜索可以查看到LCD1602非常符合该要求,16列*2行。查看相关驱动外设电路,屏幕上的大部分IO需要连接导MCU上,所以需要做一个驱动转接板,具有以下的功能:

  1. 电源管理模块:提供稳定的 5V 供电,支持 Type-C 和排针两种供电方式
  2. 并行接口模块:实现 8 位数据总线和控制信号的电气连接
  3. 对比度调节模块:通过电位器精确控制 LCD 显示对比度
  4. 背光驱动模块:采用三极管开关电路驱动 LED 背光
  5. 信号缓冲模块:确保信号传输的稳定性和抗干扰能力

模块介绍

LCD1602的引脚图

图片.png

所设计的驱动板


SCH.png

PCB.png


通过滑动电位器R6,可以改变显示的对比度。

通过改变EN上的PWM周期,可以改变背光的亮度。

功能代码

#define LCD_RS(x)      HAL_GPIO_WritePin(RS_GPIO_Port, RS_Pin, x)
#define LCD_RW(x) HAL_GPIO_WritePin(RW_GPIO_Port, RW_Pin, x)
#define LCD_E(x) HAL_GPIO_WritePin(E_GPIO_Port, E_Pin, x)
void send_data(unsigned char dat)
{
HAL_GPIO_WritePin(D7_GPIO_Port, D7_Pin, (dat>>7)&0x01);
HAL_GPIO_WritePin(D6_GPIO_Port, D6_Pin, (dat>>6)&0x01);
HAL_GPIO_WritePin(D5_GPIO_Port, D5_Pin, (dat>>5)&0x01);
HAL_GPIO_WritePin(D4_GPIO_Port, D4_Pin, (dat>>4)&0x01);
HAL_GPIO_WritePin(D3_GPIO_Port, D3_Pin, (dat>>3)&0x01);
HAL_GPIO_WritePin(D2_GPIO_Port, D2_Pin, (dat>>2)&0x01);
HAL_GPIO_WritePin(D1_GPIO_Port, D1_Pin, (dat>>1)&0x01);
HAL_GPIO_WritePin(D0_GPIO_Port, D0_Pin, (dat>>0)&0x01);
}
void WriteCommandLCD(unsigned char cmd)
{
LCD_RS(0);
LCD_RW(0);
send_data(cmd);

LCD_E(1);
HAL_Delay(1);
LCD_E(0);
HAL_Delay(1);
}
void LCD_Init(void)
{
HAL_Delay(20);

WriteCommandLCD(0x38);
HAL_Delay(5);
WriteCommandLCD(0x0C);
HAL_Delay(5);
WriteCommandLCD(0x06);
HAL_Delay(5);
WriteCommandLCD(0x01);
HAL_Delay(2);
}
void WriteDataLCD(unsigned char dat)
{
LCD_RS(1);
LCD_RW(0);
send_data(dat);

LCD_E(1);
HAL_Delay(1);
LCD_E(0);
HAL_Delay(1);
}
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)
{
Y &= 0x1;
X &= 0xF;
if (Y) X |= 0x40;
X |= 0x80;
WriteCommandLCD(X);
WriteDataLCD(DData);
}
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
HAL_GPIO_WritePin(EN_GPIO_Port, EN_Pin, 1);
LCD_Init();
uint8_t show[] = "www.eetree.cn";
uint8_t show1[] = "Make Blocks 6";
while (1)
{
for(uint8_t i = 0; i < 13; i++){
DisplayOneChar(i,0,show[i]);
DisplayOneChar(i,1,show1[i]);
}
HAL_Delay(1000);
}
}

硬件连接说明

STM32F103C8T6 与 LCD1602 驱动板的并行接口连接方案:

  • PA0–PA7  D7–DD(8 位数据总线)
  • PB10  RS(寄存器选择)
  • PB1  RW(读写控制)
  • PB0  EN(使能信号)
  • 5V  VCC
  • GND  GND
  • PB11  LED(-)(背光控制)

Line.png

功能展示

www.eetree.cn
Make Blocks 6

show.png


总结心得

本 16x2 字符型 LCD 并口驱动板项目具备完整的功能设计和稳定的性能表现,通过模块化布局和优化的电路设计,确保了系统的可靠性和易用性。配合 STM32 等主流 MCU 的驱动支持,可快速集成到各类嵌入式系统中,满足工业控制、智能设备、便携式终端等多种应用场景的文本显示需求。

附件下载
kicad.zip
PCB原理图
lcd1602.zip
演示代码
团队介绍
个人玩家
评论
0 / 100
查看更多
猜你喜欢
2025 Make Blocks阶段1 -16x2字符型LCD并口驱动板该项目使用了LCD1602、电位器、三极管,实现了16x2字符型LCD并口驱动板的设计,它的主要功能为:背光调节、亮度调节、图形显示。
你豪吗
121
2025 Make Blocks阶段1 -16x2字符型LCD并口驱动板该项目使用了LCM-S01602DSR/B,实现了16x2字符型LCD并口驱动板的设计,它的主要功能为:可以通过电位器进行调光。
mnbv
206
2025 Make Blocks 限时挑战赛_16x2字符型LCD并口驱动板该项目使用了LDO降压芯片XC6206P332MR和稳压管BZT52C3V3S,实现了多电压供电兼容和电源保护的设计,它的主要功能为:支持3.3V直接供电(仅焊电容电阻)或更高电压(如5V)供电(需焊LDO和稳压管),确保逻辑电平稳定,防止过压损坏,同时通过电容滤波提高电源质量,适应不同应用场景。 该项目使用了背光亮度调节电位器(通过R4电阻)和LED背光驱动电路,实现了背光亮度可调的的设计,它的主要功能为:允许用户通过调整R4电阻值(默认0Ω可短路)来调节LCD背光亮度,节省功耗,并支持拆掉背光壳后透明显示,方便添加外置背光,适用于各种照明环境和小型项目。 该项目使用了并口接口电路和固定排针,实现了LCD信号稳定传输和方便安装的设计,它的主要功能为:提供16x2字符型LCD的并口驱动信号,并通过两个排针(与信号排针间距1400mil)固定屏幕排线,防止松动,同时支持直插面包板,便于原型开发和测试。
bike
120
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号