气压高度表 联系客服

发布时间 : 星期四 文章气压高度表更新完毕开始阅读

大连理工大学本科毕业设计

dat<<=1; } SCLK_0; SPICS_1; }

char imitatedSPIread() {

char dat=0; int i; SPICS_0; delay(10); for(i=0;i<8;i++) { SCLK_0; dat<<=1; delay(10);

SCLK_1; delay(10); dat|=MISO; SCLK_0;

}

SPICS_1; return dat; }

int read_D1() //读取D1内容

{

char temp1,temp2;

imitatedSPIwrite(0x3d0,10);

//D1块的地址位0x3d0

36

位数据,10

10大连理工大学本科毕业设计

个脉冲

Delay_ms(30); while(MISO); Delay_ms(10);

temp1=imitatedSPIread() ; temp2=imitatedSPIread() ; return (temp1<<8)|temp2 ; }

int read_D2() {

char temp1,temp2; imitatedSPIwrite(0x3c8,10); Delay_ms(30); while(MISO); Delay_ms(10);

temp1=imitatedSPIread() ; temp2=imitatedSPIread() ; return (temp1<<8)|temp2 ; }

int read_WORD1() {

char temp1,temp2;

imitatedSPIwrite(0xEA8,12); delay(10); SCLK_0; delay(10); SCLK_1;

temp1=imitatedSPIread() ; temp2=imitatedSPIread() ; return (temp1<<8)|temp2 ; }

//等待转换完毕 //

37

大连理工大学本科毕业设计

int read_WORD3() {

char temp1,temp2;

imitatedSPIwrite(0xEC8,12); delay(10); SCLK_0; delay(10); SCLK_1;

temp1=imitatedSPIread() ; temp2=imitatedSPIread() ; return (temp1<<8)|temp2 ; }

int read_WORD4() {

char temp1,temp2;

imitatedSPIwrite(0xED8,12); delay(10); SCLK_0; delay(10); SCLK_1;

temp1=imitatedSPIread() ; temp2=imitatedSPIread() ; return (temp1<<8)|temp2 ; }

int read_WORD2() {

char temp1,temp2;

imitatedSPIwrite(0xEB8,12); delay(10); SCLK_0; delay(10);

38

大连理工大学本科毕业设计

SCLK_1;

temp1=imitatedSPIread() ; temp2=imitatedSPIread() ; return (temp1<<8)|temp2 ; }

void reset() {

imitatedSPIwrite(0x155540,21); }

imitatedSPI_Initxx(); reset();

WORD1=read_WORD1(); WORD2=read_WORD2(); WORD3=read_WORD3(); WORD4=read_WORD4(); C1=WORD1>>1; C6=WORD2&0X3F; C4=WORD3>>6; C3=WORD4>>6;

C5=(WORD1&0X1)|(WORD2>>6);

C2=((WORD3&0X3F)<<6)|(WORD4&0X3F); while(1) {

D1=read_D1(); D2=read_D2(); UT1=8*C5+20224; dT=D2-UT1;

TEMP=200+dT*(C6+50)/1024;

39

大连理工大学本科毕业设计

OFF=C2*4+((C4-512)*dT)/4096; SENS=C1+(C3*dT)/1024+24576; X=(SENS*(D1-7168))/16384-OFF; P=X*10/32+2500; {

T2=11*(C6+24)*(200-TEMP)*(200-TEMP)/pow(2,20); P2=3*T2*(P-3500)/pow(2,14); }

else if((TEMP>=200)&(TEMP<=450)) { T2=P2=0; } {

T2=3*(C6+24)*(450-TEMP)*(450-TEMP)/pow(2,20); P2=T2*(P-10000)/pow(2,13); }

TEMP=TEMP-T2; P=P-P2; P=P/10;

height=44330.8*(1-pow(P/101.325,0.190263)); }

if(TEMP<200)

else

40