实验四 液晶显示实验 昆明理工大学

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

昆明理工大学信息工程与自动化学院学生实验报告
(2011 —2012 学年第 2 学期)
课程名称:嵌入式应用及基础开课实验室:443 2014 年 5 月 27 日
年级、专业、班物联网111 学号201110410130 姓名杨国锋成绩实验项目名称实验四液晶显示实验指导教师欧阳鑫

师评语该同学是否了解实验原理: A.了解□ B.基本了解□ C.不了解□
该同学的实验能力: A.强□ B.中等□ C.差□
该同学的实验是否达到要求: A.达到□ B.基本达到□ C.未达到□
实验报告是否规范: A.规范□ B.基本规范□ C.不规范□
实验过程是否详细记录: A.详细□ B.一般□ C.没有□
教师签名:
年月日
一、实验目的:
初步掌握液晶屏的使用及其电路设计方法。

掌握S3C44B0X处理器的LCD控制器的使用。

通过实验掌握液晶显示文本和图形的方法以及程序设计。

二、实验原理:
1. 液晶显示屏(LCD,Liquid Crystal Display)
主要用于显示文本及图形信息。

它具有重量轻、体积小、耗电量低、无辐射、平面直角
显示以及影像稳定不闪烁等特点,因此在许多电子应用系统中,常使用液晶屏作为人机界面,而且已广泛应用于各类显示器件上。

主要类型及性能参数
液晶显示按显示原理分为STN和TFT两种:
(1) STN(Super Twisted Nematic,超扭曲向列)液晶显示屏
STN液晶显示器与液晶材料、光线的干涉现象有关,显示的色调以淡绿色与橘色为主。

STN液晶显示器中,使用X、Y轴交叉的单纯电极驱动方式,水平方向驱动电压控制显示部分的亮或暗,垂直方向的电极则负责驱动液晶分子的显示。

(2) TFT(Thin Film Transistor,薄膜晶体管)彩色液晶屏
随着液晶显示技术的不断发展和进步,TFT液晶显示屏被广泛用于制作成电脑中的液
晶显示设备。

TFT液晶显示屏既可在笔记本电脑上应用(现在大多数笔记本电脑都使用TFT
显示屏),也常用于主流台式显示器。

(3) 液晶显示屏主参数
使用液晶显示屏时主要考虑的参数有外形尺寸、分辨率、点宽、色彩模式等。

2. S3C44B0X LCD控制器
S3C44B0X处理器集成了LCD控制器,支持4位单扫描、4位双扫描和8位单扫描工
作方式。

处理器使用内部RAM区作为显示缓存,并支持屏幕水平和垂直滚动显示。

数据的传送采用DMA方式,以达到最小的延迟。

支持多种类型的液晶屏,如下:单色液晶
4级或16级灰度屏
256色彩色液晶(STN液晶)
LCD控制器主要提供液晶屏显示数据的传送、时钟和各种信号的产生与控制功能。

S3C44B0X处理器的LCD控制器主要部分框图如下图所示:
1) LCD控制器接口S3C44B0X LCD控制器接口如下表所列:
2)S3C44B0X支持的扫描模式
a) 4位单扫描显示控制器扫描线从左上角位置进行数据显示。

显示数据从VD[3:0]获得;彩色液晶屏数据位代表RGB色。

b) 4位双扫描显示控制器分别使用两个扫描线进行数据显示。

显示数据从VD[3:0]获得高扫描数据;从VD[7:4]获得低扫描数据;彩色液晶屏数据位代
表RGB色。

c) 8位单扫描显示控制器扫描线从左上角位置进行数据显示。

显示数据从VD[7:
0]获得;彩色液晶屏数据位代表RGB色。

3) 数据的存放与显示液晶控制器传送的数据表示了一个像素的属性:4级灰度屏用2个数据位,16级灰度屏用4个数据位,RGB彩色液晶屏使用8个数据位(R[7:5]、G[4:2]、B[1:0])。

显示缓存中存放的数据必须符合硬件及软件设置,即要注意字节对准方式。

4) LCD控制器寄存器S3C44B0X LCD处理器所包含的可编程控制寄存器共有18个,如下表所列:
5) LCD控制器主要参数设定正确使用S3C44B0X LCD控制器,必须设置控制器所有18 个寄存器。

控制器信号VFRME、VCLK、VLINE和VM要求配置控制寄存器LCDCON1/2;液晶显示屏的显示与控制以及数据的存取控制,则要求配置其他相关寄存器。

详细配置情况可参考教材及其他参考资料。

6) 灰度屏的支持与设置S3C44B0X中的LCD控制器支持两种灰度模块:2位象素(4级灰度)、4位象素(16级灰度)。

对于4级灰度屏(2位象素),LCD控制器通过设置BLUELUT[15:0]指定使用的灰度级,并且从0 ~ 4级使用BLUELUT 的4个数据位。

16级灰度屏使用BLUELUT的每一位来表示灰度级别。

7) 液晶(LCD)电路设计设计液晶显示屏控制电路时必须提供电源驱动、偏压驱动及LCD显示控制器。

由于S3C44B0X处理器自带LCD控制器,而且可以驱动实验板所选用的液晶屏,所以控制电路的设计可以省去显示控制电路,只需进行电源驱动和偏压驱动的电路设计即可。

其结构如图3-6所示。

电源驱动与偏压驱动参考电路实验板所选用的液晶屏的驱动电源是21.5V,因此,直接使用实验系统的3V或5V电源时需要电压生压控制。

实验系统采用MAX629电压管理模块,以提供液晶屏的驱动电压。

偏压电源可由系统升压后的电源分压得到。

S3CEV40的电源驱动与偏压驱动参考电
路如图3-7所示。

三、实验内容
1.LCD液晶屏:320*240像素,16级灰度,单扫描模式,首地址为0xC300000,
偏移点数2048(512个字节)
VLINE=垂直尺寸-1=240-1=0xEF
PAGEWIDTH=320*4/16
OFFSIZE=512
LCDBANK=0xC300000>>22
LCDBASEU=0x100000>>1
LCDBASEL= LCDBASEU+(PAGEWIDTH+OFFSIZE)*(LINEV AL+1)
如是双扫描则LINEV AL和LCDBASEL变化。

三、实验代码
1)寄存器初始化
void Lcd_Init (void)
{
rDITHMODE=0x12210;
rDP1_2 =0xa5a5;
rDP4_7 =0xba5da65;
rDP3_5 =0xa5a5f;
rDP2_3 =0xd6b;
rDP5_7 =0xeb7b5ed;
rDP3_4 =0x7dbe;
rDP4_5 =0x7ebdf;
rDP6_7 =0x7fdfbfe;
1.抖动模式寄存器(DP1_2、DP4_7、DP3_5、DP2_3、DP5_7、DP3_4、DP4_5、DP6_7和DITHMODE,前8个使用初始值,最后使用定值)
rLCDCON1=(0x0)|(2<<5)|(MV AL_USED<<7)|(0x3<<8)|(0x3<<10)|(CLKV AL_ COLOR<<12);
2.LCD控制寄存器1:首先定义八位单扫描显示模式;频率由MV AL决定;WDLY=16CLOCK;WLH=16CLOCK.
rLCDCON2=(LINEV AL)|(HOZV AL_COLOR<<10)|(10<<21);
3.LCD控制器2:设置320*240;扫描空闲时间为10MCLK
rLCDCON3=0;
4.禁止LCD自动刷新
rLCDSADDR1= (0x3<<27) | ( ((unsigned int)aLcdActiveBuffer>>22)<<21 ) | M5D((unsigned int)aLcdActiveBuffer>>1);
rLCDSADDR2=M5D((((unsignedint)aLcdActiveBuffer+(SCR_XSIZE*LCD_YSIZE ))>>1)) | (MV AL<<21);
rLCDSADDR3= (LCD_XSIZE/2) | ( ((SCR_XSIZE-LCD_XSIZE)/2)<<9 );
5.帧缓冲起始地址寄存器1/2/3
rREDLUT =0xfdb96420;
rGREENLUT=0xfdb96420;
rBLUELUT =0xfb40;
6.颜色查找表寄存器:前两个高16位后为1,低十六位后为0;蓝的高8位后为两个1,低8位后为两个0
rLCDCON1=(0x1)|(2<<5)|(MV AL_USED<<7)|(0x3<<8)|(0x3<<10)|(CLKV AL_ COLOR<<12);
7.重置为8为单扫描
rPDATE=0xfe;
8.打开背光灯
Lcd_Clr();
}
2)清屏函数
void Lcd_Clr(void)
{
INT32U i;
INT32U *pDisp = (INT32U*)aLcdActiveBuffer;
for (i = 0; i < (SCR_XSIZE * SCR_YSIZE / 4); i++)
{
*pDisp++ = ALLWHITE;
}
}
3)画水平和垂直线函数
void Lcd_Draw_HLine(INT16 usX0, INT16 usX1, INT16 usY0, INT8U ucColor, INT16U usWidth)
{
INT16 usLen;
if( usX1 < usX0 )
{
GUISWAP (usX1, usX0);
}
while( (usWidth--) > 0 )
{
usLen = usX1 - usX0 + 1;
while( (usLen--) > 0 )
{
LCD_PutPixel(usX0 + usLen, usY0, ucColor);
}
usY0++;
}
}
void Lcd_Draw_VLine (INT16 usY0, INT16 usY1, INT16 usX0, INT8U ucColor, INT16U usWidth)
{
INT16 usLen;
if( usY1 < usY0 )
{
GUISWAP (usY1, usY0);
}
while( (usWidth--) > 0 )
{
usLen = usY1 - usY0 + 1;
while( (usLen--) > 0 )
{
LCD_PutPixel(usX0, usY0 + usLen, ucColor);
}
usX0++;
}
}
注:由此,可以画矩形框,只要定好四个顶点,随后画出两对水平和垂直线就可以了:
void Lcd_Draw_Box(INT16 usLeft, INT16 usTop, INT16 usRight, INT16 usBottom, INT8U ucColor)
{
Lcd_Draw_HLine(usLeft, usRight, usTop, ucColor, 1);
Lcd_Draw_HLine(usLeft, usRight, usBottom, ucColor, 1);
Lcd_Draw_VLine(usTop, usBottom, usLeft, ucColor, 1);
Lcd_Draw_VLine(usTop, usBottom, usRight, ucColor, 1);
}
1)汉字字符串
void Lcd_DspHz16(INT16U x0, INT16U y0, INT8U ForeColor, INT8U *s)
{
INT16 i,j,k,x,y,xx;
INT8U qm,wm;
INT32U ulOffset;
INT8 hzbuf[32],temp[2];
for( i = 0; i < strlen((const char*)s); i++ )
{
if( ((INT8U)(*(s+i))) < 161 )
{
temp[0] = *(s+i);
temp[1] = '\0';
break;
}
else
{
qm = *(s+i) - 161;
wm = *(s + i + 1) - 161;
ulOffset = (INT32U)(qm * 94 + wm) * 32;
for( j = 0; j < 32; j ++ )
{
hzbuf[j] = g_auc_HZK16[ulOffset + j];
}
for( y = 0; y < 16; y++ )
{
for( x = 0; x < 16; x++ )
{
k = x % 8;
if( hzbuf[y * 2 + x / 8] & (0x80 >> k) )
{
xx = x0 + x + i * 8;
LCD_PutPixel( xx, y + y0, (INT8U)ForeColor);
}
}
}
i++;
}
}
}
2)字符串
void Lcd_DspAscII8x16(INT16U x0, INT16U y0, INT8U ForeColor, INT8U * s) {
INT16 i,j,k,x,y,xx;
INT8U qm;
INT32U ulOffset;
INT8 ywbuf[16],temp[2];
for( i = 0; i < strlen((const char*)s); i++ )
{
if( (INT8U)*(s+i) >= 161 )
{
temp[0] = *(s + i);
temp[1] = '\0';
return;
}
else
{
qm = *(s+i);
ulOffset = (INT32U)(qm) * 16; //Here to be changed tomorrow
for( j = 0; j < 16; j ++ )
{
ywbuf[j] = g_auc_Ascii8x16[ulOffset + j];
}
for( y = 0; y < 16; y++ )
{
for( x = 0; x < 8; x++ )
{
k = x % 8;
if( ywbuf[y] & (0x80 >> k) )
{
xx = x0 + x + i*8;
LCD_PutPixel(xx, y + y0, (INT8U)ForeColor);
}
}
}
}
}
}
3)本实验结果:
首先对18个寄存器进行初始化,在串口到超级终端可输出LCD测试选项,接着在LCD上显示蓝色的“Embest S3CEV40”和“英蓓特三星实验平台”和“ShenZhen Embest Info&Tech Co.,LTD”以及四个矩形。

相关文档
最新文档