Praktikum Mikrorechner 5 (Bitadressen, Sprünge und Schleifen)

Ähnliche Dokumente
Praktikum Mikrorechner 8 (Pulsweitenmodulation und Automaten)

Befehlssatz der Mikrocontroller der 51er -Familie

Befehlssatz der Mikrocontroller der 51er -Familie

Praktikum Mikrorechner 4 (Bitmanipulation und Spezialregister)

Praktikum Mikrorechner 11 (Timer 1)

Zusammenfassung der Assemblerbefehle des 8051

Praktikum Mikrorechner 9 (serielle Schnittstelle)

MOP: Befehlsliste für den Mikrocontroller 8051

Praktikum Mikrorechner 3 (Adressierungsarten)

4 Assembler für die 8051-Controller-Familie

Komponenten eines Mikrocontrollers

Praktikum Mikrorechner 1 (Einführung)

Zähler- und Zeitgeber-Baugruppen

$NOMOD51 $INCLUDE (reg515.inc) ; Ein Zeichen auf Tastendruck S1 senden...

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

Die 8051-Mikrocontrollerfamilie. 3. Die 8051-Mikrocontrollerfamilie

Der Anschluss eines seriellen 16kb EEProms an die I²C Schnittstelle ist denkbar einfach: Hier als Beispiel mit einem ST24C16:

Speicheraufbau des AT89C5131

Mikrocontrollertechnik

EDT-REFERAT Adressierungsarten

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 )

Prof. Dr. Sven-Hendrik Voß Sommersemester 2018 Technische Informatik (Bachelor), Semester 2 Termin 5, Maschinenorientierte Programmierung

einfache PIC-Übungsprogramme

Architektur der Intel 8051 Familie und Grundlegende Programmierung Reto Gurtner 2005

Prinzipieller Grundaufbau eines einfachen C-Programmes

Gegenüberstellung von Assembler- und C-Programmierung

Stichwortverzeichnis. Stichwortverzeichnis

Sprungbefehle und Kontroll-Strukturen

von Alexander Wenk 2006, Alexander Wenk, 5079 Zeihen

Universität Paderborn Fakultät für Naturwissenschaften - Physikalisches Praktikum Versuche mit Microcontroller-System

FAKULTÄT FÜR INFORMATIK

Mikrocomputertechnik mit dem Controller C167

BMC - Mikrocomputertechnik 2017 Aufgaben & Beispiele

Laborübung 3. Abnahme (bitte vom Betreuer per Unterschrift bestätigen lassen) Aufgabe 1 Aufgabe 2 Aufgabe 3 Aufgabe 4 Aufgabe 5

1.7 Atmega-Programmierung in ASM/Verschachtelte Schleifen

MC Mikrocomputertechnik (MC) Bitte nehmen Sie sich ein Exemplar der bereitliegenden Kopien

myavr Programmierung in C

Unterprogramme mittels Stack (Forts.)

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

Lösungen der Aufgaben

Daniel Betz Wintersemester 2011/12

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

Tutorübung 7: Mikroprogrammierung I

Skriptum Mikrocontroller-Systeme. Kapitel 6: Kapitel 7:

Inhaltsverzeichnis 1 Ein-Bit-Rechner Mikrorechentechnik-Grundlagen Das Mikrocontrollersystem ein Überblick am Beispiel MSP430F1232

Grundlagen Mikroprozessortechnik

Informatik für Schüler, Foliensatz 18 Rekursion

Syntax von LOOP-Programmen

Stack, Stackpointer, Unterprogramm HP: 0 * 1 * 2 * 3 CAL UP1 4 * 5 * 6 CAL UP2 7 *... UP1: 30 * 33 RET UP2: 40 * 41 CAL UP1 42 * 43 RET

Frei programmierbare 4-8 Digit / Bargraph LED-Anzeige für µcontrolleranwendungen

C++ - Einführung in die Programmiersprache Schleifen

Informatikwerkstatt, Foliensatz 1 Einführung bis Bitverarbeitung

Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Praktikumsprotokoll Mikrorechentechnik I Versuch. Assembler (A 03)

µ-computertechnik Bachelor Lösung WS 2009

Interruptverarbeitung. 7. Interruptverarbeitung. 7.1 Ablauf einer Programmunterbrechung

Laborübung 4. Abnahme (bitte vom Betreuer per Unterschrift bestätigen lassen) Aufgabe 1 Aufgabe 2 Aufgabe 3 Aufgabe 4

1.2 LOOP-, WHILE- und GOTO-Berechenbarkeit

Der Toy Rechner Ein einfacher Mikrorechner

HD44780-LC-Display am Atmel-AVR Mikrocontroller

MACRO.BIB. .XLIST ; Konstanten-Tabelle (Equates) CR EQU 0DH LF EQU 0AH BELL EQU 07H BLANK EQU 20H ESCAPE EQU 1BH

Mikrocomputertechnik mit Controllern der AtmelAVR-RISC-Familie

10. Der Befehlssatz des MSP 430

SMP Übung 8 - Lösungsvorschlag

Technische Informatik II Rechnerarchitektur

Grundbegriffe der Informatik

8.0 Erweiterung mit dem 8 Bit D/A Maxim MAX5382

Kurseinheit 3. Spaß an Technik: Elektronik & Mikrorechner. 1. Elektronik. 3. Software. 2. Mikrorechnertechnik. Anhänge. Der Piezowandler Frequenz

4.0 Der Atmel AT89LPx052 Mikrocontroller

Programmierkurs Java

Eingaben. Themen heute. Taster. Eingaben Zuweisungen Zeitmessung. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes

GI Vektoren

Maschinensprache und Assembler

QSYer für den YAESU FT-897 und FT September 2018 Matthias DD1US

Lösungen zum Kurs "Mikrocontroller Hard- und Software

Grundlagen zur Assemblerprogrammierung unter SPIM im Sommersemester Lorenz Schauer Mobile & Verteilte Systeme

Technische Informatik I - HS 18

Lego-Roboter im Informatik-Unterricht der Sekundarstufe I

Vorlesung Rechnerarchitektur

Praktikum Automatisierungstechnik AP1

Prozessorarchitektur. Sprungvorhersage. M. Schölzel

Einführung in AVR-Assembler

10 Wiederholungsanweisungen

Rechnerarchitektur, Einführung in die Laborübungen

Programmierübungen in Assembler

Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab...

DST EINFÜHRUNG IN MRT (V2)

AVR-Mikrocontroller in BASCOM programmieren, Teil 2

Aufbau eines Assembler-Programms

Datentechnik. Prinzipieller Aufbau eines Schnittstellenbausteins

Speicherengpaß entschärft

Einführung in die Informatik

Anweisungen und Kontrollstrukturen

Einstieg in die Informatik mit Java

Dokumentation des Monitorprogramms µp-os 8052 V 2.1. von Roland Heinrich

Transkript:

rof. Kemnitz Institut für Informatik, Technische Universität Clausthal 5. November 2014 1/18 Praktikum Mikrorechner 5 (Bitadressen, Sprünge und Schleifen) Prof. Kemnitz Institut für Informatik, Technische Universität Clausthal 5. November 2014

Prof. Kemnitz Institut für Informatik, Technische Universität Clausthal 5. November 2014 2/18 Bitadressen und Bitbefehle Bitadressierbarer Speicher: DS(20h) bis DS(2fh); Bitadresse: badr = (dadr AND 0fh)*8 + BitNr Bitadressierbare SFR: 80h, 88h, 90h,... f8h; Bitadressen: badr = dadr + BitNr Bitbefehle: mov c, <badr> mov badr, c anl c, <badr> anl c, <badr> orl c, <badr> orl c, <badr> ; kopieren ; UND ; ODER

Prof. Kemnitz Institut für Informatik, Technische Universität Clausthal 5. November 2014 3/18 clr c clr <badr> setb c setb <badr> ; Löschen ; Setzen Symbolische Namen für Bitadressen ;prozessorspezifische Namen ov; Überlauf ;Vereinbarung eigener Namen Flag equ 20h Flag0 bit Flag.0 Flag1 bit Flag.1 led0 bit P1.0

Prof. Kemnitz Institut für Informatik, Technische Universität Clausthal 5. November 2014 4/18 Beispielprogramm ;led0 = btn0 UND btn1 ;------------------------------- bt0 bit P3.2 ; Taster 0 bt1 bit P3.3 ; Taster 1 LED0 bit P1.0 ; Leuchtdiode 0 ;------------------------------- setb bt0 ; Vorbereitung für Eingabe setb bt1 ; Schleife: mov c, bt0 ; Taster 0 einlesen anl c, bt1 ; UND Taster 1 mov led0, c ; Ergebnisausgabe auf LED0 ljmp Schleife

Prof. Kemnitz Institut für Informatik, Technische Universität Clausthal 5. November 2014 5/18 Sprünge und Schleifen Selbst einfache Aufgaben verlangen lange Befehlssequenzen Mehrfachverwendung von Befehlssequenzen Hochsprachen: for-, while, repeat-until-schleife if-then-else, case Unterprogramme Prozessorbefehle bedingte und unbedingte Sprünge Unterprogrammaufruf und Rücksprung

Prof. Kemnitz Institut für Informatik, Technische Universität Clausthal 5. November 2014 6/18 Sprungbefehle Der Programmfortsetzung mit einer Befehlsadresse (BA) ungleich der Folgeadresse: Absolute Spünge (BA = Konstante) ljmp <adr16> ; Adressbereich 0 bis 0ffffh ajmp <adr11> ; Adressbereich 0 bis 07ffh Relative Sprünge (BA = BA+rel) sjmp <rel> ; Sprungentfernung -80h rel 7fh Berechneter Sprung (BA = acc+dptr) jmp @a+dptr; Marke als Konstante für Sprungziel oder -entfernung: Marke:... ljmp Marke

Bedingte Sprünge Relative Sprünge; Sprungentfernung -80h rel 7fh Springe, wenn ein bestimmtes Bit 0 oder 1 ist jc <rel> ; wenn cy=1 jnc <rel> ; wenn cy=0 jb <badr>, <rel> ; wenn adressiertes Bit = 1 jnb <badr>, <rel> ; wenn adressiertes Bit = 0 Macro für bitweises EXOR xorb_mac MACRO x1, x2 ; x1, x2: Bitadressen LOCAL Marke jnb x2, Marke cpl x1 x 2 = 1? nein ja x 1 = x 1 Marke: ENDM Prof. Kemnitz Institut für Informatik, Technische Universität Clausthal 5. November 2014 7/18

Springe, wenn ein bestimmter Wert nicht vorliegt jz <rel> ; wenn Acc = 0 jnz <rel> ; wenn Acc 0 cjne a, <dadr>, <rel> ; wenn Acc DS(dadr) cjne a, #<const8>,<rel>; wenn Acc const8 cjne <rr>, #<const8>,<rel>; wenn rr const8 cjne @<ri>,#<const8>,<rel>; wenn @ri const8 Makro für einen Sprung, wenn DS(dadr)=const8 cje_mac MACRO dadr, const8, adr16 ; V: acc LOCAL Marke Marke: ENDM mov a, dadr cjne a, #const8, Marke ljmp adr16 DS(dadr) const8? ja nein Sprung nach adr16 Prof. Kemnitz Institut für Informatik, Technische Universität Clausthal 5. November 2014 8/18

Spezialsprung für die Ressourcenverwaltung Semaphor: Bitvariable zum Besetzen von Systemresourcen jbc <badr>, <rel> Kontrollfluss 1 Kontrollfluss 2 smph bit... smph = 1? ja nein smph = 1? ja nein jbc badr, rel smph = 0 smph = 0 versenden einer Zeichenfolge über die serielle Schnittstelle wenn besetzt, müssen die anderne Programme warten smph = 1 smph = 1 setb smph Prof. Kemnitz Institut für Informatik, Technische Universität Clausthal 5. November 2014 9/18

Prof. Kemnitz Institut für Informatik, Technische Universität Clausthal 5. November 2014 10/18 Spezialsprung für Wiederholschleifen djnz <rr>, <rel> ; rr=rr-1 und Sprung, wenn rr 0 djnz <dadr>, <rel>; rr=rr-1 und Sprung, wenn Variable ;ungleich 0 DS(dadr) =... dadr,... mov DS(dadr) = DS(dadr) 1 DS(dadr) 0? ja nein djnz dadr, rel

Prof. Kemnitz Institut für Informatik, Technische Universität Clausthal 5. November 2014 11/18 Wiederholschleife Zähler = Anz Schleifendurchläufe Schleifenkörper: : mehrfach auszuführende Befehlsfolge ct data 80h mov ct, #21 Marke: <Schleifenkörper> Zähler = Zähler 1 nein Zähler = 0? djnz ct, Marke ja

Prof. Kemnitz Institut für Informatik, Technische Universität Clausthal 5. November 2014 12/18 Warteschleife Die Leuchtdiode LED1 an Port P1.0 soll mit einer Frequenz von ungefähr 1 Hz blinken. Periodische Programmfolge: tue 500 ms lang nichts Ausgabewert invertieren. wiederhole immer wiederhole 50 Warte 10 ms (Macro) invertiere Ausgabe ct data 70h org 100h loop A: mov ct, #50 ; dezimal loop B: w10ms Mac djnz ct, loop B cpl P1.0 ljmp loop A

Prof. Kemnitz Institut für Informatik, Technische Universität Clausthal 5. November 2014 13/18 Macro für 10 ms Wartezeit Prozessortakt 12 MHz 1 bis 4 Zyklen je Befehl (siehe Befehlsliste) 6 Takte je Zyklus 10 ms Wartezeit 10.000 Befehle 20 250 djnz-befehle wiederhole 20 wiederhole 250 warte 1 µs

Prof. Kemnitz Institut für Informatik, Technische Universität Clausthal 5. November 2014 14/18 Ct0_w10ms_mac data 60h; globale Variablen Ct1_w10ms_mac data 61h; w10msmac MACRO LOCAL M1, M2 M1: M2: ENDM mov Ct1_w10ms_mac, #20 mov Ct0_w10ms_mac, #248; (*) nop ; (*) djnz Ct0_w10ms_mac, M2 djnz Ct1_w10ms_mac, M1 (*) damit es ganz genau stimmt wiederhole 20 wiederhole 250 warte 1 µs

Abbruchschleife (while) Schleifenkörper: : mehrfach auszuführende Befehlsfolge nein Abbruchbedingung erfüllt? ja Warte auf Tastendruck Taster bit P3.2... setb Taster; Eingabevorbereitung jb Taster, $ ($ Adresse des aktuellen Befehls) rof. Kemnitz Institut für Informatik, Technische Universität Clausthal 5. November 2014 15/18

Aufgabe 5.1: Lauicht Schreiben Sie ein Progamm, das eine wandernde Eins auf den Leuchtdioden ausgibt. P1 = 1 (Adresse P1: 90h) wiederhole immer Rotation von P1 0 0 0... 0 1 Warte eine Sekunde Prof. Kemnitz Institut für Informatik, Technische Universität Clausthal 5. November 2014 16/18

Prof. Kemnitz Institut für Informatik, Technische Universität Clausthal 5. November 2014 17/18 Aufgabe 5.2: Kopierschleife Legen Sie im Befehlsspeicher eine Folge von Byte-Konstanten an, die mit Null endet: org 200h Anf_BS: db 35h, 45h,..., 0h Schreiben Sie ein Programm, dass diese Bytefolge in den Datenspeicher ab Adresse 60h kopiert. Welche Speicherplätze sind für die Zeiger geeignet? Zeiger1 = Anf BS Zeiger2 = 60h acc = BS(Zeiger1) Wiederhole bis acc = 0 DS(Zeiger2) = acc Zeiger1 = Zeiger1 + 1 Zeiger2 = Zeiger2 + 1 acc = BS(Zeiger1)

Prof. Kemnitz Institut für Informatik, Technische Universität Clausthal 5. November 2014 18/18 Aufgabe 5.3: elektronischer Würfel Schreiben Sie eine Programm, das auf Tastendruck eine Zufallszahl auf den Leuchtdioden ausgibt. Zähler = 0 P1 = 0 (Adresse P1: 90h) Eingabevorbereitung für Taste btn1 wiederhole wiederhole, solange btn1 nicht gedrückt Zähler = Zähler + 1 P1 = Zähler warte 200 ms (Tastenentprellung) bis btn1 nicht gedrückt