                 












                 
                 
                 
                  1.Programm FTKL im Schuljahr 1990/91:
                  
                     (fertiggestellt am 19.12.1990) 







                   H A R D W A R E - E R W E I T E R U N G

                                 z u m

                           - P R O F I   5 1




                       S P E Z I F I K A T I O N 



                        Gruppe 2 der 3ANK90/91

                     (Hoffmann/Scheiber/Vozdecky)

















                                   - 1 -











                             INHALTSVERZEICHNIS 







       1. Systemziele (Objectives)..............................1


       2. Anwenderanforderungen und -verhalten .................2


       3. Systemkurzbeschreibung................................6

 
       4. Hardwarekonfiguration.................................6


       5. Funktionale Beschreibung..............................7


       6. Technische Daten......................................11


       7. Probleme bei der Inbetriebnahme.......................12


       8. Erweiterte Betriebs -und Ausbaumglichkeiten..........12


       9. Zeitplan..............................................12


      10. Literaturverzeichnis..................................13

 
      11. smtliche in PCAD erstellten Plne und Listen.........13












                                   - 2 -
                              1. SYSTEMZIELE



  Die im Wesentlichen geforderten Leistungen des 1. FTKLProgramms liegen
  im Bereich der Mikroprozessor-Steuerungen. Es soll der Schler dadurch 
  lernen, einen Mikroprozessor zu verstehen, zu programmieren und eine
  entsprechende Hardware zu erstellen. Vor Beginn der Arbeit ist ein
  Projektplan ber Gruppeneinteilung, Arbeitszeit und  Abgabetermin zu
  erstellen. Dadurch steckt sich der Schler selbst ein Ziel und lernt,
  eine Arbeit zu organisieren.Bei der Entwicklung wird das Nachschlagen
  in Datenbchern und Prospekten notwendig, um fr spezielle Anwendungen
  entsprechende Bauteile zu finden. Es wird dadurch die Kreativitt und
  Eigenstndigkeit jedes Einzelnen gefrdert. Es werden weiters die
  Grundfunktionen der maschinennahen Programmierung (Assembler) und,
  in Zusammenhang damit, eine Verbindung zur praktischen Anwendung 
  demonstriert. Zustzlich wird auch auf die praktische Ausarbeitung Wert
  gelegt. Das heit, der Schler mu sich ber verschiedene Fertigungs-
  kriterien Gedanken machen ( geringe Kosten, einfache Bedienung, Mglich-
  keiten der Fertigung). Es wird eine vollstndige Entwicklung eines
  Produktes durchgemacht (von Entwicklung ber Fertigung zur Wartung und
  Austestung).





                   2.ANWENDERANFORDERUNGEN UND -VERHALTEN


  Das komplette System besteht im wesentlichen aus drei Teilen:
  - der PC (Personal Computer): er wird verwendet, den -Profi zu
    initialisieren und diesen mit die fr seine Funktion notwendigen Daten
    zu versorgen.
  - der -Profi: der -Profi ist ein kleines, im Prinzip unabhngiges
    Mikroprozessor-System. In Kombination mit einer entsprechenden
    Zusatzplatine knnen kleine Demonstrationen vollzogen werden.
  - die Hardware-Erweiterungsplatine: sie stellt fr den -Profi ein 
    geeignetes Ein-/Ausgabegert dar und kann nur in Zusammenhang damit
    funktionieren.
  Kurzbeschreibung:    
   In Abhngigkeit der Schalterstellung (immer nur 1 Schalter geschlossen)
   soll eine entsprechende Zahl auf der 7Segmentanzeige ausgegeben, und
   verschiedene Muster an den 8 LED's dargestellt werden: 

 Schalter 1 geschlossen: es sollten bei richtiger Bedienung alle 8 LED's 
                         leuchten und eine "1" an der 7-Segmentanzeige
                         anliegen.
       
       
       
       
       




       
    
                                   - 3 -
 Schalter 2 geschlossen: es entsteht ein langsames Lauflicht und eine "2"
                         am Display.
                          
                        
                        
                        
                        
                        
                        
                        
                        
                                          
                  
                        
                        
 Schalter 3 geschlossen: diese Schalterkombination ergibt ein schnelles
                         Lauflicht und eine "3" auf der Anzeige.
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
 Schalter 4 geschlossen: es entsteht ein Muster, wo abwechselnd, einmal
                         die "geraden", einmal die "ungeraden" LED's 
                         leuchten. Am 7-Segment erscheint eine "4".
          
          
          
          
          
          
          
          
          
          
          
          
          
                        
 Schalter 5 geschlossen: es ergibt sich dabei ein Lauflicht, da einmal von
                         links nach rechts, und dann von rechts nach links
                         luft. Die 7-Segmentanzeige bringt die Zahl "5".
                     
                     
                     
                     
                     
                     
                     
                     
                                                       
                                   - 4 -         
 Schalter 6 geschlossen: es entsteht ein Muster, wo die Lichter von auen
                         nach innen laufenn. Weiters wird eine "6" gezeigt.
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
 Schalter 7 geschlossen: es kommmt dabei zu einem Lauflicht, bei dem von
                         rechts beginnend immer eine LED hinzukommt, und
                         einer "7" an der Segment-Anzeige.
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
 Schalter 8 geschlossen: An der 7-Segmentanzeige wird eine "8" ausgegeben.
                        An den LED's ergibt sich ein inverses Lauflicht.               innen nach auen luft.
                        
                        
                        
                        
                        
                        
                    
                        
                                      
                        
                 
                        
 Fehlbedienung:Der -Profi ist allerdings so programmiert, da er nur bei
               Bettigung eines Schalters die entsprechende Ausgabe ttigt.
               Bei Fehlbettigung - d.h. bei Bettigen von zwei oder mehreren
               Schaltern - wird diese durch einen "F" (Fehler) am 7-Segment
               angezeigt. Dieser Zustand hlt solange an, bis wieder eine 
               Taste bedienungsrichtig bettigt wird. Die LED-Reihe zeigt
               dabei in der Mitte 2 leuchtende Punkte.



                                   - 5 -
                        3. SYSTEMKURZBESCHREIBUNG
               


                
 Das Projekt stellte die Funktion, Arbeitsweise, Entwicklung und
 Herstellung eines P-Systems zur Aufgabe. Es wurde eine Platine, die als
 Ein-/Ausgabebaustein eines Mikrocontrollers (hier: -Profi 51) dienen soll,
 dimensioniert und aufgebaut. Zur Erstellung des Schaltplanes, der
 Bauteilliste und des Layouts wurde ein Anwenderprogramm (PCAD -
 Personal Computer Aided Design) zur Verfgung gestellt. Es soll eine
 achtstellige Schalterkombination (8 Schalter am Print realisiert) vom 
 -Profi eingelesen werden, und abhngig davon ein Leuchtmuster auf 8 LED's
 bzw. ein Zeichen an einer 7-Segmentanzeige ausgegeben werden. Dabei wurde
 vorher ber einen PC der -Profi in Assembler programmiert (unter Verwendung
 eines Timers zur Verzgerung; in strukturierter Form programmiert ,
 d.h einzelne,zusammengehrende Teile, z.b.einzelne Schalterstellungen,
 in einem Unterprogramm realisieren).
 Die Durchfhrung des Projekts wurde nach einem bestimmt festgelegten 
 Zeitplan vollzogen, welcher sich ber einen Zeitraum von mehreren Wochen
 erstreckte.

 Kurzbeschreibung der Arbeitsschritte bei der Fertigung:

   -Funktion und Arbeitsweise des -Profis 51 anhand von Datenblttern 
    erfassen. 

   -Problem der Ansteuer- und Durchschaltlogik der zu entwickelten Platine 
    durchdenken.

   -mittels PCAD (= Anwenderprogramm) Schaltplan, Layout und smtliche 
    zur Fertigung wichtigen Listen (cross-referenz-list, net-list)
    erstellen.Dabei mu allerdings auf vorhandene und zur Verfgung
    gestellte Bauteile Rcksicht genommen werden.

   -Softwareprogramme entwickeln und programmieren.Als Programmiersprache
    wird Assembler verwendet.
    
   -Fertigung der entworfene Platine und anschlieende Kopplung mit -Profi.
   
   -Tests,Optimierung,Wartung 
   
                            
               
                       4. HARDWAREKONFIGURATION

 a) digitale IC's:
             1 x 74LS32                     (= 4 OR-Gatter)
             1 x 74LS02                     (= 4 NOR-Gatter)
             1 x 74LS00                     (= 4 NAND-Gatter)
             2 x 74LS273                    (= Latch)
             3 x 74LS244                    (= LED-Treiber,Puffer)
             
 b) diskrete Bauteile:
              
            16 x Widerstnde  330E         (= Vorwiderstnde)
             8 x Widerstnde   47k         (= Pull-Up-Widerstnde)
             8 x Tantal-Kondensatoren  1F (= Sttzkondensatoren)

                                   - 6 -
 c) Elektromechanisches:           
            
             1 x 64-polige Steckerleiste    (= Schnittstelle )
             8 x Umschalter
             1 x 7-Segmentanzeige
             8 x LED's

 d) Zustzliches Material:

             8 x Sockel fr IC's
             1 x Lochraster-Platine (100x160mm)
             dnner, lackisolierter Draht zur Verdrahtung des Aufbaues
             



             
                      5. FUNKTIONALE BESCHREIBUNG
                  
                      
 Hardware-Platine:

 Die Platine wurde nach folgenden Gesichtspunkten berlegt und aufgebaut:
 Da der -Profi seinen gesamten 64-kByte-Speicher in vier Adressbereiche
 unterteilt, und fr unseren Verwendungszweck nur der I/O-Bereich
 (Adressen C000...FFFF) Verwendung findet, mu dieser selektiert werden.
 Dies geschieht ber die IOSL-Leitung (=Input Output Select). Wird nun diese
 Leitung aktiv, d.h. geht sie auf LOW, so wird nur der gewnschte I/O-Bereich
 relevant. Sie wird daher als eine der wichtigsten Leitungen zur Hardware-
 Platine-Schnittstelle gefhrt. Um nun diesen beschriebenen Bereich auch
 ansprechen zu knnen, mssen auch Adressleitungen vorhanden sein. Im
 Konkreten mssen es genau 2 (A0,A1) sein, da auf der Platine nur zwei
 Einheiten fr eine Adresszuweisung (genauere Erklrung spter) vorhanden
 sind, nmlich einerseits die Schalter und die LED's (angesprochen mit C004,
 selektiert mit RD,WR), anderseits die 7-Segmentanzeige (angesprochen mit
 C003). Wie zu erkennen ist, sind weiters die RD-Leitung (read) und die
 WR-Leitung (write), und natrlich ein 8-bit-Datenbus erforderlich, um das
 von den Schaltern kommende bit-Muster transportieren, verarbeiten und wieder
 zur 7-Segmentanzeige bzw zu den LED's bringen zu knnen, um dort eine Aktion
 zu setzen.
 Funktionsweise: Mit dem IOSL und den Adressleitungen wurde ein Adressdecoder
 entworfen. Dieser selektiert bei aktivem IOSL, in Abhngigkeit der
 anliegenden Adresse, welche Einheit zur Verfgung steht. Die beiden
 Steuerleitungen RD und WR unterscheiden, ob von den Schaltern gelesen oder
 auf die 7-Segmentanzeige bzw. LED's geschrieben werden soll. Mit anderen
 Worten - liegt eine 4 (genauergenommen C004) an den Adressen und ist
 zustzlich die RD aktiv so kann die Schalterstellung eingelesen werden. Ist
 aber statt RD WR aktiv, so wird ein Muster (Lauflicht) auf der LED-Reihe
 gezeigt. Liegt aber die Adresse 4 an (wieder C003) und ist wieder WR aktiv
 so wird das 7-Segment angesteuert. Das Freigeben bzw Weitergeben von Daten
 geschieht durch Latches oder Buffers, deren EN-Leitungen (Enable-eine Art
 Ein/Ausschalten des Bausteins) an den Steuerleitungen liegen (RD,WR).


 
 
 
 

                                   - 7 -
 Prinzipschaltung:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Software zur Programmierung:
 
 Bei Entwurf der Software waren einige Gisichtspunkte zu bercksichtigen.
 So war es zum Beispiel vorgeschrieben, die Software strukturiert zu
 gestalten, d.h es sollten einzelne Programmblcke zu erkennen sein.
 Weiters soll ein Timer zur Verzgerung der Sendeimpulse verwendet werden.
 (Eine Verzgerung ist unbedingt notwendig, da z.B. ein Lauflicht nie als
 solches zu sehen wre. Der interne Takt, mit dem normalerweise geschrieben
 wird, betrgt 12 MHz. Es wrde also alle 12s eine LED leuchten).










                             - 8 -
verbale Software-Beschreibung:

Zu Beginn mu der Datenzeiger auf einen bestimmten Anfangswert gelegt
werden. Es wurde hier der Wert A000h gewhlt und mit dem Befehl ORG
fix definiert.
Das Hauptprogramm besteht im Wesentlichen aus 3 Teilen:

a) EINLESEN:

Dieser Programmteil lscht zuerst den Akkumulator-Inhalt, setzt den 
Datenzeiger auf die gewhlte Leseadresse (C004h), um die anliegenden
Bitmuster lesen zu knnen, und gibt dieses in binrer Form in den
Akkumulator.

b) EINSZHL:

Hier wird die Anzahl der im eingeholten Bitmuster vorhandenen Einser
gezhlt. Dies ist insofern wichtig, um mgliche Fehlbedienungen, wie zum
Beispiel die Bettigung mehrerer Schalter gleichzeitig, zu erkennen und
entsprechende Manahmen zu setzen. Dies geschieht auf folgende Weise:
Um den Akkumulatorinhalt nicht zu verndern, wird sein Wert auf den
Stapelspeicher gelegt und nach Bearbeitung wieder zurckgesetzt (mit den
Befehlen PUSH und POP). Es wird die Variable fr die Bitanzahl auf "0"
gesetzt,eine Schleifenvariable zum 8-maligen Durchlaufen definiert, und das
Carry-bit gelscht. Somit wre ein vordefinierter Zustand eingestellt
(nmlich alles "0"). Nun wird der Akkumulator bitweise in das Carry-Bit
geschoben und mit jedem Auftreten einer "1" die Bitanzahl-Variable erhht.
Am Ende dieses Teiles steht im Register R4 die Anzahl der "1" im Bitmuster.

c) VERZWEIG:

Die Aufgabe dieses Programmteils liegt darin, entsprechend der anliegenden
Bitmuster Verzweigungen zu kleinen Unterprogrammen (Jobs -> strukturierte
Programmierung) durchzufhren und Fehler zu erkennen und ebenfalls
entsprechend zu reagieren.
Eine Fehlbedienung liegt immer dann vor, wenn die Anzahl der Einsen         
ungleich 1 ist. Dies ist also hier in 2 Fllen mglich. Entweder es wird
garkein Schalter bettigt (R4=0) oder mehr als einer (R4 > 1). Mit einer
doppelten Abfrage wird unterschieden:

 Bei richtiger Bedienung kommt es zur bitweisen Abfrage (JNB-Befehl:
 es wird nur dann auf die angegebene Adresse gesprungen, wenn das angewhlte
 Bit nicht gesetzt ist. LJMP-Befehl: es wird ein unbedingter Sprung ber 64k
 durchgefhrt) und entsrechender Verzweigung zu den Jobs. (kleine
 Arbeitsschritte)

 Bei der Bettigung mehrerer Schalter gleichzeitig ist R4 grer als 1 und
 es werden beide Abfragen (CJNE-Befehle: es werden zwei Werte verglichen-
 ist das ungleich so erfolgt ein Sprung) bersprungen. Es wird ein Fehler-  
 job durchgefhrt (=Jobf).

 Bei Unttigkeit wird nur die erste Bedingung bersprungen und es kommt zur
 Ausgabe eines "E" als Eingabeaufforderung.


In den einzelnen Jobs wird zwischen den 2 Mglichkeiten der Ausgabe
unterschieden:


                               - 9 -
 Bei der Ausgabe auf die 7-Segmentanzeige (AUSG_SEG) wird der Datenzeiger
 wieder auf die gewhlte Adresse (C003h) gesetzt. Der Inhalt des            
 Akkumulators, der entsprechend der Anzeige am 7-Segment eine binre
 Kombination ergibt, wird ber diese Adresse zum Ein-Ausgabe-Gert
 geschickt.

 Die Ausgabe auf die Leuchtdioden (AUSG_LED) erfolgt nach dem selben        
 Prinzip, wobei aber die Adresse jetzt C004h sein mu.

Da ein interner Maschinenzyklus sehr rasch abluft, wrden die nacheinander
ausgegebenen Daten so rasch transportiert werden, da eine anschauliche
Abfolge von Lauflichtern oder Muster unmglich wre. Aus diesem Grund mute
eine Verzgerung bei der Ausgabe vorgenommen werden (technisch mit internen
Timer realisiert). Darin wird eine Zhlschleife sooft wie angegeben (0A fr
lngere Verzgerung -> LANGSAM, 02 fr krzere Verzgerungen -> SCHNELL)    
durchlaufen. Es ist somit auch die Mglichkeit gegeben, unterschiedliche
Ausgabezeiten zu gewinnen.


STRUKTOGRAMM:
=============






































                                - 10 -
                        6. TECHNISCHE DATEN


Stromverbrauch:                            max.               typ.

                     74LS273               19mA
                     74LS244               30mA               17mA
                     74LS32               4,9mA              2,6mA
                     74LS02                 4mA              2,2mA
                     74LS00                 3mA              1,5mA
                     LED                   15mA
                     7-Segment             15mA  pro Segment

Den Gesamtstrom haben wir aus den worst case Angaben der einzelnen
Bauteile zusammengesetzt.
Gesamtstromaufnahme der Erweiterungseinheit: max.360mA (typ.300mA)
Versorgungsspannung:    5V
Der oben angefhrte Stromverbrauch gilt nur wenn alle Leuchtdioden
und alle Leuchtdioden der Siebensegmentanzeige leuchten.


Berechnung der Pull-Up-Widerstnde:

Der minimale Eingangsstrom betrgt beim Pufferbaustein (74LS244)
20uA.Der maximale Eingangsstrom betrgt 0,1mA.
Annahme:Bentigte Spannung fr HIGH ca.2,7V.   (mindestens 2V)
Als Eingangstrom nahmen wir 50uA an.   (Zwischenwert)

Skizze:

                                                    5V-2,7V=2,3V


                                                    2,3V/50uA=46K







          -> Die Pull-Up-Widerstnde haben wir mit 47K bemessen.



Berechnung der Treiberwiderstnde:

An den LED's und an der 7-Segmentanzeige soll eine Spannung von
ca.1,7V anliegen --> 5V-1,7V=3,3V --> 3,3V mssen am Vorwiderstand
abfallen --> 3,3V/15mA=220E.

          -> Als Vorwiderstnde verwendeten wir Widerstnde mit 330E.







                                  - 11 -
                   7. PROBLEME BEI DER INBETRIEBNAHME

Trotz eifriger Entwicklung der Platine, genauem Aufbau auf                  
Lochraster-Platte und sorgflltiger Programmierung des -Profis ergaben     
sich bei der Inbetriebnahme erhebliche Schwierigkeiten.

Fehlersuche:
Obwohl zuvor alle Leitungen mit dem Ohmmeter auf ihre elektrische Verbindung
berprft wurden, funtionierte die Schaltung nicht. Der Computer strzte
immer wieder ab. Nach langwierigem Durchmessen der Leitungen der
Steckerleiste gegeneinander, wurde festgestellt, da 4 Sttz-Kondensatoren
falsch gepolt eingebaut worden sind. Weiters war zu erkennen, da der
Datenbus nicht vollstndig funktionsfhig war (Datenleitungen,              
Querverbindungen). Es lagen nur 2,5V an, was auf offene Leitungen schlieen
lt.Nach Behebung dieser Fehler funktionierte bereits die Ausgabe. Jedoch
war das Einlesen nicht mglich. Als Ursache ergab sich, das ein ODER-Gatter-
IC deffekt war (undefinierte Zustnde am Ausgang; Stndig 1,8V). Da der
Fehler dadurch nicht behoben werden konnte, versuchten wir, die Schaltung
nach eventuell falschen Verbindungen abzusuchen (nach Verdrahtungsliste).
Es mu ein Fehler bei der PCAD-Programmierung unterlaufen sein. Statt einem
ODER-Glied wurde versehentlich ein NAND-Glied eingeltet.
Das Testprogramm wurde gestartet. Diesmal funktionierte die Ausgabe auf die
7-Segmentanzeige nicht. Der Grund dafr lag in der Software. Es wurden im
Programm die beiden Adressen C003h und C004h verwechselt.
Nun war das Projekt voll funktionstchtig.


             8. ERWEITERTE BETRIEBS- UND AUSBAUMGLICHKEITEN
           
 Es kann dieses System natrlich softwaremig auf maximal 256 (= 2 ^8
 mgliche Schalterstellungen) Zustnde (=Anzeigen) erweitert werden.


                         9. ZEITPLAN


     Schaltungsentwurf:                                          12 Std.
     Schaltungsdimensionierung (Bauteilwahl):                     6 Std.
     PCAD - Schaltungsentwurf, Verbesserung, Optimierung:        30 Std.
     PCAD - Zuweisung (Cross-Reference-List)                      4 Std.
          - Erstellung sonstiger Listen                           4 Std.
          - Plazieren der Bauteile (PCPLACE)                     10 Std.
          - Vorbereitung, Entflechtung in PCROUTE                 3 Std.
          - Ausdruck der Plne,Listen                             2 Std.
     Printerstellung - Plazieren der Bauteile                     4 Std.
                     - Verdrahtung nach Verdrahtungsliste        15 Std.
                     - Inbetriebnahme,Fehlersuche,Optimierung    15 Std.
     Software - Wissensaneignung (FSD51,ASM51,8051..)            40 Std.
              - berlegung,Entwicklung,Erstellung                30 Std.
              - Tests in Verbindung mit Hardware                 10 Std.
     Dokumentation,Wartung,Tests,Verbesserungen                  30 Std.
                                                             -------------
                                                                215 Std.
                                                             =============

    Bei diesen Stundenangaben sind nicht nur die verbrachten FTKL-Unterichts-
    stunden, sondern auch die im aktuellen Fachgebiet GLP und die privat
    aufgewendete Arbeitszeit miteinberechnet.

                                   - 12 -

                      10. LITERATURVERZEICHNIS




  1. VALVO Die 8-bit-Mikrocontroller  Familie 8051 , 1.Eigenschaften
  2. VALVO Die 8-bit-Mikrocontroller  Familie 8051 , 2.Befehlsvorrat
  3. -PROFI 51, Version 2.00/1990 (von Ch. Scharl)
  4. PHILIPS - TTL-Logic series - Data handbook



11. smtliche, in PCAD erstellten Plne und Listen:




                               - 13 -

