HX711
参考驱动程序(汇编)
/*-------------------------------------------------------------------
在ASM中调用:
LCALL ReadAD
可以在C中调用:
extern unsigned long ReadAD(void);
.
.
unsigned long data;
data=ReadAD();
.
.
----------------------------------------------------------------------*/
PUBLIC
HX711ROM
rseg
ReadAD
segment code
HX711ROM
sbit
sbit
ADDO = P1.5;
ADSK = P0.0;
/*--------------------------------------------------
OUT: R4, R5, R6, R7 R7=>LSB
如果在C中调用,不能修改R4,R5,R6,R7。
---------------------------------------------------*/
ReadAD:
CLR
JB
ADSK
//使能AD(PD_SCK置低)
ADDO,$
R4,#24
//判断AD转换是否结束,若未结束则等待否则开始读取
MOV
ShiftOut:
SETB ADSK
//PD_SCK置高(发送脉冲)
NOP
CLR
MOV
XCH
RLC
XCH
XCH
RLC
XCH
XCH
RLC
XCH
ADSK
C,ADDO
A,R7
A
//PD_SCK置低
//读取数据(每次一位)
//移入数据
A,R7
A,R6
A
A,R6
A,R5
A
A,R5
DJNZ R4,ShiftOut
SETB ADSK
NOP
//判断是否移入24BIT
CLR
RET
END
ADSK
AVIA SEMICONDUCTOR
8