Tafelanschrieb Mikrocomputertechnik WS04

Slides:



Advertisements
Ähnliche Präsentationen
Mikrocomputertechnik
Advertisements

Anzahl der ausgefüllten und eingesandten Fragebögen: 211
Mikrocomputertechnik
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
MC WS07 J. Walter. MC Einführung Organisatorisches Einsätze – Beispiele Mikrocontroller.
Mikrocomputertechnik - Kapitel 4
Bild 2.1. Logisches Symbol für D-Kippglied und Fotografie
Telefonnummer.
= = = = 47 = 47 = 48 = =
Statistiken und Tabellen
Rechneraufbau & Rechnerstrukturen, Folie 2.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 2.
µ-Controller-Labor Projekt- Prüfstandslüfter
Produkt - Präsentation
Mikrocomputertechnik-Labor WS04/05
Gliederung: Features Hardware Software Werbung.
Spielzeugsortierer Labor Mikrocomputertechnik Dozent: Prof. J. Walter
Team "Kugelsortieranlage"
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
Differentielles Paar UIN rds gm UIN
Prof. Dr. Bernhard Wasmayr
Seite 1 Prof. J. WALTER Kurstitel Stand: Januar 2000 mc Mikrocomputertechnik Herzlich Willkommen Prof. Jürgen Walter.
Herzlich Willkommen J. Walter Jürgen Walter.
Studienverlauf im Ausländerstudium
Logischen Grundverknüpfungen
Prof. Dr. Bernhard Wasmayr VWL 2. Semester
AWA 2007 Natur und Umwelt Natürlich Leben
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
Der Simple As Possible Computer
Prof. Dr. Günter Gerhardinger Soziale Arbeit mit Einzelnen und Familien Übersicht über die Lehrveranstaltung Grundlegende Bestimmungsfaktoren der Praxis.
Mikrocomputertechnik-Labor SS‘04
20:00.
© Gabriele Sowada © Gabriele Sowada 2 Manuell Beispiel 1 demonstriert die Vorgehensweise bei der manuellen Programm- Eingabe am.
„Küsse deine Freunde“ – FlexKom-App teilen
Steuerung externer Komponenten über ein USB-Interface.
Systeme 1 Kapitel 4 Prozesse WS 2009/10.
Eine Einführung in die CD-ROM
Mikrocomputertechnik 1 Einführung Prof. J. Walter Stand Oktober Mikrocomputertechnik Jürgen Walter 8PLUS5-Quickie Einfache Addition 8051-Architektur.
Wir üben die Malsätzchen
Syntaxanalyse Bottom-Up und LR(0)
Mikrocomputertechnik 1 Einführung Prof. J. Walter Stand Oktober Mikrocomputertechnik Jürgen Walter Indirekte Adressierung- Quickie Beschreibung.
Mikrocomputertechnik 1 Einführung Prof. J. Walter Stand Oktober Mikrocomputertechnik Jürgen Walter Speicher-Quickie Beschreibung.
Mikrocomputertechnik 1 Einführung Prof. J. Walter Stand Oktober Mikrocomputertechnik Jürgen Walter EVA-WIE-Quickie Eingabe – Verarbeitung - Ausgabe.
Mikrocomputertechnik 1 Einführung Prof. J. Walter Stand Oktober Mikrocomputertechnik Jürgen Walter PWM-SERVO-Quickie Ansteuerung eines Servomotors.
Addieren und Subtrahieren von Dezimalzahlen
Embedded Systems Prof. Dr. H. Kristl
Der Ablauf eines Clear Rex Klärzyklus
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Eine lllustration der Herausforderungen des Stromsystems der Zukunft
Symmetrische Blockchiffren DES – der Data Encryption Standard
Zahlentheorie und Zahlenspiele Hartmut Menzer, Ingo Althöfer ISBN: © 2014 Oldenbourg Wissenschaftsverlag GmbH Abbildungsübersicht / List.
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
FT WS2007 J. Walter. Begrüßung Intro Gateway CAN-BUS Steuergerät Projekte – Labor Schwarzes Brett BLOG.
Internettechnologie Jürgen Walter.
Parkplatz-Orga Diese Version ist vom finale Version!
Folie Beispiel für eine Einzelauswertung der Gemeindedaten (fiktive Daten)
Forschungsprojekt Statistik 2013 „Jugend zählt“ – Folie 1 Statistik 2013 „Jugend zählt“: Daten zur Arbeit mit Kindern und Jugendlichen.
Torsteuerung Marco Korrmann Dominik Sommer.
Folie Einzelauswertung der Gemeindedaten
Mikrocomputertechnik Jürgen Walter
Mikrocomputertechnik Jürgen Walter
Mikrocomputertechnik 1 Einführung Prof. J. Walter Stand Oktober Mikrocomputertechnik Jürgen Walter „EVA-WAS-Quickie“ Eingabe – Verarbeitung - Ausgabe.
Seite 1 Prof. J. WALTER Kurstitel Stand: März 2007 mc-mt Jürgen Walter Mikrocomputertechnik.
Datum:17. Dezember 2014 Thema:IFRS Update zum Jahresende – die Neuerungen im Überblick Referent:Eberhard Grötzner, EMA ® Anlass:12. Arbeitskreis Internationale.
Mikrocomputertechnik Jürgen Walter
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Seite 1 Prof. J. WALTER Kurstitel Stand: Oktober 2001 mc Mikrocomputertechnik - Kapitel 5 Herzlich Willkommen Prof. Jürgen Walter.
Mikrocomputertechnik SERVO-Kalibrations-Quickie Prof. J. Walter Stand Dezember Mikrocomputertechnik Jürgen Walter Servo-Kalibrations-Quickie Kalibration.
Mikrocomputertechnik BLIN_INT-P-Quickie Prof. J. Walter Stand Januar Mikrocomputertechnik Jürgen Walter „BLIN_INT-P-Quickie“
Mikrocomputertechnik Timer-0-1-Quickie Prof. J. Walter Stand Januar Mikrocomputertechnik Jürgen Walter „TIMER-0-1-Quickie“
 Präsentation transkript:

Tafelanschrieb Mikrocomputertechnik WS04 Jürgen Walter

Assembler übersetzt den mnemotechnischen Code in Hexademzimalzahlen Linker – bindet einzelne Programmteile zusammen Locator – legt die absoluten Adressen für den Code fest

Adressspiegelung 15. te Bit unterscheidet zwischen unterem und oberen Adressbereich im EPROM steht der Befehl ljmp 80AE 1000 0000 1010 1110 Adresse Nach dem Einschalten des Controllers wird das Programm in Programmspeicheradresse 0000h ausgeführt -> ljmp 80AE A15 = 1 bewirkt eine Umschaltung des D-Flip-Flops -> A15 wird gespiegelt -> Zugriff wieder auf das EPROM

Adressspiegelung Vertauschen von EPROM-Speicher und RAM-Speicher Verknüpfung von /PSEN und /RD Warum muss A15 gespiegelt werden? Nach dem Einschalten des Controllers wird der Befehl in Adresszelle 0000h ausgeführt -> Programm darf nicht größer als 32KByte werden

Tipps Sobald ein Programm größer als 1KByte in Assembler wird -> C Wenn das Programm größer als 100KByte ->C++ Objektorientiert noch besser ->C# C Sharp Warum diese Empfehlung? 40% - 60% effektiver

Was erwartet Sie in MC Der Dozent F11 Ich bringe mein Notebook mit Binär Code – Rechner – wissenschaftlich Wie bewerbe ich mich? Was ist eine Draisine Wo finde ich Infos zur mc Wie bestehe ich die Prüfung? Klavier spielen Computer spielen – programmieren - ASM

Internet 193.196.117.22 – www.hit.fh-karlsruhe.de ohne Firewall – für Ihren Rechner sind Sie verantwortlich

MC Vorlesung + Labor Zu Beginn: intensiv Vorlesung Multitasking – mehrere Programme /

Marko Veselcic + Uwe Zundel + FT Tutorium Mittwoch 11:30 – 13:00 FH Karlsruhe, Gebäude LI, Raum U22,

Details Netzwerk RJ 45 einstecken Probleme die länger als 15 Min. dauern…aufhören-> NachbarIn fragen 1111 1111 1111 1111 0000 0000 0000 0000 192.168.xxx.xxx wird nicht nach außen weitergeleitet. – Adresse WaveLan cmd-Box ipconfig ipconfig /all ping

Wichtige Internetadressen www.hit.fh-karlsruhe.de www.keil.com

Controller Leihe Din-A4 – eintragen in Nachricht an Bibliothek

Arbeiten Sie mit dem Rechner!

Mein erster Befehl in 8051-Assembler Maschinensprache Programm zum Übersetzen mov A,R1 ;Inhalt von R1 in A mov R1,A ;Inhalt von A in R1 nop ;No Operation

Wie komme ich ins Netzwerk HIT 193.196.117.20-99 interne Adressen fest installierten Rechnern 193.196.117.100-180? Adressen werden über RZ zugewiesen – DHCP proxy.fh-karlsruhe.de Port: 8888 WaveLan Adresse: 193.168.xxx.xxx proxy ausschalten

Zusammenfassung Befehle auf DOS-Ebene EURO_535-Karte Software – Keil – www.hit.fh-karlsruhe.de/8051 www.extrahertz.de mov A,R1 ; Schiebe Inhalt von R1 in A mov R1,A end Ebenenmodell

Arbeiten am PC Zum Konfigurieren – Administrator Normales Arbeiten - Hauptbenutzer

Eierlegende Wollmilchsau Der vernetzte PC kann alle Geräte Maschinen Medien simulieren – nachahmen und damit teilweise ersetzen

Denken? Herr Kraft hat Haare mit der Dicke von 45µm. Wie oft muss er sein Haar spalten damit er die Strukturbreite von modernen Prozessoren mit 90nm erhält? Alle 1,5 Jahre verdoppelt sich die Anzahl der Transistoren und damit die Rechenleistung Moor‘sche Gesetz

Neuer Befehl mov A,#0A5 ;Lade den Akku mit 165 AH, Ah, 0xA 1010 5 0101

Zusammenfassung 11.10.2004 Umsetzer: Seriell USB V24 – USB RS232C – USB Lösung für ca. 30 Notebooks Begriffsbestimmung: µC, µController, PC Schaltwerk – Rechenwerk Peripherie Pegelunterschiede CMOS – TTL Umgang mit EURO_535-Karte – Wie fasse ich die „Karte“ an?

Zusammenfassung 2 Belwue.de – BadenWürttemberg Forschungsnetz WaveLan – Wireless LAN Datenübertragung – Geschwindigkeit kbps – kB/s

Digitaltechnik - CBT Nur die notwendigsten Funktionen Computer Based Training

Arbeiten am PC Prinzip: Festplatte C: für Programme Festplatte D: für Daten Hausaufgabe: CBT Neu packen! Als ZIP Verwenden Sie nur Entwicklungs-Programme von Firmen die sehr wahrscheinlich wirtschaftlich überleben!

Betreuung: Herr Wolfgang Loes – Gebäude P – Raum 203 Tel. 1325

Zusammenfassung 12.10.2004 Logische Verknüpfungen UND, ODER, NOR, NAND, Exclusiv-Oder = Antivalenz, Äquivalenz /R – LOW-Aktives Signal Wahrheitstabelle, Signal-Zeit-Diagramm, Funktionsgleichung, Blockschaltbild CBT-2 D-Flip-Flop Initialisierung mit /S /R Speicherung erfolgt mit steigender Flanke

CBT - 2 Register mit steigender Flanke erfolgt der Speichervorgang Latch mit fallender Flanke erfolgt der Speichervorgang Sobald LE auf HIGH liegt wird der Eingang auf den Ausgang durchgeschaltet

Zusammenfassung Dienstag 12.10.04 Keine Vorlesung aufgrund Baulärm! Vorlesung wird nachgeholt! Schreibmaschinenkurs wird empfohlen!

Simulator Ziel: Mein erstes Programm mit 8051-Assembler $ - Anweisungen an den Assembler ; Kommentar jnb P1.1,EIN ;Springe bei P1.1=„0“ ;nach EIN jmp LABEL ;Springe nach LABEL clr P3.2 ;Setze Port P3.2=“0“ setb P3.2 ; Setze Port P3.2=“1“

Weitere Befehle end ORG 100H ;Setze den PC Program ;Counter auf 100H

Programmentwicklung PDL Program Design Language WAS wird entwickelt? zuerst die Kommentare, dann die Befehlsumsetzung Sprachunabhängig – Umsetzung in Assembler oder C C++ ist bei 8051-Controllern noch nicht umsetzbar

Programmentwicklung Keil µVision Installation Patch installiert – Erweiterung: Wie entwickeln Sie einfach Programme für EURO_535 = Volkscontroller Embedded System = Eingebettet = der Controller ist in das System integriert Patch stellt die Verbindung zur Hardware her *.pdf – Controller hat mehrere Register 80535 – Controller hat A/D-Wandler Man muss der Software die Hardware bekannt machen!

Debug Mode Entwanzen Viele Fehler welche in der Software vermutet werden, sind in der Hardware (Controllern) F5 – RUN F11 – Einzelschritt

Immer wenn Sie am PC nicht… weiterkommen RECHTE MAUSTASTE – kontextsensitives Menü

Breakpoint setzen Im Programm „RENAUD“ wird ein Breakpoint gesetzt.

Zusammenarbeit Ordnerstruktur übernehmen C:/8051/ASM Assembler – Programme In Ordner ASM alle Projekte Namensbezeichnung übernehmen

Empfehlung Programm im Simulator entwickeln Programm auf Hardware testen – Hardware-Debugger – Remote Debug System

Was wurde bei der Entwicklung…. alles erzeugt REAUD.LST – Listing Datei LOC Location – Ort vom Programmcode PC Programmspeicherplatz OBJ Object Code

Was haben wir heute gemacht? Wo und wie wird das Programm abgespeichert? Komponenten Breakpoint setzen Zusammenhänge der Entwicklungsumgebung

Evaluation Jede Kritik zur Verbesserung der Vorlesung und des Labors ist willkommen.

Statistik WLAN - Notebooks 66 Studierende 8 kein Notebook 18 WLAN 40 per LAN

WaveLan 802.11b/g – 2,4 GHz 11Mbit/s 54MBit/s 802.11a 5,4 GHz 54Mbit/s bis 108Mbit/s

Projekte - Dokumentation Projekte aus dem letzten Semester SS04 Im Musterweb Mindmap WS04-Projektname http://mic.fh-karlsruhe.de/projekte/

Frontpage-Seitenerstellungsprogramm Integration in Betriebssystem gegeben Datenbankanbindung sehr gut realisiert Layout verbesserungswürdig

Musterweb: Entwurf und Gestaltung + MC Download bei Prof. Dr. Weber Entpacken auf lokale Platte

Vorsicht ….wird teuer http://mic.fh-karlsruhe.de/projekte/WS04-Musterweb Veröffentlichen Benutzer mic-ss04 PSW: Regatta1 Vorsicht: Startseite beachten Startseite, je nach Server unterschiedlich

Wo wird veröffentlicht? http://mic.fh-karlruhe.de Warum: wird nicht gelöscht wenn der Student die FH verläßt. Walter sichert am Ende des Semesters

Guten Morgen! Keil Simulator Seitenerstellung / Dokumentation im Internet / Intranet für Methodisches Vorgehen

Test des Befehls: mov A,R1 mov R1,#0A5h Test!

Wichtig! Pegelerzeugung

/OE Output Enable -> bei 1-Pegel wird freigeschaltet / Verneinung

Übung Datenübergabe Nach dieser Übung wissen Sie: Was macht der Befehlinterpreter Was macht das Steuerwerk

Guten Morgen Auswahl von Registern Verbindung von Registern mit Bussen - Datenbus Decoder – Adressen – Adressbus 15 Adressleitungen -> 32768

Guten Tag Blockschaltbild EURO_535

Zugang zum Internet DNS Domain Name Service proxy.fh-karlsruhe.de port 8888 Für lokale Adressen Proxy umgehen *.fh-karlsruhe.de

Kondensatoren 100nF - Blockkondensatoren – schlechte Kondensatoren tan alpha (nicht Energie speichern – sondern Spannungsspitzen zerstören) 10µF - Glättungskondensator

Herzlich willkommen Besprechungstermine Dienstag/Mittwoch Labor vereinbart teilweise Schwierigkeiten da Sprachunterricht nachmittags - Dozent verlegt auf die Abendstunden Blockschaltbild Euro_535 und Schaltbild Euro_535 Internetführerschein Multiple-Choice Fragen Evaluation Pegelerzeugung

Portfunktionen EIN-AUSGANG ca. 50kOhm 80535 P1.1 Mäuseklavier

Der rote Faden! Zwiebelmodell: von außen nach Innen vordringen / schälen Zunächst wird das Kernsystem betrachtet Alle 8051-Befehle werden ausgeführt! Bei neuen / erweiterten Controllern der 8051-Familie kommen nur neue Register hinzu. Vergleich REG51 mit REG535 Alle Register von REG51 sind im REG535 enthalten

Drei wesentliche Signale /WR Schreiben auf Datenspeicher /RD Lesen vom Datenspeicher /PSEN Lesen vom Programmspeicher Alle Bezeichnungsweisen aus Sicht des Prozessors! DIL Dual Inline Version Wie der Chip in die Karte kommt? Video Kapitel 3 Folie 9 – Ende - Bis später….

Guten Tag - 8051 – Ports Ports – innere Aufbau und äußere Beschaltung Unterschiede 8051 – 80535 REG535.PDF REG51.PDF Zwiebel Pin Definition Ports können mehrere Funktionen haben: Ein- Ausgang, Adressbus, Datenbus, Auxiliary Functions

Port 3 – besondere Funktionen RxD, TxD – Empfangen und Senden über serielle Schnittstelle T0, T1 – Timer 0,1 /INT0, /INT1 – Hardware-Interrupt /RD, /WR Lesen und Schreiben auf Datenspeicher

Fan Out Ausgangsleistung von einem Port bei CMOS max. 2mA Vorsicht beim Anschluss von Leuchtdioden! Strombegrenzung beachten Spezifikation: Jeder Ausgang kann 4 LS TTL-Lasten treiben

Beschaltung von Port 0 Normalerweise Float- 50 kΩ gegen Vcc zusätzlich verschalten – nur an Port 0 An Port 0 ist der Datenbus: Port 0 kann 8 TTL LS-Lasten treiben

Schreiben auf externen Datenspeicher Übung Schreiben Sie ein Programm „EXT_A5“ welches bei: T1 betätigt: A5h in den externen Speicher auf Adresse 2000h schreibt. T2 betätigt: 5Ah in den externen Speicher auf Adresse 2000h schreibt. mov DPTR,#2000h movx @DPTR,A Bitte PDL verwenden – zuerst Kommentar was gemacht wird.

Externer Datenspeicher X: = Bezeichnung für externen Datenspeicher C: = Bezeichnung für externen Programmspeicher D: =Bezeichnung für internen Datenspeicher B: =Bezeichnung für bitadressierbaren Speicherbereich I: =Bezeichnung für indirekt adressierbaren Speicherbereich

Neuer Befehl inc DPTR ;DPTR+1 Neue Aufgabe Beschreiben Sie den externen Datenspeicher von 2000h -20FFh mit A5h (Hausaufgabe für Walter) djnz R1,MARKE ;Dekrementiere R1 falls R1 ≠0 springe nach MARKE Übung: 5A in die Speicherzellen 2000h-20FFh bei T2=„0“ schreiben

Vielen Dank für Ihre Aufmerksamkeit!

Label 5A als Label – geht nicht, da eine Zahl Eine Marke darf nicht mit einer Zahl beginnen

Toll ! Bei allen Studenten laufen die geliehenen VolksController! Kompliment an Betreuer!

Guten Morgen Wo waren Sie denn?????? Mechatronik-Award Port – Ein-Ausgang, Funktionen Register djnz Rn,SPRUNGMARKE Programm: „EXT_BER“ Beschreiben vom externen Speicher von 2000h bis 2030h

Programm: MUEDE Beschreiben Sie den externen Datenspeicher: T1 mit A5h von 2000h…..2FFFh

Denken, Programmieren, Debuggen Reihenfolge!!! Denken, Programmieren, Debuggen falsch: Programmieren, Denken, Debuggen

Überlegungen 2FFFh ……2000h FFFh – 0000 1111 1111 1111 Register ist 8 Bit breit -> zwei Register werden benötigt für 16Bit-Zahl R1 = LOW BYTE = 0h = innere Schleife R2 = HIGH BYTE = 10h = äußere Schleife Bei 8-Bit Controller gilt: Alle Register sind 8 Bit breit – außer DPTR, PC Kombinationaus 2 8 Bit Registern DPTR = DPH + DPL

Guten Morgen Programm „muede“ Programmentwicklung durch Variation von „alten“ Programmen. -> Programme müssen korrekt dokumentiert sein! Nur dokumentierte Programme sind existent.

Grundlagen movx @DPTR,A x -> externer Datenspeicher Adresse 2000h X:0x2000 DPTR Datenpointer 16 Bit breit DPTR DPH, DPL Bei 8051 nur 1 Datenpointer Bei 80537, 80517 gibt es 8 Datenpointer R1, R2 als Zählregister -> 8Bit Breite innere und äußere Schleife Breakpoints setzen

Ports 8051 Port 0 – I/O – Adressbus LB – Datenbus Port 1 – I/O Port 2 – I/O – Adressbus HB Port 3 – I/O – Auxiliary Functions - /INT0, /INT1, /RD, /WR, T0,T1, RxD, TxD

USART U – universal S – synchron – 1Mbit/s A – asynchron – max. 115 KBit/s R – Receiver T - Transmitter

Zwei Adress-Zeiger DPTR = DPH + DPL PC = PCH + PCL

Guten Morgen Nur dokumentierte Software ist existent Denken, programmieren, debuggen Programm mit zwei Schleifen „MUEDE“ In sich geschachtelte Schleifen Bitbreite 16-Bit – 2000h-2FFFh 2 Register – R2, R1 Ports verfeinertes Blockdiagramm Richtungen – Datenwege Adresserzeugung -

16-Bit Register DPTR Datenpointer – lässt sich direkt laden PC Program Counter – Adresse auf Programmspeicher – lässt sich nicht direkt laden Nur bei 80515 gibt es internen ROM Bei 80535 ist kein interner ROM vorhanden 80535 wird nicht mehr produziert 80C515C 8051-Controller mit CAN-Bus

Programmieren - Controller Zuerst wird die Funktionsweise der Hardware programmiert Modifizieren und konfigurieren der Hardware Zusammenspiel Hardware + Software Hardware ist die wesentliche Voraussetzung damit Software „läuft“ TMOD – TCON SCON – TCON

Blinken mit Schleife BMS Lassen Sie die Leuchte an Port 3.2 mit der Frequenz 1 Hz blinken. (0,5s aus – 0,5s ein) PDL – Was wird gemacht? Wie wird 0,5 s erzeugt – Warteschleife mehrere Register schachteln MUEDE auf Dauer untersuchen. -> Ergebnis : CPU macht nichts anderes als zählen – Gezieltes Spielen ungenau ideal: Zeitgeber mit der Dauer von 50ms

Timer - zählt bis 50000 15536 ……65535 -> Überlauf -> Automatisches Wiederladen mit 15536 Geheimnis: TIMER2 Mit Timer 2 erzeugen wir 50ms Wenn Überlauf auftritt -> TF2 Flag wird gesetzt Flag? - Flagge

Blinken mit Timer 2 – BMT2 Guten Morgen CRCL, CRCH =Compare – Reload – Capture CCL#,CCH# Wir möchten die Funktion „Wiederladen“ T2CON Control Register Timer 2 SFR Special Function Register Controller wird eingeschaltet -> Alle Register sind auf „0“ – Ausnahme: Ports, Serielle Schnittstelle SBUF, Stackpointer

Überlegung zum Programm Hardware initialisieren - Voreinstellungen der Hardware durchführen LABEL: Auslösen des Vorgangs mit Taste 1 10*50ms warten komplementieren Sprung nach LABEL

Guten Morgen BMT3 – Das Programm ist schlecht programmiert Prozessor wartet auf TF2 Flag Kann während dieser Zeit nichts anderes machen - > Schlecht Beispiel: Warten auf Beginn Vorlesung

Interrupt wird zugelassen Allgemeine Interrupt-Freigabe (EAL) Spezielle Interrupt-Freigabe (ET2) für Timer 2 Ab dem Interrupt-Vektor –spezielle Adresse im Programmspeicher, durch Hardware vorgegeben- wird das Interrupt-Programm geschrieben. Sobald ein Interrupt auftritt, das EAL-Bit und das spezielle Interrupt-Bit freigegeben ist, wird das Programm am Interrupt-Vektor fortgesetzt.

Subroutine - Interrupts Subroutine – call immer mit ret abschliessen Interrupts immer mit reti abschliessen

Aufgabe Laden Sie das Programm BMT_MI Führen das Programm im Debugger aus Breakpoint in der ISR setzen cpl P3.2 Timer2 ist 10 mal übergelaufen Ändern Sie das Programm auf T=2 Sekunden

Guten Morgen Interrupt Freigabe EAL Allgemeine Spezielle ET2 Interrupt-Vektor An einer Adresse im Programmspeicher steht das auszuführende Programm call mit ret abschliessen

Kleine Aufgabe An welcher Stelle im Programmspeicher PC wird die ISR_T2 ausgeführt?

Der Stackpointer Ist eine Adresse, welche auf eine Adresse im internen Datenspeicher zeigt. Diese Adresse im internen Datenspeicher enthält die Rücksprungadresse.

Was wurde begriffen? Interrupt – Funktion – Ablauf Test im Simulator Funktion Stackpointers Wo stehen die Rücksprungadressen? nicht vergessen – nicht überschreiben Listing-File - wo finde ich die Adressen vom Programmspeicher Konfigurieren der seriellen Schnittstelle am PC Anschließen der EURO_535-Hardware

Neue Hardware am Rechner Administrator wird benötigt! Datensicherung – jeder ist selbst verantwortlich

Serielle Schnittstelle SCON Control-Register für serielle Schnittstelle SBUF (senden) Register zum Senden SBUF (empfangen) Register für den Empfang Port 3.1 = TxD Transmit - senden Port 3.0 = RxD Receive – empfangen

Aufgabe Mit einem Terminalprogramm wird ein großer Buchstabe an die Euro_535 gesendet, in einen kleinen gewandelt und an das Terminal zurückgesendet. Lösung großer Buchstabe in kleinen wandeln: in hex: 20h addieren Einstellungen auf PC-Seite + Euro_535 Herausforderung: Serielle Schnittstelle 1 wird zum Debuggen benutzt -> Serielle Schnittstelle 2 keine „echte serielle Schnittstelle -> Programm seriell2

Serielle Schnittstelle Ablauf Einstellungen der seriellen Schnittstellen SCON Control serielle Schnittstelle PCON Control Power Verfahren: Interrupt -> PC? Interrupt-Vektor =Adresse im Programmspeicher: 0023h Fundstellen für Interruptvektoren: Buch Seite S. 115 Users Manual S. 240 Interrupt-Einheit programmmieren

Programm: SER_ZEICH Ausführung im Simulator Wie funktioniert das Programm? Über Serial Window #1 wird ein großer Buchstabe gesendet -> Interrupt wird ausgelöst -> Programm wird an 23h fortgesetzt Subroutine – Unterprogramm SBUF->A A+20h A->SBUF RI+TI zurücksetzen ->

Programm: SER_ZEICH2 Unterprogramm mit „ret“ beenden Interrupt mit „reti“ beenden Warteschleife Bitte Programm laden und im Debugger testen Eingabe von großen Buchstaben Breakpoint in Subroutine: SERINT: setzen

Interrupt - Pollen Briefkasten immer wieder nachschauen ist etwas da -> Verfahren: pollen Schalter der Öffnung detektiert und rote Lampe geht an: Interrupt

Serielle Schnittstelle interner Aufbau mit Shift-Registern SBUF /WR /RD Vorsicht Bits zur Kontrolle der seriellen Schnittstelle sind verteilt auf: SCON PCON –SMOD ADCON –BD +evtl. zur Synchronisation CLK

Seriell2 Programm für eine per Software realisierte Schnittstelle (COM2) Port 1.4 RxD2 Port 4.7 TxD2

Kompatibilität Ältere Software muss auf neuerer Hardware laufen Bei der Entwicklung Restriktionen – aber die Mehrarbeit lohnt sich! Die meisten Kosten sind in der Software

Empfehlung für Portbelegung P1.1 –P1.3 Servomotor P1.4 COM2 Port 3 – Sonderfunktionen Port 4 frei!!! Ausgänge Port 5 frei!!! Eingänge Port 6 A/D-Wandler

A/D-Wandler Port 6 Sample and Hold Wandlungszeit 15µs …20µs Bitbreite 8Bit…..10Bit 5V t

Auslösen der Wandlung mov DAPR,#0 ;Wandlung wird ausgel ;Bereich 0..5V DAPR-Register: Low-Nibble – Vorgabe von unterem Bezugspegel High – Vorgabe von oberen Bezugspegel Mit DAPR wird Messbereich vorgegeben Vielen Dank auf Wiedersehen!

Kleine Aufgabe Lösen Sie eine A/D-Wandlung aus, sobald T1 betätigt wird. Schieben Sie den Inhalt von ADDAT in den Akku Programm: „ADWP“ A/D-Wandlung Primitiv Tipp: Wandlungszeit ~18µs Solange die Wandlung läuft ist BSY-Bit gesetzt

Guten Morgen PSW Program Status Word CY Carry-Bit

Zahlendarstellung char 0…255 – 0h…FFh unsigned integer 0…255 Vorsicht bei C 0…65535 signed integer -128…..+127 negative Zahl das vorderste Bit = 1 bei C -32768…..+32767 Negative Zahlen werden im Zweierkomplement dargestellt 1011 0010 Zahl 0100 1101 1 0100 1110 Zweierkomplement der Zahl

Kleine Übung Berechnen Sie das Ergebnis der Subtraktion: 0 – 103 0h-67h=99h ????? im Mikrocontroller WARUM????? mit Hilfe von AN0_COD Darstellung von negativen Zahlen im Zweierkomplement. 99h = 1001 1001b -> -110 0110b +1b =-110 0111b=-103

Guten Morgen Stackpointer: Adresse im internen Datenspeicher, welche eine Adresse enthält Stackpointer hat nach einem RESET den Wert 07 - Überbleibsel aus der 8048-Zeit

Anschluss Servomotor Rot +5V – A4 Braun GND – A21 Orange Steuerung - C13 Durch Veränderung des Compare-Registers wird die Pulsweite moduliert – verändert. Programm „Servo.asm“ Wichtig: Treiberbaustein zwischen Servo + µ-Controller zum Schutz des Controllers Servomotoren sind nicht kalibriert Wo ist 0°? Kalibration mit µ-Schalter

Servo – Timer2 Kombination „20ms“ von Timer 2 mit Interrupt -> 50 mal zählen -> 1s Die CPU wird lediglich durch ISR Interrupt Service Routine belastet. PWM zur Leistungsansteuerung PWM zur D/A-Wandlung

Guten Morgen Interrupt – Ablauf Adressbereiche Programmspeicher – PC = Adresse des Programmspeichers – Programmspeicher lesen: /PSEN Datenspeicher – DPTR Datenspeicher lesen - /RD - /WR ->zwei getrennte Adressgeneratoren / Adresszeiger

EURO_535-Karte Programmspeicher? Datenspeicher? Der große Trick: Datenspeicher und Programmspeicher werden vereint Programm in den Datenspeicher schreiben Der Controller spricht den Programmspeicher an – greift aber auf Datenspeicher zu

8051-Architektur Jeder 8051 hat eine Harvard-Architektur Programmspeicher und Datenspeicher haben gesonderte hardwaremäßig getrennte Adressbusse. Durch ein spezielle Hardware-Verknüpfung lässt sich aus der Harvard-Architektur eine von Neumann Architektur herstellen von Neumann-Architektur: Daten und Programme wild gemischt Praktische Auswirkung ->PC Laufwerk c: - Programme d: - Daten

Kleine Aufgabe Auf die Adresse 127 wird im Speicher 0..FFFFh zugegriffen. Welche Bitkombination liegt an den 16 Leitungen an? 0000 0000 0111 1111b = 127 0000 0000 1000 0000b = 128

Memory mapped Voraussetzung: Von Neumann Architektur oder Harvard Architektur Im Datenspeicherbereich liegen Periphere Einheiten Bsp. A/D-Wandler serielle Schnittstelle Interrupt-Controller I2C

Memory mapped 2 Bsp. EURO_535 ab Adresse 1000 0000 0000 000 können periphere Bausteine liegen Busteine werden wie eine externe Speicherzelle angesprochen

Neue Aufgabe unteren 32 KByte oberen 32 KByte Es liegt ein Adressbereich von 0…FFFFh 64KByte vor In welchem Bit unterscheidet sich der untere und obere 32K Adressraum 0000 0000 0000 0000 0111 1111 1111 1111 1000 0000 0000 0000 1111 1111 1111 1111 Korrekte Antwort: im 15.ten Bit unteren 32 KByte oberen 32 KByte

Bsp. Harvard-Architektur DSP Digitale Signalprozessoren haben eine Harvard-Architektur 8051 hat normalerweise Harvard-Architektur zwei Adressgeneratoren

/PSEN - /RD, /WR Beim Zugriff auf den Programmspeicher wird /PSEN aktiv Beim Zugriff auf Datenspeicher wird /RD oder /WR aktiv Die Adresse aus den beiden Adressgeneratoren wird immer an Port0 und Port 2 ausgegeben. Aus der Harvard-Architektur wird durch eine UND-Verknüpfung der Signale /PSEN und /RD eine von Neumann-Architektur

Warum funktioniert EURO_535 Monitorprogramm auf EPROM Verbindung zwischen PC und EUR_535 Das auf dem PC entwickelte Programm wird in den Datenspeicherbereich von 0000h bis 7FFFh geschrieben. Greift der 8051-Controller auf Programmspeicher zu – greift er auf die Daten=Programme im Datenspeicher zu, da /PSEN mit /RD verknüpft ist.

Übung Vergleichen Sie beim Programm: „EIN_AUS“ den Inhalt von Programmspeicher und Datenspeicher im Debugger. – !Remote-Debug-System -> Inhalt von Programmspeicher und Datenspeicher ist bei Vernüpfung von /PSEN und /RD identisch!

Ein erfolgreiches NEUES JAHR EPROM-Simulator – sehr selten – nicht effektiv zur Programmentwicklung Remote-Debug-System Emulatoren – Rüssel Simulieren mit Hardware den Prozessor – sehr teuer

Tipps zur Softwareentwicklung Voraussetzung Viele Programm-Module z. Bsp. call – ret z.B. I2C Viele Interrupts – reti -> viele Rücksprungadressen werden gespeichert im internen Datenspeicher – ab Adresse 08h Stackpointer auf 07h Lösung: mov SP,#2Fh

Weitere Vorgehensweise Kapitel 3 – Bild 3.26 wurde noch behandelt Vorsicht: Signalformen werden bei unterschiedlichen Herstellern verschieden definiert – Blick in Datenbuch Kapitel 4 – Reste der HITEX-Entwicklungsumgebung sind im Buch zu finden.

Guten Morgen DOS Disc Operating System Windows Server 2003 – Windows XP Longhorn „Zeitschriften“ im Internet für Mikrocomputertechnik www.heise.de c‘t www.chip.de www.zdnet.de 1920x1080 Pixel HDTV 1280x720 Pixel HDTV

Betriebssystem 01 DLL Dynamic Link Library DDE Dynamic Data Exchange Polling – Interrupt Zeitscheibenmodelle Multitasking – Mehrere Programme können „gleichzeitig“ ablaufen kooperatives Multitasking preemptive Multitasking – Windows XP Taskmanager

Betriebssystem 02 Windows CE Handy: Symbian, Palm OS Linux relokatibler Code – verschiebbarer Code – Der Code lässt sich in verschiedenen Speicherbereichen ausführen. Bsp. Effektivwertmesser BIOS Basic Input Output System AIDA32 bei zdnet – Diagnose des Rechners

Auswahl von Controllern Options for Target – Device in µVision Buch S. 214 MIPS Million Instructions Per Second http://www.keil.com/dd/parm_search.asp

Stand alone System Das Programm *.hex wird in ein EPROM gebrannt – es wird nur noch der Controller mit etwas Peripherie - Hardwarebeschaltung benötigt Anstatt EPROM kann auch Flash-Speicher verwendet werden.

Entwicklungsumgebung SFR Alle Special Function Register sind in der reg*.pdf aufgeführt.

Ein herzliches Grüß Gott Softwareentwicklung Was will der Kunde? Oberfläche festlegen Handbuch schreiben dann erst programmieren kleine Programmmodule programmieren und austesten – Vorsicht: Zeit Controller Softwareentwicklung Hard- & Software testen

PDL Program Design Language Was wird programmiert Wie wird programmiert -> abhängig von der Zielumgebung: C oder Assembler C++ CSharp

*.hex Diese Datei wird für das EPROM benötigt Vorsicht: externer Datenspeicher ab 8000h Adressumschaltung wird nicht aktiviert Start Off-chip XDATA memory auf 8000h

Relokatibler Code verschiebarer Code Die Programmteile sind an beliebigen Programmspeicheradressen im Programmspeicher auszuführen CSEG -> RSEG Nur ein Progammteil liegt auf „CSEG 0“ – alle anderen Module müssen relokatibel sein

Methodisches Vorgehen nach VDI VDI 2222 / VDI 2224 Tipp „lesen“

Guten Tag Kleine Module testen Bsp. EPROM-Betrieb Embedded System Der Controller ist in das System eingebettet

Wichtige Termine Präsentation der Mikrocomputer-Projekte 8.2.2005 – 10:00 – Ort HIT Prüfung: Mikrocomputertechnik FT + MT 2.2.2005 -11:00 – 13:00 Dozent steht am Freitag 28.1. ab 8:00-18:00, für Klausurfragen zur Verfügung.

Prinzipielle Verfahren Betriebssystem Interrupt – Ereignisorientiert Polling – Abfragen/nacheinander Abarbeiten Beispiel: „Aufnahme Läuft“ Kombination Beim T2 Polling Bei T0 Interrupt

Adressierung Mit 32 Bit lassen sich 4 GByte adressieren Linearer Adressraum Segmentierter Adressraum

Mischen con C und *.A51 Komplizierte Übergabe Sehr aufwendig in einer gemischten Umgebung zu entwickeln Speicherverwaltung immer kritisch

Warum Registerbänke jeweils einer Registerbank wird ein Task zugeordnet Einer ISR wird eine Registerbank zugeordnet

Adressräume Sie führen die Arbeit des Betriebssystems: Speicherverwaltung durch!

Servomotor langsam verfahren Periodendauer PWM -> 20ms – 50Hz Reloadbetrieb - 45536 Pulsweite: 0,5ms bis 3ms ->19,5ms – 17ms 65536-500=65036 65536-3000=62536 Verfahrweg 2500 Schritte CCH1,CCL1 = 16Bit Das einzige 16Bit-Register welches mit inc arbeitet: DPTR Idee: Wir missbrauchen DPTR

SRV_INTLR SeRVomotor mit INTerrupt Links Rechts Gibt es bereits ein Programm??? ServoLR – aber kein Interrupt Timer2 Interruptvektor – 02Bh Programm mit „NEUES EURO_535-Projekt“ Programm von: Name Was macht das Programm Unterschied bei Interrupt: T0,T1 – T2 TF2 zurücksetzen Wichtig: Servo nicht direkt an Port