Projekt Assemblerprogrammierung am Gymnasium Flöha im Schuljahr 2007 - The Making Of history menue Letztmalig dran rumgefummelt: 08.12.12 22:09:16
  • das Prinzip "vom Einfachen zum Schwierigen" ist hier nun so leicht nicht mehr erkennbar - es ist einfach nur noch schwierig
  • alle vorangegangen Projekte, Aufgaben, Beleg- sowie auch Projektarbeit münden nunmehr in diesem Projekt, um hier als Basis für eine Erarbeitung überhaupt zu dienen - ein Mikroprozessor, auch wenn er immerhin 40 Jahre alt ist, stellt immer noch Maximalanforderungen an den Hard- und Software-Entwickler
  • die Bearbeitungsteams sind klein und die Anforderungen hoch
  • und das Schlimmste für so manchen Schüler unsers Hauses: man kann bei Google & Co. nichts klauen - so etwas hat keiner - das gibt es nicht oder kaum im Netz der Inder ;-)
  • man muss hier seinen eigenen Verstand im ursprünglichsten Sinne benutzen, sonst wird das nix - also ausnahmsweise mal richtig arbeiten!!!
  • toll ist dieses Gefühl: "... das habe ich gemacht, und ich weiß, wie es funktioniert, aber der Weg war schwierig!"

Das offizielle Logo ...

... und das inoffizielle Logo ;-)

Projekt Assemblerprogrammierung
1. Projektidee - nur für Insider interessant
2. Arbeitsgruppen und Verweise
3. Die Arbeiten am Projekt
4. Die Ergebnispräsentationen
5. Verwandte Projekte


1. Grundidee des Projektes history menue scroll up

Entscheidender Impuls war, wie schon so oft, eine Problemklasse in die Arbeitsgruppen zu bringen, die so vorher bei uns noch nicht gelöst worden ist. Und vor allem: auch Programmierprofis müssen noch ein Betätigungsfeld vorfinden, auf welchem sie sich wie alle anderen bewähren müssen. Entscheidend für die Informatikprojekte ist aber auch der Ansatz, keine Projekte für den Mülleimer zu produzieren. Wir schaffen uns kleine Werkzeuge, welche später einmal das Leben leichter machen sollen.
Hart, diese Strecke - zu beneiden ist hier keiner - hat er (sukzessive sie) sich doch verpflichtet, mehr als alle anderen zu tun. Und nun iss' es so weit: allein die schiere Vielfalt zeigt dem Unwissendem schon auf, in wie vielen Themenbereichen man sich auskennen sollte, um die Aufgaben wirklich erfolgreich zu beenden. Hier ein kleiner Überblick der Wissensbereiche , in welchen man fit sein sollte, bevor man an die Programmierung von Prozessoren heran geht.

Werkzeuge zur Assemblerprogrammierung

The Mother of Tetraed Codes - der HEX-Code

Struktogramme und Ablaufpläne selbst gemacht ...

ASide-Assembler

"The Mother of invention" - ach nee - das war was anderes (nämlich Frank Zappa) - oder isses am Schluss doch nicht so falsch? Fazit: fast alle Unis weltweit verwenden zur Grundausbildung in der Steuerungstechnik neben diversen Microcontrollern sowie dem Urvater der wichtigen Intel-Prozessoren (8086) sehr gern den Z80-Prozessor. Er steht wie kaum ein anderes Bauelement auf einem einsamen Podest: 40 Jahre alt und immer noch nicht müde - viele Einchipcontroller sind an dieser Zeit an ihm vorbei - anschließend aber sang- und klanglos untergegangen ;-)

Z80-Prozessorsystem

Einige Aufgabenbereiche haben auch die Programmierung externer Bausteine  mit im Rahmen enthalten. So wird eine Ampelsteuerung über den PIO realisiert, welcher die Anzeigesignale zwischenspeichert, während die Zeitsteuerung von einem CTC via Interrupt im Mode 2 vorgenommen wird. Den PIO programmieren wir hier nur im einfachsten Fall: Byte-Ausgabe, da ist nichts weiter zu beachten - das funktioniert mit einem einzigen Steuerbyte sofort - danach werden nur noch Daten geschoben.

Z80-PIO

Die Nutzung des CTC ist in den aufgezeigten Beispielen schon komplexer - zwar könnte man auch im Interrupt-Mode 0 arbeiten, da nur eine einzige Interrupt-Service-Routine bedient werden muss. Wir reizen einfach mal die Möglichkeiten dieses Bausteines aus und zeigen, was in ihm steckt. Per Software werden die Zeitimpulse gestreckt und durch Vergleich mit möglichen aktuellen Ampelzuständen wird der nächste Zustand geschalten. Unser Lauflichtprojekt arbeit ganz ähnlich, nur müssen sich hier die Zeitimpulse via Software in der Länge regulieren lassen.

Z80-CTC

Ohne genaue Kenntnis des hardwaremäßigen Aufbaus eines Computers läuft gar nix. Grundsätzlich sind seit Ende der 40-er Jahre Computer relativ identisch aufgebaut - verfügen über eine Zentraleinheit, Hauptspeicher, ein Taktsystem. periphere Bausteine zur Ein- und Ausgabe und transportieren Daten, Adressen sowie Steuersignale auf dafür vorgesehenen Bussystemen. Die Dinger sind nur unendlich viel kleiner und schneller geworden - nur darin stecken die unendlichen Möglichkeiten. Außerdem wurde die Schiene Nummer zwei der Computertechnik wesentlich weiter entwickelt: Die Software. Standbein Nummer drei wird gerade die universelle Vernetzung informationsverabeitender Maschinen.

... und so funktioniert ein Computer

Der LC-80 ist nun die heilige Kuh, auf welcher all unsere Projekte gefahren werden sollen. Bestückt ist er hardwaremäßig eher minimalistisch und doch ist alles vorhanden, um kleine Steuerungsaufgaben zu lösen oder auf einem KByte RAM viel Sinnvolles mit Operanden zu tun - zum Beispiel diese zu sortieren. Die peripheren Bausteine sind direkt herausgeführt, was bedeutet, dass eine wie auch immer geführte und realisierte Steuerung über Verstärkerbausteine erst einmal von vom BUS-System abgegriffen und auf notwendige Pegel angehoben werden muss. der LC-80 ist somit von vorn herein nichts für Anfänger und für sinnvolle Programmierung ist durchaus Hardwarekenntnis vonnöten.

der LC-80

Der Z80 ist unter allen Prozessoren ein Urgestein - hat die Anfangsgründe der Microcompter mit gemacht und ist immer noch präsent. Und wer ihn programmieren darf erkennt rasch: Wow - das Teilchen hat Pfiff!
Und an eben dieser Stelle erinnern wir sehr gern daran, dass dieser Opa zwischenzeitlich reichlich 35 Jahre Aktivität hinter sich hat.

Z80-CPU

Ohne die Wirkung der Flags (im Sinne von: wird ein bestimmter, genau definierter Zustand erreicht, dann setze ein Signal) wäre ein logisches Programmieren gar nicht möglich.

Flag-Wirkung

 

Wo ein Prozessor, da sein Befehlssatz - eine alte Weisheit aller Hardware-Ingenieure. Die Liste des betagten Z80 umfasst immerhin 156 Basisbefehle mit zusammen 796 Kombinationen. Wie diese auseinanderzudividieren sind, zeigen wir hier ;-)
Neben den einzelnen Befehlen ist ihre Wirkung auf die Flag-Register von enormer Bedeutung für die Abarbeitung von Programmen - auch ein Hochsprachen Compiler oder Interpreter greift letztendlich auf diese Logik zu.

neue alphabetische Befehlsliste

Einige der Aufgaben basieren auf einer Zeitsteuerung. Eine solche arbeitet nur dann effizient, wenn die Zzeitbasis von externen und extra dafür ausgelegten Bausteinen bereitgestellt wird. Dies übernehmen die CTC-Basuteine des Z80-Systems. Ihre Auswertung erfolgt Interrupt gesteuert. Ein zusätzlicher logistischer Anspruch für den Software-Entwurf, denn hat man erst mal die grundsätzliche Programmierung erfasst und freut sich gerade so richtig darüber, dann  kommt das!

 Z80-CPU-Interrupt

Der verwendete Mikrorechner LC-80 ist ein Echtzeitsystem - was immer auch an Hard- und Software für diese Maschine entwickelt und gebastelt wird - es gehorcht dem Grundtakt con ca. 900 KKz. Damit ist so zu sagen das Speed-Limit für diese Maschine fest geschrieben - es geht nicht schneller, aber auch nicht langsamer. Wir sind an der untersten Ebene eines Mikrorechners angelangt und müssen die Konsequenzen der Echtzeitbedingunegn mit erfassen und im Algorithmus berücksichtigen.
Sortieren kann für 100 Elemente schon richtig langsam werden, während Impulse im Minutentakt ebenso schwer zu erzeugen sind -

Echtzeitsysteme

Prozessrechentechnik heißt die Disziplin, welche Rechnerstrukturen in Hard- und Software an der Maschine direkt im Produktionsprozess sieht und analysiert oder verbessert. Hier geht es nicht um den Computer, wie ihn Hinz & Kunz kennt - meist sind diese als Bauelement in kleinen Einheiten untergebracht und der Trend geht zur Vernetzung selbst solcher Komponenten. Im Endeffekt kann man gar nicht mehr von einem Steuerrechner selbst sprechen - de werkeln mehrere Rechner miteinander und heißen Controller.

Prozessrechentechnik

Automatisierungstechnik ist insgesamt älter, als man glaubt - so sind wohl die ersten steinzeitlichen Tierfallen nach den Definitionen den Automaten zuzurechnen. Waren noch recht einfach, aber das Prinzip war schon drin: etwas verändern, ohne Zutun des Menschen. Heute sprechen wir von zwei Hauptrichtungen der Automatisierung: Steuerung und Regelung. Jede hat zig Unterarten

Automatisierungstechnik

Zufall ist auf einem Computer alles andere als einfach zu erzeugen - noch dazu bei einer Maschine, welche wie der LC-80 auf der untersten Programmierungs- und Hardware-Ebene läuft. Da wird die Maschine nämlich mit jedem Programmstart faktisch selbst neu gestartet - und das hat zur Folge, dass ich nach gleich vielen Schritten am selben Programmpunkt angelangt und auch alle peripheren Bausteine den gleichen Zustand haben. Ich bekomme also, wenn ich nunmehr so etwas wie eine Zahlenfolge schreiben will immer die gleichen Werte. Wie man das Problem trotzdem lösen kann, zeigen wir im Projekt Sortieren - dort müssen nämlich zufällig generierte Zahlen sortiert werden.

Computer und Zufall - ein schwieriges Feld

Eine ganz böse Falle für Software-Entwickler ist die Möglichkeit, nicht an alle Extreme gedacht zu haben, welche in der Praxis eintreten können. Programmiert wird ja in der hermetischen Welt der Theorie im geschlossenen Kämmerchen - die Praxis sieht anders aus. Da wird das Programm von Unwissenden genutzt und Zustände erzeugt, die niemals hätten eintreten dürfen. Also, Programmierer: immer auf das Schlimmste gefasst sein, sich freuen, wenn's nicht ganz so schlimm kommt und den DAU nicht vergessen ;-)

Worst-Case-Denken

Hier nun der Oberhammer - aber keine Angst - das ist nicht für jeden - dennoch: man kann diese Schaltungen erfolgreich aufbauen - einige davon gibt es sogar schon, weitere kommen hinzu. Auf AG-Basis lässt sich da einiges machen ;-)

von Profis für Profis - Z80-Bau-Projekte


2. Arbeitsgruppen und Verweise history menue scroll up

Nach fast einem Jahr ist dem Schüler also zur Arbeitsweise eines Mikrorechners doch eine ganze Menge bekannt. Die logischen Grundfunktionen sind explizit und gründlich erarbeitet worden, und das Herzstück eines Rechenvorganges auf elektronische Art und Weise ist eine ALU. An selbiger erkennt man auch schon die Notwendigkeit der Programmierung, denn je nach Bitmuster an den Steuereingängen variiert die Funktion dieses Zentralbausteines. Regsiter noch hinzu, von denen uns bekannt sein sollte, dass es FlipFlop-Stufen sind und das alles an eine BUS-System gekoppelt - fertig ist der Mikrorechner. Gut - ganz so einfach ist es nicht, aber das Prinzip stimmt schon.
Projekt Ampelsteuerung:
Theorie Ideen sowie Umsetzung Praxis
  • Robert Kuhnert, Marcel Pfeifer
  • ein PIO des LC-80 arbeitet auf Byte-Ausgabe, während der CTC via Interrupt die Zeitimpulse gibt
  • diese Impulse sind einheitlich und extrem kurz - müssen also in der Service-Routine untersetzt werden (das funktioniert programmtechnisch etwa so, wie eine Gangschaltung beim Fahrrad)
  • eine entsprechende Verstärker-Schaltung auf Basis des integrierten Leistungstreibers 74HCT540 übernimmt die Stromverstärkung für die anzuschließenden LEDs
  • da immer zwei Ampeln einer Fahrtrichtung gleich geschalten sind, wurden diese in Parallelschaltung für die betreffenden LEDs ausgeführt
  • zwei periphere Bausteine arbeiten zusammen:
    • PIO ohne Interrupt
    • CTC mit Interrupt
  • Zeitsteurung erfolgt auf einer Zeitscheibe, welche in den einzelnen verschieden lange Lichtphasen der Ampel jeweils  an- und bei Bedarf umgesteuert wird
  • Bedarf ist genau dann, wenn die jeweilige Zeit für eine Signalphase um ist
  • da zwei Ampeln immer den gleichen Zustand repräsentieren, sind diese jeweils parallel geschalten
  • dies ist allerdings nur dann möglich, wenn nicht noch weitere Fahrspuren mit Richtungen zur Anwendung kommen
  • erstens lässt sich dieses Projekt sehr schnell und anschaulich einsetzen
  • zweitens kann man auf den fertigen Routinen aufsetzen uns diese zum Beispiel dahingehend erweitern, dass eine frei bedienbare Fußgängerampel zum Einsatz kommt
  • dann müssen vier zusätzlich PIO-Kanäle so programmiert werden, dass auch sie Interrupts auslösen können
  • auch der technische Aufbau lässt nunmehr Stufungen nach oben zu - da kann man die Ampeln auch räumlich gestalten  bis hin zum Aufbau einer kompletten Kreuzung, möglichst mit mehreren Spuren
Projekt Arithmetic-Logical-Unit - ALU:
Theorie Ideen sowie Umsetzung Praxis
  • Frank Knietzsch, Johannes Uhlig
  • zu entwickeln war die Schaltung für eine 4-Bit ALU
  • zur sinnvollen Arbeit wird ein Mirkrorechner zur Ansteuerung der Schaltung herangezogen
  • die ALU wurde dabei in ihre logischen Grundbausteine zerlegt und anschließend verdrahtet
  • Die Logik gehört zur 4-Bit ALU 74 181!!
  • insgesamt werden 14 Bit zur Ansteuerung der Schaltung benötigt (wir benötigen 14-Bits zur Ansteuerung der ALU, nutzen aber die zwei Kanäle, also 16 Bits, da das dadurch leichter wird)
  • in dieser von beiden Schülern selbst entwickelten Aufgabe steckte wohl von Anfang an die Idee, Arbeit zu sparen - 's ist wohl dann doch ein wenig mehr geworden
  • Gegendarstellung: Das mit Arbeit sparen war nie in unserem Sinn, im Gegensatz zu einem gewissen Informatiklehrer unseres Gymnasiums wissen wir meistens wie viel Arbeit in solchen Projekten steckt ;-)
  • faszinierend war die Begeisterung von zwei jungen Leuten zu erleben, welche hochkomplexe Dinge fast eigenständig ergründen wollten und dies auch taten
  • die Betreuerleistung reduzierte sich hier auf die Entgegennahme von Erfolgsmeldungen sowie den Hinweis auf einen in der Literatur aufgedeckten eklatanten Fehler
  • sehr wohl ausgewogen schien auch die Aufgabenverteilung und hier wurde auch ein Lehrbeispiel zur Organisation von Gruppenprojekten abgegeben, welche eben auch beinhaltet, wer hat was zuletzt gemacht, wo liegt das eben genau jetzt und wie geht's weiter
  • wie zu vernehmen war, spielen beide auch Skat, haben aber in ihren Freistunden mehr als nur jenes getan (Johannes Uhlig: "Ich habe noch nie in einer Freistunde mit dem Frank Knietzsch Skat gespielt!")
  • aus den logischen Grundfunktionen, welche den Vorteil haben, dass man sie einfach verstehen kann, lassen sich mit ebenfalls wenig Aufwand komplexere Schaltungen aufbauen
  • man kann sie dann zwar nicht mehr so einfach verstehen, aber die Anwendung ist einleuchtend
  • ein Addierer ist eine logische Funktion, welche genau in diese Problemklasse fällt
  • kombinieren wir das ganze noch mit einer Auswahlsteuerung sowie weiteren genau vereinbarten mathematischen sowie logischen Funktione - bitte - schon haben wir eine ALU
Projekt BUBBLE-Sort:
Theorie Ideen sowie Umsetzung Praxis
  • André Neubert, Friedrich Salzer
  • Ausgangswerte y werden vom Nutzer eingetragen
  • liegen mehrere Ausgänge vor, so muss die gesamte Schaltungsentwicklung so viele male durchlaufen werden, wie Ausgänge nutzerseitig definiert wurden
  • André hatte gegen die Unbilden der Pseudozufallszahlen anzukämpfen und wohl auch mehr als deutlich gemerkt, dass echter Zufall auf Computern so gut wie unmöglich ist - sprich: als Geräte zur Ziehung von Lotto-Zahlen sind sie extrem anfällig
  • Friedrich hat dazu einen BUBBLE-Sort "geschmiedet", der sich gewaschen hat
  • Optimierungen sowie Auswertung sind ebenfalls enthalten - und wir reden nicht von einer Hochsprache und unser Monitor kann zu einem Zeitpunkt sechs Zeichen auf Sieben-Segment-Basis anzeigen
  • BUBBLE-Sort ist ein wundervoller Algorithmus und wird sehr gern verwendet, um die Anfänge der algorithmischen Programmierung zu ergründen
  • er ist also schön einfach zu verstehen, da das Modell der aufsteigenden Blasen als Sinnbild für das jeweils größte der verbleibende Restelemente
  • wird dieses Modell nun auf die Rechnerpraxis angewandt, so ist es nicht mehr ganz so gut bestellt um diesen Algorithmus, denn in puncto Effizienz bleibt BUBBLE-Sort weit hinter allen anderen Sortieralgorithmen
  • kombiniert wird der Sortieralgorithmus mit einem Verfahren zum Aufbereiten zufälliger Zahlen auf Mikrorechnern, dabei keine regelmäßigen Folgen zu erhalten, ist ein recht kompliziertes Unterfangen
  • zudem existiert eine Anzeigeroutine, welche Einsichtnahme sowohl in den unsortierten als nachfolgend auch in den sortierten bereich ermöglicht
Projekt Taschenrechner:
Theorie Ideen sowie Umsetzung Praxis
  • Eric Kreller, Thomas Körner
  • der Taschenrechner beherrscht die Grundrechenrarten für zweistellige  Hexadezimalzahlen
  • Überträge sowie negative Zahlendarstellungen erfolgen auf Basis hexadezimaler Zahlen
  • Kompromiss-Lösung gibt es für die Division - es handelt sich um eine Modula-Division mit ganzzahligem Rest
  • auch wenn ich ihn gern verdreht hätte, ich glaub', Eric hat in dieser Projektphase nie den Kopf wirklich verloren
  • und wahrscheinlich hätt' er sich selbst gar nix aufgeschrieben, weil er's wirklich drauf hat, auch komplexe Strukturen zu überschauen
  • arithmetische Operationen scheinen dezimal recht einfach und wenn die zu verrechnenden Operanden klein sind, dann ist das auch auf Mikrorechnern kein Problem
  • aber schon Zahlen oberhalb von 15 bringen nicht nur Darstellungsschwierigkeiten
  • mit dem vorgelegten Programm lässt sich die Komplexität sowohl der Verrechnung als auch der Darstellung von nicht all zu großen Zahlen bereitet (wir reden von den Zahlen zwischen -127 und +255)
Projekt Lichtorgel:
Theorie Ideen sowie Umsetzung Praxis
  • Tina Kyak, Richard Friedrich
  • ebnso wie bei der Ampelsteuerung wird hierbei auf eine PIO-Kanal-Programmierung sowie eine Zeitsteuerung auf CTC-Basis zurückgegriffen
  • angesteuert wird eine selbst entwickelte Verstäkerschalung von 8 Bit, welche ebenso viele LEDs als Anzeige treibt
  • der CTC arbeitet als steuerbarer Taktfrequenz-Geber
  • es existiert eine Software zur Richtungsumsteuerung
  • ebenso kann das Laufmuster per Software gesetzt werden
  • hier wurde nach dem Master-Slave-Prinzip gearbeitet, und wie dies funktionierte, erfraget man am besten bei den Autoren selbst
  • Richard hat mal wieder für eine Sache Lunte gerochen - und wenn das passiert, ist er Feuer und Flamme
  • so hat er hier 'ne Projektleistung hingelegt, welche Anerkennung verdient - aber man darf hier nicht einen dicken Fehler begehen sowie auch etwas übersehen:
  • Richard darf man nicht zu oft loben (er weiß ja schon, dass er gut ist), er wächst sonst wieder mal über sich heraus und zeigt dann "... Tendenzen zur Selbstüberschätzung"
  • ... übersehen darf auch nicht werden, dass seine Lunte mitunter schnell verlischt - klar - dies ist bei Richard Strategie - denn das lässt die Möglichkeit auf ein wieder Entfachen offen - schau'n wer moal ;-)
  • ausdrücklich bedanken möchte ich mich über den nicht immer ernst gemeinten, aber stets auf "hohem Niveau" geführten Gedankenaustausch mit Richard (dem einzig wahren Onkel-Hotte-Kenner neben Herrn Straube und mir in diesem Hause und vor dem Herrn)
  • bin mir sicher, Lehrer werden ihn in Erinnerung behalten - manche - also einige wenige - in guter ;-)
  • und das mache ich aus seiner Hard- und Software:
    • hier kann jetzt noch nichts stehen. da das Projekt gerade erst abgeschlossen wurde
    • evtl. kann man überlegen, ob eine rechnergestützte Lichtorgel, dann mit 32 Bit Ausgang ins Leben gerufen werden sollte
Projekt SIMPLE-Sort:
Theorie Idee sowie Umsetzung Praxis
  • Richard Grohmann, Erik Voigt
  • basierend auf den Ausarbeitungen zur Generierung zufälliger Zahlen, werden diese nachfolgend sortiert
  • SIMPLE-Sort ist kein sehr effizienter Algorithmus, obwohl er schon deutlich weniger Vertauschungen vornimmt, als BUBBLE-Sort
  • auf einem Mikrorechner bekommt man unter Echtzeitbedingungen schon bei kleiner Mächtigkeit der Elementemenge den Rechenaufwand deutlich zu spüren - die Arbeitsfrequenz ist klein, der Arbeitsaufwand groß - das kostet deutlich Zeit schon bei 100 Elementen
der Grundalgorithmus stand - die Umsetzung ging schief
  • SIMPLE-Sort verhält sich schon mal effizienter, als Bubble-Sort - nur wenn ein jeweils kleineres Element in der Gesamtrestmenge gefunden wird, wird auch getauscht
  • er ist aber schon nicht mehr so einfach zu verstehen, wie BUBBLE-Sort
  • wird nun auch dieses Modell nun auf die Rechnerpraxis angewandt, so schneidet er besser ab, als BUBBLE-Sort, bleibt aber weit hinter den verbleibenden anderen Sortieralgorithmen zurück
  • kombiniert wird der Sortieralgorithmus mit einem Verfahren zum Aufbereiten zufälliger Zahlen auf Mikrorechnern, dabei keine regelmäßigen Folgen zu erhalten, ist ein recht kompliziertes Unterfangen
  • zudem existiert eine Anzeigeroutine, welche Einsichtnahme sowohl in den unsortierten als nachfolgend auch in den sortierten bereich ermöglicht
Projekt Geschicklichkeitsspiel:
Theorie Idee sowie Umsetzung Praxis
  • Roy Petzold, Julia Hinneburg
  • hier wird ein zufälliger Anfangszustand generiert, von dem der Insider weiß, dass dies extrem komplex ist und der Schwierigkeitsgrad steigt, wenn der Rechner kleiner und die Nähe zur Maschine größer wird
  • beides ist beim LC-80 maximal ausgeprägt - für das Problem an sich also Worst-Case-Bedingungen
die Idee war gut, die Menüführung nicht so gut und damit die gesamte Strategie nicht mehr nachvollziehbar  


3. Die Arbeit am Projekt history menue scroll up

In den Dimensionen, dass auf Mikrorechner-Ebene Steuerungsaufgaben oder Algorithmen abzuarbeiten seinen, war die Aufgabe eine selbst definierte für bis zu maximal 3 Schüler in den einzelnen Gruppen. Bei einigen Steuerungsaufgaben kam noch eine entsprechende Elektronik hinzu, welche auch richtig gemanagt werden sollte.
Zum Projekt gehören desweiteren Struktogramm sowie ein mit einem Assembler geschriebenes Programm.

Hauptproblem war anfangs das Fehlen irgendwelcher Hochsprachenbefehle, mit welchen die bekannten Strukturen umgesetzt werden konnten - um so bitterer die Einsicht, das wirklich nur extrem einfache Bedingungen  genutzt werden können und zu diesen Sprungbefehle existieren
schlimmer noch das Umdenken für die Arbeitsweise von Mikrorechnern - sie arbeiten nicht, bis eine Bedingung eintritt, sondern nutzen den Nulldruchlauf bzw. das Überschreiten der Zulässigkeit eines Werte (255)
der Programmierer muss also lernen, von einer bestimmten Startposition aus das Setzen der Flags zu erreichen und daran gebunden seine Bedingungen auswerten und dann zu einer Behandlungsroutine zu springen oder diese via Unterprogramm aufzurufen
Zeiteinheiten auf Mikrorechnern sind extrem kurz - dafür ziemlich präzise und wenn nicht extern gebunden, vom Systemtakt abhängig - per Unterbrechungssteuerung werden diese Zeitscheiben erkannt und müssen dann über die Software gedehnt werden
die Anzahl der Register (das sind wie kleine Notizzettel für den Mikroprozessor) ist sehr klein, obwohl schon 5 mal größer, als beim ersten Prozessor
extrem schwer gestalten sich für den Anfänger das Durchblicken der Zugriffsstrukturen: Register, Inhalt sowie Adresse einer Speicherzelle - das muss man aber scharf trennen und auch die Zugriffsvorschriften beherrschen
sehr schwer ist die Orientierung auf die 8-Bit-Ebene für Arithmetik und Logik - 16 Bit machen alles so viel einfacher, sind aber nur ansatzweise ausgeprägt


4. Die Ergebnis-Präsentation des Projektes history menue scroll up

Hier sind in eigentlich allen Fällen nach schweißtreibender Arbeit Spitzenleistungen erzielt worden, deren Umfang nur erahnen kann, wer sich in die Materie begibt und versucht, nur ein paar einfache Assemblerprogramme mit einem Minimum an Befehlskenntnissen eines (theoretisch) frei wählbaren Zielprozessors zu erstellen. Dann gehören zu sinnvoller Programmierung prinzipiell Ein- und Ausgabe - also sollten auch von selbigen Bausteinen Grundkenntnisse zu ihrer Funktionsweise sowie Programmierung vorhanden sein.
Quicklinkliste: [Projekt Lauflicht] [Projekt Taschenrechner]  [Projekt Ampelprogrammierung] [Projekt Bubble-Sort] [Projekt ALU 74LS181]
Projekt-Lösung LAUFLICHT
  • unter der Federführung von Richard Friedrich und unter Mitarbeit von
  • Tina Kyak
  • ... eben als Master-Slave-Projekt ;-)

 

Projekt-Doku

Projekt-Lösung HEXADEZIMAL-Taschenrechner
  • unter der Federführung von Eric Kreller und unter Mitarbeit von
  • Thomas Körner
  • auch ein typisches Master-Slave-Projekt ;-)

 

Projekt-Doku

Projekt-Lösung Ampelprogrammierung
  • unter der Federführung von Marcel Pfeifer und unter Mitarbeit von
  • Robert Kuhnert
  • schlussendlich ein starkes Projekt, welches vor allem in der Rechnersteuerung mit Interrupts in die Tiefe gehen (muss)

 

Projekt-Doku

Projekt-Lösung BUBBLE-Sort
  • unter der Federführung von Friedrich Salzer und unter Mitarbeit von
  • André Neubert
  • ein recht ausgewogenes Projekt in der Arbeitsteilung (wenngleich es immer Schwerpunkte gibt)

 

Projekt-Doku

Projekt-Lösung ALU 74181
  • Extremsportart für Insider - ohne Detailwissen auch zur Hardware nicht realisierbar
  • war aber auch ein Selbsttestversuch, wie weit man seine Kenntnisse wirklich eigenständig erweitern kann - ist gelungen
  • Aufgabe überdurchschnittlich gelöst, die Funktion der ALU zu verstehen, ist komplex, diese nachzubauen und korrekt zu steuern eine ganz andere Spielebene
  • Dank an die Hardware-Helden

 

Projekt-Doku


5. Verwandte Projekte history menue scroll up

Hier sind in eigentlich allen Fällen nach schweißtreibender Arbeit Spitzenleistungen erzielt worden, deren Umfang nur erahnen kann, wer sich in die Materie begibt und versucht, nur ein paar einfache Logikaufgaben anzugehen sowie eindeutige Lösungen zu finden. Unsere Aufgabe war komplexer: Finde die Lösung - beschreibe Wege sowie Modell, diese Lösung evtl. zu vereinfachen, entwickle den logischen Schaltplan!

Informatik-Projekte am Gymnasium Flöha

Projekt Mikroprozessor

 

Projekt Roboking mit dem Team Rabbi Loew

 

Projekt Kryptoanalyse

Projekt Bundeswettbewerb für Informatik

Projekt ENIGMA

Projekt Logik & Kombinatorik

Projekt Problemlösungsstrategien

   



zur Hauptseite
© Samuel-von-Pufendorf-Gymnasium Flöha © Frank Rost im Mai 2007

... dieser Text wurde nach den Regeln irgendeiner Rechtschreibreform verfasst - ich hab' irgendwann einmal beschlossen, an diesem Zirkus nicht mehr teilzunehmen ;-)

„Dieses Land braucht eine Steuerreform, dieses Land braucht eine Rentenreform - wir schreiben Schiffahrt mit drei „f“!“

Diddi Hallervorden, dt. Komiker und Kabarettist