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

📄 vfd_prc.c

📁 日本FAMILY按摩椅W-1用的配套操作器程序。带VFD显示
💻 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 + -