mega8ms5540驱动程序Word文件下载.docx

上传人:b****6 文档编号:20025022 上传时间:2023-01-16 格式:DOCX 页数:8 大小:15.38KB
下载 相关 举报
mega8ms5540驱动程序Word文件下载.docx_第1页
第1页 / 共8页
mega8ms5540驱动程序Word文件下载.docx_第2页
第2页 / 共8页
mega8ms5540驱动程序Word文件下载.docx_第3页
第3页 / 共8页
mega8ms5540驱动程序Word文件下载.docx_第4页
第4页 / 共8页
mega8ms5540驱动程序Word文件下载.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

mega8ms5540驱动程序Word文件下载.docx

《mega8ms5540驱动程序Word文件下载.docx》由会员分享,可在线阅读,更多相关《mega8ms5540驱动程序Word文件下载.docx(8页珍藏版)》请在冰豆网上搜索。

mega8ms5540驱动程序Word文件下载.docx

PORTC|=(N<

<

2);

};

//setSCLKtothespecifiedstate(~0/0)

#definegetSCLK()PORTC&

BIT

(2)//returnsthecurrentstateofSCLK

#definesetDIN(N){PORTC&

=~BIT(0);

0);

//setDINtothespecifiedstate(~0/0)

#definegetDIN()PORTC&

BIT(0)//returnsthecurrentstateofDIN

#definegetDOUT()(PINC&

BIT

(1))//returnsthecurrentstateofDOUT

#defineWaitOnePulse()delay

(1);

//Waitfora"

pulse"

duration#endif

#ifdef__iom16v_h

#definesensor_controlInit()DDRA&

DDRA|=3;

#definesensor_controlExit()DDRA&

#definesetSCLK(N){PORTA&

PORTA|=(N<

#definegetSCLK()PORTA&

BIT(0)//returnsthecurrentstateofSCLK

#definesetDIN(N){PORTA&

=~BIT

(1);

1);

#definegetDIN()PORTA&

BIT

(1)//returnsthecurrentstateofDIN

#definegetDOUT()(PINA&

BIT

(2))//returnsthecurrentstateofDOUT

//自己写的函数完成

voiddelay(unsignedinttt)//1ms

{

intx,y;

for(x=0;

x<

tt*100;

x++)

_NOP();

}

/*=====================================================================*/

/*waitOnDoutFall*/

longwaitOnDoutFall(void){

charworking;

longcnt;

//unsignedlongt0;

unsignedlongt1;

longerror;

working=~0;

error=0;

WaitOnePulse();

//t0=(unsignedlong)time(0);

cnt=0;

while(working)

working=getDOUT();

cnt++;

if(cnt>

=100)

/*t1=(unsignedlong)time(0);

if((t1-t0)>

1)

working=0;

error=1;

*/

working=0;

return(error);

/*SerialGet16*/

longSerialGet16(void){

chari;

longv;

v=0;

setSCLK(0);

for(i=0;

i<

16;

i++)

setSCLK

(1);

v=v<

1;

if(getDOUT())

v=v|1;

return(v);

/*SerialSendLsbFirst*//*=====================================================================*/

voidSerialSendLsbFirst(charpattern,charnbr_clock)

charc;

nbr_clock;

c=(char)(pattern&

1);

if(c==1)

setDIN

(1);

else

setDIN(0);

pattern=(char)(pattern>

>

/*=====================================================================*//*reset*/

/*=====================================================================*/voidreset(void)

SerialSendLsbFirst(0x55,8);

SerialSendLsbFirst(0x00,5);

/*=====================================================================*/voidgetD1(void)

err=0;

SerialSendLsbFirst(0x2F,8);

SerialSendLsbFirst(0x00,2);

err=0;

if(getDOUT()==0)

err=1;

//lineshouldbeat1now

if(!

err)

err=waitOnDoutFall();

D1=SerialGet16();

D1=0;

SerialSendLsbFirst(0x00,1);

//tobecompliantwiththedatasheet}

/*=====================================================================*//*getD2*/

/*=====================================================================*/voidgetD2(void)

SerialSendLsbFirst(0x4F,8);

SerialSendLsbFirst(0x00,3);

//NotethedifferencewithgetD1

D2=SerialGet16();

D2=0;

/*------------------------------------------------------------------------*/

/*---------------------------ConvertWtoC5534----------------------------*/

//从四个字中转换出C1-C6

voidConvertWtoC5534(void)

longc=0;

longx,y;

inti0;

fc[0]=(W[0]>

1)&

0x7FFF;

x=(W[2]<

6)&

0x0FC0;

y=W[3]&

0x003F;

fc[1]=x|y;

fc[2]=(W[3]>

0x03FF;

fc[3]=(W[2]>

x=(W[0]<

10)&

0x0400;

y=(W[1]>

6)&

fc[4]=x|y;

fc[5]=W[1]&

/*---------------------------calcPT5534---------------------------------*/

voidcalcPT5534(void)

doubledt,off,sens;

doublex;

dt=D2-((8.0*fc[4])+20224.0);

off=fc[1]*4.0+(((fc[3]-512.0)*dt)/4096.0);

sens=24576.0+fc[0]+((fc[2]*dt)/1024.0);

x=((sens*(D1-7168.0))/16384.0)-off;

Par=2500+x*10/32;

Wen=200+((dt*(fc[5]+50))/1024);

}

//只要使用这一个函数就可以用了

charLoad4Word(void)

charcmd[][2]={{0x57,0x01},{0xD7,0},{0X37,0X01},{0xB7,0x00}};

reset();

for(i0=0;

i0<

4;

i0++)

SerialSendLsbFirst(cmd[i0][0],8);

SerialSendLsbFirst(cmd[i0][1],5);

W[i0]=SerialGet16();

//tobecompliantwiththedatasheet

getD1();

getD2();

ConvertWtoC5534();

calcPT5534();

return0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 冶金矿山地质

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1