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

📄 sed1335.c

📁 采用单片机控制液晶
💻 C
📖 第 1 页 / 共 2 页
字号:
#include "include.h"
/****************************************************************************************
* 文件名:1335DRV.C
* 功能:图形液晶320*240驱动(型号为SMG240128A)。32K显示存,0000H-7FFFH地址。显示是横向字节,高位
*     在前。
* 说明:图形液晶采用SED1335为LCD控制芯片,内带负压产生器,单5伏供电,并行接口(使用f020驱动)。
* 硬件连接: D0--D7 <===> D0--D7
*       /WR   <===> /WR
*       /RD   <===> /RD
*       /CE   <===> A14
*       C/D   <===> A0
*
*       /RST   <===> VCC
****************************************************************************************/


/***********************************************************************
* 以下为LCM的驱动层,主要负责发送SED1335的各种命令,提供设置显示地址等功能,
* 在发送命令前会检测其状态字。
* 带参数命令模式:先参数,后命令;操作模式:先命令,后数据 
***********************************************************************/

unsigned char code DCB_HEX_TAB[8] = {0x80, 0x40, 0x20, 0x10, 0x08,0x04, 0x02, 0x01};
unsigned char code SYS_INIT_DAT[8] = {0x30, 0x87, 0x07, 0x27, 0x42,0xef, 0x28, 0x00};//{0x30, 0x87, 0x07, 0x27, 0x2F,0xef, 0x28, 0x00};
unsigned char code SCROLL_DAT[10] = {0x00, 0x00, 0xf0, 0x80, 0x25, 0xF0, 0x80, 0x50,0x00,0x60};//{0x00, 0x00, 0xF0, 0xb0, 0x04, 0xf0, 0x80, 0x50,0x00,0x60};
int Disp_Base_Addr=0;


/***********************************************************************
* 名称:SED1335_Init()
* 功能:LCM初始化,将LCM初始化为纯图形模式,显示起始地址为0x0000,。
* 入口参数:无
* 出口参数:无
* 说明:函数会设置LCM数据总线为输出方式
***********************************************************************/
void SED1335_Init(void)
{ 
  unsigned char i;
  LCD_WriteCommand(LCD_SYS_SET);     // 
  for(i=0 ; i < 8 ; i++)
    {LCD_WriteData(SYS_INIT_DAT[i]);}

  LCD_WriteCommand(LCD_SCR_OLL);     // 
  for(i=0 ; i < 10 ; i++)
    {LCD_WriteData(SCROLL_DAT[i]);}
	   
  LCD_WriteCommand(LCD_DOT_DIR);     // 
  LCD_WriteData(0x00);   
  LCD_WriteCommand(LCD_DIS_OVR);     // 
  LCD_WriteData(0x0C);
  LCD_WriteCommand(LCD_DIS_ON);     // 
  LCD_WriteData(0x04);
  LCD_WriteCommand(LCD_CSR_WR);     // 
  LCD_WriteData(0x00); 
  LCD_WriteData(0x00);
  LCD_WriteCommand(LCD_CSR_DIR);     // 
}

/***********************************************************************
* 名称:LCD_FillAll()
* 功能:LCD填充。以图形方式进行填充,起始地址为0x0000。
* 入口参数:dat         要填充的数据
* 出口参数:无
***********************************************************************/
void LCD_FillAll(unsigned char dat)
{ 
  unsigned char i,j;
  for(j = 0 ; j < 40 ; j++){         //列数: 320/8 = 40
	SED1335_CsRw(j);
    LCD_WriteCommand(LCD_CSR_DIR+3);   //光标自动向下
    LCD_WriteCommand(LCD_MEM_WR);     //写入显示缓冲区
    for(i = 0 ; i < 240 ; i++){
        LCD_WriteData(dat);
    }
  }
  
}
/*****************************************************************************************
* 名称:LCD_PutHZ(unsigned int X,unsigned int Y,unsigned int p_code)
* 功能:在指定的位置上显示汉字
* 入口参数:
* 出口参数:
******************************************************************************************/
void SED1335_SYS_Set()
{






}

/*************************************************************************
*名称:SED1335_Sleep()
*功能:使LCD工作在休眠模式或从休眠模式唤醒
*入口参数:bit flg_sleep:判断是要进入休眠模式(0)还是从休眠模式唤醒(1)
*		   unsigned char dat:LCD唤醒时要工作在什么模式
*出口参数:无
***************************************************************************/
void SED1335_Sleep(char flg_sleep,unsigned char P1)
{
   switch(flg_sleep&0x01)
   {
   		case 0: 
   		{	
   			LCD_WriteCommand(LCD_SLEEP_IN);break;

		}
   		case 1: 
   		{	
   			LCD_WriteCommand(LCD_SYS_SET);LCD_WriteData(P1);   //只要求P1参数
			break;
		}
	}
}
/******************************************************************************
* 名称:SED1335_OnOff()
* 功能:设置光标和显示区的亮暗(光标还有闪烁的功能,默认只有一显示区亮)
* 入口参数:bit OnOff :总控制(0--液晶不显示 1--CurOnOff才有效)
*			unsigned char CurOnOff:0--光标不显示,1--光标显示但不闪烁,2 3--光标闪烁
* 出口参数:无
*******************************************************************************/
void SED1335_OnOff(char OnOff,unsigned char CurOnOff)
{
  switch (OnOff&0x01) 
  {
	  case 0:
	  {
	  		LCD_WriteCommand(LCD_DIS_OFF);
			LCD_WriteData(0x00);
			break;
	  
	  }
	  case 1:
	  {
	  	 	LCD_WriteCommand(LCD_DIS_ON);
			LCD_WriteData(0x04&(CurOnOff&0x03));
	  		break;
	  
	  }
	  }

}
/*************************************************************************************
* 名称:SED1335_Scroll()
* 功能:设置显存与LCD的对应关系
* 入口参数:
* 出口参数:
**************************************************************************************/
void SED1335_Scroll(unsigned int SAD1,unsigned int SAD2,unsigned int SAD3,unsigned int SAD4,unsigned char SL1,unsigned char SL2)
{
	LCD_WriteCommand(LCD_SCR_OLL);
	LCD_WriteData(GET_LOW_BYTE(SAD1)); 
	LCD_WriteData(GET_HIG_BYTE(SAD1)); //P2
	LCD_WriteData(SL1);

	LCD_WriteData(GET_LOW_BYTE(SAD2)); 
	LCD_WriteData(GET_HIG_BYTE(SAD2)); //P5
	LCD_WriteData(SL2);

	LCD_WriteData(GET_LOW_BYTE(SAD3)); 
	LCD_WriteData(GET_HIG_BYTE(SAD3)); //P8

	LCD_WriteData(GET_LOW_BYTE(SAD4)); 
	LCD_WriteData(GET_HIG_BYTE(SAD4)); //P10

}
/***************************************************************************************
* 名称:SED1335_CsrForm()
* 功能:设置光标显示方式和形状
* 入口参数:
* 出口参数:
****************************************************************************************/
void SED1335_CsrForm(unsigned char CRX,unsigned char CRY,unsigned char Disp_Form)
{
   LCD_WriteCommand(LCD_CSR_FOM);
   LCD_WriteData(CRX&0x07);
   LCD_WriteData((CRY&0x0f)|((Disp_Form&0x01)<<7));

}
/*****************************************************************************************
* 名称:SED1335_CspDir()
* 功能:设置光标自增方向
* 入口参数:
* 出口参数:
*****************************************************************************************/
void SED1335_CspDir(Cur_Direct dic)
{
  LCD_WriteCommand(LCD_CSR_DIR + dic);

}
/****************************************************************************************
* 名称:SED1335_Oylay()
* 功能:甚至显示方式和显示合成开关
* 入口参数:
* 出口参数:
*****************************************************************************************/
void SED1335_Oylay(Txt_Graph SAD1,Txt_Graph SAD3,OVlay_Form form)
{
	LCD_WriteCommand(LCD_DIS_OVR);
	LCD_WriteData((SAD3<<3)|(SAD1<<2)|form);


}
/****************************************************************************************
* 名称:SED1335_CsRw()
* 功能:设置光标位置
* 入口参数:
* 出口参数:
*****************************************************************************************/
void SED1335_CsRw(unsigned int cur_addr)
{

	LCD_WriteCommand(LCD_CSR_WR);
	LCD_WriteData(GET_LOW_BYTE(cur_addr)); 
	LCD_WriteData(GET_HIG_BYTE(cur_addr));


}
/*****************************************************************************************
* 名称:SED1335_CsRr()
* 功能:读取光标位置
* 入口参数:
* 出口参数:
******************************************************************************************/
unsigned int SED1335_CsRr(void)
{
  	unsigned char APL,APH;
	LCD_WriteCommand(LCD_CSR_RD);
	LCD_ReadData(APL);
	LCD_ReadData(APH);
	return (unsigned int)((unsigned int)APL|(unsigned int)(APH<<8));

}
/*****************************************************************************************
* 名称:SED1335_WMrite()
* 功能:向显存写入数据
* 入口参数:
* 出口参数:
******************************************************************************************/
void SED1335_WMrite(unsigned char *p,unsigned int LEN)
{
  unsigned int i;
  LCD_WriteCommand(LCD_MEM_WR);
  for(i=0;i<LEN;i++)
  LCD_WriteData(p[i]);


}
/******************************************************************************************
* 名称:SED1335_MRead(void)
* 功能:读取显存内容
* 入口参数:
* 出口参数:
********************************************************************************************/
unsigned char *SED1335_MRead(unsigned int LEN)

⌨️ 快捷键说明

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