89C51 I2C

P

Pomo

Guest
Bok,

Svibanj ja znati funkciju I2C na AT89C51 koji je pin?Je li Pin16 Port3.6 i Pin17 Port3.7?Bilo tko može mi reći .....

Hvala ....
Last edited by Pomoć na 12 kolovoz, 2005 9:11, edited 1 time in total

 
AT89C51 nema I2C bus, tako da ne postoje namjenski igle za SCL i SDA.
Ostali članovi 8051-obitelj s I2C sučelje koristi kao P1.6 SCL (sat) i P1.7 su SDA (podataka) ..
Pozdravi,
IanP

 
Pomoć wrote:

Bok,Svibanj ja znati funkciju I2C na AT89C51 koji je pin?
Je li Pin16 Port3.6 i Pin17 Port3.7?
Bilo tko može mi reći .....Hvala ....
 
Hi idlebrain,

Molim Vas može li mi pokazati vezu i uzorak dizajna sklop za povezivanje?

Hvala ...

 
SCK BIT P3.6; I2C的时钟线
SDA BIT P3.7; I2C的数据线
;读写I2C总线器件要用到的寄存器
ERRFLAG BIT 00h
TEMP1 EQU 1AH
DELAYCOUNT EQU 1BH
ADDREHI EQU 1ch;读写的地址
ADDRELO EQU 1DH
WRITE_DATA EQU 1EH;单字节写入的数据
READ_DATA EQU 1FH;单字节读出的数据
WRITE_BYTE: LCALL STARTI2C
JB ERRFLAG, WRITE_B_RE;不是空闲返回
MOV A, # 0A0H
LCALL SHOUT_DATA
JB ERRFLAG, WRITE_B_STOP;出错停止
, MOV, ADDREHI;送高位地址
; LCALL SHOUT_DATA
; JB ERRFLAG, WRITE_B_STOP
MOV, ADDRELO;送低位地址
LCALL SHOUT_DATA
JB ERRFLAG, WRITE_B_STOP
MOV, WRITE_DATA
LCALL SHOUT_DATA
JB ERRFLAG, WRITE_B_STOP
CLR ERRFLAG;正常清出错位
WRITE_B_STOP: LCALL STOPI2C
MOV DELAYCOUNT, # 0AH
LCALL KAŠNJENJE
WRITE_B_RE: RET
READ_BYTE: LCALL STARTI2C
JB ERRFLAG, READ_RE
MOV A, # 0A0H
LCALL SHOUT_DATA
JB ERRFLAG, READ_STOP
, MOV, ADDREHI
; LCALL SHOUT_DATA
; JB ERRFLAG, READ_STOP
MOV, ADDRELO
LCALL SHOUT_DATA
JB ERRFLAG, READ_STOP
LCALL READ_CURRENT
LJMP READ_RE
READ_STOP: LCALL STOPI2C
READ_RE: RET
READ_CURRENT: LCALL STARTI2C
JB ERRFLAG, RE_CURRENTRE
MOV A, # 0A1H
LCALL SHOUT_DATA
JB ERRFLAG, RE_CURRENTST
LCALL SHIN_DATA
LCALL nak
CLR ERRFLAG
RE_CURRENTST: LCALL STOPI2C
RE_CURRENTRE: RETSHOUT_DATA: MOV R6, # 08h
SHOUT_DATA1: RLC
MOV SDA, C
NOP
SETB SCK
NOP
NOP
NOP
NOP
CLR SCK
DJNZ R6, SHOUT_DATA1
SETB SDA
NOP
NOP
SETB SCK
NOP
NOP
NOP
NOP
MOV C, SDA
MOV ERRFLAG, C
CLR SCK
RETSHIN_DATA: SETB SDA
MOV R6, # 08h
SHIN_DATA1: NOP
NOP
NOP
SETB SCK
NOP
NOP
MOV C, SDA
RLC
NOP
CLR SCK
DJNZ R6, SHIN_DATA1
MOV READ_DATA,
RET

STARTI2C: SETB SDA
SETB SCK
NOP
JNB SDA, STARTI2C_ERR
JNB SCK, STARTI2C_ERR
NOP
CLR SDA
NOP
NOP
NOP
NOP
CLR SCK
CLR ERRFLAG
LJMP STARTI2C_RE
STARTI2C_ERR: SETB ERRFLAG
STARTI2C_RE: RET
STOPI2C: CLR SDA
NOP
NOP
SETB SCK
NOP
NOP
NOP
NOP
SETB SDA
RET

ACK: CLR SDA
NOP
NOP
SETB SCK
NOP
NOP
NOP
NOP
CLR SCK
RET

Nak: SETB SDA
NOP
NOP
SETB SCK
NOP
NOP
NOP
NOP
CLR SCK
RET
END

 
mir na vas

pomoću softvera poslane od Philips, ali biste trebali staviti podići otpornik u dvije pribadače (10 KΩ) do 5volt.

 
Bok
obični 89C51 nema I2C bus na taj način te bi trebao sami izraditi svoj protokol
možete vidjeti moje pokušava na I2C EEPROM-u C-kod.
viva Persia
Zdravo
Žao nam je, ali morate prijaviti kako biste vidjeli ovaj privitak

 
Bok,

Da li dizajn krug EEPROM?Je li vam koji koriste ovaj 24LC02 čip kao EEPROM ...

Hvala ...

 
obični 89c51 nije 12C autobus
ful detaljna pin descrpition check data sheet
U GRT će ans
pozdravi
Haider

 
Hi pomoć,

Možete jednostavno povezati bilo koje dvije io igle za SDA i SCL u EEPROM-u.Morate spojiti pullup otpornik za SDA pin.provjerite sljedeće rečenice u podatkovna tablica.

"SDA autobus zahtijeva pullup otpornik na VCC (tipično 4.7K za 100kHz, 1K za 400KHZ)"

Priključite A2/A1/A0 na VCC ili GND (VSS) kao i rješavanju po zahtjevima.Ove tri igle odgovara 3,2,1 bita adrese byte.Bit 0 bitak čitanje / pisanje kontrola

Ako želite da kontrola pisati štititi povezati s drugim mikro pin, ako ne jednostavno spojite na masu.

Koristite softver sa start / stop uvjetima i ACK mehanizam.

Još jedna točka dodati je možete čitati / pisati 8 bajtova na vrijeme na max.

Vede

 

Welcome to EDABoard.com

Sponsor

Back
Top