一、课程导论与硬件基础

各位同学,欢迎来到《单片机LCD显示屏驱动》实战课。我是你们的老朋友,一个在嵌入式显示领域摸爬滚打了十几年的硬件工程师。

说实话,LCD驱动这件事,看着简单,做起来坑不少。我记得刚入行那会儿,拿着一个8位并口的LCD屏,怎么调都不出画面,最后发现是时序差了那么几十纳秒。从那以后,我就养成了一个习惯——先把硬件时序吃透,再动手写代码。

这一章,咱们先把地基打牢。你想想看,如果连LCD怎么亮起来的、并口信号怎么走的都不清楚,后面调优化、调性能,那就是空中楼阁。

1.1 LCD显示原理:像素是怎么亮起来的?

LCD,全称Liquid Crystal Display,液晶显示器。它不发光,是靠背光透过液晶层来显示图像的。

核心原理就三步:

  1. 背光模组发出白光,照向液晶层。
  2. 液晶分子在电场作用下扭转,控制光线通过量。
  3. 彩色滤光片把白光分解成红、绿、蓝三个子像素。

每个像素由R、G、B三个子像素组成。通过控制每个子像素的亮度,就能混合出1600万种颜色。说白了,就是调光。

关键指标:

  • 分辨率:比如320×240,就是横向320个像素,纵向240行。
  • 色深:16位(65K色)还是18位(262K色),决定了颜色细腻程度。
  • 刷新率:每秒更新多少次画面,60Hz是基本要求。

我在一个工业项目里遇到过,刷新率设低了,屏幕就闪。后来发现是并口时钟没配好。嗯,这个后面会细讲。

1.2 并行接口概述:为什么还要学并口?

现在SPI、I2C接口的LCD屏很多,但并口依然有它的不可替代性。

并口的优势就一个字——快。8位数据线一次传一个字节,16位一次传两个字节。对于320×240的屏,全屏刷新一次,并口比SPI快好几倍。

并口的主要信号线:

信号名 方向 作用
DB[15:0] MCU→LCD 数据总线,8位或16位
CS MCU→LCD 片选,选中LCD芯片
RS MCU→LCD 寄存器选择,0=命令,1=数据
WR MCU→LCD 写使能,上升沿锁存数据
RD MCU→LCD 读使能,读取寄存器或GRAM
RST MCU→LCD 复位,低电平有效

你可能会问:为什么不用更快的8080并口?其实现在主流就是8080时序,6800时序已经很少见了。咱们课程里讲的都是8080并口。

个人经验: 我建议新手先从8位并口入手。16位虽然快,但占用IO多,布线也麻烦。等8位玩熟了,再升级到16位,你会发现时序理解起来轻松很多。

1.3 常用LCD控制器:ILI9341与SSD1963

市面上LCD控制器很多,但咱们课程重点讲两个:ILI9341和SSD1963。为什么选它们?因为一个代表小尺寸,一个代表大尺寸,覆盖了绝大多数应用场景。

ILI9341:小尺寸屏的王者

  • 分辨率:240×320(QVGA)
  • 接口:支持8/9/16/18位并口,也支持SPI
  • 特点:内置GRAM,自带显示RAM,MCU只需写数据
  • 应用:手持设备、仪表盘、小家电

我记得第一次调ILI9341,初始化序列写了100多行。后来发现,其实很多寄存器保持默认值就行。嗯,后面我会给出一份精简版初始化代码。

SSD1963:大尺寸屏的利器

  • 分辨率:最高支持864×480
  • 接口:8/16/18位并口,支持8080和6800时序
  • 特点:自带TFT驱动,支持触摸屏控制器
  • 应用:工控屏、车载显示、医疗设备

SSD1963比ILI9341复杂得多。它的时钟频率可以跑到10MHz以上,对时序要求更严格。我在一个7寸屏项目里,就因为WR信号毛刺太多,导致画面出现条纹。后来加了个74HC244做缓冲才解决。

参数 ILI9341 SSD1963
最大分辨率 320×240 864×480
并口位宽 8/9/16/18位 8/16/18位
内置GRAM 有 有
触摸控制器 无 内置
典型应用 小尺寸手持设备 大尺寸工控屏

1.4 课程所需工具与开发板清单

工欲善其事,必先利其器。下面是我个人推荐的硬件和工具清单:

开发板

  • STM32F407VET6 开发板:主频168MHz,FSMC接口可以直接接并口LCD,非常方便。
  • 或者 STM32F103C8T6 最小系统板:便宜,但IO口少,适合8位并口。

LCD模块

  • 2.8寸 ILI9341 模块(带触摸)
  • 5寸 SSD1963 模块(800×480分辨率)

工具

  • 逻辑分析仪:至少8通道,采样率100MHz以上。我推荐Saleae Logic 8,或者国产的梦源。
  • 示波器:100MHz带宽,用于看信号质量。
  • 杜邦线:公对母、母对母各一包。
  • 面包板:用于快速搭建电路。

避坑指南: 我曾经用便宜的逻辑分析仪抓并口时序,结果采样率不够,波形全是毛刺。后来换了100MHz的,才看清真正的时序问题。所以,工具别省,省了工具费,后面调试时间翻倍。

1.5 本章知识体系总览

下面这张图,把咱们这一章的核心知识点串起来了。你可以把它当成整个课程的地图。

第1章 知识体系结构图 LCD驱动基础 LCD显示原理 并行接口概述 常用LCD控制器 背光+液晶+滤光 分辨率/色深/刷新率 8080时序/信号线定义 ILI9341 / SSD1963 核心目标:理解硬件原理,为后续时序优化打基础 工具准备:逻辑分析仪+示波器+开发板

这张图把本章内容分成了三大块:显示原理、并口基础、控制器选型。后面每一章都会围绕这个结构展开。你先把这张图记在脑子里,后面学起来就顺了。

学习建议: 我建议你拿到开发板后,先别急着写代码。花半天时间,用万用表量一下各个信号线的电平,用逻辑分析仪抓一下复位和初始化波形。亲眼看到信号跳变,比看一百页手册都管用。