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

📄 main.c

📁 24位AD压力实验板 protell99se打开
💻 C
📖 第 1 页 / 共 3 页
字号:
          LCD_Cursor_Addr++;
          if(LCD_Cursor_Addr>=LCD_NUM) LCD_Cursor_Addr=0;
          key_data=0;
          } 
        break;
        case 0x04:     
          {
          if(LCD_Cursor_Addr!=0x00)
            {
            LCD_Key_bar[LCD_Cursor_Addr]++;
            if(LCD_Key_bar[LCD_Cursor_Addr]>=10) LCD_Key_bar[LCD_Cursor_Addr]=0;
            }
          else
            {
            if(LCD_Key_bar[0]=='+')
              LCD_Key_bar[0]='-';
            else
            { if(LCD_Key_bar[0]=='-')
                LCD_Key_bar[0]='+';
              else
                LCD_Key_bar[0]='-';
            }
            }
          
          key_data=0;    
          }
          break;
        case 0x02:    
          {
           flag=1;    
           key_data=0;
          }  
          break;
        case 0x20:    
        {
        unit++;
        if(unit>9) unit=0x00;         
        DisplayUnit(unit);
         key_data=0;
        }  
        break;
        }
        Data_LCD_Display(LCD_Cursor_Addr,LCD_Key_bar,5);
      }
  }
   data=(float)(LCD_Key_bar[1]*1000+LCD_Key_bar[2]*100+LCD_Key_bar[3]*10+LCD_Key_bar[4]);
   data=data+((float)LCD_Key_bar[5]/10);
   data=Other_unit_to_KPa(unit,data);
   if(LCD_Key_bar[0]=='-')
      data=0-data;
return data;
}
//========================================================================================
//函数:void Password_LCD_Display(unsigned char Cursor_Addr, unsigned char *LCD_data)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
//闪烁显示函数
void Password_LCD_Display(unsigned char Cursor_Addr, unsigned char *LCD_data)
{
 unsigned char i; 
 for(i=0;i<LCD_NUM;i++)  
   {
     if(i==LCD_Cursor_Addr)
       {DisplayNum((Cursor_Addr+7),LCD_data[Cursor_Addr],0,0);} 
     else
       {DisplayNum((i+7),LCD_data[i],0,0);}
   }
     Delay_1ms(200); 
    for(i=0;i<LCD_NUM;i++)  
   {
     if(i==LCD_Cursor_Addr)
       {DisplayNum((Cursor_Addr+7),LCD_data[Cursor_Addr],0,1);}
     else{DisplayNum((i+7),LCD_data[i],0,0);}
   }    
     Delay_1ms(200);   
}
//========================================================================================
//函数:void Password_LCD_Display(unsigned char Cursor_Addr, unsigned char *LCD_data)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
//闪烁显示函数
void Data_LCD_Display(unsigned char Cursor_Addr, unsigned char *LCD_data,unsigned char radixPoint)
{
 unsigned char i; 
 for(i=0;i<LCD_NUM;i++)  
   { 
     if(i==LCD_Cursor_Addr)
       {
         if(LCD_Cursor_Addr==0x00)
           {
            if(LCD_Key_bar[0]=='-')sign_Display(1);
            else DisplayNum(7,0,0,0);
           }
         else
           {
           if(i==4) DisplayNum((Cursor_Addr+7),LCD_data[Cursor_Addr],1,0);
           else     DisplayNum((Cursor_Addr+7),LCD_data[Cursor_Addr],0,0);
           }
       } 
     else
       {
         if(i==0x00)
           {
            if(LCD_Key_bar[0]=='-')sign_Display(1);
            else DisplayNum(7,0,0,0);
           }
        else  
          { 
            if(i==4) DisplayNum((i+7),LCD_data[i],1,0);
            else     DisplayNum((i+7),LCD_data[i],0,0);
          }
       }
   }
     Delay_1ms(200); 
    for(i=0;i<LCD_NUM;i++)  
      {
       if(i==LCD_Cursor_Addr)
         {
         if(i==4) DisplayNum((Cursor_Addr+7),LCD_data[Cursor_Addr],1,1);
         else     DisplayNum((Cursor_Addr+7),LCD_data[Cursor_Addr],0,1);
         
         }
      else
         {
         if(i==0x00)
           {
            if(LCD_Key_bar[0]=='-')sign_Display(1);
            else DisplayNum(7,0,0,0);
           }
         else  
            { 
              if(i==4) DisplayNum((i+7),LCD_data[i],1,0);
              else DisplayNum((i+7),LCD_data[i],0,0);
            }           
       }
   }    
     Delay_1ms(200);   
}
//========================================================================================
//函数:void mode_check(void)
//功能:读取AD1240积存器
//变量:Byte
//返回:无
//========================================================================================
void Mode_Check(void)
{ 
 unsigned char i;
switch(key_data)
   {
   case 0x01://背光
     { 
       Task_Mode=2;
       key_data=0;
                
       P2OUT &= ~BIT6;// 背光打开  
       Back_Light_Task_Start=1;
       Back_Light_Time_num=0;          
       KeyDown_flag=0;       
      }
   break;
   case 0x02://校正
     { 
       Task_Mode=1;
       key_data=0;  
       WDTCTL=WDTPW+WDTHOLD;  //Stop WDT
       Dis_AD_DRDY_INT(); //关中断
       Close_AD_Power();//关AD电源       
       LCD_Cursor_Addr=0;
       for(i=0;i<6;i++)
         LCD_Key_bar[i]=0;
       Password_ok_flag=0;
      }
   break;
   case 0x04://清零
     { 
       //Task_Mode=3;
       Reset_AD_Data=ad12401;
       key_data=0;      
      }
   break;
   case 0x20://单位
     { 
       Unitage=Unitage+1;
       if(Unitage>9)Unitage=0;
       //Task_Mode=4;
      // Task_Mode=4;
      // key_data=0;    
      // P2DIR |= BIT5;// 
       //P2OUT &= ~BIT5;// 0x7e;  
       //back_light_flag=1;
      // back_light_num=0;
       key_data=0;
      }
   break;  
   default: break;
   }  
   
}
//========================================================================================
//函数:float Other_unit_to_KPa(unsigned char unit,float data)
//功能:把压力其他单位数值转换为KPA单位数值
//变量:unsigned char unit,float data
//返回:float
//========================================================================================
float Other_unit_to_KPa(unsigned char unit,float data)
{
switch(unit)
      {
      case PA:
              data =data/1000;          //
              break;
      case MPA:
              data =data*1000;		//		
              break;	
      case BAR:
              data =data/100;					 
              break;	
      case MBAR:
              data =data*10;	
              break;
      case KGF:
              data =data/100;
              data =data*1.0197162;
              break;
      case MMHG:
              data =data*7.5006;
              break;
      case MMH2O:
              data =data*101.97162;
              break;
      case PSI:
              data =data*0.1450377;
              break;					
      default:
              break;
      }	


return data;

}
//========================================================================================
//函数:float Other_unit_to_KPa(unsigned char unit,float data)
//功能:把压力其他单位数值转换为KPA单位数值
//变量:unsigned char unit,float data
//返回:float
//========================================================================================
unsigned char Line_num_Input(unsigned char line_num)
{
unsigned char flag,num;
////校正密码验证
  flag=0;
 LCD_NUM=2; 
 LCD_Cursor_Addr=0;
 LCD_Key_bar[0]=line_num/10;
 LCD_Key_bar[1]=line_num-(line_num/10)*10;
 DisplayNum(12,0,0,1);
 DisplayNum(11,0,0,1);
 DisplayNum(10,0,0,1);
 DisplayNum(9,0,0,1);//液晶显示两位关闭其他位  
  while(!flag)
  {
  switch(key_data)
       {
       case 0x01:
          {
           LCD_Cursor_Addr++;
           if(LCD_Cursor_Addr>=LCD_NUM) LCD_Cursor_Addr=0;
           key_data=0;
          } 
       break;
       case 0x04:
            {
              LCD_Key_bar[LCD_Cursor_Addr]++;
              if(LCD_Key_bar[LCD_Cursor_Addr]>=10) LCD_Key_bar[LCD_Cursor_Addr]=0;
                  key_data=0;    
            }
       break;
       case 0x02:
           {
           flag=1;
           
           key_data=0;
           }
        break;
       }
  
  Password_LCD_Display(LCD_Cursor_Addr,LCD_Key_bar);
  }
num=LCD_Key_bar[0]*10+LCD_Key_bar[1];
return num;
}
//========================================================================================
//函数:void rest_LCD_data(void)
//功能:对显示和键盘缓冲区清零
//变量:Byte
//返回:无
//========================================================================================
void rest_LCD_data(void)
{
unsigned char i;
LCD_Cursor_Addr=0;
for(i=0;i<6;i++) 
  LCD_Key_bar[i]=0;

}
//========================================================================================
//函数:unsigned char * Foat_TO_CHAR(float data)
//功能:对显示和键盘缓冲区清零
//变量:Byte
//返回:无
//========================================================================================
void Foat_TO_Char(float data,unsigned char *s)
{
 long int data1 ;
 unsigned long int data3,data4,data5;
 float data2;
 
 data2=data*100;
 data1=(long int)data2;
 if(data1<0) data3=(~data1)+1;
 else  data3=data1;
 data4=(unsigned long int)(data3/10);
 data5=data3-data4*10;
 if(data5>=5) data3=data3+1;
 if(data1<0) data1=0-data3;
 else   data1=data3;
 data1=(long int)(data1/10);
 *s=data1-((data1>>8)<<8);
 
 data1=(data1>>8);
 *(s+1)=data1-((data1>>8)<<8);
 data1=(data1>>8);
 *(s+2)=data1-((data1>>8)<<8);
 data1=(data1>>8);
 *(s+3)=data1-((data1>>8)<<8);
 

}
//========================================================================================
//函数:unsigned char * Foat_TO_CHAR(float data)
//功能:对显示和键盘缓冲区清零
//变量:Byte
//返回:无
//========================================================================================
void Long_TO_Char(long int data,unsigned char *s)
{
long int data1 ;
data1=data;
 *s=data1-((data1>>8)<<8); 
 data1=(data1>>8);
 *(s+1)=data1-((data1>>8)<<8);
 data1=(data1>>8);
 *(s+2)=data1-((data1>>8)<<8);
 data1=(data1>>8);
 *(s+3)=data1-((data1>>8)<<8);
}



⌨️ 快捷键说明

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