LCD与TFT显示系统开发 - 第1节

1. LCD TFT显示技术基础

TFT-LCD(Thin Film Transistor Liquid Crystal Display,薄膜晶体管液晶显示器)是目前嵌入式设备中最主流的显示技术。其核心原理是利用薄膜晶体管控制每个子像素的电压,从而改变液晶分子的排列方向,控制背光透过率,最终实现图像显示。

核心工作流程: 背光光源 → 下偏光片 → TFT 阵列与液晶层 → 彩色滤光片 → 上偏光片 → 人眼接收。

TFT 阵列中的每个像素由三个子像素(红、绿、蓝)组成,每个子像素对应一个独立的薄膜晶体管。当栅极驱动电路选中某一行时,源极驱动电路将对应的灰度电压写入该行所有子像素的存储电容中,电压保持到下一帧刷新。液晶分子在电场作用下发生扭转,改变通过偏振光的光强,配合彩色滤光片产生丰富的色彩。

TFT-LCD 显示原理结构图 背光光源 下偏光片 TFT 阵列 + 液晶层 彩色滤光片 上偏光片 关键工作步骤 ① 背光发出均匀白光,穿透下偏光片变为线偏振光 ② TFT 栅极逐行扫描,源极写入灰度电压到像素电容 ③ 液晶分子在电场下扭转,改变偏振光透过率 ④ 偏振光通过 RGB 彩色滤光片,合成彩色像素 ⑤ 上偏光片进一步过滤杂散光,输出最终图像 ▶ 液晶本身不发光,必须依赖背光 ▶ 电压保持时间决定亮度稳定性

1.2 像素与分辨率

像素是显示图像的最小单位,每个像素由 R、G、B 三个子像素构成。分辨率则指屏幕上像素的总数量,通常以“水平像素数 × 垂直像素数”表示。

分辨率名称尺寸(像素)总像素数常见应用
QVGA320 × 24076,800低端手持设备、工控面板
HVGA480 × 320153,600早期智能手机、PDA
WVGA800 × 480384,0007寸车载屏、入门级HMI
XGA1024 × 768786,43210寸工业平板、医疗设备
HD1280 × 720921,600高清便携设备、智能家居
Full HD1920 × 10802,073,600高端嵌入式、多媒体终端
驱动开发提示: 分辨率越高,帧缓冲区(Frame Buffer)占用的 RAM 越大。例如 RGB565 格式下,800×480 分辨率需要 800×480×2 = 768,000 字节(约 750 KB)。MCU 内部 SRAM 通常不足,需外扩 SDRAM 或使用 SPI 串行屏。

1.3 色彩深度:RGB565 与 RGB888

色彩深度决定每个像素能显示的颜色数量。嵌入式 LCD 驱动中最常用的两种格式是 RGB565 和 RGB888。

参数RGB565RGB888
每像素位数16 bit24 bit
红色位数5 bit(32 级)8 bit(256 级)
绿色位数6 bit(64 级)8 bit(256 级)
蓝色位数5 bit(32 级)8 bit(256 级)
总颜色数65,536 色16,777,216 色
帧缓冲区大小(800×480)768,000 字节1,152,000 字节
典型接口16位并行 / SPI24位并行 / RGB 接口
避坑提醒: 在 MCU 驱动中,RGB565 是主流选择。RGB888 虽然色彩更丰富,但需要更大的带宽和存储空间,且很多低端 MCU 的 LCD 控制器只支持 RGB565 格式。如果强行使用 RGB888,可能造成显示错位或颜色失真。

RGB565 数据排列示例:

// 一个像素的 16 位数据布局(大端模式)
// Bit 15-11: R[4:0]  红色 5 位
// Bit 10-5 : G[5:0]  绿色 6 位
// Bit 4-0  : B[4:0]  蓝色 5 位
uint16_t pixel = (red << 11) | (green << 5) | blue;

// 常用颜色宏定义
#define COLOR_BLACK   0x0000
#define COLOR_WHITE   0xFFFF
#define COLOR_RED     0xF800
#define COLOR_GREEN   0x07E0
#define COLOR_BLUE    0x001F
#define COLOR_YELLOW  0xFFE0

1.4 背光与偏光片

背光系统

TFT-LCD 属于被动发光器件,必须依靠背光提供光源。嵌入式设备中常用 LED 背光,通过 PWM 调节亮度。

  • LED 背光类型: 侧入式(Edge-lit)和直下式(Direct-lit)。小尺寸屏几乎全部采用侧入式,通过导光板均匀分布光线。
  • PWM 调光: 通过改变占空比控制背光亮度。频率通常设置在 1 kHz ~ 20 kHz,避免人眼可见闪烁。
  • 背光驱动芯片: 常用 MP3302、PT4105、TPS61165 等,支持升压和恒流控制。
// 背光 PWM 初始化示例(STM32 HAL)
void Backlight_Init(void) {
    TIM_HandleTypeDef htim;
    htim.Instance = TIM2;
    htim.Init.Prescaler = 84 - 1;          // 84 MHz / 84 = 1 MHz
    htim.Init.Period = 1000 - 1;           // 1 MHz / 1000 = 1 kHz
    htim.Init.CounterMode = TIM_COUNTERMODE_UP;
    HAL_TIM_PWM_Init(&htim);

    TIM_OC_InitTypeDef sConfigOC;
    sConfigOC.OCMode = TIM_OCMODE_PWM1;
    sConfigOC.Pulse = 500;                 // 50% 占空比
    sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
    HAL_TIM_PWM_ConfigChannel(&htim, &sConfigOC, TIM_CHANNEL_1);
    HAL_TIM_PWM_Start(&htim, TIM_CHANNEL_1);
}

偏光片的作用

偏光片是 TFT-LCD 中不可或缺的光学元件,分为上偏光片和下偏光片,偏振方向相互垂直(正交)。

偏光片位置偏振方向主要作用
下偏光片0°(水平)将背光发出的非偏振光转换为线偏振光
上偏光片90°(垂直)分析透过液晶层的偏振光,控制出射光强

当液晶层未加电压时,液晶分子扭转 90°,偏振光方向旋转后通过上偏光片,像素呈现亮态。施加电压后,液晶分子直立,偏振光方向不变,被上偏光片阻挡,像素呈现暗态。通过控制电压大小,可以实现 0~255 级的灰度显示。

偏光片与液晶扭转原理 未加电压(亮态) 下偏光片(水平) 液晶扭转 90° 偏振光旋转 上偏光片(垂直) ✓ 光线通过 → 亮态 施加电压(暗态) 下偏光片(水平) 液晶分子直立 偏振光不旋转 上偏光片(垂直) ✗ 光线被阻挡 → 暗态 偏光片关键参数 • 透过率:通常 40%~45% • 偏振效率:>99% • 厚度:约 0.1~0.3 mm • 耐温范围:-20°C ~ +70°C
开发要点总结:
  • 理解 TFT-LCD 的层叠结构是驱动开发的基础,背光、偏光片、液晶、滤光片缺一不可。
  • 分辨率决定帧缓冲区大小,选型时需评估 MCU 的 RAM 和总线带宽。
  • RGB565 是嵌入式 LCD 驱动的事实标准,色彩深度与存储开销需平衡。
  • 背光 PWM 调光频率要避开人眼敏感范围(100 Hz ~ 500 Hz),建议 1 kHz 以上。
  • 偏光片损坏或老化会导致对比度下降、颜色发白,硬件调试时需注意检查。