 Aktuelle Kategorie: (156)
|
Artikel » Computer & Internet 8051 Microcontroller: Registerbänke und Speichertypen |
Insgesamt hat der 8051 vier Registerbänke mit jeweils 8 Registern (R0 bis R7) pro Bank; diese sind prinzipiell gewöhnlicher Speicher.Die Registerbänke sind in der Regel was Laufzeit- und Speicherzeiteffizienz angeht effektiver als direkte Speicheradressen. Jede Registerbank verfügt insgesamt über 8 Speicheradressen, genauer gesagt die Speicheradressen 00h bis 07h, 08h bis 0Fh, 1 0h bis 17h oder 18h bis lFh. Es kann immer nur eine Bank aktiv sein, d.h. es kann immer nur eine Bank zur gleichen Zeit angesteuert werden. Welche Registerbank man auswählt bestimmt man mit den sogenannten Programm-Status-Word-Registern 3 und 4 (PSW). Die Ansteuerung der Speicherstellen kann zum einen über die direkte Speicheradresse erfolgen, zum anderen aber auch über den jeweiligen Registernamen R0 bis R7. Bei der letzteren Methode ist jedoch zu beachten, dass die Angabe des Registers noch nicht ausreicht, denn schließlich muss man auch sagen, welche Registerbank man ansteuert. Bsp.: Man will R3 ansprechen, also das vierte Register. Ohne Angabe welche Bank man ansteuert könnte es die vierte Stelle in der ersten (03h), zweiten (0Bh), dritten (13h) oder vierten Bank (lBh) sein; vergleichbar mit einer Zeilenangabe ohne die Seite zu nennen. Eine Besonderheit bei den Registern R0 und Rl ist, dass man nicht nur den Inhalt dieser Speicherstellen auslesen kann, sondern auch in diese Register Adressen legen kann. Ruft man anschließend R0 oder Rl auf wird nicht ihr Inhalt, sondern der Inhalt des Registers, deren Adresse in R0 oder Rl ist, ausgegeben. Bit-adressierbarer SpeicherDieser Bereich reicht von den Speicheradressen 20h bis 2Fh, insgesamt folglich 16 Byte. Da man jedoch jedes einzelne Bit ansteuern möchte, reichen diese Speicheradressen nicht aus, denn 16 Byte sind 128 Bit. Um jedes einzelne Bit anzusteuern benötigt man folglich eine 2 stellige Hexadezimalzahl (00h bis 7Fh). Die Adressen von 00h bis 7Fh liegen im unteren Bereich von 20h bis 2Fh, die Adressen von 80h bis FF liegen in jedem 8. SFR, diese machen die restlichen 16Byte aus.- Die Adressierung über die Speicherstelle z.B. 21h
- Die Adressierung über eine Bitposition z.B. 08h ist das erste Bit im 21h-Byte
- Die Adressierung über eine Speicherstelle mit Bit-Zusatz z.B. 21.0 - ist ebenfalls das erste Bit im 21h-Byte
Ob man nun das Byte oder das Bit mit der Adresse 21h anspricht, hängt vom Assembler-Befehl ab. Der freie Datenspeicher Der Hauptanteil des Speichers, mit den Adressen von 30h bis FFh steht als allgemeine Datenbytes zur freien Verfügung, sie werden mit ihrer jeweiligen Speicheradresse angesprochen. Die Adressen des externen RAMs liegen parallel zu denen des internen RAMs, was im ersten Hinblick ein Problem bei der Adressierung verursachen könnte. Man muss bei der Adressierung deshalb nicht nur die Speicheradresse, sondern auch den jeweiligen RAM, also den internen oder externen, angeben.Ebenfalls liegen die Adressen der SFRs parallel zum oberen Teil des internen RAMs, also von 80h bis FFh. Die Lösung liegt hierbei in der Adressierung, während die SFRs nur direkt adressiert werden können, kann der obere freie Datenspeicher nur indirekt adressiert werden.
| | | 21.07.2006 00:20:33 von |
Fügen Sie diesen Artikel Ihren Social Bookmarks hinzu:

Verlinken Sie diesen Artikel auf Ihrer Website: Informationen über den Autor dieses Artikels:
 |
|