Mikrocomputertechnik


Prof. Jürgen Plate, Prof. Peter Schwalb

Praktikum Mikrocomputer

Versuch: Praktikum Fahrzeugmechatronik

Bei diesem Versuch soll unter Verwendung des SCI (Asynchronous Serial Communications Interface) des M68HC11 Datenverkehr zwischen Prozessor M68HC11 und PC als Terminal durchgeführt werden. Es soll grundsätzlich im polling mode gearbeitet werden, d.h. ohne Unterbrechungen. Außerdem soll ein einfacher Hex-Zähler betrieben und eine bedingte Unterbrechung aktiviert und bearbeitet werden. Geeignete Programmteile sind als Unterprogramm zu formulieren. Zeichnen Sie immer zuerst ein Flußdiagramm und programmieren Sie dann danach.

[1]   Ein 2-stelliger Hex-Zähler ist mit einer Frequenz von 10 Hz zu betreiben. Seine aktuelle Stellung soll über Port C [7:0] ausgegeben und mittels der 7-Segment-Anzeigen A1 und A2 (mit Decoder) dargestellt werden. Der zeitbestimmende Programmteil soll als Unterprogramm (D100) unter Verwendung des Registers Y formuliert werden.

[2]   Das ASCII-Zeichen '*' soll bei jedem Zählschritt auf das Terminalfenster des IDE11-Systems ausgegeben werden. Die Initialisierung des SCI ist als Unterprogramm zu formulieren (Umschaltzeit des IDE11 auf das Terminalfenster beachten). Das Senden des Zeichens soll durch ein Unterprogramm CHOU erfolgen, das das im Akku A übergebene Zeichen (bei freier Schnittstelle) sendet.

[3]   Ein vorbereiteter Text (ASCII-String) ist mittels des Unterprogramms STOU einmal auf das Terminalfenster des IDE11-Systems auszugeben. Das Unterprogramm STOU gibt die ab (X) stehenden ASCII-Zeichen unter Verwendung des Unterprogramms CHOU aus, bis das Steuerzeichen ETX gefunden wird, das selbst nicht mit ausgegeben wird. Stattdessen werden die Steuerzeichen CR und LF ausgegeben.

[4]   Zusätzlich zu 2 sind nun bedingte Unterbrechungen zu bearbeiten. Mittels der Taste T0, die am Eingang STRA des M68HC11 anzuschließen ist, kann eine bedingte Unterbrechung ausgelöst werden. Als Folge darauf soll vom Hauptprogramm der Text "STRA seen" auf das Terminalfenster ausgegeben werden. Die zum Starten der Unterbrechungsbearbeitungen nötigen Vektoren nicht vergessen:

    org     $ffda
    fdb     pirq    ; pulse accu input (PA7)
    org     $ffe8
    fdb     sirq    ; IRQ/STRA
    org     $fffe
    fdb     main    ; reset
Zur Signalisierung von der Unterbrechungsbearbeitung zum Hauptprogramm soll eine Variable dflg (display flag) verwendet werden.

Letzte Aktualisierung: 02. Dec 2005