📄 vfd_prc.c
字号:
#pragma sfr
#pragma nop
#include "string.h"
#include "vfd.h"
void A_b_c_precess(void); //modify
void D_e_f_precess(void) ; //modidfy
void Fix_data_prc(void); //modify
void Get_abc_data( unsigned char *vp); //modify
void Fix_d_e_f_precess(void) ; //modify
void Get_def_data( unsigned char *vp) ; //modify
void Fix_disp_prc(void) ;
/*********************************/
/*********************************/
void A_b_c_precess(void)
{
abc_combi.abc_arry[0]<<=1;
abc_combi.abc_data.a6=abc_combi.abc_data.b6;
abc_combi.abc_arry[1]<<=1;
abc_combi.abc_data.b11=abc_combi.abc_data.c11;
abc_combi.abc_arry[2]<<=1;
abc_combi.abc_data.c1=bit_arry.bit_no.bit_1;
abc_combi.abc_data.c2=bit_arry.bit_no.bit_2;
abc_combi.abc_data.c3=bit_arry.bit_no.bit_3;
abc_combi.abc_data.c4=bit_arry.bit_no.bit_4;
abc_combi.abc_data.c5=bit_arry.bit_no.bit_5;
abc_combi.abc_data.c6=bit_arry.bit_no.bit_6;
abc_combi.abc_data.c7=bit_arry.bit_no.bit_7;
abc_combi.abc_data.c8=bit_arry.bit_no.bit_8;
abc_combi.abc_data.c9=bit_arry.bit_no.bit_9;
abc_combi.abc_data.c10=bit_arry.bit_no.bit_10;
abc_combi.abc_data.c11=bit_arry.bit_no.bit_11;
abc_combi.abc_data.c12=bit_arry.bit_no.bit_12;
abc_combi.abc_data.c13=bit_arry.bit_no.bit_13;
abc_combi.abc_data.c14=bit_arry.bit_no.bit_14;
abc_combi.abc_data.c15=bit_arry.bit_no.bit_15;
abc_combi.abc_data.c16=bit_arry.bit_no.bit_16;
}
/***************************************/
/***************************************/
void D_e_f_precess(void)
{
def_combi.def_arry[2]>>=1;
def_combi.def_data.d11=def_combi.def_data.e11;
def_combi.def_arry[1] >>= 1;
def_combi.def_data.e6=def_combi.def_data.f6;
def_combi.def_arry[0]>>=1;
def_combi.def_data.f1=abc_combi.abc_data.a1;
def_combi.def_data.f2=abc_combi.abc_data.a2;
def_combi.def_data.f3=abc_combi.abc_data.a3;
def_combi.def_data.f4=abc_combi.abc_data.a4;
def_combi.def_data.f5=abc_combi.abc_data.a5;
def_combi.def_data.f6=abc_combi.abc_data.a6;
def_combi.def_data.f7=abc_combi.abc_data.a7;
def_combi.def_data.f8=abc_combi.abc_data.a8;
def_combi.def_data.f9=abc_combi.abc_data.a9;
def_combi.def_data.f10=abc_combi.abc_data.a10;
def_combi.def_data.f11=abc_combi.abc_data.a11;
def_combi.def_data.f12=abc_combi.abc_data.a12;
def_combi.def_data.f13=abc_combi.abc_data.a13;
def_combi.def_data.f14=abc_combi.abc_data.a14;
def_combi.def_data.f15=abc_combi.abc_data.a15;
def_combi.def_data.f16=abc_combi.abc_data.a16;
}
unsigned char fix_data_prc_count;
unsigned char fdisp_start_column; //2003-11-4 add
unsigned char fdisp_prc_column; //2003-11-4 add
/*****************************************/
/*****************************************/
void Fix_disp_clrscr(void)
{
unsigned char i ;
for(i=0;i<38;i++)
memset(one_direct_data+i,0x00,12);
clrscr_F = 1 ;
fix_data_prc_count = 0 ; //abc/def for one unit
fdisp_prc_column = 0 ;
}
/****************************************/
/****************************************/
void Fix_data_prc(void)
{
if(fix_data_prc_count<37)
{
Get_abc_data((unsigned char *)(one_direct_data+fix_data_prc_count));
fix_data_prc_count++;
}
if(fix_data_prc_count<37)
{
Get_def_data((unsigned char *)(one_direct_data+fix_data_prc_count));
fix_data_prc_count++;
}
if(fix_data_prc_count==37)
{
Get_37_disp_data();
fix_data_prc_count++;
}
}
/************************************************************/
/************ column move 112 then fix disp prc *************/
/************prc speed is too slow *************************/
/* void Fix_data_prc(void)
{
unsigned char i;
i=0;
while(i<3)
{
if(fix_data_prc_count<112)
{
move_count++;
if(move_count==7)
move_count=1;
if(font_dot_p>=old_font_dot_p) //2003-11-1 add
Get_next_font_adr(code_p); //2003-11-1 add
Get_0_34_disp_data();
Get_35_disp_data();
Get_36_disp_data();
Get_37_disp_data();
fix_data_prc_count++;
i++;
}
else
i++;
}
}*/
/***************************************/
/***************************************/
void Get_abc_data( unsigned char *vp)
{
unsigned char no[12],i,j;
unsigned int data;
unsigned char rot_no;
/*2003-11-4 add */
i= 3 ;
while(i--)
{
// if(fdisp_prc_column < fdisp_start_column)
// data=0x0000;
// else if(font_dot_p < old_font_dot_p)
if(disp_empty_F == 1)
{
data = 0x0000;
}
else if(font_dot_p < old_font_dot_p)
{
data = *font_dot_p;
font_dot_p++;
}
else if(font_dot_p >= old_font_dot_p)
{
Get_next_font_adr(code_p);
if(disp_empty_F == 1)
data = 0x0000 ;
else if(font_dot_p < old_font_dot_p)
{
data = *font_dot_p ;
font_dot_p++;
}
}
// fdisp_prc_column++;
Get_bit_d(data);
A_b_c_precess();
}
for(j=0;j<3;j++)
{
rot_no=12;
for(i=0;i<3;i++)
{
no[4*j+i]=(unsigned char)(abc_combi.abc_arry[j]>>rot_no)&0x0f;
rot_no-=4;
}
no[4*j+i]=(unsigned char)(abc_combi.abc_arry[j])&0x0f;
}
for(j=0;j<12;j++)
{
i=no[j];
*vp =init_abc_data[i];
vp++;
}
}
/*********************************************/
/*********************************************/
void Fix_d_e_f_precess(void)
{
def_combi.def_arry[2]>>=1;
def_combi.def_data.d11=def_combi.def_data.e11;
def_combi.def_arry[1] >>= 1;
def_combi.def_data.e6=def_combi.def_data.f6;
def_combi.def_arry[0]>>=1;
def_combi.def_data.f1=bit_arry.bit_no.bit_1;
def_combi.def_data.f2=bit_arry.bit_no.bit_2;
def_combi.def_data.f3=bit_arry.bit_no.bit_3;
def_combi.def_data.f4=bit_arry.bit_no.bit_4;
def_combi.def_data.f5=bit_arry.bit_no.bit_5;
def_combi.def_data.f6=bit_arry.bit_no.bit_6;
def_combi.def_data.f7=bit_arry.bit_no.bit_7;
def_combi.def_data.f8=bit_arry.bit_no.bit_8;
def_combi.def_data.f9=bit_arry.bit_no.bit_9;
def_combi.def_data.f10=bit_arry.bit_no.bit_10;
def_combi.def_data.f11=bit_arry.bit_no.bit_11;
def_combi.def_data.f12=bit_arry.bit_no.bit_12;
def_combi.def_data.f13=bit_arry.bit_no.bit_13;
def_combi.def_data.f14=bit_arry.bit_no.bit_14;
def_combi.def_data.f15=bit_arry.bit_no.bit_15;
def_combi.def_data.f16=bit_arry.bit_no.bit_16;
}
/*************************************/
/*************************************/
void Get_def_data( unsigned char *vp)
{
unsigned char no[12],i,j,rot_no;
unsigned int data;
i=3 ;
while(i--)
{
// if(fdisp_prc_column < fdisp_start_column)
// data=0x0000;
// else if(font_dot_p < old_font_dot_p)
if(disp_empty_F == 1)
data = 0x0000;
else if(font_dot_p < old_font_dot_p)
{
data=*font_dot_p;
font_dot_p++;
}
else if( font_dot_p >= old_font_dot_p)
{
Get_next_font_adr(code_p);
if(disp_empty_F == 1)
data = 0x0000 ;
else if(font_dot_p < old_font_dot_p)
{
data = *font_dot_p ;
font_dot_p++;
}
}
// fdisp_prc_column++;
Get_bit_d(data);
Fix_d_e_f_precess(); //precess D column data
}
for(j=0;j<3;j++)
{
rot_no=12;
for(i=0;i<3;i++)
{ no[4*j+i]=(unsigned char)(def_combi.def_arry[j]>>rot_no)&0x0f;
rot_no-=4;
}
no[4*j+i]=(unsigned char)(def_combi.def_arry[j])&0x0f;
}
for(j=0;j<12;j++)
{
i=no[j];
*vp =init_def_data[i];
vp++;
}
}
/************************************************/
/************************************************/
void Fix_disp_prc(void)
{
while(fix_data_prc_count < 39 )
{
NOP();
Fix_data_prc();
if(fix_data_prc_count >= 38)
{
fix_data_prc_count++;
}
}
fix_data_prc_count = 0;
prc_column_F = 1 ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -