1 / 26

LCD 的驱动控制实验

LCD 的驱动控制实验. 实验目的. 了解 LCD 基本概念与原理 理解 LCD 的驱动控制 熟悉用总线方式驱动 LCD 模块 熟悉用 ARM 内置的 LCD 控制器驱动 LCD. 实验内容. 学习 LCD 显示器的基本原理 , 理解其驱动控制方法 . 掌握两种 LCD 驱动方式的基本原理和方法 . 并编程实现 : 1. 用总线方式直接驱动带有驱动模块的 LCD 2. 用 ARM 内置的 LCD 控制器驱动 LCD. 预备知识. DMA (Direct Memory Access) 用 ADS1.2 集成开发环境编写和调试程序的基本过程

Download Presentation

LCD 的驱动控制实验

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. LCD的驱动控制实验

  2. 实验目的 • 了解LCD基本概念与原理 • 理解LCD的驱动控制 • 熟悉用总线方式驱动LCD模块 • 熟悉用ARM内置的LCD控制器驱动LCD

  3. 实验内容 • 学习LCD显示器的基本原理,理解其驱动控制方法.掌握两种LCD驱动方式的基本原理和方法.并编程实现: • 1. 用总线方式直接驱动带有驱动模块的LCD • 2. 用ARM内置的LCD控制器驱动LCD

  4. 预备知识 • DMA (Direct Memory Access) • 用ADS1.2集成开发环境编写和调试程序的基本过程 • ARM应用程序的框架结构

  5. LCD液晶显示器的硬件结构 • 液晶显示的原理是液晶在不同电压的作用下会呈现不同的光特性.液晶在物理上分成两大类,一类是无源Passive的(也称被动式),这类液晶本身不发光,需要外部提供光源,根据光源位置,又可以分为反射式和透射式两种.Passive液晶显示的成本较低,但是亮度和对比度不大,而且有效视角较小,彩色无源液晶显示的色饱和度较小,因而颜色不够鲜艳.

  6. 另一类是有电源的,主要是TFT (Thin Film Transitor).每个液晶实际上就是一个可以发光的晶体管,所以严格地说不是液晶.液晶显示屏就是由许多液晶排成阵列而构成的,在单色液晶显示屏中,一个液晶就是一个象素,而在彩色液晶显示屏中则每个象素由红绿蓝三个液晶共同构成.同时可以认为每个液晶背后都有个8位的寄存器,寄存器的值决定着三个液晶单元各自的亮度,不过寄存器的值并不直接驱动三个液晶单元的亮度,而是通过一个”调色板”来访问.

  7. 为每个象素都配备一个物理的寄存器是不现实的,实际上只配备一行的寄存器,这些寄存器轮流连接到每一行象素并装入该行内容,将所有象素行都驱动一遍就显示一个完整的画面(Frame).为每个象素都配备一个物理的寄存器是不现实的,实际上只配备一行的寄存器,这些寄存器轮流连接到每一行象素并装入该行内容,将所有象素行都驱动一遍就显示一个完整的画面(Frame).

  8. Frame Buffer 显示屏的整个显示区域在系统内会有一段存储空间与之对应,通过改变存储空间的内容,从而改变显示屏的内容,该存储空间被称为Frame Buffer或显存.显示屏上的每一点都与Frame Buffer的某一位置对应.所以,实验时我们首先要确定的是Frame Buffer的大小和屏幕上每一象素同Frame Buffer的映射关系. 按照显示屏的性能或显示模式区分,显示屏可以分为单色和彩色.彩色又分为2位色,4位色,8位色,16位色...,显示屏的单双屏幕模式,这些因素会影响显存空间的大小.

  9. 单屏幕模式 显示范围是整个屏幕,只需一个Frame Buffer存储整个显示内容,并且只需一个通道来将Frame Buffer的内容传输到显示屏上 • 双屏幕模式 将屏幕划分成两部分:上半部和下半部.每个部分的显示方式与单屏的方式一致,且两部分同时扫描,工作方式独立,有各自的Frame Buffer,同时有独立的两个通道将Frame Buffer的数据传输到显示屏.

  10. 实验原理 • Frame Buffer通常是在内存空间中由连续的字节组成.显示器操作:从左到右逐点象素扫描,从上到下逐行扫描.这使得显示屏上的象素同Frame Buffer中的内存空间建立了一对一映射.

  11. 实验原理 • 计算机反映自然界的颜色是通过RGB值来表示.获得RGB值的方式有两种:直接从Frame Buffer里得到,或者是间接得到. • 直接得到是指Frame Buffer里存放的就是象素的RGB值.而间接得到是指Frame Buffer里存放的不是RGB值,而是调色板索引值,调色板里存放的才是RGB值.

  12. 实验原理 1. LCD的驱动控制 市面上出售的LCD显示模块主要有两种: • 带驱动电路的LCD显示模块 操作简单,体积较大,常用总线方式驱动 • LCD显示屏(没有驱动电路) 体积小,需另外的驱动芯片

  13. (1)总线驱动方式 一般带有驱动模块的LCD 显示屏使用这种驱动方式,由于LCD 已经带有驱动硬件电路,因此模块给出的是总线接口,便于与单片机的总线进行连接。驱动模块具有八位数据总线,外加一些电源接口和控制信号。而且自带显示缓存,只需要将要显示的内容送到显示缓存中就可以实现内容的显示。

  14. 一个典型的显示模块(HY-12864B)提供的总线接口一个典型的显示模块(HY-12864B)提供的总线接口

  15. (2)控制器扫描方式 • S3C2410X 中具有内置的LCD 控制器,它具有将显示缓存(在系统存储器中)中的LCD图象数据传输到外部LCD 驱动电路的逻辑功能

  16. 内置的LCD 控制器提供了下列外部接口信号: • VFRAME/VSYNC/STV:帧同步信号(STN)/垂直同步信号(TFT)/SEC TFT信号 • VLINE/HSYNC/CPV:行同步脉冲信号(STN)/水平同步信号(TFT)/SEC TFT信号 • VCLK/LCD_HCLK:象素时钟信号(STN/TFT)/SEC TFT信号 • VD[23:0]:LCD 像素数据输出端口(STN/TFT/SEC TFT) • VM/VDEN/TP:LCD驱动交流偏置信号(STN)/数据使能信号(TFT)/SEC TFT 信号 • LEND/STH:行结束信号(TFT)/SEC TFT信号 • LCD_PWREN:LCD面板电源使能控制信号 • LCDVF0:SEC TFT OE信号 • LCDVF1:SEC TFT REV信号 • LCDVF2:SEC TFT REVB信号

  17. LCD控制器与LCD屏数据线接口

  18. 与ARM自带LCD驱动器有关的寄存器 • GPCCON Configure the pins of port C • GPDCON Configure the pins of port D • LCDCON1 LCD control 1 register • LCDCON2 LCD control 2 register • LCDCON3 LCD control 3 register • LCDCON4 LCD control 4 register • LCDCON5 LCD control 5 register

  19. 与ARM自带LCD驱动器有关的寄存器 • LCDSADDR1 Frame buffer start address 1 register • LCDSADDR2 Frame buffer start address 2 register • LCDSADDR3 Virtual screen address set

  20. 本实验参数设置 • single scan LCD • 分辨率:640×480 • TFT 16 BPP (Bits Per Pixel) mode • RGB 5:6:5 • 建立两个一级缓冲,一个二级缓冲: • 一级缓冲大小 16bit×(640×480) • 二级缓冲大小 24bit×(640×480)

  21. LCDSADDR1 • LCDBANK These bits indicate A[30:22] of the bank location for the video buffer in the system memory. • LCDBASEU These bits indicate A[21:1] of the start address of the LCD frame buffer.

  22. LCDSADDR2 • LCDBASEL These bits indicate A[21:1] of the end address of the LCD frame buffer.

  23. 程序流程 • 初始化实验开发板 • 初始化LCD • 修改二级显存 • 刷新LCD屏幕 • 待机

  24. LCD初始化程序流程 • 设置GPIO(GPC,GPD) • 关闭LCD输出 • 设置LCD控制寄存器(LCDCON1-5) • 在地址寄存器中记录一级缓存的地址 • 清空一级缓存内容 • 开启LCD输出

  25. 刷新LCD函数流程 • 从二级缓存取得24位象素的RGB值,变换为16位RGB值,并将结果放入一级缓存 转换公式:pixcolor=((pbuf[0]&0xf8)<<11)|((pbuf[1]&0xfc)<<6)|(pbuf[2]&0xf8) • 在地址寄存器中记录一级缓存的地址

  26. 思考题 • 1. 实现两屏颜色交替显示 • 2. 实现屏幕上的纵向彩色条文横向滚动的效果

More Related