微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > S3C2440的LCD简单应用与实现

S3C2440的LCD简单应用与实现

时间:11-11 来源:互联网 点击:

rLCDSADDR2=M5D( ((U32)LCD_BUFFER+(LCD_WIDTH*LCD_HEIGHT*4))>>中,寄存器LCDSADDR1和LCDSADDR2用于设置显示缓存区,即把我们定义的那个二维数组告诉s3c2440。其中LCDBANK的9位数据指定LCD的BANK,即显示缓存区的第30位到第22位地址;LCDBASEU的21位数据指定了LCD的基址,即显示缓存区开始地址的第21位到第1位;LCDBASEL的21位数据指定了LCD的尾址,即显示缓存区结束地址的第21位到第1位。例如,我们想要在尺寸为320×240的屏幕上显示24位颜色,定义的显示缓存区数组为LCD_BUFFER[240][320],则LCDBANK等于LCD_BUFFER的第30位到第22位数据值(因为LCD_BUFFER表示的就是数组的首地址),LCDBASEU等于LCD_BUFFER的第21位到第1位数据值,由于是用32位数据表示24为颜色,因此每个像素值是4个字节,所以LCDBASEL等于(LCD_BUFFER+(240×320×4))结果的第21位到第1位的数据值。另外寄存器LCDSADDR3有两个内容:OFFSIZE和PAGEWIDTH。OFFSIZE用于虚拟屏幕的偏移长度,如果我们不使用虚拟屏幕,就把它置为0;PAGEWIDTH定义了视口的宽,单位是半字,如在上面的例子中,PAGEWIDTH应该为320×32÷16。

*/
/***********************************************************************************************/

rLCDINTMSK|=(3); /*屏蔽LCD中断*/

rTCONSEL = 0; /*无效LPC3600*/

rGPGUP=rGPGUP|(1<4); /*GPG4上拉电阻无效*/

rGPGCON=rGPGCON|(3<8); /*设置GPG4为LCD_PWREN*/

rGPGDAT = rGPGDAT | (1<4) ; /*GPG4置1*/

rLCDCON5=rLCDCON5&(~(1<3))|(1<3); /*有效PWREN信号*/

rLCDCON5=rLCDCON5&(~(1<5))|(0<5); /*PWREN信号极性不翻转*/

rLCDCON1|=1; /*LCD开启,必须设置,否则LCD不工作*/

while(1)

{

/*黑色背景,白色实心圆*/

Brush_Background(0x0);

Draw_Circular(0xffffff);

delay(5000000);

/*白色背景,黑色实心圆*/

Brush_Background(0xffffff);

Draw_Circular(0x0);

delay(5000000);

/*蓝色背景,黄色实心圆 */

Brush_Background(0xff);

Draw_Circular(0xffff00);

delay(5000000);

/*绿色背景,品色实心圆*/

Brush_Background(0xff00);

Draw_Circular(0xff00ff);

delay(5000000);

/*红色背景,青色实心圆*/

Brush_Background(0xff0000);

Draw_Circular(0xffff);

delay(5000000);

/*青色背景,红色实心圆*/

Brush_Background(0xffff);

Draw_Circular(0xff0000);

delay(5000000);

/*品色背景,绿色实心圆*/

Brush_Background(0xff00ff);

Draw_Circular(0xff00);

delay(5000000);

/*黄色背景,蓝色实心圆*/

Brush_Background(0xffff00);

Draw_Circular(0xff);

delay(5000000);

}

}


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top