.
Start Spezial Hardware Software Download Links

Anwenderseiten und technische Informationen
zum Entwicklungssystem
Startseite_

.
.

ES535

Download: ES535.zip (228K) enthält MC535, Basic535, Beispielprogramme und diesen Text

Allgemeine Beschreibung
Anschlussbelegungen
Speichermodi
Befehlsvorrat des Betriebssystems
Programme laden
Das erweiterte Basic-52
Einsatz des Makrocompilers MC

zum Shop


Allgemeine Beschreibung

Das Entwicklungssystem ES535 mit 80C535-Prozessor ist ein vielseitiges System sowohl für die Programmentwicklung als auch für den direkten Einsatz als universelles Mess- und Steuerungssystem. Neben der Möglichkeit, Programme über die serielle Schnittstelle in das RAM des Systems zu laden und zu starten, gibt es zahlreiche Direktkommandos, die einen Einsatz als Mess- und Steuerungs-Interface ermöglichen, das vom PC aus einer Hochsprache heraus verwendet werden kann. Zusätzlich enthält das System einen angepassten BASIC52-Interpreter. Erweiterungen und Versuchsaufbauten werden durch das Punktraster- Versuchsfeld der Platine erleichtert. Alle wichtigen Anschlüsse sind über Pfostenstecker erreichbar.

Das ES535 besitzt zwei Tastschalter: "RESET" dient zum Zurücksetzen des Prozessors und zum Beenden eines geladenen Programms. "MODE 0" setzt das GAL in seinen Grundzustand (Modus 0) zurück. Beide Funktionen gemeinsam können auch über die serielle Schnittstelle durch ein geeignetes PC-Programm ausgelöst werden.
Technische Daten:
Prozessor:       80C535
RAM:             32K
EPROM:           32K
Taktfrequenz:    12MHz
Baudrate:        9600 Baud
Stromversorgung: 5V, stabilisiert
Stromaufnahme:   ca. 70mA
Anschlüsse:      - drei universelle 8-Bit-Ports
		 - 8 analoge Eingänge 8/10 Bit
		 - Prozessorbus herausgeführt
		 - LCD- Anschluss
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 verfügt mit P0.0 bis P0.7 über einen kombinierten Daten- und Adressbus. Das Adresslatch 74HC573 trennt unter Steuerung des ALE- Signals die unteren acht Adresssignale A0 bis A7 ab. Die höheren Adressleitungen werden vom Port P2 geliefert. Im Normalfall verwalten 80535-Prozessoren völlig getrennte Programm- und Datenspeicher. Das RAM 62256 wird jedoch beim ES535 durch eine Verknüpfung von /PSEN- und /RD-Signal im GAL 16V8 als gemeinsamer Daten- und Programmspeicher verwendet. Dadurch ist es möglich, 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 Adressbereich 0000h bis 7FFFh fungiert. Es wird jedoch als Programmspeicher im Bereich 8000h bis FFFFh gespiegelt, so dass in diesem Bereich nachgeladene Programme ablaufen können.

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 höheren Adressleitungen A10 bis A15 und die PSEN-Leitung. Der jeweils aktive Betriebsmodus ist am Zustand der GAL-Anschlüsse 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 zurückversetzt werden.


Anschlussbelegungen
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 externe Referenz mit +5V gelegt werden.
2. VAGND sollte an GND (Pin2) gelegt werden.
3. /PE muss an GND gelegt werden, um den power-down-mode zu nutzen.
4. Die Anschlüsse der seriellen Schnittstelle können hier oder am DB9-Stecker (ST3) verbunden werden.
5. T2in und T2out sind als Eingang und Ausgang eines weiteren RS232-Leitungstreibers im MA232 frei verfügbar.

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 Adressbereich 8400...87FF.
2. SEL1 und SEL2 können als Ausgänge den Betriebsmodus des Systems anzeigen.
3. LCD selektiert das LCD-Display für Schreib- und Lesezugriffe (ach an St4 verfügbar).
4. Hier kann eine zweiter Reset-Schalter für den Betriebsmodus 0 gegen Masse geschaltet werden.
5. T2in und T2out sind als Eingang und Ausgang eines weiteren RS232-Leitungstreibers im MA232 frei verfügbar.

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 empfängt Daten) TXD     3
				     8     NC
			  NC     4
				     9     NC
			 GND     5

Anmerkung:
Zur Verbindung mit dem PC ist ein 9-poliges, nicht gekreuztes Verlängerungskabel zu verwenden. Beim Betrieb mit üblichen Terminalprogrammen ist zu beachten, dass RTS und DTR üblicherweise gesetzt werden und damit einen RESET ausgelöst wird.

St4: Pfostenstecker 14-Polig zum Anschluss 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 bestückt werden. Ein LCD-Display mit verlängertem Pfostenstecker lässt sich dann ohne ein Verbindungskabel 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, muss jeweils in nebeneinander liegende Leitungen (1/2, 3/4 usw. bis 13/14) aufgetrennt und verdreht werden.

St7: Schraubklemme für die Betriebsspannung

   1 GND
   2 Vcc, +5V stabilisiert

Anmerkung:
Das ES535 enthält eine Suppressor- Diode gegen Überspannung und Verpolung. Im Fehlerfall, z.B. bei überhöhter Betriebsspannung, begrenzt diese Schutzdiode die Betriebsspannung auf einen ungefährlichen Wert. Eine andauernde Überlastung führt zu einem irreversiblen Kurzschluss in der Diode, die dann ersetzt werden muss.

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

Speichermodi

Das ES535 verfügt ü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 Adressbereich 0000h bis 7FFFh und dem RAM als Programmspeicher im Bereich 8000h bis FFFFh, gespiegelt als Datenspeicher im Bereich 0000h bis 7FFFFh. Programme können im RAM ab 8000h gestartet werden. Zusätzlich steht im Modus 0 ein umfangreicher Befehlssatz für direkte Interface-Aktionen zur Verfügung.

Die Umschaltung in höhere Betriebsmodi erfolgt über das GAL16V8 durch Programmsprünge zu besonderen Adressen: 7400h für Modus 1, 7800h für Modus 2 und 7C00h für Modus 3. Modus 1 und 2 dienen ausschließlich dazu, Programme in den Adressbereich ab 0000h zu laden und zu starten. Das RAM liegt ab Datenspeicher jeweils bei Adresse 0. Während 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 parallel liegen und jeweils im Bereich 4000h bis 7FFFh gespiegelt werden.

Modus 3 startet das angepasste 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 für das BASIC zur Verfügung.

Das GAL stellt zwei Ausgangsleitungen SEL1 und SEL2 zur Verfügung, die den gewählten Modus nach außen anzeigen. Sie werden an den 40-poligen Pfostenstecker ST2 geführt, so dass der gewählte Modus z.B. über LEDs sichtbar gemacht werden kann. Darüber hinaus ist es möglich, 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 zugehörige 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 Hälfte)  RAM (obere Hälfte)
    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 für externe Bus-Erweiterungen liegt in allen Betriebsmodi bei 8000h bis FFFFh. In diesem Bereich kann z.B. ein externer Datenspeicher liegen, der Über die Adressleitungen, die Datenleitungen und die /WR- und /RD-Leitungen angesprochen wird.

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

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

Weiterhin ist der Bereich 8400h bis 87FFh für externen Peripherie wie z.B. Porterweiterungen, Analog-Wandler usw. vorgesehen. Die Chip-Select-Leitung IO/2 wird für die Dauer jedes /WR- oder /RD- Zugriffs auf diesen Adressbereich low.


Befehlsvorrat des Betriebssystems
Das ES535 verfügt über ein eigenes Betriebssystem im EPROM, um sowohl direkte Interface-Funktionen ausführen zu können als auch Programme zu laden und auszuführen. 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 für 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 können z.B. mit einer Prozess-Sprache oder Spracherweiterung in einer Hochsprache genutzt werden. Dies erleichtert die Programmentwicklung auf dem PC, wenn es um nicht-zeitkritische Aufgaben geht. Das folgende Programm zeigt ein einfaches Lauflicht in Pascal.

Program Lauflicht_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 Busorientiert und wird hier über Prozessorports angesteuert, so daß er leicht an St1 angeschlossen und auf dem Punktrasterfeld untergebracht werden kann. Dabei erfolgt die Ausgabe von acht parallelen Datenbits über Port P4. Zusätzliche 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 können. So ist z.B. der Einkanal-Wandler ZN426 einsetzbar, der ohne die Steuersignale von Port P3 auskommt.


Autonom im ES535 lauffähige Pragramme lassen sich bequem mit dem Makrocompiler MC entwickeln und in einem frei wählbaren Modus des Systems starten. Darüber hinaus können beliebige anders entwickelte Programme wie z.B. übersetzte Assembler- Programme oder kompilierte C- Programme geladen werden. Je nach erforderlicher Speicheraufteilung muss dazu der passende Betriebsmodus ausgewählt 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 für ein übliches System mit getrennten Daten- und Adressbereichen ab Adresse 0000h zu testen, muss der Modus 1 gewählt werden. Hier stehen jeweils 16K für Programme und Daten zur Verfügung. Ein Download-Programm muß die folgenden Schritte ausführen:

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 Binärformat. Programme können z.B. mit dem Assembler TASM oder mit dem Makrocompiler MC erstellt werden. Auch der 8051-Pascal-Compiler NiliPas wurde erfolgreich eingesetzt.


Das erweiterte Basic52

Da ES535 verfügt bereits über einen angepassten BASIC-52-Interpreter im EPROM. Zum Starten den Interpreters muss in den Modus 3 umgeschaltet werden. Soll das System grundsätzlich mit Basic arbeiten, dann können 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 durchgeführt. Außerdem erlaubt das Programm ein einfaches Editieren und Laden von Programmen.

Das angepasste BASIC-52 hat folgende Eigenschaften:

- Baudrate fest eingestellt auf 9600 Baud bei 12 MHz
- RAM-Größe 16 K - Alle drei Timer verfügbar
- Voller Befehlssatz des Intel-8052AH-BASIC
- Unterstützung des AD-Wandlers
- Unterstützung der zusätzlichen Ports
- Unterstützung der zusätzlichen SFR
- Treiber für 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 für 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 für Textstrings reservieren
UO1, UO0       User-Output aktiv/inaktiv
IDLE           Warten auf Interrupt

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

Für direkte Portzugriffe stehen die folgenden erweiterten
Befehle zur Verfügung:
Ausgabe                     Eingabe
-------------------------------------------
P3 = X                      INP3 : POP A
P4 = 255                    INP4 : POP A
P5 = 255-X                  INP5 : POP A
			    INP6 : POP A

Zusätzlich wurde mit dem Operator "IO" der Zugriff auf weitere Hardware-Elemente ermöglicht. Die genaue Funktion von IO wird durch Zuweisung einer Funktionsnummer an den Control-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 muss der gewünschte Messbereich über den Operator DAPR festgelegt werden, und der gewünschte Eingangskanal ist in ADCON zu schreiben.

Die Basic-Erweiterung berücksichtigt auch einen LCD-Treiber, so dass bequem autonome Messprogramme mit LCD-Ausgabe geschrieben werden können. Dazu gibt es die zusätzlichen Kommandos LCDINIT und CURSOR. Die Ausgabe erfolgt z.B. durch UO 1 (user output on). Das folgende Beispiel demonstriert die Ausgabe von Messdaten der Analogausgänge 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


Einsatz des Makrocompilers MC

Die Programmierumgebung MC wurde speziell für die vereinfachte Programmentwicklung mit Mikrocontrollern entwickelt und enthält neben einem vielseitigen Compiler auch einen Editor, Download- Funktionen, ein Terminalprogramm und einen Speicher-Editor. MC unterstützt das ES535 in allen Betriebsmodi, so dass sich leicht Programme für eigene 80535-Systeme entwickeln lassen. Auch die Programmentwicklung für 8051-Controller kann mit dem ES535 und MC erfolgen.

MC liefert sehr schnellen und sehr kompakten Code, so dass sich auch zeitkritische Aufgaben lösen lassen. Gegenüber Assembler ergibt sich vor allem eine geringere Einarbeitungszeit und eine erhebliche Zeitersparnis bei der Entwicklung von Programmen. Insbesondere sind sehr schnelle Testzyklen möglich, weil Programme ins RAM geladen und z.B. mit dem integrierten Terminal in der selben Programmumgebung getestet werden können.

Das folgende Programmbeispiel zeigt die schnelle Erfassung von 20000 analogen Messwerten 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 Triggerflanke
EndWhile
Count1 80               ;20000 Messpunkte
Loop1 250messungen      ; 80 * 250
EndProc

Begin
triggern
End


.
.
Start Spezial Hardware Software Download Links

AK MODUL-BUS Computer GmbH, Münsterstr. 45, 48477 Hörstel-Riesenbeck, Tel. +49-54 54 / 9 34 36 36 Fax +49-54 54 / 9 34 36 37
 Mail:info@ak-modul-bus.de