βοηθήσει με τη διεπαφή 24c512

S

shankardy

Guest
γεια
Έχω προσπαθήσει να διεπαφής 24c512 (eeprom σειριακό) με 89s52 χρησιμοποιώντας i2c υπορουτίνες, αλλά δεν έχουν ακόμη επιτυχία.Είμαι απλώς προσπαθεί να στείλει επιστολή S σε αυτό και στη συνέχεια να read.but η οθόνη δείχνει κάποια άλλη χαρακτήρα.

εδώ είναι ο κώδικας:eek:rg 00h

sda equ P1.1
SCL P1.0 EQU

γράψτε EQU 10100000b? byte ελέγχου για τη γραφή
διαβάστε EQU 10100001b? byte ελέγχου για την ανάγνωση

? init
CLR sda
CLR SCL
NOP
setb sda
setb SCL
ret

startc:
setb SCL
CLR sda
CLR SCL
NOP
NOP
lcall writenow
stop:
CLR SCL
CLR sda
setb SCL
setb sda
retwritenow: CLR sda
CLR SCL
mov a, # γράψτε
lcall στείλετε
setb sda
setb SCL
JB sda, writenow
CLR SCL
mov a, # 00000000b
lcall στείλετε
setb sda
setb SCL
JB sda, writenow
CLR SCL
mov a, # 00000000b
lcall στείλετε
setb sda
setb SCL
JB sda, writenow
CLR SCL

mov a, # 33η? ισοδύναμο hex για «S»
lcall στείλετε
setb sda
setb SCL
JB sda, writenow

CLR SCL

setb sda
CLR SCL
setb SCL
setb sda
ret

readnow: CLR sda
CLR SCL
mov a, # γράψτε
lcall στείλετε
setb sda
setb SCL
JB sda, readnow
CLR SCL
mov a, # 00000000b
lcall στείλετε
setb sda
setb SCL
JB sda, readnow
CLR SCL
mov a, # 00000000b
lcall στείλετε
setb sda
setb SCL
JB sda, readnow
CLR SCL
mov a, # διαβάστε
lcall στείλετε
setb sda
setb SCL
JB sda, readnow
CLR SCL
lcall recv
setb sda
setb SCL
CLR SCL

setb sda
acall οθόνη
lcall στάση

απεικόνιση: mov r0, # 38H? LCD υπορουτίνα initialization
acall εντολή
acall καθυστέρηση
mov r0, # 0ch
acall εντολή
acall καθυστέρηση
mov r0, # 01h
acall εντολή
acall καθυστέρηση
mov r0, # 06h
acall εντολή
acall καθυστέρηση
mov r0, # 0c5h
acall εντολή
acall καθυστέρηση
mov r0, ένα
acall δεδομένα
acall καθυστέρηση
εντολή:
mov p2, r0
acall καθυστέρηση
CLR p1.2
setb p1.4
acall καθυστέρηση
CLR p1.4
ret

στοιχεία:
mov p2, r0
acall καθυστέρηση
setb p1.2
setb p1.4
acall καθυστέρηση
CLR p1.4
retκαθυστέρηση: mov R6, # 60
here4: mov R7, # 50
here1: djnz R7, here1
djnz R6, here4αποστολή:
mov R7, # 08
πίσω:
CLR SCL
RLC ένα
mov sda, γ
setb SCL
djnz R7, πίσω
CLR SCL
setb sda
ret

recv:
mov R7, # 08
back2:
CLR SCL
setb SCL
mov c, sda
RLC ένα
djnz R7, back2
CLR SCL
setb sda
ret
τέλος

 

Welcome to EDABoard.com

Sponsor

Back
Top