EEPROM des AT89C51ED2 beschreiben

Gast #258344
Lesenswert?

Hallo, habe ein kleines Problem beim Beschreiben des EEPROM des
AT89C51ED2.
Im Datenblatt steht unter "Data Write" folgendes:

*Load DPTR with the address to write
*Store A register with the data to be written
*Set bit EEE of EECON register
*Execute a MOVX @ DPTR,A
*Clear bit EEE of EECon register

Das Setzen und loeschen von dem EEE Bit ist natürlich kein Problem. Nur
wie kann ich dem DPTR die Adresse zuweisen( und welche ) bzw. wie sieht
der Befehl MOVX @ DPTR,A in C aus?

Danke im Voraus, Franz
Gast #258345
Lesenswert?

Mit dem SDCC hatte ich das mal so gemacht:
1
static xdata at 0x0000 unsigned char eeprom_test;
2

3
void load(void)
4
{
5
  unsigned char test;
6

7
  //load data from eeprom
8
  EA = 0;
9
  while(EECON & 0x01){} //EEBUSY
10
  EECON = 0x02; //EEE
11
  test = eeprom_test;
12
  EECON = 0x00;
13
}
14

15
void write(void)
16
{
17
  unsigned char test;
18

19
  //write data to eeprom
20
  EA = 0;
21
  while(EECON & 0x01){} //EEBUSY
22
  EECON = 0x02; //EEE
23
  eeprom_test = test;
24
  EECON = 0x00;
25
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren