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?