文档库 最新最全的文档下载
当前位置:文档库 › HX710(Avia)

HX710(Avia)

HX710(Avia)
HX710(Avia)

应用于电子秤∑-△ADC芯片的性能比较

HX710(A/B)

EMAIL:

参考驱动程序(汇编)

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

在ASM中调用: LCALL ReadAD

可以在C中调用: extern unsigned long ReadAD(void);

.

.

unsigned long data;

data=ReadAD();

.

.

----------------------------------------------------------------------*/ PUBLIC ReadAD

HX710ROM segment code

rseg HX710ROM

sbit ADDO = P1.5;

sbit ADSK = P0.0;

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

OUT: R4, R5, R6, R7 R7=>LSB

如果在C中调用,不能修改R4,R5,R6,R7。

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

ReadAD:

CLR ADSK //使能AD(PD_SCK置低)

SETB ADDO //51CPU 准双向I/0输入使能

JB ADDO,$ //判断AD转换是否结束,若未结束则等待否则开始读取 MOV R4,#24

ShiftOut:

SETB ADSK //PD_SCK置高(发送脉冲)

NOP

CLR ADSK //PD_SCK置低

MOV C,ADDO //读取数据(每次一位)

XCH A,R7 //移入数据

RLC A

XCH A,R7

XCH A,R6

RLC A

XCH A,R6

XCH A,R5

RLC A

XCH A,R5

DJNZ R4,ShiftOut //判断是否移入24BIT

SETB ADSK

NOP

CLR ADSK

RET

END

参考驱动程序(C)

sbit ADDO = P1^5;

sbit ADSK = P0^0;

unsigned long ReadCount(void){

unsigned long Count;

unsigned char i;

ADDO=1; //非51类MCU,略去此行 ADSK=0;

Count=0;

while(ADDO);

for (i=0;i<24;i++){

ADSK=1;

Count=Count<<1;

ADSK=0;

if(ADDO) Count++;

}

ADSK=1;

Count=Count^0x800000;

ADSK=0;

return(Count);

}

2.54

0.55

0.38单位:毫米

相关文档