               ES535 - Anwenderhandbuch




1. Allgemeine Beschreibung

Das Entwicklungssystem ES535 mit 80C535-Prozessor ist ein
vielseitiges System sowohl fr die Programmentwicklung als auch
fr den direkten Einsatz als universelles Me- und
Steuerungssystem. Neben der Mglichkeit, Programme ber die
serielle Schnittstelle in das RAM des Systems zu laden und zu
starten, gibt es zahlreiche Direktkommandos, die einen Einsatz
als Me- und Steuerungs-Interface ermglichen, das vom PC aus
einer Hochsprache heraus verwendet werden kann. Zustzlich
enthlt das System einen angepaten BASIC52-Interpreter.
Erweiterungen und Versuchsaufbauten werden duch das Punktraster-
Versuchsfeld der Platine erleichtert. Alle wichtigen Anschlsse
sind ber Pfostenstecker erreichbar.

Das ES535 besitzt zwei Tastschalter: "RESET" dient zum
Zurcksetzen des Prozessors und zum Beenden eines geladenen
Programms. "MODE 0" setzt das GAL in seinen Grundzustrand (Modus
0) zurck. Beide Funktionen gemeinsam knnen auch ber die
serielle Schnittstelle durch ein geeignetes PC-Programm
ausgelst werden.



Technische Daten:

Prozessor:       80C535
RAM:             32K
EPROM:           32K
Taktfrequenz:    12MHz
Baudrate:        9600 Baud
Stromversorgung: 5V, stabilisiert
Stromaufnahme:   ca. 70mA
Anschlsse:      - drei universelle 8-Bit-Ports
                 - 8 analoge Eingnge 8/10 Bit
                 - Prozessorbus herausgefhrt
                 - LCD-Anschlu
Software:        - Assembler
                 - Makrocompiler MC
                 - Pascal- und C-Compiler einsetzbar
                 - BASIC-52-Interpreter

(Achtung! Der NMOS-Prozessor 80535 darf nicht auf dem ES535
eingesetzt werden, da er eine etwas andere Pinbelegung als der
CMOS-TYP 80C535 hat!)


Der Prozessor 80C535 ist weitgehend kompatibel zur 8051-Familie
und verfgt mit P0.0 bis P0.7 ber einen kombinierten Daten- und
Adrebus. Das Adrelatch 74HC573 trennt unter Steuerung des ALE-
Signals die unteren acht Adresignale A0 bis A7 ab. Die hheren
Adreleitungen werden vom Port P2 geliefert. Im Normalfall
verwalten 80535-Prozessoren vllig getrennte Programm- und
Datenspeicher. Das RAM 62256 wird jedoch beim ES535 durch eine
Verknpfung von /PSEN- und /RD-Signal im GAL 16V8 als
gemeinsamer Daten- und Programmspeicher verwendet. Dadurch ist
es mglich, Programme ins RAM zu laden und zu starten. Im
Grundzustand des Systems ist das EPROM 27256 als
Programmspeicher aktiv, wobei das RAM als Datenspeicher im
Adrebereich 0000h bis 7FFFh fungiert. Es wird jedoch als
Programmspeicher im Bereich 8000h bis FFFFh gespiegelt, so da
in diesem Bereich nachgeladene Programme ablaufen knnen.

Die programmierte Logik des GALs erlaubt eine Umschaltung in
drei weitere Betriebsmodi, die sich durch eine andere Zuordnung
des Programm- und Datenspeichers auszeichnen. Die Umschaltung
wird jeweils durch Programm-Zugriffe auf bestimmte Adressen
eingeleitet. Das GAL dekodiert hierzu die hheren Adreleitungen
A10 bis A15 und die PSEN-Leitung. Der jeweils aktive
Betriebsmodus ist am Zustand der GAL-Anschlsse SEL1 und SEL2
erkennbar. ber einen Taster "Modus 0" und ber die Master-
Reset-Leitung RTS an der seriellen Schnittstelle kann das GAL in
seinen Grundzustand zurckversetzt werden.







2. Anschlubelegungen

St1: Pfostenstecker 50-polig:

         Vcc (+5V)   1   2     GND
     1)    VAREF     3   4     VAGND    2)
          /RESET     5   6     /PE      3)
           P4.0      7   8     P4.1
           P4.2      9   10    P4.3
           P4.4     11   12    P4.5
           P4.6     13   14    P4.7
           P5.0     15   16    P5.1
           P5.2     17   18    P5.3
           P5.4     19   20    P5.5
           P5.6     21   22    P5.7
           AN0      23   24    AN1
           AN2      25   26    AN3
           AN4      27   28    AN5
           AN6      29   30    AN7
           P1.0     31   32    P1.1
           P1.2     33   34    P1.3
           P1.4     35   36    P1.5
           P1.6     37   38    P1.7
        Vcc (+5V)   39   40    GND
           P3.2     41   42    P3.3
           P3.5     43   44    P3.4
     4)  TXD (PC)   45   46    RXD (PC) 4)
             NC     47   48    GND      4)
     5)    T2in     49   59    T2out    5)

Anmerkungen:
     1) VAREF sollte an +5V (Pin1) oder an eine extrene Referenz
        mit +5V gelegt werden.
     2) VAGND sollte an GND (Pin2) gelegt werden.
     3) /PE mu an GND gelegt werden, um den power-down-
        mode zu nutzen.
     4) Die Anschlsse der seriellen Schnittstelle knnen hier
        oder am DB9-Stecker (ST3) verbunden werden.
     5) T2in und T2out sind als Eingang und Ausgang eines
        weiteren RS232-Leitungstreibers im MA232 frei verfgbar.



St2: Pfostenstecker 40-polig:

         Vcc (+5V)   1   2     GND
             A14     3   4     A15
             A12     5   6     A13
             A10     7   8     A12
              A8     9   10    A9
              A6    11   12    A7
              A4    13   14    A5
              A2    15   16    A3
              A0    17   18    A1
              D1    19   20    D0
              D3    21   22    D2
              D5    23   24    D4
              D7    25   26    D6
             Vcc    27   28    GND
             /RD    29   30    /WR
     1)     IO/2    31   32    /PSEN
     2)     SEL1    33   34    LCD   3)
     2)     SEL2    35   36    /Reset2 (Mode 0)  4)
             Vcc    37   38    GND
     5)     T2in    39   40    T2out  5)

Anmerkungen:
     1) IO/2 selektiert externe Peripherie als /CS-Signal im
        Adrebereich 8400...87FF.
     2) SEL1 und SEL2 knnen als Ausgnge den Betriebsmodus des
        Systems anzeigen.
     3) LCD selektiert das LCD-Display fr Schreib- und
        Lesezugriffe (ach an St4 verfgbar).
     4) Hier kann eine zweiter Reset-Schalter fr den
        Betriebsmodus 0 gegen Masse geschaltet werden.
     5) T2in und T2out sind als Eingang und Ausgang eines
        weiteren RS232-Leitungstreibers im MA232 frei verfgbar.



St3: RS232-Anschlu DB9, weiblich, zur direkten Verbindung mit dem PC:


                         NC      1
                                     6     NC
  (ES535 sendet Daten)   RXD     2
                                     7     RTS  (Master-Reset)
  (ES535 empfngt Daten) TXD     3
                                     8     NC
                          NC     4
                                     9     NC
                         GND     5


Anmerkung: Zur Verbindung mit dem PC ist ein 9-poliges, nicht-
           gekreuztes Verlngerungskabel zu verwenden. Beim
           Betrieb mit blichen Terminalprogrammen ist zu
           beachten, da RTS und DTR blicherweise gesetzt
           werden un damit einen RESET ausgelst wird.



St4: Pfostenstecker 14-Polig zum Anschlu eines Standard-LCD-Moduls

             GND     1   2     Vcc
        Kontrast     3   4     RS (A0)
        R/W (A1)     5   6     E (LCD-Signal vom GAL)
              D0     7   8     D1
              D2     9   10    D3
              D4    11   12    D5
              D6    13   14    D7

Anmerkung: Statt des Pfostensteckers kann eine Buchse bestckt
werden. Ein LCD-Display mit verlngertem Pfostenstecker lt
sich dann ohne ein Vebindungskabel direkt auf das ES535
aufsetzen. Ein Flachbandkabel, das von oben auf eine
Steckerleiste im ES535 und von unten auf eine zweireihige
Steckerleiste des LCD-Moduls aufgesetzt werden soll, mu jeweils
in nebeneingander liegende Leitungen (1/2, 3/4 usw. bis 13/14)
aufgetrennt und verdreht werden.


St7: Schraubklemme fr die Betriebsspannung

   1 GND
   2 Vcc, +5V stabilisiert

Anmerkung: Das ES535 enthlt eine Suppressor-Diode gegen
berspannung und Verpolung. Im Fehlerfall, z.B. bei berhhter
Betriebsspannung, begrenzt diese Schutzdiode die
Betriebsspannung auf einen ungefhrlichen Wert. Eine andauernde
berlastung fhrt zu einem irreversiblen Kurzschlu in der
Diode, die dann ersetzt werden mu.


St8: Pfostenstecker 10-polig, Port P4

              P4.0   1   2    P4.1
              P4.2   3   4    P4.3
              P4.4   5   6    P4.5
              P4.6   7   8    P4.7
               Vcc   9   10   GND


St9: Pfostenstecker 10-polig, Port P5

              P5.0   1   2    P5.1
              P5.2   3   4    P5.3
              P5.4   5   6    P5.5
              P5.6   7   8    P5.7
               Vcc   9   10   GND


St10: Pfostenstecker 10-polig, Port P6 (AN0...AN7)

               AN0   1   2    AN1
               AN2   3   4    AN3
               AN4   5   6    AN5
               AN6   7   8    AN7
               Vcc   9   10   GND


St11: Pfostenstecker 10-polig, Port P1

              P1.0   1   2    P1.1
              P1.2   3   4    P1.3
              P1.4   5   6    P1.5
              P1.6   7   8    P1.7
               Vcc   9   10   GND








3. Speichermodi

Das ES535 verfgt ber vier unterschiedliche Betriebsmodi mit
jeweils eigenen Speichermodellen. Nach dem Einschalten, nach
einem Master-Reset ber die serielle Schnittstelle oder nach
einem Tastendruck auf den GAL-Resetknopf (Mode 0) befindet es
sich im Modus 0 mit dem EPROM im Adrebereich 0000h bis 7FFFh
und dem RAM als Programmspeicher im Bereich 8000h bis FFFFh,
gespiegelt als Datenspeicher im Bereich 0000h bis 7FFFFh.
Programme knnnen im RAM ab 8000h gestartet werden. Zustzlich
steht im Modus 0 ein umfangreicher Befehlssatz fr direkte
Interface-Aktionen zur Verfgung.

Die Umschaltung in hhere Betriebsmodi erfolgt ber das GAL16V8
durch Programmsprnge zu besonderen Adressen: 7400h fr Modus 1,
7800h fr Modus 2 und 7C00h fr Modus 3. Modus 1 und 2 dienen
ausschlielich dazu, Programme in den Adrebereich ab 0000h zu
laden und zu starten. Das RAM liegt ab Datenspeicher jeweils bei
Adresse 0. Whrend allerdings im Modus 1 das gesamte RAM
zugleich als Programm- und Datenspeicher im Bereich 0000h bis
7FFFh angesprochen werden kann, ist es im Modus 2 in zwei 16K-
Bereiche aufgeteilt, die als Programm- und Datenspeicher im
Bereich 0000h bis 3FFFh parallelliegen und jeweils im Bereich
4000h bis 7FFFh gespiegelt werden.


Modus 3 startet das angepate BASIC52 im EPROM, indem der
Bereich 4000h bis 7FFFh des EPROM (hier befindet sich der BASIC-
Interpreter) in den Bereich ab Adresse 0000h geschaltet wird.
Das RAM steht im Bereich 0000h bis 7FFFh fr das BASIC zur
Verfgung.

Das GAL stellt zwei Ausgangsleitungen SEL1 und SEL2 zur
Verfgung, die den gewhlten Modus nach auen anzeigen. Sie
werden an den 40-poligen Pfostenstecker ST2 gefhrt, so da der
gewhlte Modus z.B. ber LEDs sichtbar gemacht werden kann.
Darber hinaus ist es mglich, den Modus extern umzuschalten,
indem man die entsprechenden Select-Leitungen z.B. ber Taster
an +5V legt. Die folgende bersicht zeigt noch einmal alle vier
Betriebsmodi des ES535 und die zugehrige Speicheraufteilung:


Modus 0:
    Programmspeicher     Datenspeicher     I/O-Bereich
    ---------------------------------------------------
    EPROM                RAM
    0...32K              0...32K
    ----------------------------------------------------
    RAM                                    32K...64K
    32K...64K (gespiegelt)
    ----------------------------------------------------
    (SEL1=0, SEL2=0)


Modus 1    (SEL1=1, SEL2=0, Umschaltung: 7400h):
    Programmspeicher     Datenspeicher     I/O-Bereich
    ---------------------------------------------------
    RAM (untere Hlfte)  RAM (obere Hlfte)
    0...16K              0...16K
    gespiegelt 16K...32K gespiegelt 16K...32K
    ----------------------------------------------------
                                           32K...64K
    ----------------------------------------------------


Modus 2    (SEL1=0, SEL2=1, Umschaltung: 7800h):
    Programmspeicher     Datenspeicher     I/O-Bereich
    ---------------------------------------------------
    RAM                  RAM
    0...32K              0...32K
    ----------------------------------------------------
                                           32K...64K
    ----------------------------------------------------


Modus 3    (SEL1=1, SEL2=1, Umschaltung: 7C00h):
    Programmspeicher     Datenspeicher     I/O-Bereich
    ---------------------------------------------------
    EPROM                RAM
    16...32K, 0...16K    0...32K
    ----------------------------------------------------
                                           32K...64K
    ----------------------------------------------------

Der I/O-Bereich fr externe Bus-Erweiterungen liegt in allen
Betriebsmodi bei 8000h bis FFFFh. In diesem Bereich kann z.B.
ein externer Datenspeicher liegen, der ber die Adreleitunge,
die Datenleitungen und die /WR- und /RD-Leitungen angesprochen
wird.

Daneben gibt es eine feste Zuordnung des LCD-Displays in den
Adrebereich 8000h bis 83FFh. Die spezielle Steuerleitung LCD
liefert in diesem Adrebereich ein high-Signal fr jeden
Schreib- und Lesezugriff. Ein Standard-LCD-Modul kann an St4
angeschlossen und ber folgene Adressenm angesprochen werden:

           8000h: Kommandos schreiben
           8001h: Daten schreiben
           8002h: Bereitschaft lesen
           8003h: Daten lesen

Weiterhin ist der Bereich 8400h bis 87FFh fr exteren Peripherie
wie z.B. Portwerweiterungen, Analog-Wandler usw. vorgesehen. Die
Chip-Selekt-Leitung IO/2 wird fr die Dauer jedes /WR- oder /RD-
Zugriffs auf diesen Adrebereich low.








4. Befehlsvorrat des Betriebssystems

Das ES535 verfgt ber ein eigenes Betriebssystem im EPROM, um
sowohl direkte Interface-Funtionen ausfhren zu knnen als auch
Programme zu laden und auszufhren. Alle Betriebskommandos
bestehen aus einzelnen Bytes, die ber die serielle
Schnittstelle bertragen werden.


Senden               Empfangen     Funktion
-----------------------------------------------------------
  Portausgaben:
10h, Byte                         Ausgabe Port 1
11h, Byte                         Ausgabe Port 3
12h, Byte                         Ausgabe Port 4
13h, Byte                         Ausgabe Port 5

  Porteingaben:
20h                 Byte          Lesen Port 1
21h                 Byte          Lesen Port 3
22h                 Byte          Lesen Port 4
23h                 Byte          Lesen Port 5
24h                 Byte          Lesen Port 6

  Analogeingaben, 8 Bit:
30h                 Byte          Messen Kanal 0
31h                 Byte          Messen Kanal 1
...
37h                 Byte          Messen Kanal 7

  Analogeingaben, 10 Bit:
38h                 Highbyte      Messen Kanal 1
 1                  Lowbyte
...
3Fh                 Highbyte      Messen Kanal 1
 1                  Lowbyte

  Analogausgaben, externer Wandler an P3/P4
40h  Byte                         Analogausgabe Kanal 0
...
43h  Byte                         Analogausgabe Kanal 3

  reserviert fr Timer-Funktionen:
50

  Speicherzugriffe:
60h HiAdr, LoAdr                  Code laden
                     1
    1, Byte                       1. Byte
                     1
    1, Byte                       2. Byte
    ...
                     1
    0                             Ende
61h HiAdr, LoAdr                  Programmstart
62h HiAdr, LoAdr, Byte            RAM-Adresse beschreiben
63h HiAdr, LoAdr         Byte     RAM-Adresse auslesen
64h Adr, Byte                     Register beschreiben
65h Adr                  Byte     Register auslesen
66h SFR, Byte                     SFR beschreiben
67h SFR                  Byte     SFR auslesen
68h HiAdr, LoAdr                  Speicherbereich auslesen
    1                    Byte     1. Byte
    1                    Byte     2. Byte
    ...
    0                             Ende


Die Interface-Kommandos des Systems knnen z.B. mit einer
Prozesprache oder Spracherweiterung in einer Hochsprache
genutzt werden. Dies erleichert die Programmentwicklung auf dem
PC, wenn es um nicht-zeitkritiusche Aufgaben geht. Das folgende
Programm zeigt ein einfaches Lauflicht in Pascal.


Program Luflicht_ES535;
Uses DOS, CRT, COM2_96;

procedure Port1Aus (Datum: Byte);
begin
  sende ($10);
  sende (Datum);
end;

procedure Lauflicht
var n: Integer;
begin
  n := 1;
  for n:= 1 to 8 do begin
    Port1Aus (low(n));
    N := N * 2;
  end;
  for n := 1 to 6 do begin
    N := N div 2;
    Port1Aus (low(n));
  end;
end

begin
  repeat Lauflicht until KeyPressed;
end.


Analogausgaben (Kommandos 40h...43h) setzen einen extern
angeschlossenen DA-Wandler vom Typ MAX505 voraus. Der Wandler
ist Bus-orientiert und wird hier ber Prozessorports
angesteuert, so da er leicht an St1 angeschlossen un dauf dem
Punktrasterfeld untergebracht werden kann. Dabei erfolgt die
Ausgabe von acht parallelen Datenbits ber Port P4. Zustzliche
sind drei Steuerleitungen ber Port P3 bereitzustellen: P3.2-A0,
P3.3-A1, P3.4-/WR. Es gibt zahlreiche hnliche DA-Wandler, die
entsprechend angeschlossen werden knnen. So ist z.B. der
Einkanal- Wandler ZN426 einsetzbar, der ohne die Steuersignale
von Port P3 auskommt.








5. Programme laden

Autonom im ES535 lauffhige Pragramme lassen sich bequem mit dem
Makrocomiler MC entwickeln und in einem frei whlbaren Modus des
Systems starten. Darberhinaus knnen beliebige anders
entwickelte Programme wie z.B. bersetzte Assembler-Pogramme
oder compilierte C-Programme geladen werden. Je nach
erforderlicher Speicheraufteilung mu dazu der passende
Betriebsmodus ausgewhlt werden.

Besonders einfach lassen sich Programme im Modus 0 austesten,
weil hierzu keine Umschaltung des Modus erforderlich ist. Im
Modus 0 beginnt der Programmspeicher bei 8000h, er ist aber
zugleich als Datenspeicher ab Adresse 0000h gespiegelt. Zum
Laden eines Programms im Modus 0 sind folgende Schritte
erforderlich:

 1. Ein Reset-Impuls an RTS versetzt das ES535 in den
    Grundzustand.
 2. ber das Kommando 60h wird der Programmcode ab der Adresse
    0000h ins RAM geladen.
 3. Das Programm wird durch einen Sprung zur Adresse 8000h
    gestartet (Kommando 61h):

Um Software fr ein bliches System mit getrennten Daten- und
Adrebereichen ab Adresse 0000h zu testen, mu der Modus 1
gewhlt werden. Hier stehen jeweils 16K fr Programme und Daten
zur Verfgung. Ein Download-Programm mu die folgenden Schritte
ausfhren:

 1. Erzeugen eines Reset-Signals an RTS
 2. Laden des Codes ab Adresse 0000h (Kommando 60h)
 3. Plazieren eines Sprungbefehls (ljmp 0000h, 02 00 00) an die
    Speicherstelle 3400h  (z.B. ber Kommando 62h)
 4. Programmaufruf bei Adresse 7400h (Kommando 61h)

Der Programmaufruf bei Adresse 7400h schaltet ber die Dekodier-
Logik im GAL den Betriebsmodus 1 ein. Hier findet das System den
Sprungbefehl zum Anfang des Programmbereichs, weil der bei 3400h
eingetragene Sprungbefehl sich bei 7400h spiegelt. Das folgende
Listing zeigt ein Download-Programm in Pascal.


Program Load_Modus_1;
Uses DOS, CRT, COM2_96;
var  Dateiname : String;

procedure Download (Adresse: Word; Dateiname: String);
var f: file of Byte;
    r: Integer;
    code, Dummy: Byte;
begin
  Assign (f, Dateiname);
  {$I-} Reset (f); {$I+}
  r := IOResult;
  if r= 0 then begin
    {$I-}
    Sende ($60);
    Sende (hi(Adresse));
    Sende (Lo(Adresse));
    while not EoF(f) do begin
      Dummy := Empfang;
      Sende (1);
      read(f,code);
      Sende(code);
    end;
    Sende (0);
    Close(f);
    {$I+}
  end;
end;

procedure ProgrammStart (Adresse: Word);
begin
  Sende ($61);
  sende (Hi(Adresse));
  Sende (Lo(Adresse));
end;

procedure RAMschreiben (Adresse: Word; Code: Byte);
begin
  Sende ($62);
  Sende (Hi(Adresse));
  Sende (Lo(Adresse));
  Sende (Code);
end;

procedure lade (Dateiname: String);
begin
  SystemReset;
  DownLoad ($0000,Dateiname);
  RAMschreiben ($3400,$02);    {7400 im RAM: ljmp 0000}
  RAMschreiben ($3401,$00);
  RAMschreiben ($3402,$00);
  ProgrammStart ($7400);
end;


begin
  Init;
  if ParamCount > 0 then begin
    Dateiname := ParamStr(1);
    lade (Dateiname);
  end;
end.

Das Programm erwartet Programmcode im Binrformat. Programme
knnen z.B. mit dem Assembler TASM oder mit dem Makrocompiler MC
erstellt werden. Auch der 8051-Pascal-Compiler NiliPas wurde
erfolgreich eingesetzt.








6. Das erweiterte Basic52

Da ES535 verfgt bereits ber einen angepaten
BASIC-52-Interpreter im EPROM. Zum Starten den Interpreters mu
in den Modus 3 umgeschaltet werden. Soll das System
grundstzlich mit Basic arbeiten, dann knnen die GAL-Leitungen
SEL1 und SEL2 am Pfostenstecker ST2 fest mit Vcc verdrahtet
werden, um einen Start im Modus 3 zu erzwingen. Aus dem Modus 0
heraus ist jedoch ein Umschalten leicht durch einen
Programmstart bei 7C00h zu erreichen (Kommando 61h).

Anders als das originale BASIC-52 wartet das System nicht auf
ein erstes Zeichen vom Terminal, sondern sendet nach kurzer
Initialisierung mit 9600 Baud seine Einschaltmeldung:

         MCS-51 BASIC V1.1 / 80535

Nun lassen sich mit einem beliebigen Terminal BASIC-Programme
eingeben und starten. Zu empfehlen ist die Verwendung des
speziellen Editor- und Terminalprogramms BASED535. Beim Start
wird automatisch die Umschaltung in den Modus 3 durchgefhrt.
Auerdem erlaubt das Programm ein einfaches Editieren und Laden
von Programmen.

Das angepate BASIC-52 hat folgende Eigenschaften:

   - Baudrate fest eingestellt auf 9600 Baud bei 12 MHz
   - RAM-Gre 16 K
   - Alle drei Timer verfgbar
   - Voller Befehlssatz des Intel-8052AH-BASIC
   - Untersttzung des AD-Wandlers
   - Untersttzung der zustzlichen Ports
   - Untersttzung der zustzlichen SFR
   - Treiber fr eine LCD-Anzeige


Die folgende bersicht listet die vorhandenen BASIC-Befehle auf:

Kommandos:
RUN  Ctrl-C  CONT  LIST  LIST#  LIST@  NEW

Operatoren:
+  -  /  *  =  >  >=  <  <=  <> .AND.  .OR.  .XOR.  ABS()
NOT()  INT()  SGN()  SQR()  RND  LOG()  EXP()  SIN()  COS()
TAN()  ATN()

Statements:
CALL  DATA  READ  RESTORE  DIM  DO-WHILE  DO-UNTIL  END
FOR-TO-STEP  NEXT  GOSUB  ON-GOTO  ON-GOSUB  IF-THEN-ELSE  INPUT
LET  ONERR  PRINT  REM  STOP

Erweiterte Statements des BASIC-52:
BAUD           Baudrate fr List#, Print#
ONEX1          Unterprogrammaufruf nach Interrupt 1
ONTIME         Timer-Interruptaufruf
RETI           Ende eines Interrupt-Unterprogramms
PH0., PH1.     Ausgabe einer Hexadezimalzahl ohne/mit Nullstellen
PH0.#, PH1.#,
PRINT#, LIST#  Serielle Ausgabe ber P1.7
PUSH, POP      Daten zum, vom Argument-Stack
PWM            Pulsweitenmodulation ber Port 1.4
STRING         Speicher fr Textstrings reservieren
UO1, UO0       User-Output aktiv/inaktiv
IDLE           Warten auf Interrupt

Spezialfunktions-Opreratoren und Systemvariablen:
CBY()  DBY()  XBY()  GET  IE  IP  PORT1  PCON  RCAP2  T2CON
TCON  TMOD  TIME  TIMER0  TIMER1  TIMER2  PI  XTAL  MTOP
LEN  FREE

Fr direkte Portzugriffe stehen die folgenden erweiterten
Befehle zur Verfgung:

Ausgabe                     Eingabe
-------------------------------------------
P3 = X                      INP3 : POP A
P4 = 255                    INP4 : POP A
P5 = 255-X                  INP5 : POP A
                            INP6 : POP A

Zustzlich wurde mit dem Operator "IO" der Zugriff auf weitere
Hardware- Elemente ermglicht. Die genaue Funktion von IO wird
durch Zuweisung einer Funktionsnummer an den Controll-Operator
CTRL gesteuert:

Insgesamt sind folgende Funktionen erreichbar:

   Ports:
   CTRL=1      Port 1         schreiben und lesen
   CTRL=3      Port 3         schreiben und lesen
   CTRL=4      Port 4         schreiben und lesen
   CTRL=5      Port 5         schreiben und lesen
   CTRL=6      Port 6         nur lesen

   Interruptsteuerung:
   CTRL=10     IEN0           schreiben und lesen
   CTRL=11     IP0            schreiben und lesen
   CTRL=12     IEN1           schreiben und lesen
   CTRL=13     IP2            schreiben und lesen
   CTRL=14     IRCON          schreiben und lesen

   Timer 2:
   CTRL=20     CCEN           schreiben und lesen
   CTRL=21     CCL1/CCH1      schreiben und lesen, 16 Bit
   CTRL=22     CCL2/CCH2      schreiben und lesen, 16 Bit
   CTRL=23     CCL3/CCH3      schreiben und lesen, 16 Bit
   CTRL=24     CRCL/CRCH      schreiben und lesen, 16 Bit

   A/D-Wandler:
   CTRL=30     A/D-Wandler    nur lesen

Jede Messung im erweiterten BASIC verwendet den Operator IO mit
CTRL=30. Vor einer Messung mu der gewnschte Mebereich ber
den Operator DAPR festgelegt werden, und der gewnschte
Eingangskanal ist in ADCON zu schreiben.

Die Basic-Erweiterung bercksichtigt auch einen LCD-Treiber, so
da bequem autonome Meprogramme mit LCD-Ausgabe geschrieben
werden knnen. Dazu gibt es die zustzlichen Kommandos LCDINIT
und CURSOR. Die Ausgabe erfolgt z.B. durch UO 1 (user output
on). Das folgende Beispiel demonstriert die Ausgabe von Medaten
der Analogausgnge auf dem LCD- Display:


10     REM Vierkanalmessung mit LCD-Ausgabe
20     LCDINIT :  UO 1 : REM Ausgabe auf LCD umlenken
100    CTRL =30 :   REM AD-Wandler 
110    DAPR =128 :  REM Vref=2,5V
120    FOR N=0 TO 2
130    ADCON =N :   REM Kanal 
140    U=IO/100 :   REM AD-Wandler auslesen
150    CURSOR (N*8): PRINT U,
160    NEXT N
170    PRINT "   V   "
180    FOR T=1 TO 2000 :  NEXT T
190    GOTO 120

7. Einsatz des Makrocompilers MC

Die Programmierumgebung MC wurde speziell fr die vereinfachte
Programmentwicklung mit Mikrocontrollern entwickelt und enthlt
neben einem vielseitigen Compiler auch einen Editor, Download-
Funtionen, ein Terminalprogramm und einen Speicher-Editor. MC
untersttzt das ES535 in allen Betriebsmodi, so da sich leicht
Programme fr eigene 80535-Systeme entwickeln lassen. Auch die
Programmentwicklung fr 8051-Controller kann mit dem ES535 und
MC erfolgen.

MC liefert sehr schnellen und sehr kompakten Code, so da sich
auch zeitkritische Aufgaben lsen lassen. Gegenber Assembler
ergibt sich vor allem eine geringere Einarbeitungszeit und eine
erhebliche Zeitersparnis bei der Entwicklung von Programmen.
Insbesondere sind sehr schnelle Testzyklen mglich, weil
Programme ins RAM geladen und z.B. mit dem integrierten Terminal
in der selben Programmumgebung getestet werden knnen.

Das folgende Programmbeispiel zeigt die schnelle Erfassung von
20000 analogen Mewerten in zwei Sekunden. Die Messung startet
nach einer Triggerung durch berschreiten einer Triggerschwelle.
Die Daten lassen sich nach der Messung aus dem RAM des Systems
auslesen (Datenbereich ab 0800h) und verarbeiten.


; Einkanal-Datenlogger

Procedure messen
RdAnalog 0              ;8-Bit-Messung
WrRAM                   ;speichern
delay 1                 ;0,1ms Zeitraster
EndProc

Procedure 250messungen
Count2 250
Loop2 messen
EndProc

Procedure triggern
ResetRAM
NotDone
B 128                   ;Triggerlever
WhileNotDone
  RdAnalog 0
  IfA>=B Done           ;positive Trggerflanke
EndWhile
Count1 80               ;20000 Mepunkte
Loop1 250messungen      ; 80 * 250
EndProc

Begin
triggern
End
