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

📄 c1335_driver.c

📁 sed1335液晶驱动,包括菜单,已经在DSPIC30F6014A上调试通过.
💻 C
📖 第 1 页 / 共 2 页
字号:
  	}
  	WriteCMD(SCROLL);//C1335=0x44;
  	for(i=0;i<10;i++)
  	{
    	WriteDATA(SCROLL_PARAM[i]);//D1335 = SCOLL_PARA_TABLE10[i];
  	}

  	WriteCMD(HDOT_SCR);	//C1335=0x5A;                     //HDOTSET
  	WriteDATA(0);		//D1335=0x00; 
  	WriteCMD(OVLAY);	//C1335=0x5B;                     //OYLAY
  	WriteDATA(0x04);		//D1335=0x00; 
  	WriteCMD(CSR_FORM);	//C1335=0x5D;                     //CSRFORM
  	WriteDATA(7);		//D1335=0x07;
  	WriteDATA(7);		//D1335=0x07;

  	WriteCMD(CSR_DIR_R);//C1335=0x4C;                    //CLR DRAM
  	WriteCMD(CSR_W);	//C1335=0x46;
  	WriteDATA(0);		//D1335=0x00; 
  	WriteDATA(0);		//D1335=0x00;
  	WriteCMD(MEM_WRITE);//C1335=0x42;

  	for(i=0;i<0x2800;i++)
  	{
   		WriteDATA(0);		//D1335=0x20;
  	}         

	WriteCMD(DISP_ON);	//cmd_write (LCDDISPON);
  	WriteDATA(0x14);		//data_write (0x54);
}		      
//********************************************************************
void ClearLCD(	unsigned char 	ZoneBase,
				unsigned char	X,
				unsigned char	Y,
				unsigned char	XLength,
				unsigned char	YLength)
{
	unsigned char	i,j;
	unsigned int   XYtemp;  
	
	WriteCMD(CSR_DIR_D);
	for(i=0;i<XLength;i++)
 	{ 
	    XYtemp  =  (Y) * 40 + X+i + ZoneBase*256;
		WriteCMD(CSR_DIR_D);
	    WriteCMD(CSR_W);
		WriteDATA((unsigned char)XYtemp);
		WriteDATA((unsigned char)(XYtemp >> 8));
		WriteCMD(MEM_WRITE);
		for(j=0;j<YLength;j++)
				WriteDATA(0); 
    }
}

/*
// 第一显示区向下滚动
void RollDown( void ) 
{
	unsigned int	iTemp	=	paraP9*15*16+BasePart2*256;
	unsigned char 	jj 		= 	15;// 演示32次

//	WriteCommand( DispOn );			// 写入指令DISP ON/OFF代码,后续参数:
//	WriteData( 0x44 );				// 00 00 01 00显示1区开显示,其余层关闭

	while(jj--) {
		iTemp -= paraP9*16;
		WriteCMD( SCROLL);		// 设定显示区域起始地址
		WriteDATA( 0 );			// 写入参数
		WriteDATA( 0 );			// 写入参数
		WriteDATA( 0XF0 );			// 写入参数
		WriteDATA( (unsigned char)(iTemp & 0xff) );			// 写入参数
		WriteDATA( (unsigned char)(iTemp /256) );			// 写入参数
		DelayMS(400);					// 调延时子程序
	}
	WriteCMD( SCROLL );		// 设定显示区域起始地址
	WriteDATA( 0 );			// 写入参数
	WriteDATA( 0 );			// 写入参数
	DelayMS(60);
}

// 第二显示区向上滚动
void RollUp( void ) 
{

	unsigned int	iTemp=BasePart2*256;
	unsigned char 	jj = 15;					// 演示30次

//	WriteCommand( DispOn );			// 写入指令DISP ON/OFF代码,后续参数:
//	WriteData( 0x44 );				// 00 00 01 00显示1区开显示,其余层关闭

	while(jj--) 
	{
		iTemp += paraP9*16;

		WriteCMD( SCROLL );		// 设定显示区域起始地址
		WriteDATA( 0 );			// 写入参数
		WriteDATA( 0 );			// 写入参数
		WriteDATA( 0XF0 );			// 写入参数
		WriteDATA( (unsigned char)(iTemp & 0xff) );			// 写入参数
		WriteDATA( (unsigned char)(iTemp /256) );			// 写入参数

		DelayMS(400);				// 调延时子程序
	}
}
*/
/*=================================================================**
**函 数 名:void PutPixel(unsigned int X,unsigned  char Y,unsigned char attr);**
**功能介绍:在(x,y)坐标绘制一个点。x=[0,319],y=[0,239]			   **
**传人参数:attr是 (1)画点,(0)消点                   **
===================================================================
void PutPixel(unsigned int X,unsigned  char Y,unsigned char attr)
{
    unsigned char  ucTemp;
    unsigned int   XYtemp;  
    XYtemp  =  (Y) * 40 + (unsigned char)(X >> 3) + BasePart2*256;
	WriteCMD(CSR_DIR_D);
    WriteCMD(CSR_W);
	WriteDATA((unsigned char)XYtemp);
	WriteDATA((unsigned char)(XYtemp >> 8));
	WriteCMD(MEM_READ);
    ucTemp  =  ReadDataLcm();
	if(attr)
        ucTemp  |=  OnlyBitTable[(unsigned char)X & 0x07];
	else
        ucTemp  &= ~OnlyBitTable[(unsigned char)X & 0x07];

	WriteCMD(CSR_W);
	WriteDATA((unsigned char)XYtemp);
	WriteDATA((unsigned char)(XYtemp >> 8));
    WriteCMD(MEM_WRITE);
    WriteDATA(ucTemp);
}*/
/*=================================================================**
**函 数 名:void PutPixel(unsigned int X,unsigned  char Y,unsigned char attr);**
**功能介绍:在(x,y)坐标绘制一个点。x=[0,319],y=[0,239]			   **
**传人参数:attr是 (1)画点,(0)消点                   **
===================================================================
void	DrawRect(unsigned int X,unsigned  char Y,unsigned char attr)
{
	unsigned char	i,j;
	for(j=0;j<2;j++)
		for(i=0;i<40;i++)
			PutPixel(X+i,Y+j,attr);
	for(j=22;j<24;j++)
		for(i=0;i<40;i++)
			PutPixel(X+i,Y+j,attr);

	for(i=0;i<2;i++)
		for(j=0;j<24;j++)
			PutPixel(X+i,Y+j,attr);
	for(i=38;i<40;i++)
		for(j=0;j<24;j++)
			PutPixel(X+i,Y+j,attr);
}*/
/*======================================================================**
**函 数 名:void DispHZ_24_24(uchar *addr,uchar LineX,uchar RowY); 	**
**功能介绍:显示 2 区图形方式显示16*16汉字				**
**传人参数:汉字字符串地址 *addr,定位坐标LineX(0~239),RowY(0~39) 	**
**								  	**
**======================================================================
void DispHZ_24_24(	unsigned char *addr,
					unsigned char Y0,
					unsigned char X0,
					unsigned char color) 
{  
	DispBitmap(addr,		Y0,		X0,		color,24);
	DispBitmap(addr+24,		Y0,		X0+1,	color,24);
	DispBitmap(addr+24+24,	Y0,		X0+2,	color,24);
}*/

/*======================================================================**
**函 数 名:void DispBitmap(uchar *addr,uchar LineX,**
							uchar RowY,unsigned char Length);**
**功能介绍:显示 3 区图形方式显示Length*8的位图				**
**传人参数:汉字字符串地址 *addr,定位坐标LineX(0~239),RowY(0~39) 	**
**								  	**
**======================================================================*/ /*
void DispBitmapZone1(	unsigned char *addr,
						unsigned char Y,
						unsigned char X,
						unsigned char color, 
						unsigned char Length) 
{
	unsigned char i; 
	unsigned int XYtemp;
	i = color;
	XYtemp = Y * 40 + X+BasePart1*256;		//计算显示位置
	WriteCMD(CSR_DIR_D);
	WriteCMD(CSR_W);
	WriteDATA((unsigned char)XYtemp);
	WriteDATA((unsigned char)(XYtemp >> 8));
	WriteCMD(MEM_WRITE);
	for(i=0;i<Length;i++,addr++)
	{	 	 
    	if(!color)	WriteDATA(*addr);
		else	    WriteDATA(~(*addr));
	} 
}*/
/*======================================================================**
**函 数 名:void DispHZ_24_24(uchar *addr,uchar LineX,uchar RowY); 	**
**功能介绍:显示 3 区图形方式显示16*16汉字				**
**传人参数:汉字字符串地址 *addr,定位坐标LineX(0~239),RowY(0~39) 	**
**								  	**
**======================================================================*/ /*
void DispHZ_24_24Zone1(	unsigned char *addr,
						unsigned char Y0,
						unsigned char X0,
						unsigned char color) 
{  
	DispBitmapZone1(addr,		Y0,		X0,		color,24);
	DispBitmapZone1(addr+24,	Y0,		X0+1,	color,24);
	DispBitmapZone1(addr+24+24,	Y0,		X0+2,	color,24);
}
/*======================================================================**
**函 数 名:Disp_ASCII(uchar *addr,uchar LineX,uchar RowY,bit Inverse);	**
**功能介绍:显示 2 区图形方式显示ASCII,要求以'\0'结尾		       	**
**传人参数:ASCII字符串地址 *addr,定位坐标LineX(0~239),RowY(0~39) 	**
**		-----(bit)Inverse,正常显示(0),反白显示(1)  ---		**
========================================================================*
void DispASCIIStr(	unsigned char *addr,
					unsigned char X,
					unsigned char Y,
					unsigned char color)
{     
	unsigned int 	p;

	for ( ;*addr != 0;addr++,X++ )
	{
		p = (*addr - 0x20)*16 ;		
		DispCHAR_16x8(ASCII_16+p,X,Y,color); 	//DispCHAR_16x8(&Ascii_16[p],Y0,X0,color);   
	}   
}
*/
	 

⌨️ 快捷键说明

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