8051Speicherorganistaion. SFR u. oberer Datenspeicherbereich teilen sich den SPECIAL FUNCTION REGISTER. gleichen Adreßbereich. indirekt adressierbar

Ähnliche Dokumente
MikroController der 8051-Familie

Hardwareaufbau der Mikrocontroller der 51er -Familie

Einführung in das Mikrocontroller-System 80(C)515/80(C)535

Speicheraufbau des AT89C5131

Praktikum Mikrorechner 3 (Adressierungsarten)

Architektur der Intel 8051 Familie und Grundlegende Programmierung Reto Gurtner 2005

Der Mikrocontroller beinhaltet auf einem Chip einen kompletten Mikrocomputer, wie in Kapitel

Grundlagen 8-Bit Mikrokontroller Infineon C515C-LM

Rechnerarchitektur Atmega Vortrag Atmega 32. Von Urs Müller und Marion Knoth. Urs Müller Seite 1 von 7

Mikrocontroller-8051-Familie und AT89C51

Maschinenorientierte Programmierung

MSP 430. Einführung. Was kann er? Hauptthemen. Wie sieht er aus? 64 / 100 polig. Was kann er? MSP 430 1

11. Mikrocontroller Einführung

Übung "Struktur von Mikrorechnern" (SMR)

7.0 PWM - Pulsbreitenmodulation

Übungen für die Einführung in die Assemblerprogrammierung mit dem Prozessor c515c

Die 8051-Mikrocontrollerfamilie. 3. Die 8051-Mikrocontrollerfamilie

Einführung in die Welt der Microcontroller


Teach-Dongle Rev 1.1. Teach-Dongle. Rev 1.1 Stand Okt

Microcomputertechnik

Modul 1 C-Programmierung der Familie 8051 Einführung. µc Anwendungsprogrammierung in C Modul 1 / Seite 1. Version 1.0 Dipl. Ing. Dr.

Praktikum Mikrorechner 9 (serielle Schnittstelle)

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

Atmel AVR für Dummies

Ein- Ausgabeeinheiten

Die Mikroprogrammebene eines Rechners

Das 8051er-Adreß-Latch

Mikrocontrollerprogrammierung in Assembler und C

Kapitel 1 Zu diesem Buch

Arithmetische und Logische Einheit (ALU)

Ein Computer zum Selbstbauen

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

LCD-Display am MVUS (nur einfachste Betriebsweise im Text Display Modus - ausführliche Beschreibung )

Dateien, die nicht in das Projekt eingebunden sind, werden ohne Syntax highlight dargestellt. MiCoWi und µvision Seite 1 Uwe Wittenfeld

MCS51- Mikrocontroller

Der Übungsrechner

Kurzbeschreibung der Hardware, das Schreiben von Software, Testen und Simulation mittels ASM51 und C51 sowie dscope (tscope)-51 und µprofi 51

Mikroprozessor bzw. CPU (Central Processing. - Steuerwerk (Control Unit) - Rechenwerk bzw. ALU (Arithmetic Logic Unit)

J Mikrocontroller-Programmierung

Technische Informatik 2: Addressierung und Befehle

Teil 1: Prozessorstrukturen

Klausur zur Mikroprozessortechnik

DATEN UND BEFEHLSFORMATE, ADDRESSIERUNGSARTEN UND MASCHINEN- PROGRAMMIERUNGSKONZEPTE

airbases.txt Airbase 99 Sys Ex Documentation 1. SysEx Protokolle Firmware Vers x=don't care 1.1. Bulk Dump Tx/Rx

ATmega169 Chip: Pin-Layout

MODUL 6 TIMER UND COUNTER

Skriptum Mikrocontroller-Systeme. Kapitel 3: Architektur eines Mikrocomputersystems am Beispiel 80x86

Zähler- und Zeitgeber-Baugruppen

Assembler und Hochsprachen

Schaltungshinweise zum Linux Control System mit DIL/NetPC DNP/7520

Daniel Betz Wintersemester 2011/12

Neues vom STRIP Forth-Prozessor

Bekannte Druckfehler im Buch Embedded Controller Eine Einführung in Hard- und Software

Microcontroller Kurs Programmieren Microcontroller Kurs/Johannes Fuchs 1

a. Flipflop (taktflankengesteuert) Wdh. Signalverläufe beim D-FF

Aufgabe 2 - Erweiterung um PIC und Interrupts

8.3 PCA2.D12 Display-Modul mit 4 Ziffern


GRAFIK 128x64 IN 2 GRÖSSEN MIT ST7565. preliminary

Technische Informatik 2 Adressierungsarten

2.2 Rechnerorganisation: Aufbau und Funktionsweise

Prozessor HC680 fiktiv

Steffen Weißer Juni 2003 TG 12/3

I2C-BUS Von Ramesh Sathiyamoorthy Klasse E4p Embedded Control Hr.Felser HTI Burgdorf

Grundlagen der Programmierung II BMI Bakk.

5 Speicherverwaltung. bs-5.1 1

80C535-Mikrocontroller-Board im Streichholzschachtelformat

Definitionen zum Verschnitt

Der I²C-Bus. Vorstellung des Inter-Integrated Circuit -Bus. Aufbau und Funktionsweise. Beispiel PortExpander am Arduino

Autonome Mobile Systeme. Dr. Stefan Enderle

SPI Serial Peripheral Interface

KERN EW-A01 Versie /99

Highspeed- Controller-Board

Grundlagen der Rechnerarchitektur. Ein und Ausgabe

Zusammenfassung der Assemblerbefehle des 8051

Grundlagen Mikroprozessortechnik

Serielle Datenübertragung mit dem Schnittstellenbaustein 8251

Lösungen zum Kurs "Mikrocontroller Hard- und Software

Teil VIII Von Neumann Rechner 1

Zugriff auf die serielle Schnittstelle im Pollingbetrieb

Remote-Objekt-Überwachung. von Jan Schäfer und Matthias Merk

Aufgabe 2 - Erweiterung um PIC und Interrupts

3 Rechnen und Schaltnetze

Interrupts. Funktionsprinzip. Funktionsprinzip. Beispiel in C

Mikrocontroller-Entwicklungskit

Mikrocontroller-Busse

Wolfgang Trampert AVR-RISC. MikroController. Architektur, Hardware-Ressourcen, Befehlsvorrat, Programmierung, Applikationen

Zusatzplatine MP-Bus HZS 562

Alle Speicherplatinen können als Programm- bzw. Arbeitsspeicher

Dieses Client-Board dient dazu, alle möglichen Peripherie-Geräte auf einfache Weise mit dem VARAN-Bus auszustatten.

DIGITALVARIO. Anleitung Bootloader. Ausgabe 0.1 deutsch für Direkt-Digital-Vario. Firmware ab Hardware 01 Seriennummer ab 0003

Vorwort 3 Inhaltsverzeichnis 5 1 Zu diesem Buch Beschreibungskonventionen Glossar 16

Industrielle Bussysteme : Modbus/TCP

Übungscomputer mit Prozessor Bedienungsanleitung

Praktikum Mikrocomputertechnik. Anleitung

2017/01/23 15:50 1/5 Bedienung

Angewandte Physik II: Elektronik

Transkript:

intern (auf CPU) PROGRAMMSPEICHER extern 2K bis 64K ROM 051: 4K max 64K 051:64K 051Speicherorganistaion 13.04.2000 - v3 extern interner XRAM DATENSPEICHER intern (auf CPU) SPECIAL FUNCTION REGISTER SFR u. oberer Datenspeicherbereich teilen sich den gleichen Adreßbereich 051speicherorganisation.mmp - 13.04.2000 EA=1 EA=0 Externer Programmspeicher Externer Programmspeicher 2000H 1fffH 0000H Interner Programmspeicher ROM- Grenze 0000H feffh Interner XRAM ff00h Externer Datenspeicher 0000H XRAM liegt im oberen Bereich des externen Datenspeicherbereiches RAM Bereich unterer Bereich indirekt und direkt adressierbar 16 Bytes mit 12 bitadressierbaren Bits 4 Registerbänke oberer Bereich indirekt adressierbar

Speicherorganisation Art des Speicher Extern o. Intern Größe Programm Speicher Extern max. 64 KByte Intern (ROM, EEPROM) Abhängig von der C500 Version 2K bis zu 64KByte Daten Speicher Extern max. 64 KByte Interner XRAM Abhängig von der C500 Version 256 Byte bis zu 3 KByte Intern 12 oder 256 Byte Special Function Register Intern 12/256 Bytes Programmspeicher Kann nur aus externem nur aus internem und einem Mix aus internem und externem Speicher bestehen. /EA-Bit (Externe Adresse) /EA=0 Mikrocontroller greift nur auf Programm im externem Programmspeicher zu, ROM-lose Mikrocontroller-Derivate verwenden diese Art des Programmspeichers C501-Derivate mit On-Chip Programmspeicher, verwenden internen Speicher. /EA=1 Wenn der Internspeicher verwendet werden soll Mikrocontroller greift nur auf Programm im internem Programmspeicher zu Wenn /EA = 1 erfolgt Zugriff auf den Internspeicher, solange nicht auf Adresse zugegriffen wird, die außerhalb des internen Speicherbereichs liegt. Dann wird auf Externspeicher zugegriffen Abbildung 1 zeigt typische Programmspeicherkonfigurationen für die beiden Fälle /EA=0 und /EA=1 ROM-Grenze entspricht kbyte internem ROM (C501). Andere Derivate haben andere ROM-Grenzen 1

EA=1 EA=0 Externer Propgrammspeicher Externer Propgrammspeicher 2000H 1fffH 0000H Interner Propgrammspeicher ROM- Grenze 0000H Die Lage der ROM-Grenze ist vom C500-Derivat abhängig Abbildung 1: Programmspeicherkonfiguration (C501) Datenspeicher Interner und externer Datenspeicher Interner Datenspeicher wird adressiert durch Verwendung von -Bit-Adressen Externer Datenspeicher und interner XRAM wird adressiert durch -Bit- oder 16-Bit- AdressenInhalt des internen Datenspeichers wird nicht beeinflußt durch Reset Nach Einschalten ist der Inhalt des Speichers undefiniert XRAM bleibt erhalten, wenn C500 im Power-saving-Mode Interner Datenspeicher Unterteilt in drei Basis-Blöcke (physikalisch separat) 12 Byte oberer interner Daten-RAM 12 Byte unterer interner Daten-RAM 12-Byte SFR-Bereich (Special Function Register) lower: 0-7fH direkt und indirekt adressierbar MOV A, direkt MOV A, @R0 Adresse in R0 Bitadressierbare Bereich (12 Bits) 20-2fH Bit 0 auf der internen Datenadresse 20h hat Adresse 00H Bit 7 auf der internen Datenadresse 2Fh hat Adresse 7fH Niederwertige 32 Bytes 4 Bänke mit jeweils GPR (General Purpose Register Blocks) nur eine dieser Bänke kann aktiv sein, um als GPR verwendet zu werden 2

SFR-Bereich und oberer-interner RAM teilen sich den gleichen Adreßbereich (0h-ffH) Zugriff muß über unterschiedliche Adressierungsmodi erfolgen Oberer interner RAM nur über indirekte Adressierung adressierbar SFR nur über direkte Adressierung adressierbar SFR s, deren Adreßbits 0-2 Null sind (0H,H,90H...f0H,ffH)= sind bitadressierbare SFR s Abbildung 2: Interne Organisation des Datenspeichers Interner Datenspeicher XRAM Einige Mitglieder der C500-Familie verfügen über einen zusätzlichen internen Datenspeicher: wird als XRAM bezeichnet XRAM liegt am oberen Ende des externen Datenspeichers (außer 502) Ist aber im Chip integriert XRAM wird auf gleiche Art und Weise verwendet, wie externer Datenspeicher Deshalb Verwendung der gleichen Befehlsstypen Typisches XRAM-Adreßmapping in Abbildung 3 Größe des XRAM ist abhängig vom C500-Derivat. (12 bis 3K Byte) 3

feffh Interner XRAM ff00h Externer Datenspeicher 0000H Abbildung 3: XRAM Memory Mapping XRAM liegt im oberen Bereich des externen Datenspeicherbereiches Externer Datenspeicher Instruktionen, die - oder 16-Bit indirekte Adressierung verwenden MOVX 16-bittige externe Speicheradressierung, verwendet DPTR MOV -bittig mit R0/R1 Special Function Register Area Alle Register mit Ausnahme des Programmzählers und der 4 GPR-Bänke befinden sich im SFR-Bereich SFR-Area umfaßt 12 Bytes adressierbare SFR s Die SFR, deren Bits 0-2 Null sind, sind bitadressierbar Bitadressen umfassen die Adressen 0H bis ffh Einige C500-Derivate haben einen zusätzlichen 12 Byte großen Bereich von SFR: mapped SFR-Bereich Das SFR SYSCON (Adresse b1h) MSB LSB 7 6 5 4 3 2 1 0 b1h - - - RMAP - - - - SYSCON Die Funktion der anderen Bits ist hier nicht dargestellt 4

Bit RMAP Funktion =0 Der Zugriff auf den non-mapped (Standard) SFR-Bereich ist eingeschaltet =1 Der Zugriff auf den zusätzlichen (mapped) SFR-Bereich ist eingeschaltet Die beiden Bits im PSW RS0 (PSW.3) und RS1 (PSW.3) selektieren die aktive Register- Bank. Damit ist schnelles Kontextswitching möglich 5

Schreib- und Lesevorgänge des mcontrollers Abbildung 4: Externer Programmspeicherzyklus Abbildung 5: Externer Programmspeicherzyklus /PSEN Programm Store Enable ALE Adress Latch Enable Zugriff auf externen Programmspeicher wird von /PSEN freigegeben An Port2 liegt durchgehend High-Byte des Adreßbusses an Port 0 wechselt zwischen Low-Byte des AB und des Datenbussses 6

Abbildung 6: Externer Programmspeicherzyklus Abbildung 7: Zeitdiagramm Befehl 002h MOV A,#23h Abbildung : Externer Datenspeicherzyklus 7

Abbildung 9: Zwischenspeicherung des niederwertigen Adressbytes Abbildung 10: Externer Programm-/ Datenspeicher

Spezielle Eigenschaften Tabelle 1: Ausschnitt aus den Spezial Function Registern 0FH Port 5 P5 0B9H Interrupt Priority Register 1 IP1 0F0H B-Register 5 0BH Interrupt Enable Register 1 IEN1 0EH Port 4 P4 0B0H Port 3 P3 0E0H Akkumulator A 0A9H Interrupt Priority Register 0 IP0 0DAH D/A Converter (U Ref für A/D) DAPR 0AH Interrupt Enable Register 0 IEN0 0D9H A/D Converter Data Register ADDAT 0A0H Port 2 P2 0DH A/D Converter Control Register 99H Serial Buffer Register SBUF 0D0H Programmstatuswortregister PSW 9H Serial Port Control Register SCON 0CDH Timer 2 High Byte TH2 90H Port 1 P1 0CCH Timer 2 Low Byte TL2 DH Timer 1 High Byte TH1 0CBH Comp/ Reload/ Capt Reg. High CRCH CH Timer 0 High Byte TH0 0CAH Comp/ Reload/ Capt Reg. Low CRCL BH Timer 1 Low Byte TL1 0CH Timer 2 Control Register T2CON AH Timer 0 Low Byte TL0 0C7H Comp/ Capt Reg. 3 High CCH3 9H Timer Mode Register TMODE 0C6H Comp/ Capt Reg. 3 Low CCL3 H Timer Control Register TCON 0C5H Comp/ Capt Reg. 2 High CCH2 7H Power Control Register PCON 0C4H Comp/ Capt Reg. 2 Low CCL2 3H Data Pointer High Byte DPH 0C3H Comp/ Capt Reg. 1 High CCL1 2H Data Pointer Low Byte DPL 0C2H Comp/ Capt Reg. 1 Low CCL1 1H Stack Pointer SP 0C1H Comp/ Capt Enable Register CCEN 0H Port 0 P0 0C0H Interrupt Request Control reg. IRCON 9

MPU3a.doc Anschlüsse des Mikrocontrollers 051 XTAL 1 XTAL 2 VDP VBB AN0 - AN7 VAREF VAGND /EA /RESET 0535 Port 0 Port 1 Port 2 Port 3 Port 4 Port 5 ALE /PSEN Port 0: Ein- und Ausgang für Daten und niederwertiges Adreßbyte Port 1: bitweise adressierbar, Port für Steuersignale (Interrupteingänge, Timereingänge) Port 2: Ausgabe des höherwertigen Adreßbytes Port 3: bitweise adressierbar, Port für Steuersignale (u.a. serielle E/A, Interrupteingänge, Speichersteuerung) Zusätzlich beim Mikrocontroller 0535 Port 4: frei verfügbar, bidirektional adressierbar Port 5: frei verfügbar, bidirektional adressierbar Tabelle 1: Ports des 0535 P0.0 - P0.7 Beim Speicheranschluß: - Zuerst Ausgabe des niederwertigen Adreßbytes - Danach Einlesen des Befehls- oder Datenbytes bzw. Ausgabe des Datenbytes P1 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 Bidirektion, bitadressierbar INT3, Externer Interrupt 3 (input) CC0, compare 0 output, capture 0 input INT4, Externer Interrupt 4 (input) CC1, compare 1 output, capture10 input INT5, Externer Interrupt 5 (input) CC2,, compare 2 output, capture 2 input INT6, Externer Interrupt 6 (input) CC3, compare 3 output, capture 3 input INT2, Externer Interrupt 2 (input) T2EX, externer Timer 2 reload trigger input CLKOUT, System clock output T2, externer Timer 2 counter input 1

MPU3a.doc P2.0 P2.7 Beim Speicheranschluß: - Ausgabe des höherwertigen Adreßbytes - Zeitgleich dazu wird das niederwertige Adreßbyte aus Port 0 ausgegeben P3 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 bidirektion, bitadressierbar RxD, Serieller Port (receive date) (input) TxD, Serieller Port (transmit date) (output) INT0, Externer Interrupt 0 (input) INT1, Externer Interrupt 1 (input) T0, externer Timer 0 counter input T1, externer Timer 1 counter input /WR, Schreibsignal für externen Datenspeicher: Übergabe des Datenbytes an Port 0 zum externen Speicher /RD, Lesesignal für externen Speicher: Übergabe das Datenbyte in Port 0 P4 P5 Bidirektional, bitadressierbar Bidirektional, bitadressierbar 051 Assembler Adressierungsarten Unmittelbare Adressierung Befehl ist unmittelbar mit der Zahl (Konstanten) verbunden. Zahl ist Teil des Befehls MOV A, # Direkte Adressierung Befehl ist verbunden mit Adreßinformation. Die Adreßinformation zeigt auf den Wert, der zu laden ist. Adresse ist Teil des Befehls. Adresse steht direkt ohne Prefix im Befehl. MOV A, 4 MOV R1, A Indirekte Adressierung Befehl enthält die Adresse des Registers, in dem die Zieladresse steht. 2

MPU3a.doc Auf den internen RAM kann mit @R0 und @R1 zugegriffen werden Auf den gesamten Code- und Datenspeicher kann mit dem 16-Bit-Register @DPTR zugegriffen werden. @DPTR besteht aus DPH und DPL MOV DPTR, #0004h MOVX A,@DPTR Indirekte Adressierung, indiziert durch Basisregister plus Indexregister Befehl enthält die Adresse des Registers, in dem die Basisadresse der Zieladresse und ein weiteres Register (Indexregister) steht. Der Inhalt des Indexregisters wird zur Basisadresse hinzuaddiert. Die Zieladreese ergibt sich also aus Dem Inhalt des Basisregisters und dem Inhalt des Indexregisters. MOV A, #1 MOV DPTR, #0003h MOVC A,@A + DPTR C steht für Codespeicher Registeradressierung Inhalt eines Registers wird in ein anderes Register geschrieben. Teilnehme können sein R0 bis R7, Akkumulator A, B-Register B, Carry-Bit CY, Datenpointer DPTR (besteht aus DPH und DPL) Transportbefehle Arithmetische Verknüpfungen Logische Verknüpfungen Setz-, Lösch-und Verschiebe-Befehle 3