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

📄 main.c

📁 以LPC2194为平台开发的整车ECU控制器程序
💻 C
📖 第 1 页 / 共 5 页
字号:
   }
  IO1CLR = CS;
}

/***************************************************************************
* 名称:void read_eeprom(uint16 Addr,uint16 DATA)
* 功能:IO口模拟SPI读取数据
* 入口参数:由于芯片ORG接VCC,所以存储器为16位结构
* 出口参数:
****************************************************************************/
uint16 read_eeprom(uint16 Addr)
{
   uint16 DDATA;
   uint16 DATA;
   uint8 m;
   uint8 n;
   DATA = 0;
   DDATA = Addr & 0x03ff; 
   DDATA = DDATA | 0x1800;
   DDATA = DDATA<<3;
   //读数据命令			
   IO1SET = CS;
   for(m=0;m<=12;m++)
   {
     if((DDATA & 0x8000)==0x8000)
          IO0SET = MOSI0;
     else IO0CLR = MOSI0;
     IO0CLR = SCK0;
     IO0SET = SCK0;
     DDATA = DDATA << 1;
   }
   //读取数据
   for(m=0;m<=15;m++)    
   {
     DATA=DATA<<1;
     IO0CLR = SCK0;
     IO0SET = SCK0;
     if(IO0PIN&0x00000020)   n=1;
     	else n=0;
	 DATA=DATA & 0xFFFE;
     DATA=DATA | n;
   }
   IO1CLR = CS;
   return DATA;
}

/****************************************************************************/

/********************************2007.1.3添加********************************/
//2007.3.6修改:添加当电压值在认为传感器损坏的区间内时对应的温度值和真空度值
/****************************************************************************
* 名称:vol_temp()
* 功能:将采集的水温电压值转化为温度值
* 入口参数:无
* 出口参数:无,
  更改说明:   以老版本的温度值反推出电阻值,再将基准电压系数改为5,
               后级放大倍数改为0.5,以使其电压输入范围更大,精度更高。
****************************************************************************/
void vol_temp(void)
{  
	  if(ADC_data0>=2508)   water_temp=255;			//水温电压超过3000认为损坏温度为215
	  else if(ADC_data0>=0x82D&&ADC_data0<0x9CC)
	  {
	  		water_temp=-6-((ADC_data0-2093)/30);
	  }
	  else if(ADC_data0>=temp_5L&&ADC_data0<temp_5H)   //-5
	  {	
	  		water_temp=35;
	  }
	  else if(ADC_data0>=temp_4L&&ADC_data0<temp_4H) //-4
	  {	
	  		water_temp=36;
	  }
	  else if(ADC_data0>=temp_3L&&ADC_data0<temp_3H)  //-3
	  {	
	  		water_temp=37;
	  }
	  else if(ADC_data0>=temp_2L&&ADC_data0<temp_2H)  //-2
	  {	
	  		water_temp=38;
	  }
	  else if(ADC_data0>=temp_1L&&ADC_data0<temp_1H)   //-1
	  {	
	  		water_temp=39;
	  }
	  else if(ADC_data0>=temp0L&&ADC_data0<temp0H)   //0
	  {	
	  		water_temp=40;
	  }
	  else if(ADC_data0>=temp1L&&ADC_data0<temp1H)  //1
	  {	
	  		water_temp=41;
	  }
	  else if(ADC_data0>=temp2L&&ADC_data0<temp2H)  //2
	  {	
	  		water_temp=42;
	  }
	  else if(ADC_data0>=temp3L&&ADC_data0<temp3H)  //3
	  {	
	  		water_temp=43;
	  }
	  else if(ADC_data0>=temp4L&&ADC_data0<temp4H)  //4  
	  {	
	  		water_temp=44;
	  }
	  else if(ADC_data0>=temp5L&&ADC_data0<temp5H)   //5
	  {	
	  		water_temp=45;
	  }
	  else if(ADC_data0>=temp6L&&ADC_data0<temp6H)   //6
	  {	
	  		water_temp=46;
	  }
	  else if(ADC_data0>=temp7L&&ADC_data0<temp7H)   //7
	  {	
	  		water_temp=47;
	  }
	  else if(ADC_data0>=temp8L&&ADC_data0<temp8H)   //8
	  {	
	  		water_temp=48;
	  }
	  else if(ADC_data0>=temp9L&&ADC_data0<temp9H)   //9
	  {	
	  		water_temp=49;
	  }
	  else if(ADC_data0>=temp10L&&ADC_data0<temp10H)  //10
	  {	
	  		water_temp=50;
	  }
	  else if(ADC_data0>=temp11L&&ADC_data0<temp11H)  //11
	  {	
	  		water_temp=51;
	  }
	  else if(ADC_data0>=temp12L&&ADC_data0<temp12H)  //12
	  {	
	  		water_temp=52;
	  }
	  else if(ADC_data0>=temp13L&&ADC_data0<temp13H)  //13
	  {	
	  		water_temp=53;
	  }
	  else if(ADC_data0>=temp14L&&ADC_data0<temp14H)  //14
	  {	
	  		water_temp=54;
	  }
	  else if(ADC_data0>=temp15L&&ADC_data0<temp15H)   //15
	  {	
	  		water_temp=55;
	  }
	  else if(ADC_data0>=temp16L&&ADC_data0<temp16H)  //16
	  {	
	  		water_temp=56;
	  }
	  else if(ADC_data0>=temp17L&&ADC_data0<temp17H)  //17
	  {	
	  		water_temp=57;
	  }
	  else if(ADC_data0>=temp18L&&ADC_data0<temp18H)  //18
	  {	
	  		water_temp=58;
	  }
	  else if(ADC_data0>=temp19L&&ADC_data0<temp19H) //19
	  {	
	  		water_temp=59;
	  }
	  else if(ADC_data0>=temp20L&&ADC_data0<temp20H)  //20
	  {	
	  		water_temp=60;
	  }
	  else if(ADC_data0>=temp21L&&ADC_data0<temp21H)  //21
	  {	
	  		water_temp=61;
	  }
	  else if(ADC_data0>=temp22L&&ADC_data0<temp22H)  //22
	  {	
	  		water_temp=62;
	  }
	  else if(ADC_data0>=temp23L&&ADC_data0<temp23H)  //23
	  {	
	  		water_temp=63;
	  }
	  else if(ADC_data0>=temp24L&&ADC_data0<temp24H)   //24
	  {	 
	  		water_temp=64;
	  }
	  else if(ADC_data0>=temp25L&&ADC_data0<temp25H)  //25
	  {	
	  		water_temp=65;
	  }
	  else if(ADC_data0>=temp26L&&ADC_data0<temp26H)  //26
	  {	
	  		water_temp=66;
	  }
	  else if(ADC_data0>=temp27L&&ADC_data0<temp27H)   //27
	  {	
	  		water_temp=67;
	  }
	  else if(ADC_data0>=temp28L&&ADC_data0<temp28H)  //28
	  {	
	  		water_temp=68;
	  }
	  else if(ADC_data0>=temp29L&&ADC_data0<temp29H)  //29
	  {	
	  		water_temp=69;
	  }
	  else if(ADC_data0>=temp30L&&ADC_data0<temp30H)  //30
	  {	
	  		water_temp=70;
	  }
	  else if(ADC_data0>=temp31L&&ADC_data0<temp31H)  //31
	  {	
	  		water_temp=71;
	  }
	  else if(ADC_data0>=temp32L&&ADC_data0<temp32H)  //32
	  {	
	  		water_temp=72;
	  }
	  else if(ADC_data0>=temp33L&&ADC_data0<temp33H)  //33
	  {	
	  		water_temp=73;
	  }
	  else if(ADC_data0>=temp34L&&ADC_data0<temp34H)   //34
	  {	
	  		water_temp=74;
	  }
	  else if(ADC_data0>=temp35L&&ADC_data0<temp35H)  //35
	  {	
	  		water_temp=75;
	  }
	  else if(ADC_data0>=temp36L&&ADC_data0<temp36H)  //36
	  {	
	  		water_temp=76;
	  }
	  else if(ADC_data0>=temp37L&&ADC_data0<temp37H) //37
	  {	
	  		water_temp=77;
	  }
	  else if(ADC_data0>=temp38L&&ADC_data0<temp38H)  //38
	  {	
	  		water_temp=78;
	  }
	  else if(ADC_data0>=temp39L&&ADC_data0<temp39H)   //39
	  {	
	  		water_temp=79;
	  }
	  else if(ADC_data0>=temp40L&&ADC_data0<temp40H)   //40
	  {	
	  		water_temp=80;
	  }
	  else if(ADC_data0>=temp41L&&ADC_data0<temp41H)  //41
	  {	
	  		water_temp=81;
	  }
	  else if(ADC_data0>=temp42L&&ADC_data0<temp42H)   //42
	  {	
	  		water_temp=82;
	  }
	  else if(ADC_data0>=temp43L&&ADC_data0<temp43H)  //43
	  {	
	  		water_temp=83;
	  }
	  else if(ADC_data0>=temp44L&&ADC_data0<temp44H)   //44
	  {	
	  		water_temp=84;
	  }
	  else if(ADC_data0>=temp45L&&ADC_data0<temp45H)   //45
	  {	
	  		water_temp=85;
	  }
	  else if(ADC_data0>=temp46L&&ADC_data0<temp46H)  //46
	  {	
	  		water_temp=86;
	  }
	  else if(ADC_data0>=temp47L&&ADC_data0<temp47H)   //47
	  {	
	  		water_temp=87;
	  }
	  else if(ADC_data0>=temp48L&&ADC_data0<temp48H) //48
	  {	
	  		water_temp=88;
	  }
	  else if(ADC_data0>=temp49L&&ADC_data0<temp49H)   //49
	  {	
	  		water_temp=89;
	  }
	  else if(ADC_data0>=temp50L&&ADC_data0<temp50H)  //50
	  {	 
	  		water_temp=90;
	  }
	  else if(ADC_data0>=temp51L&&ADC_data0<temp51H)  //51
	  {	
	  		water_temp=91;
	  }	
	  else if(ADC_data0>=temp52L&&ADC_data0<temp52H)   //52
	  {	
	  		water_temp=92;
	  }
	  else if(ADC_data0>=temp53L&&ADC_data0<temp53H)  //53
	  {	
	  		water_temp=93;
	  }
	  else if(ADC_data0>=temp54L&&ADC_data0<temp54H)  //54
	  {	
	  		water_temp=94;
	  }
	  else if(ADC_data0>=temp55L&&ADC_data0<temp55H)  //55
	  {	
	  		water_temp=95;
	  }
	  else if(ADC_data0>=temp56L&&ADC_data0<temp56H)  //56
	  {	
	  		water_temp=96;
	  }
	  else if(ADC_data0>=temp57L&&ADC_data0<temp57H)   //57
	  {	
	  		water_temp=97;
	  }
	  else if(ADC_data0>=temp58L&&ADC_data0<temp58H)  //58
	  {	
	  		water_temp=98;
	  }
	  else if(ADC_data0>=temp59L&&ADC_data0<temp59H)  //59
	  {	
	  		water_temp=99;
	  }
	  else if(ADC_data0>=temp60L&&ADC_data0<temp60H)  //60
	  {	
	  		water_temp=100;
	  }
	  else if(ADC_data0>=temp61L&&ADC_data0<temp61H)  //61
	  {	
	  		water_temp=101;
	  }
	  else if(ADC_data0>=temp62L&&ADC_data0<temp62H)  //62
	  {	
	  		water_temp=102;
	  }
	  else if(ADC_data0>=temp90H&&ADC_data0<temp62L)  //62-90度
	  {	
	  		water_temp=102+((302-ADC_data0)/6);
	  }
	  else if(ADC_data0>=temp90L&&ADC_data0<temp137H)		//90+
	  {
	  		water_temp=130+((124-ADC_data0)/2);
	  }
	  else if(ADC_data0<=0x21)  water_temp=255;    //电压值小于100时认为损坏温度为215
}

/****************************************************************************
* 名称:vol_temp()
* 功能:将采集的水温电压值转化为温度值
* 入口参数:无
* 出口参数:无
****************************************************************************/
void vol_vacuum(void)
{  
	 //真空度为0
	 if(ADC_data1>2415*k1/k2)	vacuum_pressure=0;//&&ADC_data1<3000   超过范围内的值均认为真空度为0
	 //真空度在40以下
	 if(ADC_data1<=2415*k1/k2&&ADC_data1>1271*k1/k2)
	 {
	 	vacuum_pressure=40-((ADC_data1-1271*k1/k2)/28*k2/k1);
	 }
	 //真空度:40-44
	 else if(ADC_data1<=1271*k1/k2&&ADC_data1>1157*k1/k2)
	 {
	 	vacuum_pressure=40+((1271*k1/k2-ADC_data1)/23*k2/k1);
	 }
	 //真空度:45-49
	 else if(ADC_data1<=1157*k1/k2&&ADC_data1>1046*k1/k2)
	 {
	 	vacuum_pressure=45+((1157*k1/k2-ADC_data1)/22*k2/k1);
	 }
	 //真空度:50-54
	 else if(ADC_data1<=1046*k1/k2&&ADC_data1>959*k1/k2)
	 {
	 	vacuum_pressure=50+((1046*k1/k2-ADC_data1)/17*k2/k1);
	 }
	 //真空度:55-59
	 else if(ADC_data1<=959*k1/k2&&ADC_data1>785*k1/k2)
	 {
	 	vacuum_pressure=55+((959*k1/k2-ADC_data1)/35*k2/k1);
	 }
	 //真空度:60-64
	 else if(ADC_data1<=785*k1/k2&&ADC_data1>655*k1/k2)
	 {
	 	vacuum_pressure=60+((785*k1/k2-ADC_data1)/26*k2/k1);
	 }
	 //真空度:65-69
	 else if(ADC_data1<=655*k1/k2&&ADC_data1>533*k1/k2)
	 {
	 	vacuum_pressure=65+((655*k1/k2-ADC_data1)/24*k2/k1);
	 }

⌨️ 快捷键说明

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