;**************************************************************
; READ ADC DATA AND STORE IN ADC_DATA VARIABLE
;**************************************************************
CONVERT:
SETB EOC ; SET EOC PIN
SETB START ; SET START PIN
LCALL ADC_DELAY ; WAIT FOR SOME TIME
CLR START ; CLEAR START PIN
CONV_1: LCALL ADC_CLOCK ; CLOCK THE ADC
JNB EOC,CONV_1 ; CLOCK TILL CONVERSION IS OVER
SETB OE
MOV A,DATA_PORT ; COPY ADC DATA TO ACC
MOV ADC_DATA,A ; COPY ACC TO ADC_DATA
CLR OE
RET ; RETURN TO CALLER
;**************************************************************
; GIVES ONE CLOCK PULSE TO ADC
;**************************************************************
ADC_CLOCK:
SETB CLOCK ; SET CLOCK PIN
ACALL ADC_DELAY ; WAIT FOR SOME TIME
CLR CLOCK ; CLEAR CLOCK PIN
ACALL ADC_DELAY ; WAIT FOR SOME TIME
RET ; RETURN TO CALLER
;**************************************************************
; CLOCK DELAY ROUTINE OF APPROX. 10uS @ 11.0592MHz
;**************************************************************
ADC_DELAY:
MOV R7,#01h ; LOAD COUNT IN R7
ADC_DLY1:
DJNZ R7,ADC_DLY1 ; LOOP UNTIL R7 IS 0
NOP
RET ; RETURN TO CALLER