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

📄 nec_fp.c

📁 sunplus spca514 cdmp3 源码
💻 C
字号:
#include "main.h"
#include "nec_fp.h"
#include <iom163.h>
#include "io.h"
unsigned char p_keycode[BYTES_USED_TO_SCANKEY];

static void VFD_LL_WriteByte( unsigned char byte )
{
	register unsigned char i;

	for( i=0x01;  i!=0; i<<=1 )	 
	{
      Set_Fp_CLK_L();
	 
      if(byte&i)
	    Set_Fp_DOUT_H();
	  else
	    Set_Fp_DOUT_L();
	
	  Set_Fp_CLK_H();
    }
}
static void VFD_LL_ReadByte( unsigned char *byte )
{
	unsigned char value;
	register unsigned char i;
	// unsigned char value;	

	//Set_Fp_CLK_H();
	//*byte = 0;   //FW 0117 Clear byte first
	value = 0;
	for( i=0; i<8; i++ )
    {
	  Set_Fp_CLK_L();
	 // *byte >>=1;
	  value >>=1;
	  soft_delay();
	  if(Get_Fp_DIN())
        //*byte |= 0x80;
		value |= 0x80;
	  Set_Fp_CLK_H();
	 soft_delay();
    }
    *byte = value;
	 //Set_Fp_CLK_L();
	 //if(Get_Fp_DIN())
      //*byte |= 0x80;
     //Set_Fp_CLK_H();
}
void VFD_LL_SetDim(unsigned char real_dim_value)
{
  
  Set_Fp_STB_L();
  
 
  VFD_LL_WriteByte( DISPLAY_CONTROL | real_dim_value );

  
  Set_Fp_STB_H();

}
void VFD_LL_SetGrid(void)
{
	
	//Set_Fp_STB_H();

	
	Set_Fp_STB_L();

	VFD_LL_WriteByte( DISPLAY_MODE| REAL_GRID_VALUE );
	Set_Fp_STB_H();
	
	//VFD_LL_SetDim(0x0f);
}

/****************************************************************************/
void VFD_LL_ReadKeyScan( void)
{
  unsigned char i;
  
  //Set_Fp_STB_H();

  
  Set_Fp_STB_L();
  
  
  VFD_LL_WriteByte( (unsigned char)(DATA_SETTING | NORMAL_OPERATION | ADDRESS_INCREASE | READ_KEYSCAN ));
  

  Set_FpDout_To_Input();
 
  for(i=0;i<BYTES_USED_TO_SCANKEY;i++)
  {
   
   VFD_LL_ReadByte( p_keycode+i );
  };
  
  Set_FpDout_To_Output();
  
  Set_Fp_STB_H();
  
}

/****************************************************************************/
/*void VFD_LL_ReadInputs( unsigned char *inputs )
{
  
  //Set_Fp_STB_H();

  
  Set_Fp_STB_L();

  
  VFD_LL_WriteByte( DATA_SETTING | NORMAL_OPERATION | ADDRESS_INCREASE | READ_INPUTS );
  
  Set_FpDout_To_Input();

  
  VFD_LL_ReadByte( inputs );

  Set_FpDout_To_Output();

  
  Set_Fp_STB_H();
}
*/

void VFD_LL_RefreshLED( unsigned char led )
{
//  delay_us(1);
 // Set_Fp_STB(1);

 // delay_us(1);
  Set_Fp_STB_L();

  //delay_us(1);
  VFD_LL_WriteByte( (unsigned char)(DATA_SETTING | NORMAL_OPERATION | ADDRESS_INCREASE | WRITE_LIGHTS ));

  //delay_us(1);
  VFD_LL_WriteByte( led );

  //delay_us(1);
  Set_Fp_STB_H();

}

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

void VFD_LL_WriteDisplayRAM(unsigned char grid,unsigned int data)
{

  Set_Fp_STB_L(); 
  VFD_LL_WriteByte( (unsigned char)(DATA_SETTING | NORMAL_OPERATION | ADDRESS_INCREASE | WRITE_DISPLAY ));
  Set_Fp_STB_H();
  soft_delay();
  Set_Fp_STB_L();
  VFD_LL_WriteByte( (unsigned char) ADDRESS_SETTING | (3*grid));								
  VFD_LL_WriteByte((unsigned char)data );
  VFD_LL_WriteByte((unsigned char)(data>>8));
  Set_Fp_STB_H();
 
}
#ifdef MORE_THAN_16SEGMENT
void VFD_LL_WriteExtDisplayRAM(unsigned char grid,unsigned char data)
{

  Set_Fp_STB_L(); 
  VFD_LL_WriteByte( (unsigned char)(DATA_SETTING | NORMAL_OPERATION | ADDRESS_INCREASE | WRITE_DISPLAY ));
  Set_Fp_STB_H();
  soft_delay();  
  Set_Fp_STB_L();
  VFD_LL_WriteByte( (unsigned char) ADDRESS_SETTING | (3*grid+2));								
  VFD_LL_WriteByte(data );
 // VFD_LL_WriteByte((unsigned char)(data>>8));
  Set_Fp_STB_H();
 
}
#endif

⌨️ 快捷键说明

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