一、实验目的
学习BMP图像数据的存储格式,并实现LCD图像数据的读取与显示。
二、实验原理
1、LCD控制器
要实现一块LCD正常的显示文字、图像和触摸,不仅需要LCD驱动器,而且还需要相应的LCD控制器,控制器一般有两种:显示控制器和触摸控制器。在通常情况下,生产厂商把LCD驱动器会以COF/COG的 形式与LCD玻璃基板制作在一起,而LCD控制器则是由外部的电路来实现,现在很多的MCU内部都集成了LCD控制器,
2、LCD显示控制器
TMS320C6748 CPU内部就有对应的LCD显示控制器(光栅控制器)。LCD 控制器由两个独立的控制器组成,即光栅控制器和 LCD 接口显示驱动器 (LIDD) 控制器。每个控制器独立于另一个控制器运行,并且在任何给定时间只有一个控制器处于活动状态。
3、LCD显示原理
液晶分子在电场作用下->会发生排列上的变化-> 影响通过其的光线变化->通过偏光片的作用可以表现为明暗的变化->控制了光线的明暗变化->显示图像(黑白)
4、LCD显示流程
(1)首先,设置内部的LCD控制器。
(2)接着,建立映射关系。通过配置将LCD控制器和显存连接起来,构成一个映射关系。一旦这个关系建立之后,LCD控制器就自动从显存中读取像素数据,在将数据传输给LCD驱动器。显示的过程不再需要CPU的参与,可以极大的提高显示图像的效率。
(3)接着进行BMP图像数据读取。通过调用函数直接读取彩色24位BMP图片。
(4)接着进行图像数据RGB565转换。由于LCD显示屏仅支持16位,所以需要将图像数据转换成16位的RGB565格式,再输出到LCD屏幕上显示
(5)最后,把要显示的图像数据放到显存中。显示体系建立起来以后,CPU就不用再管LCD控制器、驱动器、以及LCD液晶了,之后CPU就只关心显存,只需把要显示的图像的像素数据放到显存中,硬件就会自动响应,屏幕上就能自动看到显示的图像了。
5、程序流程
程序流程设计中首先要进行外设使能配置,接着进行LCD管脚复用配置和LCD中断配置,然后进行LCD显示的初始化。最后读取BMP图片,对图像数据进行RGB565转换后放到显存中并在LCD上显示图像。
6、源码
管脚复用源码
LCD复用配置操作直接封装成了函数,使用时,直接包含“TL6748.h”文件 即可。
StarterWare API 接口:LCDPinMuxSetup();
LCD中断使用流程
(1)初始化DSP中断控制器。
(2)使能DSP全局中断。
(3)注册中断服务函数。注册中断服务函数是重点,这个函数决定了中断之后要做什么。
(4)映射中断事件。
(5)初始化触摸屏中断。
(6)使能不可屏蔽中断10。
(7)使能DSP的可屏蔽中断。
时序配置源码
LCD初始化的相关函数源码和函数使用说明可以查看raster.c。以水平时序配置函数为例,第一个参数是LCD模块的内存地址,
第二个参数是确定每行所需像素数的值,
第三个参数设置水平同步时钟的值,
第四个参数设置前阶,
第五个参数设置后阶。
54个字节图像头文件说明
图像头文件分为位图文件头和位图信息头。
第0~13位是位图文件头。包含位图标志、文件大小、保留字和文件起始位置标志。
第14~53位是位图信息头,包含位图信息头的长度、位图宽度、位图高度、压缩类型等信息。
7、程序流程
在程序中首先配置外设使能,在PSC初始化中使能LCD模块。
然后配置LCD引脚复用。
进行DSP中断初始化,初始化 DSP 中断控制器并使能 DSP 全局中断。
进行LCD中断初始化。
进行LCD初始化,配置LCD时钟、控制器和模式等。
配置LCD的基本框架和背景显示。
读取BMP图片数据。
最后将图像数据进行RGB565转换放到显存中并在LCD上显示图像。
以上便是程序实现的整体流程。
三、操作现象
1、硬件连接
2、软件操作
导入工程,选择Demo文件夹下的对应工程
编译工程
将CCS连接开发板并加载程序
点击运行程序,在CCS的窗口会打印图片处理的相关信息
在LCD屏幕上会显示图片。
实验结束后,先点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验板的连接,最后实验箱断电即可。