Procedury obslugi magistrali I2C w komunikacji mikrokontrolera z pamiecia PCF8582 w asemblerze mcs-51 - tak brzmi tytul
Czy ktos moglby sprawdzic mi czy to jest dobrze?
jest to sama procedura do odczytu danych z magistrali I2C w komunikacji z owa pamiecia
ADDR_DEVICE EQU 30h
ADDR_CELL EQU 31h
DANE EQU 32h
_SDA EQU P1.0
_SDA EQU P1.1
START:
SETB_SCL
CLR _SDA
SETB_SDA
MOVA,#0Ah
DJZN A,$
RET
STOP:
CLR _SDA
SETB_SCL
SETB_SDA
RET
MEMORY_READ:
ACALL START
MOV A, ADDR_CELL
ACALL NADAJ_BAJT
MOVA, ADDR_CELL
ACALL NADAJ_BAJT
ACALL ODBIERZ_BAJT
ACALL STOP
ODBIERZ BAJT:
MOV R3,#8
ODBIERZ_BIT:
SETB_SCL
MOV_C,SDA
CLR_SCL
RLC A
DJZN R3, ODBIERZ_BIT
JB F0, POTWIERDZ
JMP BIT_9
POTWIERDZ:
CLR_SDA
BIT_9
SETB_SCL
CLR_SCL
SETB_SDA
RET
Ostatnia procedura na odebranie bajtu i bitu jest ze zrodel internetowych i nie bardzo wiem co znaczy:
JB F0, POTWIERDZ ??
I czy powinnam dawac tu jakies opoznienia??
Bede bardzo wdzieczna za wszelka pomoc, gdyz asembler to dla mnie wielka magia..
Z gory dziekuje, pozdrawiam
Czy ktos moglby sprawdzic mi czy to jest dobrze?
jest to sama procedura do odczytu danych z magistrali I2C w komunikacji z owa pamiecia
ADDR_DEVICE EQU 30h
ADDR_CELL EQU 31h
DANE EQU 32h
_SDA EQU P1.0
_SDA EQU P1.1
START:
SETB_SCL
CLR _SDA
SETB_SDA
MOVA,#0Ah
DJZN A,$
RET
STOP:
CLR _SDA
SETB_SCL
SETB_SDA
RET
MEMORY_READ:
ACALL START
MOV A, ADDR_CELL
ACALL NADAJ_BAJT
MOVA, ADDR_CELL
ACALL NADAJ_BAJT
ACALL ODBIERZ_BAJT
ACALL STOP
ODBIERZ BAJT:
MOV R3,#8
ODBIERZ_BIT:
SETB_SCL
MOV_C,SDA
CLR_SCL
RLC A
DJZN R3, ODBIERZ_BIT
JB F0, POTWIERDZ
JMP BIT_9
POTWIERDZ:
CLR_SDA
BIT_9
SETB_SCL
CLR_SCL
SETB_SDA
RET
Ostatnia procedura na odebranie bajtu i bitu jest ze zrodel internetowych i nie bardzo wiem co znaczy:
JB F0, POTWIERDZ ??
I czy powinnam dawac tu jakies opoznienia??
Bede bardzo wdzieczna za wszelka pomoc, gdyz asembler to dla mnie wielka magia..
Z gory dziekuje, pozdrawiam