Gast
#12325
Hi, kann mir einer sagen wie ich beim AT89S8252 Daten im internen EEprom speichern und wieder auslesen kann? Möchte gerne Zahlenwerte speichern. Mit Dank im Vorraus, Lars
|
Anzeige
|
AT89S8252 Daten Speichern
Gast
#12325
Hi, kann mir einer sagen wie ich beim AT89S8252 Daten im internen EEprom speichern und wieder auslesen kann? Möchte gerne Zahlenwerte speichern. Mit Dank im Vorraus, Lars
Gast
#12326
Hallo
folgendes Beispiel ist bei der Prog-Studio Software dabei (shareware
unter www.batronix.de) (ichhoffe du meinst Assembler)
'**************************************************************
'* Beispiel für den Schreib- und Lesezugriff auf das
'* integrierte EEprom des AT89S8252
'**************************************************************
' Bei diesem Beispiel werden zur Laufzeit des MC's Daten in das
' integrierte EEprom des AT89S8252 geschrieben, wieder aus-
' gelesen und an den Ports 0 und 1 zur Kontrolle wieder ausgegeben.
' Zudem wird gezeigt, dass das EEProm auch bereits im Brenner
' beschrieben (Initialisiert) werden kann. Dazu werden Daten an
' die Adresse 2000h(Anfang des EEproms) programmiert und später
' zur Laufzeit vom MC ausgelesen und an den Ports 2 und 3
' angezeigt.
' Der Mikrocontroller braucht übrigens NICHT die 12 Volt an seinem
' EA/VPP Eingang, um auf das integrierte EEprom schreiben zu
' können (Dies geht aus dem Datenblatt nicht so klar hervor).
' Der Pin sollte auf +5 Volt gelegt werden.
INCLUDE 89s8252.mc
LESE_DATEN_AUS_DEM_EEPROM:
'Aktiviere EEPROM Lesezugriff durch Setzen des EEMEN Bits
'im Register WMCON (Adresse 96h, Bit 3)
ORL WMCON,#00001000b
'Lese Adresse 0002h des EEproms und gebe die Daten am Port 2 aus:
MOV DPTR,#0002h 'Adresse festlegen
MOVX A,@DPTR 'Wert der Adresse in den Akku schreiben
MOV P2,A
'Lese Adresse 0003h des EEproms und gebe die Daten am Port 3 aus:
MOV DPTR,#0003h 'Adresse festlegen
MOVX A,@DPTR 'Wert der Adresse in den Akku schreiben
MOV P3,A
SCHREIBE_UND_LESE_EEPROM_DATEN:
'Aktiviere EEPROM Schreibzugriff durch Setzen des EEMWE Bits
'im Register WMCON (Adresse 96, Bit 4)
ORL WMCON,#00010000b
'Programmiere Adresse 0000h des EEproms mit dem Wert 11001100b
MOV DPTR,#0000h 'Adresse festlegen
MOV A,#11001100b 'Wert festlegen
MOVX @DPTR,A 'Wert an Adresse schreiben
LCALL Warte_bis_Fertig
'Programmiere Adresse 0001h des EEproms mit dem Wert 10101010b
MOV DPTR,#0001h 'Adresse festlegen
MOV A,#10101010b 'Wert festlegen
MOVX @DPTR,A 'Wert an Adresse schreiben
LCALL Warte_bis_Fertig
'Deaktivieren des EEPROM Schreibzugriff durch Rücksetzen des
'EEMWE Bits im Register WMCON (Adresse 96, Bit 4)
ANL WMCON,#11101111b
'Lese Adresse 0000h des EEproms und gebe Wert an Port 0 aus
MOV DPTR,#0000h 'Adresse festlegen
MOVX A,@DPTR 'Wert der Adresse in den Akku schreiben
MOV P0,A
'Lese Adresse 0001h des EEproms und gebe Wert an Port 1 aus
MOV DPTR,#0001h 'Adresse festlegen
MOVX A,@DPTR 'Wert der Adresse in den Akku schreiben
MOV P1,A
'Endlosschleife, Programm ende
ENDE:
LJMP Ende
WARTE_BIS_FERTIG:
'Warte bis EEPROM Byte programmiert ist. Dazu muss
'Bit 1 im Register WMCON (Ready/Busy) gesetzt sein:
'Dauer ca. 2,5 ms pro Byte:
Warte:
MOV A,#00000010b
ANL A,WMCON
CJNE A,#00000010b, Warte
RET
'Daten für den Lesezugriff (werden an Port 2 und 3 dargestellt)
(2002h):
Db 11110000b, 00001111b
Gast
#12327
hallo habe das selbe problem vielleicht hat jetzt schon jemand nen C beispiel. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|