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

📄 lph7366.c

📁 近来自己做了温度计,MCU芯片是51的, 温度芯片是DS18B20,显示屏是3310.
💻 C
📖 第 1 页 / 共 2 页
字号:
  LPH7366_write(COM,LPH7366_add_Xset);         //显示模块列地址设置

  LPH7366_clr();  //显示屏幕清屏
}

/***************************LPH7366写函数*****************************/
/*函数原型:void LPH7366_write(unsigned char type,unsigned char in_data)
/*函数功能:LPH7366写
/*输入参数:要写数据的类型 type,要写的数据 in_data
/*输出参数:无
/*调用模块:_crol_()
/*建立时间:2005/10/31
/*作者:丁霄
/**********************************************************************/
void LPH7366_write(unsigned char type,unsigned char in_data)
{   unsigned char i,k;
	unsigned char out_data;
	SCLK=1;
	if(type==1)
	D_C=1;  //要写的是数据
	else 
    D_C=0;  //要写的是指令
	out_data=in_data;
    for(i=1;i<9;i++)  //串行发送数据
   { 
    k=out_data&0x80;
	if(k==0x80)  //判断数据
	SDIN=1;
	else 
	SDIN=0;
	_nop_();

    SCLK=0;
    _nop_();
	SCLK=1;
    _nop_();
	out_data=_crol_(out_data,1);  //循环左移1位
   } 
}

/***************************LPH7366清屏函数****************************/
/*函数原型:void LPH7366_clr()
/*函数功能:LPH7366清屏
/*输入参数:无
/*输出参数:无
/*调用模块:LPH7366_write()
/*建立时间:2005/11/07
/*作者:丁霄
/**********************************************************************/
void LPH7366_clr()
{
  unsigned int i;
  for(i=1;i<505;i++)   //整个屏幕白屏
  {
    LPH7366_write(DAT,0x00);
  }
}

/***************************LPH7366任意写入字符函数****************************/
/*函数原型:void LPH7366_write_str(unsigned char symbol_line,unsigned char symbol_row,unsigned char str)
/*函数功能:可以在屏幕的任意位置写入所需字符(6行,每行13个字符)
/*输入参数:第几行(line),第几列(row),字符(str)  
--这里的行列不是屏幕实际的行列,是字符所在的位置.
/*输出参数:无
/*调用模块:LPH7366_write()
/*建立时间:2005/11/09
/*作者:丁霄
/**********************************************************************/
void LPH7366_write_str(unsigned char symbol_line,unsigned char symbol_row,unsigned char str)
{
   unsigned char symbol_i;  //在字符表的位置
   unsigned char i;

   LPH7366_write(COM,LPH7366_basic_fun_set);   //显示模块基本指令
   LPH7366_write(COM,LPH7366_add_Yset+(symbol_line-1));      //显示模块行地址设置
   LPH7366_write(COM,LPH7366_add_Xset+row(STR,symbol_row));  //显示模块列地址设置
   
   if(data_flag==0)  //不动态显示字符
   symbol_i=str-32;    //在ASCLL表是那个元素

   if(data_flag==1)  //动态显示字符
   symbol_i=str;

    while(1)
  {  for(i=0;i<5;i++)
   { 
     LPH7366_write(DAT,ASCLL[symbol_i][i]);
   }
     LPH7366_write(DAT,0x00);
	 break;
  }
}

/***********************LPH7366任意写入汉字函数************************/
/*函数原型:void LPH7366_write_han(unsigned char symbol_line,unsigned char symbol_row,unsigned char han)
/*函数功能:可以在屏幕的任意位置写入所需字符(3行,每行7个汉字)
/*输入参数:第几行(line),第几列(row),汉字(han)  
/*输出参数:无
/*调用模块:LPH7366_write()
/*建立时间:2005/11/10
/*作者:丁霄
/******************************************************************/
void LPH7366_write_han(unsigned char symbol_line,unsigned char symbol_row,unsigned char han)
{
   unsigned char symbol_i;  //在字符表的位置
   unsigned char i;

   LPH7366_write(COM,LPH7366_basic_fun_set);   //显示模块基本指令
   LPH7366_write(COM,LPH7366_add_Yset+(symbol_line-1)*2);      //显示模块行地址设置
   LPH7366_write(COM,LPH7366_add_Xset+row(HAN,symbol_row));      //显示模块列地址设置

   symbol_i=han;
   
     while(1)
  {  for(i=0;i<24;i++)
   { 
     if(i==12)   //汉字显示是两行的  16*12  重新设置行列地址
    { 
	  LPH7366_write(COM,LPH7366_basic_fun_set);   //显示模块基本指令
	  if(symbol_line==1)
      LPH7366_write(COM,LPH7366_add_Yset+1);      //显示模块行地址设置

      if(symbol_line==2)
      LPH7366_write(COM,LPH7366_add_Yset+3);      //显示模块行地址设置

	  if(symbol_line==3)
      LPH7366_write(COM,LPH7366_add_Yset+5);      //显示模块行地址设置

	  LPH7366_write(COM,LPH7366_add_Xset+row(HAN,symbol_row));      //显示模块列地址设置
    } 
	  LPH7366_write(DAT,HZK[symbol_i][i]);
   }
     if(i==24)
	 break;
  }
}

/***********************LPH7366任意写入一个字节函数************************/
/*函数原型:void LPH7366_write_doc(unsigned char symbol_line,unsigned char symbol_row,unsigned char doc)
/*函数功能:可以在屏幕的任意位置写入所需字节(6行,每行84个字节)
/*输入参数:第几行(line),第几列(row),字节(doc)  
/*输出参数:无
/*调用模块:LPH7366_write()
/*建立时间:2005/11/10
/*作者:丁霄
/******************************************************************/
void LPH7366_write_doc(unsigned char symbol_line,unsigned char symbol_row,unsigned char doc)
{
   LPH7366_write(COM,LPH7366_basic_fun_set);   //显示模块基本指令
   LPH7366_write(COM,LPH7366_add_Yset+symbol_line-1);      //显示模块行地址设置
   LPH7366_write(COM,LPH7366_add_Xset+symbol_row-1);      //显示模块列地址设置

   LPH7366_write(DAT,doc);
}


/*******************************数据拆分函数*********************************/
/*函数原型:void data_tick(unsigned char i_data)
/*函数功能:数据拆分
/*输入参数:i_data (将输入的数据拆分成十位和个位)
/*输出参数:改变ge和shi两个数据
/*调用模块:无
/*建立时间:2005/10/24
/*作者:丁霄
/**********************************************************************/
void data_tick(unsigned char i_data)
{
  unsigned char y; 
  y=i_data;
  shi=i_data/10;
  ge=y%10;
}

/***************************列计算函数****************************/
/*函数原型:unsigned char row(unsigned char stye,unsigned char i)
/*函数功能:类型,计算屏幕的列地址
/*输入参数:stye,symbol_row
/*输出参数:无
/*调用模块:无
/*建立时间:2005/11/09
/*作者:丁霄
/******************************************************************/
unsigned char row(unsigned char stye,unsigned char i)  //计算屏幕的列地址  类型
{
  if(stye==1)   //字符
  {
   if(i==1)
   return 3;

   return (row(stye,i-1)+6);
  }

  if(stye==2)   //汉字
  {
   if(i==1)
   return 0;

   return (row(stye,i-1)+12);
  }
}


⌨️ 快捷键说明

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