AT89C51程序设计,利用定时计数器采集发动机转速,跪求

AT89C51程序设计,利用定时计数器采集发动机转速,跪求,第1张

#include <AT89X52.H>氏睁

#include <math.h >

#define L 50

unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,

0x6d,0x7d,0x07,0x7f,0x6f}

unsigned char dispbuf[3]={0,1,2}

unsigned long time,aa,bb=450

int x,y,z

void Tdelay(unsigned int i)

{

while(i--)

}

void delay(int z)

{

int x,y

for(x=zx>0x--)

for(y=50y>0y--)

}

void display ()

{

P2=0xfe

P0=dispcode[dispbuf[0]]

delay(5)

P2=0xfd

P0=dispcode[dispbuf[1]]

delay(5)

P2=0Xfb

P0=dispcode[dispbuf[2]]|0x80

delay(5)

P2=0xf7

P0=dispcode[dispbuf[3]]

delay(5)

P2=0xef

P0=dispcode[dispbuf[4]]

delay(5)

}

void int0_isr(void) interrupt 0 /*外部中断0,接P3.2口*/

{

unsigned int temp

time=bb

TR0=0

temp=TH0

temp=((temp <<8) | TL0)

TH0=0x3c

TL0=0xaf

bb=0

TR0=1

time=time*50000+temp

}

void time0_isr(void) interrupt 1/*遥时计数器1 */

{

TH0 =0x3c

TL0 =0xaf

bb++

}

void main(void)

{ void account()

TMOD=0x01 /*TMOD T0选用方式1(16位定时) */

IP|=0x01 /*INT0 中断优先*/

TCON|=0x11/*TCON EX0下降歼举岁沿触答闭发,启动T0*/

IE|=0x83

TH0=0x3c

TL0=0xaf

for()

{

account()

dispbuf[0]=(aa%100000)/10000

dispbuf[1]=(aa%10000)/1000

dispbuf[2]=(aa%1000)/100

dispbuf[3]=(aa%100)/10

dispbuf[4]=aa%10

display()

}

}

void account()

{

unsigned long a

if (time!=0)

{

a=L*360000000/time

}

aa=a

}

ecu如何采集转速。ecu这样采集转速。ecu传感器向控制单元提供发动机转速和上止点数据。曲轴位置传感器采集发动机转速和曲轴位置信号。曲轴位置传感器有三种:霍尔式、磁感应老袜斗式和光电式。曲轴位置传感器安好伍装在靠近飞轮的变速器壳体上侍磨。

转速采集大体归结为下述几种方式:

1、光电编码器

2、旋转变压器

3、霍尔传感简做顷器

4、磁胡纳电传感器

5、光电传感器

6、感应线圈

上述方案对比如下:

1、前两种方案测试精度高;

2、霍尔传感器和磁拦陆电传感器对于低速电机而言,为了提高测量精度,可配合齿轮盘使用;

3、光电传感器安装容易;

4、感应线圈免安装,不适用屏蔽电机。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12554677.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存