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

📄 lcm141-key.c

📁 基于430单片机的涡街流量计设计程序。可以使用
💻 C
📖 第 1 页 / 共 2 页
字号:
      buffer=0x20;
      Write_Data();
      addr_buffer=addr_rights15;                         //h
      buffer=0x04;
      Write_Data();
      
      //view=(unsigned long int)(Density*1000);         //仪表系数;
      //view_cnt=3;
    break; 

    case 12:
      addr_buffer=addr_rights17;                         //kg
      buffer=0x20;
      Write_Data();
      addr_buffer=addr_rights15;                         //d
      buffer=0x08;
      Write_Data();
      
      //view=(unsigned long int)(Density*1000);         //仪表系数;
      //view_cnt=3;
    break; 

    case 13:
      addr_buffer=addr_rights15;                         //t/s
      buffer=0x22;
      Write_Data();
 
      
      //view=(unsigned long int)(Density*1000);         //仪表系数;
      //view_cnt=3;
    break; 

    case 14:
      addr_buffer=addr_rights15;                         //t/m
      buffer=0x42;
      Write_Data();
 

      //view=(unsigned long int)(Density*1000);         //仪表系数;
      //view_cnt=3;
    break; 

    case 15:
      addr_buffer=addr_rights15;                         //t/h
      buffer=0x06;
      Write_Data();


      //view=(unsigned long int)(Density*1000);         //仪表系数;
      //view_cnt=3;
    break; 

    case 16:
      addr_buffer=addr_rights15;                         //t/d
      buffer=0x0A;
      Write_Data();
      
      //view=(unsigned long int)(Density*1000);         //仪表系数;
      //view_cnt=3;
    break; 

    default:
    break;
   }
  }
  
  else if(UNSCALED_PULSE==1)
  {
    /* 
    addr_buffer=addr_rights3;                         //HZ
      buffer=0x10;
      Write_Data();
      
      //view=(unsigned long int)(Density*1000);         //仪表系数;
      //view_cnt=3;
    */
  }
 
   else if(TEMP_f==1)
  {
      addr_buffer=addr_rights15;                         //摄氏度
      buffer=0x80;
      Write_Data();
      
      //view=(unsigned long int)(Density*1000);         //仪表系数;
      //view_cnt=3;
  }

  
   
  FLOAT2ASCII();
  Display_up();
 
}

void Switching_Display1(void)
{
  Display_Init();
  

  if(PRESS_f==1)
  {
 /*   
    if(压力〉)
      {
      addr_buffer=addr_rights31;                         //KP
      buffer=0x88;
      Write_Data();
      }
      else
      {
      addr_buffer=addr_rights31;                         //MP
      buffer=0x84;
      Write_Data();
      }    
      
      //view=(unsigned long int)(Density*1000);         //仪表系数;
      //view_cnt=3;
 */
  }
  if(DENSITY_UNIT>0)
  {
   switch(DENSITY_UNIT)
   { 
    case 1:                            //kg/m3
      addr_buffer=addr_rights31;         
      buffer=0x32;                 
      Write_Data();
      
      //view=(unsigned long int)(f*1000);//频率;
      //view_cnt=1;
    break; 
    
    case 2:
      addr_buffer=addr_rights31;          //kg/l
      buffer=0x52;
      Write_Data();
      
      //view=(unsigned long int)(Q*1000);//瞬时流量;
      //view_cnt=2;
    break;  
    
    case 3:
      addr_buffer=addr_rights31;          //t/m3
      buffer=0x23;
      Write_Data();
      
      //view=(unsigned long int)(QL*1000);//累计流量;
      //view_cnt=3;
    break;
    
    case 4:
      addr_buffer=addr_rights31;              //t/l
      buffer=0x43;
      Write_Data();
      
      //view=(unsigned long int)(Diameter*1000);        //仪表口径;
      //view_cnt=1;
    break;
    
  }
    FLOAT2ASCII();
  Display_up();
  }
}

/*
void Key_Init(void)
{
  P1SEL &= ~(BIT5+BIT6+BIT7);
  P1DIR &= ~(BIT5+BIT6+BIT7);
  P1IE  |= (BIT5+BIT6+BIT7);
  P1IES |= (BIT5+BIT6+BIT7);
}
//读键盘子程序
void Read_Key(void)
{
   key_temp=P1IN&0xE0;//屏蔽没用的位
   msdelay(100);
   if(key_temp==(P1IN&0xE0))//两次读取的相同键值
   {
     switch(key_temp)
     {
       case 128:
         
         while(key_temp==0x80)//-> 移位键
         {
           key_temp=P1IN&0xE0;
           value=1;
         }                    
         
         while(key_temp==0xC0)//F键与-> 键组合 
         {
           key_temp=P1IN&0xE0;
           value=4;
         }
         while((key_temp==0x80)|(key_temp==0x40)|(key_temp==0x20))
         {
           key_temp=P1IN&0xE0;
         }
         
       break;
       
       case 32:
         
         while(key_temp==0x20)//^键循环增加
         {
           key_temp=P1IN&0xE0;
           value=2;
         }                    
         
         while(key_temp==0x60)//F键与^键组合
         {
           key_temp=P1IN&0xE0;
           value=5;
         }
         while((key_temp==0x80)|(key_temp==0x40)|(key_temp==0x20))
         {
           key_temp=P1IN&0xE0;
         }

       break;
   
       case 64://F键保存数据
         
         while(key_temp==0x40)
         {
           key_temp=P1IN&0xE0;
           value=3;
         }                    
         
         while(key_temp==0xC0)//F键与-> 键组合 
         {
           key_temp=P1IN&0xE0;
           value=4;
         }         
         while(key_temp==0x60)//F键与^键组合复位  
         {
           key_temp=P1IN&0xE0;
           value=5;
         }
         while((key_temp==0x80)|(key_temp==0x40)|(key_temp==0x20))
         {
           key_temp=P1IN&0xE0;
         }
         
       break;
                  
       default:
       break;      
     }
   }
}
void Key_act(void)
{
  unsigned long int view_10x;
  switch(value)
         {
           case 1:
             if(EditFlag==1)
             {
               switch(order_count)
               {
                 case 4:
                   bit_count++;
                   if(bit_count>5)
                   {
                     bit_count=0;
                   }
                   Flickering_Display(); 
                 break;
                 
                 case 5:
                   bit_count++;
                   if(bit_count>3)
                   {
                     bit_count=0;
                   }
                   Flickering_Display();                
                 break;
               
                 case 6:
                   bit_count++;
                   if(bit_count>4)
                   {
                     bit_count=0;
                   }             
                   Flickering_Display();                
                 break;
               
                 default:
                 break; 
               }
             }
           break;
           
           case 2: 
             if(EditFlag==1)
             {
               switch(order_count)
               {  
                 case 4:
                   dis_down[bit_count]+=1;
                   view_10x=1;
                   view=0;
                   for(i=0;i<8;i++)                       
                   {
                     if(dis_down[i]>=10)
                     {
                       dis_down[i]-=10;
                     }
                     view+=dis_down[i]*view_10x;         
                     view_10x=view_10x*10;
                   }
                   Diameter=(float)view/1000;
                   Flickering_Display();
                 break;
                 
                 case 5:
                   dis_down[bit_count]+=1;
                   view_10x=1;
                   view=0;
                   for(i=0;i<8;i++)                       
                   {
                     if(dis_down[i]==10)
                     {
                       dis_down[i]=0;
                     }
                     view+=dis_down[i]*view_10x;         
                     view_10x=view_10x*10;
                   }
                   Meter_coeffient=(float)view/1000;
                   Flickering_Display();
                 break;
                 
                 case 6:
                   dis_down[bit_count]+=1;
                   view_10x=1;
                   view=0;
                   for(i=0;i<8;i++)                       
                   {
                     if(dis_down[i]==10)
                     {
                       dis_down[i]=0;
                     }
                     view+=dis_down[i]*view_10x;         
                     view_10x=view_10x*10;
                   }
                   Density=(float)view/1000;
                   Flickering_Display();
                 break;
               
                 default:
                 break;                
               }
             }
             else
             {
               order_count++;
               if((order_count>6)|(order_count<4))
               {
                 order_count=4;
               }
               Switching_Display();
             }
           break;
           
           case 3:
             if(EditFlag==1)
             {
               order_count++;
               if(order_count>6)
               {
                 order_count=4;
               }
               bit_count=0;
               Flickering_Display();
             }
             else
             {
               order_count++;
               if(order_count>3)
               {
                 order_count=1;
               }
               Switching_Display();
             }
           break;
           
           case 4:
             if(EditFlag==1)
             {
               EditFlag=0;
               order_count=4;

               Write_float_FLASH ((float *)FLASH_A,Diameter);
               Write_float_FLASH ((float *)FLASH_A+1,Meter_coeffient);
               Write_float_FLASH ((float *)FLASH_A+2,Density);
               Write_unchar_FLASH ((unsigned char*)FLASH_A+12,0xAA);
               
               Switching_Display();
             }
             else
             {
               EditFlag=1;
               order_count=4;
               bit_count=0;
               Flickering_Display();
             }
           break;
           
           case 5:
             if(EditFlag==0)
             {
               order_count=4;
               
               RESET_FLASH ((float *)FLASH_A,(float *)FLASH_B);
               
               Switching_Display();
             }
           break;
           
           default:
           break;
         }
}
*/
void msdelay(unsigned int delaytime)
{ 
  unsigned int intdelay;
  for(intdelay=0;intdelay<delaytime;intdelay++);
}
// P1口中断,产生按键中断标志
/*
#pragma vector=PORT1_VECTOR
__interrupt void Port1Key()
{
 P1IFG&=0X00;
 msdelay(100);
 if((P1IN&0xE0)!=0xE0)
 {
   KeyFlag=1;
   Read_Key();
 }

}
*/

⌨️ 快捷键说明

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