Übungsaufgaben. Stand

Ähnliche Dokumente
Hard- und Software-Engineering SS 2006 Praktikumsaufgaben

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

Lösungen zum Kurs "Mikrocontroller Hard- und Software

B1 Stapelspeicher (stack)

Einführung in AVR-Assembler

Multitasking / virtuelle Maschinen mittels Atmel AVR- Mikrocontrollern (Simple & Stupid)

einfache PIC-Übungsprogramme

Parallel-IO. Ports am ATmega128

Starten Sie die Arduino IDE und geben Sie den folgenden Programmcode ein:

Atmel AVR für Dummies

8.3 Taster am µcontroller

Zähler- und Zeitgeber-Baugruppen

Aufgabenstellung Praktikum Mikrorechentechnik Sommersemester 2014

AVR-Mikrocontroller in BASCOM programmieren, Teil 2

1. 4-Bit Binärzahlen ohne Vorzeichen 2. 4-Bit Binärzahlen mit Vorzeichen 3. 4-Bit Binärzahlen im 2er Komplement 4. Rechnen im 2er Komplement

Midterm-Klausur Technische Grundlagen der Informatik

Ein erstes Assembler-Projekt

Makros sind Textersetzungen, welche vom Präprozessor aufgelöst werden. Dies Passiert bevor der Compiler die Datein verarbeitet.

Fachhochschule Kaiserslautern Fachbereich Angewandte Ingenieurwissenschaften WS2010/11. Zeitpunkt der Prüfung: Beginn: 10.

AVR-Mikrocontroller in BASCOM programmieren, Teil 3

Drücken Sie (später) bei Speichere Änderungen in der Bibliothek default? auf Nein.

Bedienungsanleitung BOTEX DMX OPERATOR

Übungscomputer mit Prozessor Bedienungsanleitung

Musterlösung 1. Mikroprozessortechnik und Eingebettete Systeme 1 WS2015/2016

Bericht. Digitallabor. Hochschule Karlsruhe N1. Aufgabe 5.6 Stoppuhr. Teilnehmer: Natalia Springer, Tong Cha. Datum:

1 Assembler. 2 LED-Steuerung

A n l e i t u n g. Beamer- Treiber- Download (FBI EB/ 19 )

Elementare logische Operationen

Ergänzungen zum Manual OS V 2.05/2.06

Projekt Nr. 15: Einen elektronischen Würfel erstellen


Fehlerkorrektur Bild Demoprozessor

Alkoholsensor MQ135, Time-Delay, Mailbox und LCD

Black Box erklärt Zahlensysteme.

8.1 Grundsätzlicher Aufbau der Beispiele

Mikrocontroller - Schnelleinstieg

RS-Flip Flop, D-Flip Flop, J-K-Flip Flop, Zählschaltungen

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

Praktikum Mikrocomputertechnik

Das Attiny-Projekt Maschinencode 1

Programmieren in C Teil 3: Mikrocontrollerprogrammierung

J. Prof. Dr.-Ing. Georg Frey Juniorprofessur Agentenbasierte Automatisierung. Laborunterlagen zum Themengebiet Steuerungstechnik. zusammengestellt von

Programmierung Weichenmodul S/D Tafel 1

Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13. Teil IV: Programmieren an Beispielen

Interrupts. Funktionsprinzip. Funktionsprinzip. Beispiel in C

Mikrocontroller: Einführung

Autonome Mobile Systeme. Dr. Stefan Enderle

SecOVID Reader Plus. Anleitung. Mit Sicherheit eine Idee voraus.

Zahlensysteme Seite -1- Zahlensysteme

Praktikum Steuerungstechnik

AVR-Mikrocontrollertechnik

Drucken und Löschen von angehaltenen Druckaufträgen Erkennen von Formatierungsfehlern Bestätigen von Druckaufträgen Reservieren von Druckaufträgen

myavr Klassendiagramm der UML mit SiSy-AVR Schnelleinstieg für myavr Board MK3

VASCO TAN-GENERATOR DIGIPASS 840A CV

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

Skript Zahlensysteme

Serielle Datenübertragung mit dem Schnittstellenbaustein 8251

Wer in der Grundschule ein wenig aufgepasst hat, sollte in der Lage sein schriftlich eine Zahl durch eine zweite zu teilen.

Serial Bluetooth Controller 16 Bedienungsanleitung

I2C to PWM Konverter AfroI2C Tokyo Drift Betriebsanleitung

Universita t Koblenz/Landau Studienarbeit

Stefan Hoffmann. Leichter Start mit BASCOM und myavr

H. Tornsdorf М. Tornsdorf. Das große Buch zu

Bedienungsanleitung Version 1.0

Einführung in die Welt der Microcontroller

2 Einfache Rechnungen

ARDUINO Übung. Inhalt:

Klassendiagramm der UML mit SiSy-AVR Schnelleinstieg am Beispiel myethernet-projekt

Dokumentation IBIS Master Version 1.5.6

CCS Compiler Tutorial mit Beispielen

Verwenden der Druck- und Zurückhaltefunktion

Praktikum Mikrocomputertechnik. Anleitung

Dynamisches Nockenschaltwerk MCT3 für Winkelcodierer mit Binär-Eingang Programm: MCT3.2

Dualzahlen

Übung -- d001_7-segmentanzeige

KERN EW-A01 Versie /99

Einführung in die Programmierung

Mod_com.lib. Inhalt. WAGO-I/O-PRO 32 Bibliothek

Technische Informatik 2: Addressierung und Befehle

Labor Automatisierungstechnik

Programmierbeispiel RS485- Kommunikation

Core und Speicher des ATmega16

Stephan Brumme, SST, 2.FS, Matrikelnr

Praktikum Digitalschaltungen

Kommunikationsprotokoll

Inhaltsverzeichnis. Inhaltsverzeichnis

8.0 Erweiterung mit dem 8 Bit D/A Maxim MAX5382

Theoretische Informatik SS 04 Übung 1

Send/Receive PCU/MCU. Protokoll

C4 Die SPI Schnittstelle

Leica DISTO Transfer Wie verbinde ich meinen Leica DISTO mit meinem PC

FKOM Applikationen mit 6LoWPAN

Prozess-rechner. auch im Büro. Automation und Prozessrechentechnik. Prozessrechner. Sommersemester Prozess I/O. zu und von anderen Rechnern

Wer möchte, kann sein Programm auch auf echter Hardware testen

RedPitaya HPSDR Ausgänge zur Antennen und Bandfilterumschaltung

WSW Smart meter Ihr intelligenter Gaszähler

Der Übungsrechner

1 Dualsystem Dualzahlen mit Vorzeichen 4. 2 Hexadezimalsystem Hexadezimalzahlen mit Vorzeichen Oktalsystem 13 4 Zahlenring 14

DIVA Digital Video Recorder

Verbindung zwischen PC und Mikrokontroler Blue-Tooth-Modul Schaltung Parametrierung kein zusätzliches LF

Transkript:

AUTOMATISIERUNGSTECHNIK AU1 ÜBUNGSAUFGABEN 1 Übungsaufgaben Stand 1.1 5. 5. 2008 1. Lottozahlen. Schreiben Sie ein Programm zum Ziehen von Lottozahlen. Darstellung auf zwei Siebensegmentanzeigen. Die Anzeigen sind segmentweise anzusteuern (aktiv Low). Prionzip: Solange eine Taste betätigt wird, zählt ein Zähler modulo 49. Bei losgelassener Taste wird der aktuelle Zählerstand als Dezimalzahl zwischen 1 und 49 angezeigt. Die Zufallswirkung ergibt sich infolge des im Vergleich zum Tastendruck sehr schnellen Zählumlaufs. Als Taste ist die rechte Taste der Anzeigetafel zu verwenden (beide Tasten der Anzeigetafel wirken aktiv Low). Port D: linke Siebensegmentanzeige und linke Taste (L). Port A: rechte LED-Stelle (LCD 1) + rechte Taste 7 6 5 4 3 2 1 0 Taste L G F E D C B A OUT

AUTOMATISIERUNGSTECHNIK AU1 ÜBUNGSAUFGABEN 2 Port D: linke LED-Stelle (LCD 1) + linke Taste 7 6 5 4 3 2 1 0 Taste L G F E D C B A OUT a) Die Aufgabe ist in C zu lösen. b) Die Aufgabe ist mittels Assemblerprogrammierung zu lösen. Vergleichen Sie: die Entwicklungszeit, die Laufzeit, die Größe des Maschinenprogramms. 2. Stoppuhr. Verwenden Sie die Hardware von Aufgabe 1 und schreiben Sie ein Programm, das eine Stoppuhr nachbildet. Bereich: bis 9,9 s in Schritten von 0,1 s. Hierzu sind beide Tasten der Anzeigetafel auszunutzen. Linke Taste: Löschen. Rechte Taste: Wechsel zwischen Laufen (Zeitzählung) und Stop. In Stellung 9,9 s soll die Uhr grundsätzlich stehenbleiben. Die Teilaufgaben a), b) entsprechen Aufgabe 1. 3. Initialisieren Sie Port A so, daß die Bitpositionen 0 und 1 als Ausgänge wirken und anfänglich mit Null belegt sind. 4. Schreiben Sie einen Programmablauf, der über Port A, Bitpositionen 1 und 0 das nachfolgend gezeigte Bitmuster ausgibt. 5. Schreiben Sie eine einfache Zeitschleife in Form eines Unterprogramms TIME_COUNT. Dessen Funktionen: Laden des Registers r16 mit dem Festwert 0x38, Vermindern des Registerinhaltes um 1, Rückkehr, wenn der Registerinhalt den Wert Null erreicht hat.

AUTOMATISIERUNGSTECHNIK AU1 ÜBUNGSAUFGABEN 3 Sorgen Sie dabei dafür, daß der ursprüngliche Inhalt des Registers r16 erhalten bleibt (mit anderen Worten, das rufende Programm darf gar nicht merken, daß r16 im Unterprogramm benutzt wurde). 6. Die Register r2 bis r5 enthalten jeweils 16 Bits lange Binärzahlen X und Y. Schreiben Sie einen Programmablauf für die Subtraktion X-Y. Hierbei soll das Ergebnis in den Registern r2 und r3 zu stehen kommen. r2 r3 r4 r5 LO_X HI_X LO_Y HI_Y 7. Wir beziehen uns auf Aufgabe 6. Jetzt ist aber die Subtraktion X-Y so auszuführen, daß das Ergebnis in den Registern r18 und r19 zu stehen kommt. Die Inhalte der Register r2 bis r5 sollen unverändert erhalten bleiben. 8. In den Registern r3 und r4 steht eine 16-Bit-Binärzahl T_1. Schreiben Sie einen Programmablauf für folgende Berechnung: T_2 = T_1 25BFH T_2 belegt dabei die Register r20 und r21. r3 r4 r20 r21 T_1_LO T_1_HI... T_2_LO T_2_HI 9. Ein Tastenfeld ist an Port B angeschlossen. Es soll abgefragt werden, ob die Taste an Bitposition 3 betätigt ist oder nicht (Tastenwirkung: aktiv low). Das Programmstück: WAIT_3: SBIC PORTB,3 RJMP WAIT_3 Wird das so funktionieren? Geben Sie ggf. eine korrigierte Befehlsfolge an. 10. Der A/D-Wandler eines Mikrocontrollers liefert einen Wert von 10 Bits Länge. Formen Sie diesen Wert in einen 8-Bit-Wert um. ADC Data Register ADCL und ADCH: Register 7 6 5 4 3 2 1 0 ADCH - - - - -. ADC9 ADC8 ADCL ADC7 ADC0

AUTOMATISIERUNGSTECHNIK AU1 ÜBUNGSAUFGABEN 4 Das gewünschte Ergebnis: 7 6 5 4 3 2 1 0 ADC9 ADC8 ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 11. Schreiben Sie ein Assemblerprogrammstück, das folgenden Ablauf implementiert. Abb. 4 12. Beim Aufruf eines Unterprogramms werden Register in den Stack gerettet. Das Unterprogranm beginnt mit den folgenden Befehlen. Geben Sie eine dazu passende Befehlsfolge an (im Anschluß an die Marke LEAVE), mit der das Unterprogramm verlassen werden kann.... TEMP TEMP, SREG TEMP r5 r6 r24 r25 LEAVE: 13. Eine 16-Bit-Binärzahl ist zu runden. Hierzu sind die niedrigstwertigen Bits 1 und 0 auszuwerten: Bitbelegung 0,0: nichts tun. Bitbelegung 1,0: durch 0, 0 ersetzen (abrunden). Bitbelegungen 1,0 und 1,1: durch 0,0 ersetzen und den Rest der Zahl (von Bit 2 an) um Eins erhöhen (aufrunden). Die Zahl darf aber nicht größer werden als der Endwert FFFCH (Sättigungsarithmetik). Die Binärzahl steht in den Registern ZL (Bits 7...0) und ZH (Bits 15...8). Sie dürfen beliebig viele Arbeitsregister verwenden.

AUTOMATISIERUNGSTECHNIK AU1 ÜBUNGSAUFGABEN 5 14. Ein Mikrocontroller soll eine Zweifarben-LED ansteuern. Anschluß: Pin 1 an Port B, Bit 0, Pin 2 an Port B, Bit 1 (natürlich über Serienwiderstand...). Die weiteren Bits 7...2 sollen zu Ausgabezwecken verwendet werden. a) wie ist die LED anzusteuern, damit sie (1) grün, (2) rot und (3) gar nicht leuchtet? Geben Sie die Belegungen mit Einsen und Nullen an, z. B. Pin 1 = 1, Pin 2 = 0. b) Initialisieren Sie die Port B so, daß die LED anfänglich nicht leuchtet. c) Schreiben Sie ein Programm, das die LED zyklisch (ewig) rot grün rot... blinken läßt. Die Blinkzeit erzeugen Sie mit einem (fertigen) Unterprogramm MILLISEC, dem die Zeit in Millisekunden in den Registern r24 und r25 übergeben wird (haben wir im Praktikum ausprobiert). Stellen Sie das Blinkintervall auf 500 ms ein. 15. Schreiben Sie eine Unterbrechungsbehandlungsroutine, die Zeichen auf eine LCD-Anzeige ausgibt. Die Zeichen kommen von der seriellen Schnittstelle. Jedes ankommende Zeichen löst die zu schreibende Behandlungsroutine aus. Es befindet sich im Register UDR der seriellen Schnittstelle. Zur Ausgabe auf die Anzeige ist ein fertiges Unterprogramm DISPLAY zu verwenden. Es erhält das darzustellende Zeichen im Register r16. Das Unterprogramm benötigt zudem die Register r18, r19, r24 und r25. 16. Modifizieren Sie die Unterbrechungsbehandlungsroutine von Aufgabe 15 so, daß jedes ankommende Zeichen als zweistellige Hexadezimalzahl dargestellt wird (zuerst die höheren, dann die niederen vier Bits) 1. Geben Sie nach diesen beiden Zeichen ein Leerzeichen aus (ASCII 20H). Hinweis: Die ASCII-Codes der Ziffern 0...9: 30H...39H, der Zeichen A...F: 41H...46H. 17. Eine 16-Bit-Zahl in den Registern r1 und r2 ist um drei Bits nach links zu verschieben. Die frei werdenden Bitpositionen sind mit Nullen aufzufüllen. r1 Bits 7...0 r2 Bits 15...8 1 Geheimtip: Achten Sie darauf, welche Register Ihre HEX-Wandlung braucht...

AUTOMATISIERUNGSTECHNIK AU1 ÜBUNGSAUFGABEN 6 18. Eine 16-Bit-Zahl in den Registern r20 und r21 ist um zwei Bits arithmetisch nach rechts zu verschieben. r20 Bits 7...0 r21 Bits 15...8 19. Ein Tastenfeld ist an Port B angeschlossen. Es soll abgefragt werden, ob die Taste an Bitposition 3 betätigt ist oder nicht (Tastenwirkung: aktiv low). Das Programmstück: WAIT_3: SBIC RJMP PORTB,3 WAIT_3 Wird das so funktionieren? Geben Sie ggf. eine korrigierte Befehlsfolge an. 20. Ihr Programm enthält diese Befehlsfolge: CP BRNE TEMP, LIMIT BEG TEMP, PD Bisher lief alles. Nachdem jedoch an verschiedenen (anderen) Stellen im Programm geändert wurde, wird beim Assemblieren der BRNE-Befehl als fehlerhaft gekennzeichnet: a) Weshalb? b) Wie helfen Sie sich? xyz.asm(80): error: Relative branch out of reach

AUTOMATISIERUNGSTECHNIK AU1 ÜBUNGSAUFGABEN 7