文档详情

实验六_ARM_LCD显示实验.pdf

发布:2024-09-14约3.17千字共6页下载文档
文本预览下载声明

实验六LCD显示实验

实验目的

1、了解LCD显示器的结构特点

2、了解S3C2410的LCD驱动模块工作原理

3、掌握用简单LCD驱动程序设计

实验仪器设备及软件

ARM实验箱,计算机,ADS程序开发软件

实验原理

S3C2410中具有内置的LCD控制器,它能将显示缓存(在SDRAM存储器中)中的LCD

图像数据传输到外部的LCD驱动电路上的逻辑功能。它支持单色、4级、16级灰度LCD显示,

以及8位彩色、12位彩色LCD显示。在显示灰度时,它采用时间抖动算法(time-based

ditheringalgorithm)和帧率控制(FrameRateControl)方法,在显示彩色时,它采用

RGB的格式,即RED、GREEN、BLUE,三色混合调色。通过软件编程,可以实现332的RGB

调色的格式,565全彩输出,5551全彩输出等。对于不同尺寸的LCD显示器,它们会有不同

的垂直和水平象素点、不同的数据宽度、不同的接口时间及刷新率,通过对LCD控制器中

的相应寄存器写入不同的值,来配置不同的LCD显示板。另外,还可以设置虚拟屏幕,增

加显示的面积。LCD模块内部电路结构

常用的控制寄存器有:

LCDCON1:LCD显示器类型控制寄存器

CLKVAL决定LCD的刷新率,一般刷新率应大于50Hz

LCDCON2:LCD垂直尺寸控制寄存器

LCDCON3:LCD水平尺寸控制寄存器

LCD缓冲区设置:LCDSADDR1

LCDSADDR2

LCDSADDR3:用于设置虚拟屏幕行宽设置offsize+pagewidth=虚拟屏幕大小

内存中的数据与显示像素的对应关系,低16位在低地址。

LCD绘图函数:

U32GUI_Init(void);//GUI初始化

voidDraw_Point(U16x,U16y);//绘制点API

U32Get_Point(U16x,U16y);//得到点API

voidDraw_HLine(U16y0,U16x0,U16x1);//绘制水平线API

voidDraw_VLine(U16x0,U16y0,U16y1);//绘制竖直线API

voidDraw_Line(I32x1,I32y1,I32x2,I32y2);//绘制线API

voidDraw_Circle(U32x0,U32y0,U32r);//绘制圆API

voidFill_Circle(U16x0,U16y0,U16r);//填充圆API

voidFill_Rect(U16x0,U16y0,U16x1,U16y1);//填充区域API

voidSet_Color(U32color);//设定前景颜色API

voidSet_BkColor(U32color);//设定背景颜色API

voidSet_Font(GUI_FONT*pFont);//设定字体类型API

voidDisp_String(constI8*s,I16x,I16y);//显示字体API

实验内容

1、运行实验程序,分析绘图函数的功能与使用方法

打开打开实验程序实验程序实验七实验七项目文件,进行编译调试。

2、编写程序,在LCD上显示自己的学号。

voidMain(void)

{

intCount=3000;

intCnt=200;

inti,j;//widthandhigh

Target_Init();

GUI_Init();

显示全部
相似文档