📄 nec_fp._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 + -