⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd.c

📁 ZLG的LPC2220读取SD卡的源代码
💻 C
字号:
/*******************************************************************************************************
** 文件名:LCD.c
** 功能:在图形液晶模块YMSP-G240128A-1上显示
********************************************************************************************************/
#include "config.h"

#define	TCOLOR	uint8

#define P225	1<<25	//P2.25 对应 LED背光
#define	P224	1<<24	//P2.24 对应 RESET

//extern uint8	gui_disp_buf[GUI_LCM_YMAX][GUI_LCM_XMAX/8];
//取消数组gui_disp_buf,在GUI_FillSCR中当i=11,j=13时,SDDirHead结构体中所有的内容被清空

void  DelayNS(uint32  dly);


void Init_Port(void)
{	
	IO2DIR  |= P224;  //复位
	IO2SET	|= P224;
	
	IO2CLR	|= P224;
	DelayNS(20);
	IO2SET	|= P224;
	DelayNS(20);

	IO2DIR	|= P225;
	IO2CLR	|= P225;  //CLR是点亮背景灯	
}

void CloseBk(void)
{
	IO2DIR	|= P225;
	IO2SET	|= P225;  //CLR是点亮背景灯

}


/********************************************************************************************************
** 名称:GUI_FillSCR()
** 功能:全屏填充,直接使用数据填充显示缓冲区
** 入口参数:dat	填充的数据(对于黑白色LCM,为0的点灭,为1的点显示)
** 出口参数:无
*********************************************************************************************************/

void GUI_FillSCR(uint8 dat)
{	//uint32 i,j;
	
	/*for(i=0;i<GUI_LCM_YMAX;i++)					//遍历所有列
	{	for(j=0;j<GUI_LCM_XMAX/8;j++)			//遍历所有行
		{	gui_disp_buf[i][j]=dat;				//填充数据
		}
	}*/
	
	/*填充LCM*/
	LCD_FillAll(dat);
}



uint8 const DCB_HEX_TAB[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};

/********************************************************************************************************
** 名称:GUI_Point()
** 功能:在指定位置上画点
** 入口参数:x		指定点所在列的位置
**			 y		指定点所在行的位置
**			 color	显示颜色(对于黑白色LCM,为0时灭,为1时显示)
** 出口参数:返回值为1时表示操作成功,为0时表示操作失败(操作失败的原因,是指定的地址超出有效范围)
*********************************************************************************************************/

//uint8 GUI_Point(uint32 x,uint32 y,uint8 color)
//{	//参数过滤*
	/*if(x>=GUI_LCM_XMAX)	return(0);
	if(y>=GUI_LCM_YMAX) return(0);
	
	//设置缓冲区相应的点*
	if((color&0x01)!=0)  gui_disp_buf[y][x>>3]|=DCB_HEX_TAB[x&0x07];
	else	gui_disp_buf[y][x>>3]&=(~DCB_HEX_TAB[x&0x07]);
	
	//刷新显示
	LCD_UpdatePoint(x,y);
	return(1);*/ 
//}



/********************************************************************************************************
** 名称:GUI_HLine()
** 功能:画水平线
** 入口参数:x0		水平线起点所在列的位置
**			 y0		水平线起点所在行的位置
**			 x1		水平线终点所在列的位置
**			 color	显示颜色(对于黑白色LCM,为0时灭,为1时显示)
** 出口参数:无
** 说明:操作失败的原因是指定的地址超出缓冲区范围
*********************************************************************************************************/

//void GUI_HLine(uint32 x0,uint32 y0,uint32 x1,uint8 color)
//{	//uint32 bak;
	
	/*if(x0>x1)					//对x0和x1大小进行排列,以便画图
	{	bak=x1;
		x1=x0;
		x0=bak;
	}
	
	if(x0==x1)
	{	GUI_Point(x0,y0,color);
		return;
	}
	
	do
	{	//设置相应的点为1
		if(0!=color)	gui_disp_buf[y0][x0>>3]|=DCB_HEX_TAB[x0&0x07];
		else	gui_disp_buf[y0][x0>>3]&=(~DCB_HEX_TAB[x0&0x07]);
		
		//刷新显示(一次刷新一个字节
		if((x0&0x07)==0x07)		LCD_UpdatePoint(x0,y0);
		
		x0++;
	}while(x1>x0);
	
	
	//对最后一点显示操作
	if(0!=color)	gui_disp_buf[y0][x0>>3]|=DCB_HEX_TAB[x0&0x07];
	else	gui_disp_buf[y0][x0>>3]&=(~DCB_HEX_TAB[x0&0x07]);
	
	LCD_UpdatePoint(x0,y0);*/
//}



/********************************************************************************************************
** 名称:LCDStart()
** 功能:主函数YMSP-G240128A-1显示测试
*********************************************************************************************************/
		
int LCDStart(void)
{	uint8	x,y;
	uint8	color;
	//uint8	i;
	//char	ShowText[];
	
	Init_Port();
	
	LCD_Initialize();								//初始化LCM模块工作模式,纯图形模式
	
	GUI_FillSCR(0x00);								//初始化缓冲区为0x00,并输出屏幕(清屏)
	DelayNS(1);

	x=0;
	y=0;
	color=1;
	
	LCD_ShowTitle();
	LCD_ShowLogo();
	LCD_ShowName();
	LCD_ShowDate();
	
	CloseBk();		
    //while(1);
    return 0;
}


/****************************************************************************
* 函数名称: DelayNS()
* 功能描述: 长软件延时
* 入口参数: dly		延时参数,值越大,延时越久
* 出口参数: 无
****************************************************************************/
void  DelayNS(uint32  dly)
{   uint32  i;

    for(; dly>0; dly--) 
    {
        for(i=0; i<5000; i++);
    }
}


/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -