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

📄 qq.c

📁 为一个油量测量系统的源程序,可以对任意形状的油箱进行设置匹配
💻 C
📖 第 1 页 / 共 3 页
字号:
current_led = led_on;
hold_led = led_off;        

if (index==0)
eror_led = led_on;
else
eror_led = led_off;

}
/*报警处理模块结束++++++*/





/*主程序开始+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
main()					                         /*主程序*/
{	
uint   f_var0;
uint   f_var1;
uint   i_init;
uint   l_var0;
uint   l_var1;
uchar   i;
ulong   ll;
ulong   gg;
ulong   ff;

while (1)
{
	P0 = 255;
	delay(2000);
	P0 = 0;
	delay(2000);
}



x25045_init();				        
x25045_feed();	


min_data = x25045_read_word(gas_min_address);
max_data = x25045_read_word(gas_max_address);

#ifdef  clock
t2_init();
#endif

#ifdef  clear
do_clear();
#endif

#ifdef  check
do_check();
#endif



for (i=0;;i++)
{
 x25045_feed();	
 f_var0=x25045_read_word(i*4+f_begin_address); 
 f_var1=x25045_read_word(i*4+f_begin_address+4); 

      if (f_var1<=f_var0) { chiefdata=i;break; }

}



   	
for (i=0;;i++)
 {
    x25045_feed();	
    f_var0=x25045_read_word(i*4+f_begin_address+2); 
    f_var1=x25045_read_word(i*4+f_begin_address+6); 

    if (f_var1<=f_var0) 
          { 
          	x25045_feed();
            if (chiefdata==i) 
               {
               f_var1=x25045_read_word(i*4+f_begin_address);
               if ((f_var0==max_f)&(f_var1==max_l))     index=1;
               else                                    index=0;
               
               }
    	    else index=0;
    	    break; 
    	  }


 }
                                                          /*初始化*/

init();
i_init=0;





while(1)			                                                 /*主循环*/
 {
 	x25045_feed();
 	
    if (reflush==data_reflush)
   
     {
         x25045_feed();
     	 if (index>0)
         { 
       	          	    	
            chiefdata=count_image/circle_init;          
            chiefdata=2000-chiefdata;
            reflush=false;
            for (i=i_init;;i++)
              {
                x25045_feed();				           
                f_var0=x25045_read_word(i*4+f_begin_address);             /*应该采用记忆查询,否则太慢*/
                 if (chiefdata < f_var0)
                  {
                  if (i==0) {chiefdata=0;dis();goto over;}
                  i_init=i;
                  goto next1;
                  }
           
               }


             next1:
         
             for (i=i_init;;i--)
              {
               x25045_feed();				           /*喂狗*/
               f_var0=x25045_read_word(i*4+f_begin_address);
                 if (chiefdata >= f_var0)
                  {
                   i_init=i;
                   goto next2;
                  }
               }


              next2:
              f_var1=x25045_read_word((i_init+1)*4+f_begin_address);
              l_var0=x25045_read_word(i_init*4+f_begin_address+2); 
              l_var1=x25045_read_word((i_init+1)*4+f_begin_address+2);
              chiefdata = chiefdata - f_var0;
              f_var1 = f_var1 - f_var0;
              l_var1 = l_var1 - l_var0;
         
              ff=chiefdata;
              gg=l_var1*10;
              ll=ff*gg;
         
              l_var0=l_var0*10;
                 
              chiefdata=(uint)(ll/f_var1);
              chiefdata=chiefdata+l_var0;
         
             
              
              bin_bcd(chiefdata);
              bcd_dis_four();
              dispdata[1]--;
              display();
              over: ;  
              
              
                           
              }
     
     
     else {
     	  reflush = false;
     	  chiefdata = count_image/circle_init;
     	  dis();
     	  eror_led=led_on;
     	   }                                                                
       
    }  
           
    
     if (reflush==display_reflush) 
       {
       bin_bcd(chiefdata);
       bcd_dis_four();
       display();
       }
    
    
    

        
     if (key==mode)                             /*键盘服务程序*/
        {  
         delay(80);
         if (key==mode)
         {
         menu=1;
         mode_led = led_on;
         key_mode_srv();
         i_init=0;
         }
        }
     
      if (key==alt)
        {
      while (key==alt)  {x25045_feed();}
        key_alt_srv();
       }
  
      if (key==hold)
      {
       while (key==hold)  x25045_feed();key=255;;
       hold_led = led_on;
       current_led = led_off;
       key_hold_srv();
      }
      
      else  ;  


warn();

#ifdef   clock
   do_clock();
#endif

#ifdef   remind
   do_remind();
#endif


}


}
/*主程序结束+++++++++++++++++++++*/









/*按键处理模块开始++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/




/*当前,锁存数据显示转换程序开始********************************************************/

void key_alt_srv()                                            
{

current_led = led_off;
hold_led = led_on;

chiefdata = x25045_read_word(hold_data_address);     /*读入锁存数据*/  

   while (1)
    {
     x25045_feed();	
     bin_bcd(chiefdata);
     bcd_dis_four();
     dispdata[1]--;
     display();

            if (key==alt)                           /*按alt后退出显示锁存数据*/
               {
              while (key==alt) { x25045_feed();}
              goto over_alt;
              }
     


     }  
     
over_alt: ;


}
/*当前,锁存数据转换程序结束*****/



 /*数据锁存程序开始************************************************************************/

void key_hold_srv()                                    
{

x25045_feed();	

dispdata[0] = dis_off;                                  /*数码管全灭*/
dispdata[1] = dis_off;                                        
dispdata[2] = dis_off;                                     
dispdata[3] = dis_off;                                     
                                                           
display();                                                     
x25045_write_word(hold_data_address,chiefdata);	        /*将当前值存入eprom中*/
delay(hold_flash_time); 
       
   	    
dis();                                                 /*显示刚刚存入的数据*/                                                 
delay(hold_flash_time);                                 
delay(hold_flash_time);                                  
                                                           
dispdata[0] = dis_off;                                  /*数码管全灭*/
dispdata[1] = dis_off;                                                                    
dispdata[2] = dis_off;                                                        
dispdata[3] = dis_off;                                                

display();
delay(hold_flash_time);
 


}

 /*数据锁存程序结束****/



/*标定程序****最主要的一个键盘服务程序***********************************************/

void key_mode_srv()			                     /*标定主程序*/                       
{
x25045_feed();	
display_init();
menu=menu_main;
signal=true;

   while (signal)
    {
    x25045_feed();
    key_srv();
    display_srv();
    }
reflush = display_reflush;
}




void key_srv()                                       /*键盘服务程序*/
{
x25045_feed();
key_data();


        if (menu==menu_main)
           {
             if (key_data_update)
                {
                  if (key_data_update==255)
                     signal=esc;
                     
                  else if (key_data_update==set)
                     {
                      menu = temp;
                      if (menu==menu_max)
                        { 
                        temp = x25045_read_word(gas_max_address);
                         }
                         
                      else if (menu==menu_min)
                         temp = x25045_read_word(gas_min_address); 
                         
                      else if (menu==menu_set)
                         {
                         index=0;
                         menu = zero_zero;
                         while (reflush!=data_reflush) x25045_feed();
                         globe = count_image/circle_init;
                         reflush = false;
                 	     }                      
                      }
                  key_data_update=false;
                 }
              ;
            }

        else if (menu==menu_max)
           {
             if (key_data_update)
                 {
                  if (key_data_update==255)
                     menu=menu_main;

                  else if (key_data_update==set)
                     {
                      x25045_write_word(gas_max_address,temp);
                                         
                      menu=menu_main;
                      }
                      
                  key_data_update=false;
                 }
              
              
            }


        else if (menu==menu_zero)
           {
             x25045_feed();

             if (reflush==data_reflush)
                 {
                  chiefdata=count_image/circle_init;
                  chiefdata=max_f-chiefdata;
                  reflush=false;
                 }

             if (key_data_update)
                 
                 {
                  if (key_data_update==255)
                     menu=menu_main;

                  else if (key_data_update==set)
                     {
                      x25045_feed();	
                      x25045_write_word(gas_zero_address,chiefdata);
                      
                      x25045_write_word((gas_zero_address+2),0);
                      
                      x25045_write_word((gas_zero_address+4),max_f);
                      
                      x25045_write_word((gas_zero_address+6),max_l);
                      
                      
                      index = 1;
                      x25045_write_word(gas_set_all,index); 
                      
                                        
                      menu=menu_main;
                      }

                  key_data_update=false;

                 }

            }


        else if (menu==menu_min)
             {
             if (key_data_update)
                 {
                  if (key_data_update==255)
                     menu=menu_main;

                  else if (key_data_update==set)
                     {
                      x25045_write_word(gas_min_address,(uchar)temp);
                      menu=menu_main;

⌨️ 快捷键说明

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