Aus RN-Wissen.de
(→Beispiel für EEprom 24C16) |
(→Beispiel für EEprom 24C256) |
||
| Zeile 92: | Zeile 92: | ||
=== Beispiel für EEprom 24C256 === | === Beispiel für EEprom 24C256 === | ||
<pre> | <pre> | ||
| + | '============I2C EEprom schreiben/lesen ================================== | ||
| − | + | ' =========== Für 24C256 EEprom ===================== | |
| + | ' 8MHz Quarz | ||
| + | ' LCD auf Port B , | ||
| + | ' | ||
| + | $regfile = "m8def.dat" | ||
| + | $crystal = 8000000 | ||
| + | '---Config für LCD ----------------- | ||
| + | Config Lcd = 40 * 2 | ||
| + | Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , Rs = Portb.4 , E = Portb.5 | ||
| + | Config Lcdbus = 4 | ||
| + | Config Lcdmode = Port | ||
| + | Cursor On | ||
| + | 'SDA und SCL definieren | ||
| + | Config Sda = Portd.5 | ||
| + | Config Scl = Portd.7 | ||
| + | Dim X As Byte | ||
| + | Dim A As Byte | ||
| + | Dim B As Byte | ||
| + | Dim Lesen As Byte | ||
| + | CLS | ||
| + | Do | ||
| + | '---- schreibe in EEprom ---- | ||
| + | For A = 1 To 10 | ||
| + | Incr X '1 bis Überlauf zählen | ||
| + | I2cstart 'Start I2C | ||
| + | I2cwbyte &HA0 'Sende Slave Adresse | ||
| + | I2cwbyte A 'Sende Speicheradresse LOw | ||
| + | I2cwbyte 1 'Sende Speicheradresse High | ||
| + | I2cwbyte X 'Sende Wert | ||
| + | I2cstop 'Stop I2C | ||
| + | Waitms 10 'warte 10ms | ||
| + | Locate 1 , 1 | ||
| + | Lcd "ins EEprom = " ; X ; " " ' Ausgabe der geschriebenen Werte am LCD | ||
| + | Waitms 500 | ||
| + | Next A | ||
| + | |||
| + | '--- lesen vom EEprom ---- | ||
| + | For B = 1 To 10 | ||
| + | |||
| + | I2cstart 'Start I2C | ||
| + | I2cwbyte &HA0 'sende Slave Adresse | ||
| + | I2cwbyte B 'sende Speicheradresse Low | ||
| + | I2cwbyte 1 'sende Speicheradresse High | ||
| + | |||
| + | I2cstart 'Start I2C | ||
| + | I2cwbyte &HA1 'sende Slave Adresse +1 für schreiben | ||
| + | I2crbyte Lesen , Nack 'lese Adresse vom EEprom | ||
| + | I2cstop 'Stop I2C | ||
| + | |||
| + | Locate 2 , 1 | ||
| + | Lcd "Lese EEprom= " ; Lesen ; " " 'Ausgabe der EEprom Werte | ||
| + | Waitms 500 | ||
| + | Next B | ||
| + | |||
| + | Loop | ||
| + | End | ||
| + | </pre> | ||
==Autor== | ==Autor== | ||
Version vom 25. Januar 2006, 12:34 Uhr
Inhaltsverzeichnis
Ansteuern vom I2C EEprom's mit Bascom
Allgemein
I
Etwas genauer
Struktur:
blablaaa
Beispiel für EEprom 24C16
'============I2C EEprom schreiben/lesen ================================== ' =========== Für 24C16 EEprom ===================== ' 8MHz Quarz ' LCD auf Port B , ' $regfile = "m8def.dat" $crystal = 8000000 '---Config für LCD ----------------- Config Lcd = 40 * 2 Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , Rs = Portb.4 , E = Portb.5 Config Lcdbus = 4 Config Lcdmode = Port Cursor On 'SDA und SCL definieren Config Sda = Portd.5 Config Scl = Portd.7 Dim X As Byte Dim A As Byte Dim B As Byte Dim Lesen As Byte Do '---- schreibe in EEprom ---- For A = 1 To 10 Incr X '1 bis Überlauf zählen I2cstart 'Start I2C I2cwbyte &HA0 'Sende Slave Adresse I2cwbyte A 'Sende Speicheradresse I2cwbyte X 'Sende Wert I2cstop 'Stop I2C Waitms 10 'warte 10ms Locate 1 , 1 Lcd "ins EEprom = " ; X ; " " ' Ausgabe der geschriebenen Werte am LCD Waitms 500 Next A '--- lesen vom EEprom ---- For B = 1 To 10 I2cstart 'Start I2C I2cwbyte &HA0 'sende Slave Adresse I2cwbyte B 'sende Speicheradresse I2cstart 'Start I2C I2cwbyte &HA1 'sende Slave Adresse +1 für schreiben I2crbyte Lesen , Nack 'lese Adresse vom EEprom I2cstop 'Stop I2C Locate 2 , 1 Lcd "Lese EEprom= " ; Lesen ; " " 'Ausgabe der EEprom Werte Waitms 500 Next B Loop End
Beispiel für EEprom 24C256
'============I2C EEprom schreiben/lesen ================================== ' =========== Für 24C256 EEprom ===================== ' 8MHz Quarz ' LCD auf Port B , ' $regfile = "m8def.dat" $crystal = 8000000 '---Config für LCD ----------------- Config Lcd = 40 * 2 Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , Rs = Portb.4 , E = Portb.5 Config Lcdbus = 4 Config Lcdmode = Port Cursor On 'SDA und SCL definieren Config Sda = Portd.5 Config Scl = Portd.7 Dim X As Byte Dim A As Byte Dim B As Byte Dim Lesen As Byte CLS Do '---- schreibe in EEprom ---- For A = 1 To 10 Incr X '1 bis Überlauf zählen I2cstart 'Start I2C I2cwbyte &HA0 'Sende Slave Adresse I2cwbyte A 'Sende Speicheradresse LOw I2cwbyte 1 'Sende Speicheradresse High I2cwbyte X 'Sende Wert I2cstop 'Stop I2C Waitms 10 'warte 10ms Locate 1 , 1 Lcd "ins EEprom = " ; X ; " " ' Ausgabe der geschriebenen Werte am LCD Waitms 500 Next A '--- lesen vom EEprom ---- For B = 1 To 10 I2cstart 'Start I2C I2cwbyte &HA0 'sende Slave Adresse I2cwbyte B 'sende Speicheradresse Low I2cwbyte 1 'sende Speicheradresse High I2cstart 'Start I2C I2cwbyte &HA1 'sende Slave Adresse +1 für schreiben I2crbyte Lesen , Nack 'lese Adresse vom EEprom I2cstop 'Stop I2C Locate 2 , 1 Lcd "Lese EEprom= " ; Lesen ; " " 'Ausgabe der EEprom Werte Waitms 500 Next B Loop End
Autor
Siehe auch