'--------------------------------------------------------------------------' ' Test zum beschreiben und auslesen des I2C EEprom 24C16 ' ' ' Ausgabe fortlaufender Nummerierung auf dem Display und dem Terminalprogramm ' '------------------------------------------------------------------ ' ' 'Testprogramm für ATmega8 ' 'Der gesendete Text kann mit dem Hyperterminal von Windows angezeigt werden' ' 'Einstellungen am Hyperterminal: ' ' Bits pro sekunde: 9600 ' ' Datenbits : 8 ' ' Parität : keine ' ' Stoppbits : 1 ' ' Flusssteuerung : keine ' $regfile = "m8def.dat" $crystal = 3686400 ' Initialisierung des LCD Displays ' Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2 Config Lcdbus = 4 Cls Cursor Off Noblink '------------------------------------------------------------------------- Config Sda = Portc.4 Config Scl = Portc.5 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 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 Lesen 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