Čidlo tlaku SMD500, komunikace přes I2C, kalibrace

Ja mylim, že ano… Toto je cast kodu z hlavni smycky…

    call	START
mov	A,#0EEh
call	ZAPISI2C

mov	A,#0F6h		;Adresa registru hodnoty UP
call	ZAPISI2C	        ;Zapis read registru

call	START		;RESTART

mov	A,#0EFh
call	ZAPISI2C	        ;Zapis ADRESY MODULU-Cteni

clr	poslednibyte
    call	READSMD
mov	P_H,A
setb	poslednibyte
call	READSMD
mov	P_L,A
call	STOP

A toto jsou subrutiny, jenz jsou volany…

ZAPISI2C:
mov R7,#8
DALSBIT:
rlc A ;rotuj bit do C
mov SDA,C ;vystav bit ACC.7 na SDA

setb 	SCL		        ;SCL=1 Hodiny
mov 	B,#CEKANI	
djnz 	B,$
clr 	SCL		        ;SCL=0
mov 	B,#CEKANI	
djnz 	B,$

djnz 	R7,DALSBIT	;další bit?
setb 	SDA		        ;uvolneni sbernice pro ACK

setb 	SCL		        ;SCL=1 Hodiny ACK
mov 	B,#CEKANI	
djnz 	B,$
jb	SDA,$
clr 	SCL		         ;SCL=0
mov 	B,#CEKANI	
djnz 	B,$

RET

READSMD:
mov R7,#8
MSB: mov C,SDA
rlc A

setb 	SCL		        ;SCL=1 Hodiny
mov 	B,#CEKANI	
djnz 	B,$
clr 	SCL		        ;SCL=0
mov 	B,#CEKANI	
djnz 	B,$	

djnz 	R7,MSB
setb	SDA
jb	poslednibyte,JEPOSL
clr	SDA		        ;ACK

JEPOSL:
setb SCL ;SCL=1 Hodiny
mov B,#CEKANI
djnz B,$
clr SCL ;SCL=0
mov B,#CEKANI
djnz B,$

setb	SDA
ret

Je to takhle mozne?