Data Sheet
HX711
AVIA SEMICONDUCTOR
7
Reference Driver (Assembly)
/*-------------------------------------------------------------------
Call from ASM: LCALL ReaAD
Call from C: extern unsigned long ReadAD(void);
.
.
unsigned long data;
data=ReadAD();
.
.
----------------------------------------------------------------------*/
PUBLIC ReadAD
HX711ROM segment code
rseg HX711ROM
sbit ADDO = P1.5;
sbit ADSK = P0.0;
/*--------------------------------------------------
OUT: R4, R5, R6, R7 R7=>LSB
---------------------------------------------------*/
ReadAD:
CLR ADSK //AD Enable(PD_SCK set low)
SETB ADDO //Enable 51CPU I/0
JB ADDO,$ //AD conversion completed?
MOV R4,#24
ShiftOut:
SETB ADSK //PD_SCK set high(positive pulse)
NOP
CLR ADSK //PD_SCK set low
MOV C,ADDO //read on bit
XCH A,R7 //move data
RLC A
XCH A,R7
XCH A,R6
RLC A
XCH A,R6
XCH A,R5
RLC A
XCH A,R5
DJNZ R4,ShiftOut //moved 24BIT?
SETB ADSK
NOP
CLR ADSK
RET
END