首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
嵌入式汽车发动机检测装置设计
来源:本站整理  作者:佚名  2011-09-03 08:00:37



速度脉冲计算的子程序及解释如下:

  uint32 speed(void)

  {

  uint32 Time;

  uint32 SpeedValue;

  PINSEL0 = 0x00050005;

  PINSEL1 = 0x14000000;

  IO0DIR = 0x02000000;

  IO1DIR = 0x003f0000;

  // 硬件输入输出接口初始化

  T0TC = 0;

  //定时器设置为0

  T0PR = 0;

  //时钟不分频

  while((IOPIN&0x00000004) != 0); //等待p0.4低电平脉冲信号

  T0TCR = 0x01;

  //启动定时器0

  while((IOPIN&0x00000004) == 0)

  while((IOPIN&0x00000004) != 0);

  //等待p0.4下一个低电平脉冲信号

  T0TCR = 0x00;

  Time = T0TC;

  Time = Time/FPclk;

  //记录脉冲宽度

  SpeedValue = 1/Time*60;

  //计算速度每分钟多少转

  return SpeedValue;

  }

  显示部分子程序及解释如下:

  /*-显示器初始化-*/

  void init_LCD (void)

  {

  IO1CLR = rst;//rst=0;

  delay(50);

  IO1SET = rst;//rst=1;

  IO1SET = cs1;//cs1=1;

  IO1SET = cs2;//cs2=1;

  wr_lcd (comm,disp_off); //#define comm 0 关显示

  //#define disp_off 0x3e

  wr_lcd (comm,disp_on);

  //#define disp_on 0x3f 开显示

  }

  /*-写数据或命令到LCD-*/

  void wr_lcd (uint8dat_comm, uint8 content)

  {

  chk_busy ();

  if(dat_comm){ IO1SET = di; }

  else{ IO1CLR = di; } //di=dat_comm;

  IO1CLR = rw;//rw=0;

  IO0DIR = IO0DIR | IO16_23;

  // 设置P0.0-P0.7为GPIO输出模式

  data_ora=( ( data_ora & !(IO16_23) ) | content<<16 );

  IO1SET = e;//e=1;

  IO1CLR = e;//e=0;

  IO0DIR=IO0DIR & !(IO16_23);// 设置P0.16-P0.23为GPIO输入模式

  }

  /*-读LCD数据-*/

  uint8 rd_lcd (void)

  {

  uint8 rddata;

  chk_busy ();

  IO1SET = di;//di=1;

  IO1SET = rw;//rw=1;

  IO1SET = e;//e=1;

  rddata= data_ora>>16;

  IO1CLR = e;//e=0;

  return rddata;

  }

  /*-写点阵-*/

  void lat_disp (uint8 data1,uint8 data2)

  {

  uint8 i,j;

  IO1SET = cs1;//cs1=1; //两屏同时写数据

  IO1SET = cs2;

  //cs2=1;

  wr_lcd (comm,disp_on);

  for(j=0;j<8;j++) //共8页

  {

  wr_lcd (comm,disp_x+j);

  wr_lcd (comm,disp_z);

  wr_lcd (comm,disp_y);

  for(i=0;i<32;i++)

  {

  wr_lcd (dat,data1);

  wr_lcd (dat,data2); //每页64个数

  }

  }

  }

  /*---指定位置(x,y)显示row_xl行(每行row_yl个)汉字(大小8xl*yl)---*/

  void chn_disp (uint8 x,uint8 y,uint8 xl,uint8 yl,uint8 row_xl,uint8 row_yl,const uint8 *chn)

  {

  uint8 i,j,k,l,a;

  //row_xl:显示row_xl行

  wr_lcd (comm,disp_on);

  //每行row_yl个汉字

  for(l=0;l

  //xl:页大小,一页八个点

  {

  //yl: 列大小,一列一个点

  for(k=0;k

  //x,y:起始位置

  {

  for(j=0;j

  {

  wr_lcd (comm,disp_x+x+l *xl+j);

  wr_lcd (comm,disp_z);

  wr_lcd (comm,disp_y+y+k*yl);

  a=l*xl*yl*row_yl+k*xl*yl+j*yl; //a:数组chn[]中第a个字符

  for(i=0;i

  wr_lcd (dat,chn[a+i]);

  }

  }

  }

  }

  结语

  本系统以目前广泛应用的LPC2134 ARM为控制处理核心,以感应高压线圈和低压线圈作为ARM的输入信号,用OCM12864的点阵作为仪器的显示,使该装置可以有效完成对汽车发动机的的精确测量。它可以将发动机动态运行的各种参数和故障检测诊断出来,然后通过维修、调整以达到修复发动机的目的。

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:100,578.10000 毫秒