menyimpan dan beban AT24C08

R

rock_da_world

Guest
Hai, aku pendatang baru di dunia mikrokontroler ini.Aku punya tugas kuliah untuk melakukan menyimpan dan memuat data ke / dari EEPROM AT24C08A.Tugas ini harus menggunakan kode perakitan.Aku telah mencari dan menemukan jawabannya di VB atau C , dan sayangnya saya tidak bisa mengubahnya ke assembly.Sedikit help please?Terima kasih atas penghargaan.

Salam.
Last edited by rock_da_world pada 28 Mei 2009 14:30; edited 1 time in total

 
Sprzęt i oprogramowanie wykorzystywane do przesyłania danych za pośrednictwem systemów satelitarnych - powszechnie używane m.in. w lotnictwie, energetyce, żegludze czy zastosowaniach wojskowych - mają poważne luki w zabezpieczeniach. Do takich wniosków doszli specjaliści ds. bezpieczeństwa z firmy IOActive, którzy odkryli, że możliwe jest skuteczne zakłócanie komunikacji SATCOM.

Read more...
 
Apakah Anda menggunakan untuk memprogram mikrokontroler AT24C08?Jika demikian, yang mana?

Apakah Anda membaca di datasheet 24C08?

Apakah Anda mencari google?

 
Ya, saya menggunakan AT89C51 untuk mikrokontroler.Aku hanya ingin menyimpan data ke dalam EEPROM tapi aku akan meng-upload program di mikrokontroler.Aku telah men-download dan membaca datasheet juga, tetapi dalam datasheet aku hanya menemukan kalimat untuk melakukan tabungan atau pemuatan, tidak ada kode perakitan.

Dan aku sudah melakukan Googling juga, dengan kata kunci "membaca untuk EEPROM, asm" atau "beban dari EEPROM, asm" dan tidak menemukan hasil yang relevan.Terima kasih.
Last edited by rock_da_world pada 28 Mei 2009 14:28; edited 1 time in total

 
Cobalah kode assembly menjadi kode dari sini:
http://www.edaboard.com/viewtopic.php?t=293845&highlight=8051 24c08

Rgds,
IanP

 
wow, terima kasih.biarkan aku mencoba dulu, mari kita berharap ini akan bekerja ...
terima kasih lagi.

 
ini bekerja untuk saya 24C16, 24C32, dll, saya tidak pernah mencobanya 24C08.Mungkin tidak akan bekerja tanpa pull-up (4.7K atau sesuatu) di kedua SDA & SCL baris.

Kode:

;******************************

; I2C ROUTINS ***

; Diterbitkan Oleh Mehdi N. Rahni ***

;******************************

; Saya menggunakan kode ini untuk i2c perangkat seperti LM75, DS1307, 24C256

; Untuk mendefinisikan setiap perangkat i2c Anda harus tertanam hanya mempertimbangkan masukan alamat dan alamat

; Jadi, Anda dapat memperpanjang kode ini dengan perubahan terbatas

; Contoh:; menulis nilai dalam "DYTA" untuk eeprom @ dptr alamat

; MOV DPTR, # 125H

; MOV DYTA, # 79H

; LCALL EEPROM_WRITE; DI ALAMAT INI 125H DATA 79H; membaca data dari eeprom @ dptr alamat ke acc

; MOV DPTR, # 125H

; LCALL EEPROM_READ

; MOV A, DYTA; SEKARANG IS ACC 79HSDA EQU P2.6

SCL EQU P2.7

DYTA EQU 50H

ALAMAT EQU 51HI2C_READ:; membaca 8 bit dari perangkat i2c

MOV R7, # 8

GFD:

SETB SDA

SETB SCL

MOV C, SDA

RLC A

CLR SCL

DJNZ R7, GFD

MOV DYTA, A

RETI2C_WRITE:; menulis 8 bit untuk perangkat i2c

MOV R7, # 8

WRITING:

RLC A

MOV SDA, C

LCALL Clock

DJNZ R7, MENULIS

RETI2C_START:; awal i2c rutin

SETB SCL

SETB SDA

CLR SDA

CLR SCL

RETI2C_STOP:; akhir i2c rutin

SETB SCL

CLR SDA

SETB SDA

CLR SCL

RETClock:; sinkronisasi jam

SETB SCL

CLR SCL

RET
ACK:; mengakui dari pemancar atau penerima

SETB SDA

SETB SCL

JB SDA, $

CLR SCL

RETNO_ACK:; tidak mengakui dari pemancar atau penerima

SETB SDA

CLR SCL

JNB SDA, $

SETB SCL

RET
;*************************

; SERIAL EEPROM PAKET ****

;*************************

; menulis nilai dalam "DYTA" untuk eeprom @ dptr alamat

EEPROM_WRITE:

LCALL I2C_START

LCALL EEPROM_WRITE_ADDR

LCALL ACK

MOV A, DPH

LCALL I2C_WRITE

LCALL ACK

MOV A, DPL

LCALL I2C_WRITE

LCALL ACK

MOV A, DYTA

LCALL I2C_WRITE

LCALL ACK

LCALL I2C_STOP

LCALL DELAY_STOP

RETEEPROM_READ:; membaca dari eeprom

LCALL I2C_START

LCALL EEPROM_WRITE_ADDR

LCALL ACK

MOV A, DPH

LCALL I2C_WRITE

LCALL ACK

MOV A, DPL

LCALL I2C_WRITE

LCALL ACK

LCALL I2C_START

LCALL EEPROM_READ_ADDR

LCALL ACK

LCALL I2C_READ

LCALL NO_ACK

LCALL I2C_STOP

RETEEPROM_READ_ADDR:; A2, A1, A0 adalah nol

MOV A, # 10100001B

LCALL I2C_WRITE

RETEEPROM_WRITE_ADDR:; A2, A1, A0 adalah nol

MOV A, # 10100000B

LCALL I2C_WRITE

RETDELAY_STOP:; menghentikan proses menulis

MOV TMOD, # 00000001B

MOV TH0, # 0EEH

MOV TL0, # 00h

SETB TR0

SAC:

JNB TF0, SAC

CLR TR0

CLR TF0

RET

 

Welcome to EDABoard.com

Sponsor

Back
Top