实验六_ARM_LCD显示实验.pdf
实验六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();