Top Banner
Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 1/30 Formelsammlung_ITG.doc 18.09.2008 Strukturierte Programmentwicklung ................................................................................ 2 Unified Modeling Language 1/3 ........................................................................................ 3 UML 2/3 ............................................................................................................................... 4 UML 3/3 ............................................................................................................................... 5 Grundfunktionen (Logik) ................................................................................................... 6 Typische Schaltnetze .................................................................................................... 7 Programmablaufplan (PAP) ............................................................................................ 10 Abfrageformulierung mit SQL ........................................................................................ 11 1. Projektion und Formatierung ................................................................................................ 11 2. Selektion .............................................................................................................................. 11 3. Verbund von Tabellen .......................................................................................................... 12 4. Aggregatfunktionen und Gruppen ......................................................................................... 13 ER-Diagramm nach Chen ................................................................................................ 14 Netzwerksymbole ............................................................................................................ 15 ISO-OSI-7-Schichtenmodell ............................................................................................ 15 Header ..................................................................................................................................... 16 Ethernet II................................................................................................................................. 16 TCP-Header ............................................................................................................................. 16 Assembler ........................................................................................................................ 17 Interrupt & Timer ...................................................................................................................... 17 Interruptstruktur des 8051 ........................................................................................................ 19 Register zur Zählerkontrolle: TMOD und TCON ....................................................................... 20 Die Programmiersprache C (ANSI-C) ............................................................................. 21 1. Datentypen, Variable, Konstante, Operatoren und Ausdrücke .............................................. 21 2. Aufbau eines C-Programms ................................................................................................. 22 3. Befehle zur Steuerung des Programmflusses ....................................................................... 23 4. Der break-Befehl ....................................................................................................................... 24 Anhang Befehlssatz für 8051-Controller ...................................................................................... 25 Struktur und Verwendung des internen RAMs ............................................................. 30
30

Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Aug 29, 2019

Download

Documents

vomien
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 1/30

Formelsammlung_ITG.doc 18.09.2008

Strukturierte Programmentwicklung................................................................................2

Unified Modeling Language 1/3 ........................................................................................3

UML 2/3 ...............................................................................................................................4

UML 3/3 ...............................................................................................................................5

Grundfunktionen (Logik)...................................................................................................6

Typische Schaltnetze ....................................................................................................7

Programmablaufplan (PAP) ............................................................................................10

Abfrageformulierung mit SQL ........................................................................................11

1. Projektion und Formatierung ................................................................................................ 11

2. Selektion .............................................................................................................................. 11

3. Verbund von Tabellen .......................................................................................................... 12

4. Aggregatfunktionen und Gruppen......................................................................................... 13

ER-Diagramm nach Chen................................................................................................14

Netzwerksymbole ............................................................................................................15

ISO-OSI-7-Schichtenmodell ............................................................................................15

Header ..................................................................................................................................... 16

Ethernet II................................................................................................................................. 16

TCP-Header ............................................................................................................................. 16

Assembler ........................................................................................................................17

Interrupt & Timer ...................................................................................................................... 17

Interruptstruktur des 8051 ........................................................................................................ 19

Register zur Zählerkontrolle: TMOD und TCON ....................................................................... 20

Die Programmiersprache C (ANSI-C) .............................................................................21

1. Datentypen, Variable, Konstante, Operatoren und Ausdrücke.............................................. 21

2. Aufbau eines C-Programms ................................................................................................. 22

3. Befehle zur Steuerung des Programmflusses....................................................................... 23

4. Der break-Befehl....................................................................................................................... 24

Anhang

Befehlssatz für 8051-Controller......................................................................................25

Struktur und Verwendung des internen RAMs .............................................................30

Page 2: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 2/30

Formelsammlung_ITG.doc 18.09.2008

Strukturierte Programmentwicklung

Page 3: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30

Formelsammlung_ITG.doc 18.09.2008

Unified Modeling Language 1/3

Klasse Vererbung

Attribut

Operation( )

Klasse

Klasse{ abstrakt }

-privatesAttribut#geschütztesAttribut+öffentlichesAttribut

-privateOperation( )#geschützteOperation( )+öffentlicheOperation( )

Klasse

Attribut/abgeleitetes AttributKlassenattribut

Klasse

Operation( )Klassenoperation( )

Attribut: TypAttribut: Typ = AnfangswertAttribut: Typ { Zusicherung }

Klasse

Operation (Parameter: Typ)Operation (Parameter1: Typ, Parameter2: Typ)Operation (Parameter: Typ) : ErgebnistypOperation (Parameter: Typ = Wert) : Ergebnistyp

Klasse

AbstrakteKlasse

SuperKlasse

SubKlasse1 SubKlasse2

SuperKlasse

SubKlasse1 SubKlasse2

SuperKlasse1 SuperKlasse2

SubKlasse

Einfachvererbung

Mehrfachvererbung

Diskriminator

Diskriminator

Die Angabe des Diskriminators kann entfallen.

Objekt

:Klasse

AttributAttribut = Wert

MultiObjekt

Objektdiagramm

objekt1 objekt2

Attribut

Attribut = Wert

objekt3

objekt objekt: Klasse

objekt

ObjektKlasse

Objekt und Klasse

<<instance of>>

Assoziation

Klasse1 Klasse2

Klasse

Klasse

Klasse0..1

Klasse*

Klasse3..*

2

1

Beispiele zu Kardinalitäten

genau 1

0 bis viele

3 bis viele

genau 2

0 oder 1

Aggregation

KlasseGanz KlasseTeil

KlasseGanz

Komposition

KlasseExistenzAbhängig

Rollenname1 Rollenname2

1 Kardinalitäten*

Klasse1 Klasse2

Klasse1 Klasse2gerichteteAssoziation

Klasse1 Klasse2/abgeleiteteAssoziation

Beziehungsname

Leserichtung

Klasse1..5, 8, 10..

nicht 0, 6, 7 oder 9

Klasse12

RollennameeinFeld[ ]

Assoziation zu 12Objekten, realisiertüber ein Feld

Page 4: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Form

elsamm

lung für das Informationstechnische G

ymnasium

in Baden-W

ürttemberg

4/30

Fo

rmelsam

mlun

g_IT

G.do

c

18.09.2008

UM

L 2

/3

Sequenzdiagramm

nachricht( )

antwort

objekt1Akteur

Objekt wirderzeugt

Botschaft,Nachricht

objekt2<<create>>

Objekt wirdzerstört

Lebenslinie

op( )

objekt1Akteur

op1( )create( )

objekt2

op4( )

objekt3

[z>=0] op5( )

[z<0] op6( )

[x<0] op3(x)

[x>0] op2(x)

Bedingung

antwort1

antwort2

Kollaborationsdiagramm

destroy( ):create( ):

objekt1

objekt2

op( )

{transient}

1: create( )2: antwort := nachricht( )3: destroy( )

objekt1op1( )

objekt2

{new}

objekt3

[z>=0][z<0]

[x>0] 2a: antwort2 := op2(x)

2a.1: op4( )2a.2a: op5( )2a.2b: op6( )

1: create( )

objekt1Akteur

op1( )

Selbst-delegation

op3( )

objekt2

[Iterations- bedingung] op4( )*

Iteration

antwort2

antwort1

op2(x)

objekt1op1( )

objekt2

1: antwort1 := op2(x)

*3 [Iterationsbedingung] :antwort2 := op4( )

[x<0] 2b:antwort1 := op3(x)

2: op3( )

<<destroy>>

Anstelle von <<create>> bzw. <<destroy>> istalternativ auch die Angabe des Konstruktorsmit Parameter bzw. des Destruktors möglich:

create( )create(x : GZ)Konstruktor init( )

destroy( )

Destruktor delete( )

Konstruktoraufruf, alternativ z.B. <<create>>Destruktoraufruf, alternativ z.B. <<destroy>>

Page 5: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Form

elsamm

lung für das Informationstechnische G

ymnasium

in Baden-W

ürttemberg

5/30

Fo

rmelsam

mlun

g_IT

G.do

c

18.09.2008

UM

L 3

/3

Boolsches Attribut:

Ganzzahlattribut:

Fließkommaattribut:

Zeichenattribut:

Textattribut:

Währungsattribut:

Datumattribut:

Zeitattribut:

Zustandsdiagramm

Ereignis /Aktionsbeschreibung

Zustandsvariable

Zustandsname

Ereignis /Aktionsbeschreibung

Zustandsname

Zustandsname

Notiz

entry / Aktion1

exit / op1( )

Z1

Ereignis4

Z2Ereignis1

Ereignis2 / Aktion1

Ereignis3 /Aktion2

do / Aktivität1

Z3

do / Aktivität2

Z2

entry / Aktion1do / Aktivität1exit / op1( )

Ereignis1

Z3

Z4

exit / destroy( )

Ereignis5 / Aktion2

Ereignis6

Ereignis3 / op2( )

Ereignis4

entry / init( )

Z1

Endzustand

Anfangszustand

Ereignis2 [Wächterbedingung]

Anwendungsfalldiagramm

Notiz

OperationenAttribute

Die Variablen der Programmiersprachen heißen in der UML Attri-bute. Der Bezeichner eines Attributs beginnt in der UML mit einemKleinbuchstaben.

Deklaration: Datentyp

SichtbarkeitBezeichner

zweidimensionales Feld:

eindimensionales Feld:mit (N+1) Feldelementen

#attribut[0..N] : GZ

#attribut[0..X][0..Y] : GZ

Zugriff: attributA := attributB

attributA := attribut[n]

attributA := attribut[x][y]

EndindexAnfangsindex

Der Inhalt des AttributsattributB wird im AttributattributA gespeichert.Die beiden Attribute müssenden selben Datentyp haben.

-attribut : GZ

Die Funktionen bzw. Methoden der Programmier-sprachen heißen in der UML Operationen. DerBezeichner einer Operation beginnt in der UMLmit einem Kleinbuchstaben. Bezeichner vonOperationen sollten mit einem Verb beginnen.

Deklaration:

SichtbarkeitBezeichner

+schreibeWert (wert : GZ)

Parameter

+gibFeldWert (x : GZ, y : GZ) : GZ

Parameterliste Datentyp desRückgabewerts

Akteur1

Akteur2

«extends»AF1 AF2

«include»

Generalisierung

AF1

AF1 AF2

AF2

fall1

fall2

fall3

Anwendungs-

Anwendungs-

Anwendungs- Akteur3

Systemgrenze

Datentypen und Abkürzungen

Boolean

GZ

FKZ

Zeichen

Text

Geld

Datum

Zeit

Page 6: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 6/30

Formelsammlung_ITG.doc 18.09.2008

Grundfunktionen (Logik)

NOT (Negation)

A1

Y

Y = !A Y = NOT A Y = /A

Y = A Y = ¬A

A Y 0 1 1 0

auch zulässig:

AND (Konjunktion)

&A

BY

Y = A & B Y = A AND B Y = A * B Y = BA ∧

B A Y X 0 0 0 X 0 1 1 1

NAND

&A

BY

Y = !(A & B) Y = NOT(A AND B) Y = /(A * B)

Y = BA ∧

B A Y 0 X 1 X 0 1 1 1 0

OR (Disjunktion)

A

BY

1

Y = A # B Y = A OR B Y = A + B (nicht in ABEL) Y = BA ∨

B A Y 0 0 0 X 1 1 1 X 1

NOR

A

BY

1

Y = !(A # B) Y = NOT (A AND B) Y = /(A + B)

Y = BA ∨

B A Y 0 0 1 X 1 0 1 X 0

XOR (Antivalenz)

=1A

BY

Y = A $ B Y = A XOR B Y = A/B + /AB Y = BA ⊕

B A Y 0 0 0 0 1 1 1 0 1 1 1 0

XNOR (Äquivalenz)

=A

BY

Y = A !$ B Y = A XNOR B Y = AB + /A/B

Y = BA ⊕

B A Y 0 0 1 0 1 0 1 0 0 1 1 1

A

offen: A = 0: � Y = 1zu: A = 1: � Y = 0

R

VCC

GND

PullUp - Widerstand

A

offen: A = 0: � Y = 0zu: A = 1: � Y = 1

GND

VCC

RPullDown - Widerstand

Tristate

A Y

EN

Z =̂ hochohmig

EN A Y 0 0 Z 0 1 Z 1 0 0 1 1 1

Page 7: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 7/30

Formelsammlung_ITG.doc 18.09.2008

Typische Schaltnetze (Blockschaltbilder)

Codeumsetzer (Umcodierer)

X / YE0

E1

E2

E3

A0A1A2A3A4A5A6A7

Beispiele

BCD / GrayA

B

D

C

G0

G1

G3

G2

BCD / dez.0123456789

A

B

D

C

Komparator

COMPA<B

A>B

A=B

An

Bn

Halbaddierer

A

B

S

CO

CO =̂ Carry OUT

Volladdierer

A

B

S

COCI

CI =̂ Carry IN

MUX (8 zu 1)

0

2

Y

MUXEN

G07

ABC

CS

1

3

5

7

D1

D3

D5

D7

0

2

4

6

D0

D2

D4

D6

C B A /CS Y X X X 1 0 0 0 0 0 D0 0 0 1 0 D1 0 1 0 0 D2 0 1 1 0 D3 1 0 0 0 D4 1 0 1 0 D5 1 1 0 0 D6 1 1 1 0 D7

0

2Y

MUXEN

G07

CS

0...7D0...D78

A...C3

Adress- und Datenleitungen können auch zusammengefasst werden

DX (2 zu 4) / Decodierer

DX

A

B

EN

Y0

Y1

Y2

Y3

S

0

1

2

3

0

1G

03

EN

S

A B /EN Y0 Y1 Y2 Y3 X X 1 0 0 0 0 0 0 0 S 0 0 0 0 1 0 0 S 0 0 1 0 0 0 0 S 0 1 1 0 0 0 0 S

Bustreiber

ENEN

Y0

Y1

Y2

Y3

X0

X1

X2

X3

Astabiles Element (allg. Taktgenerator)

Periodendauer

Frequenz10 Hz

7-Segmentanzeige

DPY

:: b

a

c

g

d

a

e

f

g

dp dp

Page 8: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 8/30

Formelsammlung_ITG.doc 18.09.2008

FlipFlop

RS-FlipFlop (statisch)

S

R

Zustandsfolgetabelle

S R Qn Qn+1 0 0 0 0 0 0 1 1

speichern

0 1 0 0 0 1 1 0

Reset

1 0 0 1 1 0 1 1

Set

1 1 ? ? nicht sinnvoll

Qn+1 = (Qn & !R # !R & S) Qn+1 = S # !R& Qn

(Minimalform)

in ABEL® steht kein zustandsgesteuertes SR-FF zur Verfügung

D-Flip-Flop (dynamisch)

1D

C1

D0

Takt

Q0

C D Qn+1 1 X Qn 0 X Qn

pos 0 0 pos 1 1 neg X Qn

pos =̂ positive Taktflanke

neg =̂ negative Taktflan-ke

Impulsdiagramm

D0

Q0

Takt

Zähler (Blockschaltbild)

CTR DIV4

CLK

CT=0

+

CLR

Q0

Q1

Zustandskodierung

Zustand Codierung

Q1,Q0

STATE0 00

STATE1 01

STATE2 10

STATE3 11

Zustandsdiagramm

• wenn es sich offensichtlich um ein getaktetes Schaltwerk handelt, kann die Angabe des Taktes als Übergangskriterium entfallen.

• Zusätzliche Übergangsbedingungen müssen angegeben werden

• die Angabe von Ausgabewerten in einem Zustand werden durch einen (Unter-)Strich vom Zustandsnamen getrennt (die „else“ - Angabe kann entfallen).

Codierte Zustandsübergangstabelle (Codierte Zustandsfolgetabelle)

n n+1

U Q1 Q0 Q1 Q0

0 0 0 0 0 1 0 0 0 1 x 0 1 1 0 x 1 0 0 0

Page 9: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 9/30

Formelsammlung_ITG.doc 18.09.2008

Speicherregister

R

EN

C1

CS

CLR

CLK

D0

D1

D2

D3

Q0

Q1

Q2

Q3

1D

• 4-Bit Speicherregister (4 flankengesteuerte D-Flipflops) • Parallele Ein- und Ausgabe • Wenn der Baustein ausgewählt ist (EN = 0), werden mit der an-

steigenden Flanke des Takt-Signals die an den Eingängen D0 …D3 anstehenden Daten übernommen.

• Mit einem 0-Signal am ¬CLR-Eingang kann das Register gelöscht

werden. • EN ermöglicht, die Ausgänge in Tri-State zu schalten (EN=1) oder

den Speicherinhalt auszulesen (EN=0)

RAM

A0...A5

RAM 64x4

4

6

EN

OE

WR/WR

/CS

D0...D3

/RD

Schreib- Lesespeicher mit 64 x 4 Bit

ROM

ROM 1K x 4

A0

A9

ENEN

0

9A

0

1023

Q4

Q1

Q2

Q3

OE

• Read Only Memory • mit den Adressen 0 … 1023 • einer Wortbreite von 4 Bit • und 1 Freigabeeingang

Schieberegister

SRG 4

CLK

CLR

A

BCD

SR SER

SL SER

S0

S1

0

1M

0

3

QD

QA

QB

QC

• 4-Bit Schieberegister • Links- Rechtsbetrieb:

Mode S1 S0 Funktion 0 0 0 - 1 0 1 rechts 2 1 0 links

3 1 1 parallele Eingabe

• mit serieller Eingabe • paralleler Ausgabe • Vorwärtsschieben mit der positiven Taktflanke

und der Möglichkeit, das gesamte Register zu löschen

Page 10: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 10/30

Formelsammlung_ITG.doc 18.09.2008

Programmablaufplan (PAP) Symbole

Prozess

Verarbeitung

Beginn / Ende

Verzweigung

Auswahleinheit

Fortführen einesFlussdiagramms

Unterprogramm

Anweisung

Ein- /Ausgabe

Beispiel

Ja

Nein

1

1

Zähler (4-Bit)

CTR DIV16

CLR

LOAD

CT=0

AB

QAQB

C

DQCQD

EN

CLK+

• CTR =̂ Zähler

• DIV 16 =̂ 16 verschiedene binäre Zustände • Vorwärtszähler (+) • EN = 1 und die positive Taktflanke führen zum

nächsten Zählzustand • Mit /LOAD kann ein Anfangszustand geladen wer-

den

Ein- oder Ausgang mitHysterese

Treiberausgang

Tri-State-Ausgang

Negation am Eingang

Negation am Ausgang

+

� m

Dynamischer Eingangaktiv bei positiver Flanke

… aktiv bei negativer Flanke

Vorwärtszähler

Eingang, der Rechtsschiebenbewirkt

Multiplexer / DemultiplexerMUX / DX

Zähler mit m Bits / Zykluslänge = 2mCTRm

Zähler mit Zykluslänge mCTR DIVm

Schieberegister mit m BitsSRGm

Page 11: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 11/30

Formelsammlung_ITG.doc 18.09.2008

Abfrageformulierung mit SQL

1. Projektion und Formatierung Auswahl aller Spalten einer Tabelle Syntax : SELECT * FROM <Tabelle> Auswahl einer Spalte einer Tabelle Syntax : SELECT <Spalte> FROM <Tabelle> Auswahl mehrerer Spalten einer Tabelle Syntax : SELECT <Spalte1> , <Spalte2> , ... FROM <Tabelle> Hinweis : In SQL kann ein Abfrageergebnis mehrere identische Tupel enthalten. Auswahl ohne mehrfaches Auftreten desselben Tupels Syntax : SELECT DISTINCT <Spalte> FROM <Tabelle> Formatierte Ausgabe und Berechnungen in einer Selektion Syntax SELECT "Die Veranstaltung dauert " <Spalte1>*8 " Stunden" FROM <Tabelle> Hinweis: Alle mathematischen Rechenzeichen sind verwendbar. Umbenennen von Spalten Syntax : SELECT <Spalte> AS <neuer Spaltenname> FROM <Tabelle> Sortierung Syntax : SELECT <Spalte> FROM <Tabelle> ORDER BY <Spalte> {DESC | ASC} 2. Selektion Syntax : SELECT <Spalte> FROM <Tabelle> WHERE <Bedingung>

WHERE Klausel definiert die auszuwählenden Zeilen, Ver-gleichsoperatoren sind = , <> , > , < , >= , <=

Selektion mit mehreren Bedingungen Syntax SELECT <Spalte> FROM <Tabelle> WHERE <Bedingung1> AND (ebenso OR) <Bedingung2> u.s.w. Selektion mit dem Operator IN Syntax SELECT <Spalte> FROM <Tabelle> WHERE <Spalte> (NOT)IN ('Wert1', 'Wert2',.....)

Page 12: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 12/30

Formelsammlung_ITG.doc 18.09.2008

Selektion mit dem Operator BETWEEN Syntax SELECT <Spalte> FROM <Tabelle> WHERE Spalte BETWEEN 'Wert1' AND 'Wert2' Selektion mit dem Operator LIKE Der LIKE-Operator ermöglicht den Vergleich eines Strings mit einem Muster. Muster werden aus beliebigen Zeichen eines Strings und den beiden Sonderzeichen '?' und '*' gebildet. '?' steht für genau ein beliebiges Zeichen, während '*' für eine beliebig große (evtl. leere) Kette von beliebigen Zeichen steht. Achtung: In ANSI-SQL: '?' = '_' und '*' = '%'. SELECT <Spalte> FROM <Tabelle> WHERE <Spalte> LIKE '????3*' Selektion und NULL-Werte NULL wird i.a. interpretiert als ein Platzhalter für die Aussage "Information/Attribut ist nicht vorhanden oder nicht bekannt oder nicht anwendbar". Syntax: SELECT <Spalte> FROM <Tabelle> WHERE <Spalte> IS [NOT] NULL 3. Verbund von Tabellen Einfacher Equijoin mit zwei Tabellen (Natural Join) Syntax : SELECT <Spalte1> , <Spalte2>, ... FROM <Tabelle1> , <Tabelle2> WHERE <Join-Bedingung> Hinweis : Wenn die Tabellen, die miteinander zu verbinden sind, Spalten mit gleichem

Spaltennamen aufweisen, dann muß jeweils spezifiziert werden, welche Spalte welcher Tabelle gemeint ist.

Beispiel : Zur Verkürzung des Anfragetextes können für die Tabellen in der FROM-Komponente auch Alias-Namen vergeben werden.

Beispiel : SELECT <Spalte1> , <Spalte2>, ... FROM <Tabelle1> T1 , <Tabelle2> T2 WHERE T1.ID = T2.ID Hinweis : Die Alias-Namen können bereits in der SELECT-Komponente verwendet wer-

den, auch wenn sie erst in der FROM-Komponente definiert werden.

Einfacher Equijoin über n>2 Tabellen SELECT <Spalte1> , <Spalte2>, ... FROM <Tabelle1> T1 , <Tabelle2> T2,<Tabelle3> T3

WHERE T1.ID = T2.ID AND

T2.ID = T3.ID

INNER Join mit zwei Tabellen Syntax : SELECT <Spalte1> , <Spalte2>, ...

FROM FROM Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.Spalte1 VerglOp Tabelle2.Spalte2

Page 13: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 13/30

Formelsammlung_ITG.doc 18.09.2008

Vereinigung mit UNION

Die Datensätze von Tabellen, die identische Spalten enthalten, können durch UNION [ALL] zusammen-gefasst werden. Spaltentypen und –größe müssen übereinstimmen. Mehrfache Datensätze werden au-tomatisch entfernt („DISTINCT“ ist Standardeinstellung). Dies kann umgangen werden mit UNION ALL. Beispiel : Gewünscht wird eine Tabelle mit den Ortsnummern Ort_Nr, der Orte, an denen

das Modul 4.1 Voraussetzung ist oder deren Ort Freiburg oder Ulm ist. SELECT <Spalte> FROM <Tabelle1> WHERE ……………. UNION SELECT <Spalte> FROM <Tabelle2> WHERE ……………..

4. Aggregatfunktionen und Gruppen Hinweis: NULL-Werte werden vor der Auswertung einer Aggregatfunktion eliminiert.

Zählfunktion Syntax : SELECT COUNT ([DISTINCT] <Spaltenliste|*>) FROM <Tabelle> Anm.: COUNT(DISTINCT) funktioniert nicht mit JET SQL Arithmetische Funktionen Syntax : SELECT SUM ({numerische Spalte | Arithmetischer Ausdruck mit numerischen Spalten}) FROM <Tabelle> Syntax : SELECT AVG ({numerische Spalte | Arithmetischer Ausdruck mit numerischen Spalten } FROM <Tabelle> Min-/Max-Funktionen Syntax : SELECT MAX ({numerische Spalte | Arithmetischer Ausdruck mit numerischen Spalten}) FROM <Tabelle> Syntax : SELECT MIN ({numerische Spalte | Arithmetischer Ausdruck mit numerischen Spalten}) FROM <Tabelle> Gruppenbildung in SQL-Anfragen In den vorangegangenen Beispielen wurden die Aggregatfunktionen immer auf eine ganze Tabelle ange-wandt. Daher bestand das Abfrageergebnis immer nur aus einem Tupel. In SQL ist es aber auch möglich, eine Tabelle zu gruppieren, d.h. die Tupel einer Tabelle in Gruppen einzuteilen, und dann die Aggregatfunk-tionen jeweils auf die Gruppen anzuwenden.

Syntax : SELECT <Spalte> , <Aggregatfunktion (<Spalte>)...> FROM <Tabelle> GROUP BY <Spalte>

Hinweis : Die in der GROUP BY-Komponente spezifizierten Spalten müssen auch in der SELECT-

Komponente spezifiziert sein, da Basis für die Gruppierung die "Zwischen-Ergebnis"-Tabelle ist, die durch Select ... From spezifiziert wurde. Andererseits müssen alle Spal-ten der Selektionsliste, die nicht durch eine Aggregatfunktion gebunden sind, in der group by-Komponente aufgeführt werden. Daraus ergibt sich eine gewisse Redundanz im Abfragecode. Die Reihenfolge der Spaltenspezifikation in der GROUP BY-Komponente hat keinen Einfluß auf das Resultat der Abfrage.

Page 14: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 14/30

Formelsammlung_ITG.doc 18.09.2008

Einschränkungen sind nicht mit WHERE möglich, sondern mit HAVING! Auswahl von Gruppen Syntax : SELECT <Spalte> , <Aggregatfunktion ...> FROM <Tabelle> GROUP BY <Spalte> HAVING <Bedingung>

ER-Diagramm nach Chen

Page 15: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 15/30

Formelsammlung_ITG.doc 18.09.2008

Netzwerksymbole

Repeater, Multiport-Repeater, Hub

Bridge, Multiport Bridge, Switch

Router

Netz

Client

Server

Drucker

ISO-OSI-7-Schichtenmodell

Physical Layer

Data Link Layer

Network Layer

Transport Layer

Session Layer

Presentation Layer

Application Layer

Netzwerk-Schicht

Transport-Schicht

Sitzungs-Schicht

Darstellungs-Schicht

Anwendungs-Schicht

Physikalische-Schicht

Verbindungs-Schicht

1

2

3

4

5

6

7

Page 16: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 16/30

Formelsammlung_ITG.doc 18.09.2008

Header Ethernet II

Präambel Zieladresse Link TrailerAbsenderadresse Typ Daten

8 6 6 2 46...1500 4 IP-Header Bit 7 (MSB) 6 5 4 3 2 1 0 (LSB) Byte 0 Version IHL Byte 1 TOS Byte 2 Byte 3

Paketlänge

Byte 4 Byte 5

Identifikation

Byte 6 Flags Fragmentabstand Byte 7 Fragmentabstand Byte 8 Time To Live (TTL) Byte 9 Protokoll Byte 10 Byte 11

Kopf-Prüfsumme

Byte 12 Byte 13 Byte 14 Byte 15

IP-Sendeadresse

Byte 16 Byte 17 Byte 18 Byte 19

IP-Empfängeradresse

Byte 20 ... Optionen (mit evtl. Füllzeichen) TCP –Header {PRIVATE}Bit 7 (MSB) 6 5 4 3 2 1 0 (LSB) Byte 0 Byte 1

Source Port

Byte 2 Byte 3

Destination Port

Byte 4 Byte 5 Byte 6 Byte 7

Sequenznummer

Byte 8 Byte 9 Byte 10 Byte 11

Quittungsfeld (Piggyback, Acknowledgement Number)

Byte 12 Header-Länge reserviert Byte 13 reserviert URG ACK PSH RST SYN FIN Byte 14 Byte 15

Fenster Größe

Byte 16 Byte 17

Prüfsumme

Byte 18 Byte 19

Urgent Zeiger

Byte 20 ... Optionen (evtl. mit Füllzeichen)

Page 17: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 17/30

Formelsammlung_ITG.doc 18.09.2008

Assembler Interrupt & Timer Abfallende Flanken oder Low-Signale können externe Interruptereignisse auslösen, überlaufende Timer lösen Timer-Interrupts aus, über die serielle Schnittstelle gesendete oder empfangene Zei-chen können Interrupts auslösen. Die Interrupt-Anfoderungs-Bits (s.u.) werden immer gesetzt, der entsprechende Interrupt wird je-doch nur dann bearbeitet, wenn die Interrupts freigegeben sind und die globale Interrupt-Freigabe EA = 1 ist. Zur Bearbeitung der Interrupts springt der Controller zu den festgelegten Adressen (s.u.). Interrupt Enable (IE) Register

EA(L) -- -- ES ET1 EX1 ET0 EX0 Enable Bit = 1 (enables the interrupt) Enable Bit = 0 (disables the interrupt) Symbol Position Function EA(L) IE.7 EA = 1 (generelle Freigabe) ES IE.4 Serielle Schnittstelle

ET1 IE.3 Timer 1 (Überlauf-Interrupt Freigabe) EX1 IE.2 Externer Interrupt 1 (Freigabe)

ET0 IE.1 Timer 0 (Überlauf-Interrupt Freigabe) EX0 IE.0 Externer Interrupt 0 (Freigabe)

IE0INT00

1

IE1INT10

1

TF0

TF1 Interruptquellen

IP Interrupt-Prioritäten-Register, bitadressierbar,0B8h

Bit 7 6 5 4 3 2 1 0 - - - PS PT1 PX1 PT0 PX0

Bit-Adr. 0BFh 0BEh 0BDh 0BCh 0BBh 0BAh 0B9h 0B8h Priorität von Serial Port Timer1 Ext.Interrupt1 Timer0 Ext.Interrupt0

0: niedrige Priorität 1: höhere Priorität Interrupts können nur von anderen Interrupts mit höherer Ebene unterbrochen werden. Treten 2 Interrupts gleicher Priorität gleichzeitig auf, so werden sie in folgender Reigenfolge bearbeitet:

ExtInt0 → Timer0 → ExtInt1 → Timer1

Interrupt Einsprungadresse Interrupt-Anforderungs-Bit Externer Interrupt 0 0003h IE0 Timer0 - Überlauf 000Bh TF0 Externer Interrupt 1 0013h IE1 Timer1 – Überlauf 001Bh TF1 Serieller Schnittstellen-Interrupt 0023h RI oder TI

Page 18: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 18/30

Formelsammlung_ITG.doc 18.09.2008

Externe Interrupts beim 8051 Mit den Portpins P3.2 und P3.3, können externe Interrupts ausgelöst werden. Die Interrupts werden nur ausgelöst, wenn sie durch Setzen der Bits EX0 bzw. EX1 freigegeben sind.

Port Pin Alternate Functions

P3.0 RXD (serial input port)

P3.1 TXD (serial output port)

P3.2 /INT0 (external interrupt 0)

P3.3 /INT1 (external interrupt 1)

P3.4 T0 (timer 0 external input)

P3.5 T1 (timer 1 external input)

P3.6 /WR (external data memory write strobe)

P3.7 /RD (external data memory read strobe)

Mode 1:� 16-Bit Zähler� beim Überlauf wird TF 0 (1) gesetzt

Oszillator /12

T0(1) -Pin

Run Bit / TR 0(1)in TCON

Gate-Bitin TMOD

&

>1

INT 0(1) -Pin

Timer 0(1)Low-Byte

TL1

Timer 0(1)High-Byte

TH1

Interrupt -Flag

TF0(1)

C/T = 0

C/T = 1

T0(1) -Pin

Run Bit / TR 0(1)in TCON

Gate-Bitin TMOD

&

>1

INT 0(1) -Pin

Timer 0(1)Low-Byte

TL1

Timer 0(1)High-Byte

TH1

Interrupt -Flag

TF0(1)

C/T = 0

C/T = 1

Mode 2:� 8-Bit Zähler mit AutoRelaod� beim Überlauf wird TF 0 (1) gesetzt

Oszillator /12

Page 19: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 19/30

Formelsammlung_ITG.doc 18.09.2008

Interruptstruktur des 8051

IENO (0A8h): Interrupt Enableregister

0AFh 0AEh 0ADh 0ACh 0ABh 0AAh 0A9h 0A8h

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0

EA(L) - - - ET1 EX1 ET0 EX0

Interrupt Einsprung Adresse

PortBit Freigabe mit

Flanken-gesteuert Auslösende Flanke

gesetzes Bit bei Interrupt-Anforderung

/INT0 0003h P3.2 SETB EX0 SETB IT0 abfallend IE0

/INT1 0013h P3.3 SETB EX1 SETB IT1 abfallend IE1

Page 20: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 20/30

Formelsammlung_ITG.doc 18.09.2008

Register zur Zählerkontrolle: TMOD und TCON:

TMOD (89h) : Timermodus-Kontrollregister für Timer1 & Timer0

Kontrolle Timer 1 Kontrolle Timer 0

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0

Gate C/T M1 M0 Gate C/T M1 M0

Gate C/T M1 M0

0 0 Modus 0

0 1 Modus 1: 16 Bit-Timer ohne Nachladen

1 0 Modus 2: 8-Bit-Timer mit Auto-Reload

1 1 Modus 3: 2 Stück 8-Bit-Timer

0 Timer-Betrieb

1 Zähler-Betrieb

0 Timer nur durch TR-Bit ein- und ausschalten

1 Timer mit TR-Bit und Portpin ein- und ausschalten

TCON (88h): Timer-Kontrollregister für Timer1 & 0 / ext Interrupt 1 & 0

Kontrolle Timer 1 und 0 ext. Interrupt-Kontrolle

8Fh 8Eh 8Dh 8Ch 8Bh 8Ah 89h 88h

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

IEx ITx

0 � Interrupt bei Lowpegel

1 � Interrupt bei abfallender Flanke

0 , 1 wird von CPU gesetzt wenn Flanke externer Interrupt1 erkannt

TFx TRx

0 Timer x stopp

1 Timer x läuft

0 , 1 Wird beim Timer x-Überlauf gesetzt

Page 21: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 21/30

Formelsammlung_ITG.doc 18.09.2008

Die Programmiersprache C (ANSI-C) 1. Datentypen, Variable, Konstante, Operatoren und Ausdrücke Datentypen Datentyp Größe Wertebereich bit 1 Bit 0 oder 1 signed char 1 Byte -128 bis +127 unsigned char 1 Byte 0 bis 255 signed int 2 Byte -32768 bis + 32767 unsigned int 2 Byte 0 bis 65535 signed long 4 Byte -2147483648 bis +2147483647 unsigned long 4 Byte 0 bis 4294967295 float 4 Byte ±1,176E-38 bis ±3,40E+38 pointer 1-3 Byte Adresse einer Variablen FILE Dateizeiger

Operatoren und ihre Priorität Mathematische Operatoren Priorität Verhältnis und logische Operatoren

++ --

Inkrement dekrement Höchste ! NOT

- monadisches Minus (Vorzeichen)

> >= <

<=

Größer größer gleich kleiner kleiner gleich

* /

%

Mal Div mod

== !=

Gleich ungleich

+ -

Plus minus && AND

niedrigste || OR Bitweise Operatoren

& |

UND ODER Beispiele

^ EXOR ~ Einerkomplement

<< >>

schieben nach links ; …. - nach rechts

X = 10: Y = ++X � Y = 11 ;Y = X++ � Y = 10 Y = --X � Y = 9 ; Y = X-- � Y = 10 Y = Y >> 1 schiebe Y um 1 nach rechts

Page 22: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 22/30

Formelsammlung_ITG.doc 18.09.2008

2. Aufbau eines C-Programms C bietet zwei Möglichkeiten zur Kommentareingabe : a) // Kommentar für eine Zeile b) /* Kommentar für einen Block von einer oder mehreren Zeilen */

{ Anfang eines zusammengehörigen Befehlsblocks (begin) } Ende eines zusammengehörigen Befehlsblocks (end)

// INCLUDE Files: � Compileranweisung über zusätzliche Quellcodes mit Funktionen und Deklara-

tionen

#include <reg51xx.h> // Registerdeklaration zum 5051xx #include <math.h> // Einbinden mathematischer Funktionen

// Konstantendeklaration � Ablage im Programmspeicher � Wert im Programm nicht änderbar

#define ANZAHL 10 // ANZAHL entspricht 10 #define TRUE 1 // TRUE entspricht 1

//Deklaration globaler Variablen � Ablage im Datenspeicher � Wert im Programm änderbar

int i = 8, j = 3, k; /* Zählvariablen i , j und k mit den Anfangswerten 8 für i und 3 für j */ char TASTE; // 1 Byte große Variable von 0-255 signed long 4BYTE; // 4 Byte große Variable von 0 – 232 char code *text = "Hallo"; /* Textstring mit 5 Bytes (+ 0 als Stringende) im Programmspeicher*/ char bdata schieb; // 1 Byte-Variable im bitadressierbaren Speicherbereich

//Deklaration von Funktionen

Typ Funktion_1(Typ Parameter1, Typ Parameter2 ) // Als Typ kann jeder Datentyp stehen. (void ⇒ keine Typzuweisung) { // Begin von Funktion_1 // lokale Variablendeklaration; // Befehlsfolge; } // Ende von Funktion_1 Typ Funktion_2( ) { // Begin von Funktion_2 // lokale Variablendeklaration; // Befehlsfolge; } // Ende von Funktion_2

// Hauptprogramm - auch Hauptfunktion main() main( ) { // Begin des Hauptprogramms // lokale Variablendeklaration; // Befehlsfolgen; } // Ende des Hauptprogramms

Page 23: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 23/30

Formelsammlung_ITG.doc 18.09.2008

3. Befehle zur Steuerung des Programmflusses 3.1 If , else

if (Bedingung) { Befehlsfolge für wahre Bedingung ; } else { Befehlsfolge für falsche Bedingung; }

Anmerkungen: • Die Befehlsfolgen selbst können wiederum If-Anweisungen sein oder verschachtelte if-Anweisung • Die else- Anweisung ist nicht zwingend notwendig

3.2 switch switch (Ausdruck) { case Konstante 1: Befehlsfolge 1; break; case Konstante 2: Befehlsfolge 2; break; case Konstante X: Befehlsfolge X; break; default: { Befehlsfolge; } }

Anmerkungen:

• Die Befehlsfolgen selbst können wiederum If-Anweisungen oder switch-Anweisungen sein.

• Die default-Anweisung ist nicht zwingend notwendig. • Der break-Befehl bricht die switch-Anweisung ab.

Page 24: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 24/30

Formelsammlung_ITG.doc 18.09.2008

3.3 Schleifen 3.3.1 Die for-Schleife

for ( Initialisierung ; Bedingung ; Veränderung) { Befehlsfolge; }

Anmerkungen: • geeignet für Schleifen, bei denen die Anzahl der Durchläufe bekannt ist. • Der Körper der Schleife kann auch leer sein (for ( ; ; )) jedoch die Semikolon müssen bleiben. • Die Initialisierung legt die Startwerte der Variablen fest. Es können dabei auch mehrere Variablen mit

Komma getrennt initialisiert werden. • Ist die Bedingung erfüllt (TRUE) wird die Befehlsfolge bearbeitet • Nach der Befehlsfolge bestimmt die Veränderung, wie die Variablen verändert werden.

Beispiel: for ( i = 0, j = 8 , z = 0 ; i < j ; i++ , j - = 2 ) {

z = i + j; } // z = 6

3.3.2 Die while-Schleife (Kopfgesteuert)

while ( Bedingung ) { Befehlsfolgen; }

Anmerkungen: • Ist die Bedingung nicht erfüllt, also FALSE, dann wird die Befehlsfolge nicht bearbeitet • Die Befehlsfolgen werden solange wiederholt, solange die Bedingung erfüllt bzw. WAHR ist • Endlosschleife mit while(1) oder while(TRUE) • Controller-Programme werden normalerweise mit einem Hardwarereset abgebrochen. Daher fangen

die Programme für den µC meistens mit while(1) { an 3.3.3 Die do-while-Schleife (Fußgesteuert)

do { Befehlsfolgen; } while ( Bedingung );

Anmerkungen:

• Die Befehlsfolge wird mindestens einmal bearbeitet, auch wenn die Bedingung nicht erfüllt ist. • Die Befehlsfolgen werden solange wiederholt, wie die Bedingung erfüllt bzw. WAHR ist • Endlosschleife mit while(1) oder while(TRUE)

4. Der break-Befehl

In einer Schleife beendet der break-Befehl die-se, die Programmsteuerung geht direkt an die auf die Schleife folgenden Befehle über.

Page 25: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 25/30

Formelsammlung_ITG.doc 18.09.2008

Anhang

Befehlssatz für 8051-Controller

Operand Bedeutung A Akkumulator (E0) dadr 8 Bit – Adresse im internen RAM oder im SFR-Ber.

adr11 11 Bit - Adresse

adr16 16 Bit - Adresse AC Auxiliary Carry (Hilfsübertrag-Flag) (D6) B Register B badr Bitadresse im internen RAM (20-2F) oder im SFR-Bereich(80-FF) /badr Invertierter Inhalt der Bitadresse (Komplement) CY Carry-Flag (D7) #c8 8 Bit - Konstante #c16 16 Bit - Konstante D Kennzeichnung für ein 4 Bit - Digit (Nibble) DPTR Datenpointerregister HB Highbyte eines Datenwortes I Interrupt LB Lowbyte eines Datenwortes LSB Bit 0 eines Bytes MSB Bit 7 eines Bytes MZ Maschinenzyklen OV Overflow (Überlauf)- Flag (D2) P Port PC Programmzähler PSW Programmstatuswort rel Signiertes 8 Bit - Offset für Sprungbefehle @Ri Adressregister für internes und externes RAM Rn Register 0 bis 7 der aktuellen Registerbank SFR Spezialfunktionsregister SP Stackpointer T Timer TF Timer - Flag ■ Flag wird beeinflusst -- Flag wird nicht beeinflusst WB Wortbreite des Befehls in Bytes

Page 26: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 26/30

Formelsammlung_ITG.doc 18.09.2008

Datentransport

Mnemonischer Befehl Hex- Code

Beeinflussung Zustandbits Befehlsbeschreibung

OpCode Operanden W B

M Z CY OV AC

MOV A,#c8 74 2 1 -- -- -- Akku direkt mit Konstante laden

MOV Rn,#c8 78-7F 2 1 -- -- -- Direktes Laden des Registers mit einer Konstanten MOV dadr,#c8 75 3 2 -- -- -- Internen Speicher mit Konstante laden

MOV A,Rn E8-EF 1 1 -- -- -- Kopieren Registerinhalt in den Akku MOV Rn,A F8-FF 1 1 -- -- -- Kopieren des Akkuinhaltes in ein Register MOV A,dadr E5 2 1 -- -- -- Inhalt interner Speicherplatze in den Akku kopieren

MOV dadr,A F5 2 1 -- -- -- Inhalt Akku in einen internen Speicherplatz kopieren

MOV Rn,dadr A8-AF 2 2 -- -- -- internen Speicherplatz in ein Register kopieren MOV dadr,Rn 88-8F 2 2 -- -- -- Registerinhalt in internen Speicherplatz kopieren

MOV dadr,dadr 85 3 2 -- -- -- Inhalt interner Speicherplatz in einen anderen kopie-ren

MOV A,@R0 E6 1 1 -- -- -- Speicherinhalt des internen RAM in den Akku kopie-ren(R0 bzw. R1 enthält die Quellenadresse)

MOV A,@R1 E7 1 1 -- -- --

MOV @R0,A F6 1 1 -- -- -- Akkuinhalt in Speicherplatz des internen RAM kopie-ren(R0 bzw. R1 enthält die Zieladresse)

MOV @R1,A F7 1 1 -- -- --

MOV dadr,@R0 86 2 2 -- -- -- Inhalt eines interner Speicherplatz in einen anderen kopieren(R0 bzw. R1 enthält die Quellenadresse)

MOV dadr,@R1 87 2 2 -- -- --

MOV @R0,#c8 76 2 1 -- -- -- Konstante in internen RAM laden R0 bzw. R1 bestimmen die Ziel Adresse

MOV @R1,#c8 77 2 1 -- -- --

MOV @R0,dadr A6 2 2 -- -- -- Inhalt interner Speicherplatz in einen anderen kopie-ren (R0 bzw. R1 enthält die Zieladresse)

MOV @R1,dadr A7 2 2 -- -- --

POP dadr D0 2 2 -- -- -- Speicherinhalt vom Stack holen

PUSH dadr C0 2 2 -- -- -- Speicherinhalt auf den Stack schreiben

NOP 00 1 1 -- -- -- Keine Aktivität

MOV badr,C 92 2 2 -- -- -- Carry-Inhalt in angegebene Bitadresse kopieren MOV C,badr A2 2 1 ■ -- -- Der Inhalt Bitadresse in das Carry kopieren MOV DPTR,#c16 90 3 2 -- -- -- 16Bit-Konstante in Datenpointer laden

XCH A,Rn C8-CF 1 1 -- -- -- Akku- und Registerinhalt austauschen XCH A,dadr C5 2 1 -- -- -- Internen Speicher mit dem Akkuinhalt tauschen

XCH A,@R0 C6 1 1 -- -- --

XCH A,@R1 C7 1 1 -- -- -- Inhalt interner Speicherplatzes Akku austauschen (R0 bzw. R1 enthält die Zieladresse

XCHD A,@R0 D6 1 1 -- -- --

XCHD A,@R1 D7 1 1 -- -- --

Das LOW-Nibble eines Speicherplatzes im internen RAM gegen das LOW-Nibble des Akkus austauschen. Die HIGH-Nibble beider Speicher werden nicht verändert. (R0 bzw. R1 enthält die Zieladresse)

MOVX A,@R0 E2 1 2 -- -- -- MOVX A,@R1 E3 1 2 -- -- --

Inhalt eines externen Speicherplatzes in den Akku kopieren

MOVX @R0,A F2 1 2 -- -- -- MOVX @R1,A F3 1 2 -- -- --

Inhalt des Akkus in einen externen Speicherplatz kopieren.

MOVX A,@DPTR E0 1 2 -- -- -- Inhalt eines externen Speicherplatzes in den Akku kopieren

MOVX @DPTR,A F0 1 2 -- -- -- Inhalt des Akkus in einen externen Speicherplatz kopieren

MOVC A,@A+DPTR 93 1 2 -- -- -- Hole Konstante aus einer Tabelle im EEPROM.

MOVC A,@A+PC 83 1 2 -- -- -- Hole Konstante aus einer Tabelle im EEPROM.

Page 27: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 27/30

Formelsammlung_ITG.doc 18.09.2008

Arithmetische Operationen

Mnemonischer Befehl Hex- Code

Beeinflussung Zustandbits Befehlsbeschreibung

OpCode Operanden W B

M Z CY OV AC

CLR A E4 1 1 -- -- -- Löschen des Akku-Inhaltes

CPL A F4 1 1 -- -- -- Komplementieren des Akku-Inhaltes

INC A 04 1 1 -- -- -- Inhalt des Akku um „1“ erhöhen INC Rn 08-0F 1 1 -- -- -- Inhalt des Registers um „1“ erhöhen

INC dadr 05 2 1 -- -- -- Inhalt intern. Speicherstelle um „1“ erhöhen

INC DPTR A3 1 2 -- -- -- Inhalt des Datenpointers um „1“ erhöhen

INC @R0 06 1 1 -- -- -- Inhalt einer Speicherstelle im internen

INC @R1 07 1 1 -- -- -- RAM um „1“ erhöhen

DEC A 14 1 1 -- -- -- Inhalt des Akku um „1“ vermindern DEC Rn 18-1F 1 1 -- -- -- Inhalt des Registers um „1“ vermindern

DEC dadr 15 2 1 -- -- -- Inhalt interne Speicherst. um „1“ vermindern

DEC @R0 16 1 1 -- -- -- Inhalt int. Speicherstelle um „1“ vermindern

DEC @R1 17 1 1 -- -- -- Inhalt int. Speicherstelle um „1“ vermindern

ADD A,#c8 24 2 1 ■ ■ ■ Addition einer Konstante zum Akkuinhalt

ADDC A,#c8 34 2 1 ■ ■ ■ Addition einer Konstante plus Carry

ADD A,Rn 28-2F 1 1 ■ ■ ■ Addition eines Registerinhaltes zum Akkuinhalt ADDC A,Rn 38-3F 1 1 ■ ■ ■ Add. eines Registerinh. plus Übertrag zum Akkuinhalt ADD A,dadr 25 2 1 ■ ■ ■ Inhalt int. Speicherstelle zum Akkus addieren

ADDC A,dadr 35 2 1 ■ ■ ■ Inhalt int. Speicherstelle plus CY zum Akku addieren

ADD A,@R0 26 1 1 ■ ■ ■ ADD A,@R1 27 1 1 ■ ■ ■

Inhalt einer Speicherstelle im internen RAM zum Inhalt des Akkus addieren

ADDC A,@R0 36 1 1 ■ ■ ■ Inhalt einer Speicherstelle im internen RAM

ADDC A,@R1 37 1 1 ■ ■ ■ plus CY zum Akku addieren

DA A D4 1 1 ■ -- -- Dezimalkorrektur des Akku nur nach einer BCD-Addition

SUBB A,#c8 94 2 1 ■ ■ ■ Subtraktion Konstante plus Carry vom Akku

SUBB A,dadr 95 2 1 ■ ■ ■ Subtrakt. Int. Speicherinhalt plus Carry vom Akku

SUBB A,Rn 98-9F 1 1 ■ ■ ■ Subtrakt. eines Registers plus Carry vom Akku SUBB A,@R0 96 1 1 ■ ■ ■ Subtraktion eines Speicherinhaltes des

SUBB A,@R1 97 1 1 ■ ■ ■ internen RAM plus Carry vom Akkuinhalt

SWAP A C4 1 1 -- -- -- Vertausche die Nibbles des Akkus

MUL AB A4 1 4 ■ ■ -- Multipliziere den Akku B- Register

DIV AB 84 1 4 ■ ■ -- Teile Akkuinhalt durch den B-Registerinhalt

RL A 23 1 1 -- -- -- Rotiere Akku-Inhalt eine Stelle nach links

RLC A 33 1 1 ■ -- -- Rotiere Akku-Inhalt durch Carry nach links

RR A 03 1 1 -- -- -- Rotiere Akku-Inhalt eine Stelle nach rechts

RRC A 13 1 1 ■ -- -- Rotiere Akku-Inhalt durch Carry nach rechts

SETB C D3 1 1 ■ -- -- Setze das CY-Bit auf „1“

CLR C C3 1 1 ■ -- -- Setze das CY-Bit auf „0“

CPL C B3 1 1 ■ -- -- Komplementiere das CY-Bit

SETB badr D2 2 1 -- -- -- Setze das adressierte Bit auf „1“

CLR badr C2 2 1 -- -- -- Setze das adressierte Bit auf „0“

CPL badr B2 2 1 -- -- -- Komplementiere das adressierte Bit

Page 28: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 28/30

Formelsammlung_ITG.doc 18.09.2008

Logische Operationen ANL A,#c8 54 2 1 -- -- --

Bitweise UND-Verknüpfung Konstante und Akku

ANL A,Rn 58-5F 1 1 -- -- -- Bitweise UND-Verknüpfung zwischen Akku und Register. Ergebnis im Akku.

ANL A,dadr 55 2 1 -- -- -- Bitweise UND-Verknüpfung zwischen Akku inter. Spei-cherst., Ergebnis im Akku

ANL dadr,#c8 53 3 2 -- -- -- Bitweise UND-Verkn. Konstante und int. Speicherst., das Ergebnis steht in der Speicherst.

ANL dadr,A 52 2 1 -- -- -- Bitweise UND-Verknüpfung zwischen Akku und RAM-internem Speicher, Ergebnis im Speicher

ANL C,badr 82 2 2 ■ -- -- UND-Verknüpfung zwischen Carry und Bit

ANL C,/badr B0 2 2 ■ -- -- UND-Verknüpfung zwischen Carry und invert. Bit. Ergebnis jeweils im Carry-Bit

ANL A,@R0 56 1 1 -- -- -- Bitweise UND-Verknüpfung

ANL A,@R1 57 1 1 -- -- -- Bitweise UND-Verknüpfung

ORL A,#c8 44 2 1 -- -- -- Bitweise ODER-Verknüpfung Akku und Konstante

ORL dadr,#c8 43 3 2 -- -- -- Bitweise ODER-Verknüpfung Konstante und int. Spei-cherst. Das Ergebnis steht in der Speicherstelle

ORL A,Rn 48-4F 1 1 -- -- -- Bitweise ODER-Verknüpfung zwischen Akku und Register. Ergebnis im Akku.

ORL A,dadr 45 2 1 -- -- -- Bitweise ODER-Verknüpfung zwischen Akku und RAM-internem Speicher, Ergebnis im Akku

ORL dadr,A 42 2 1 -- -- -- Bitweise ODER-Verknüpfung Akku und int. Speicherst., Ergebnis im Speicher

ORL C,badr 72 2 2 ■ -- -- ODER-Verknüpfung zwischen Carry Bit

ORL C,/badr A0 2 2 ■ -- -- ODER-Verknüpfung zwischen Carry invertiertem Bit. Ergebnis jeweils im Carry-Bit.

ORL A,@R0 46 1 1 -- -- -- Bitweise ODER-Verknüpfung

ORL A,@R1 47 1 1 -- -- -- Bitweise ODER-Verknüpfung

XRL A,#c8 64 2 1 -- -- -- Bitweise EXKLUSIV-ODER-Verknüpfung

XRL dadr,#c8 63 3 2 -- -- -- Bitweise EXKLUSIV-ODER-Verknüpfung Konst. und int. Speicherst. Ergebnis in Speicherstelle.

XRL A,Rn 68-6F 1 1 -- -- -- Bitweise EXKLUSIV-ODER-Verknüpfung Akku und angeg. Register. Ergebnis im Akku.

XRL A,dadr 65 2 1 -- -- -- Bitweise EXKLUSIV-ODER-Verknüpfung zw. Akku und RAM-internem Speicher, Ergebnis im Akku

XRL dadr,A 62 2 1 -- -- -- Bitweise EXKLUSIV-ODER-Verknüpfung zw. Akku und RAM-internem Speicher, Ergebnis im Speicher

XRL A,@R0 66 1 1 -- -- -- Bitweise EXKLUSIV-ODER-Verknüpfung

XRL A,@R1 67 1 1 -- -- -- Bitweise EXKLUSIV-ODER-Verknüpfung

Page 29: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 29/30

Formelsammlung_ITG.doc 18.09.2008

Sprungbefehle

Mnemonischer Befehl Hex- Code

Beeinflussung Zustandbits Befehlsbeschreibung

OpCode Operanden W B

M Z CY OV AC

LJMP adr16 02 3 2 -- -- -- Programmsprung im 64K-Block

SJMP rel 80 2 2 -- -- -- relativer Programmsprung im Bereich -128 bis +127 zur nachfolgenden Befehlsadresse

AJMP adr11 01-E1 2 2 -- -- -- Sprung im 2k-Block

JMP @A+DPTR 73 1 2 -- -- -- Springe zur Adresse, die aus Akku- und Datenpointerinhalt gebildet wird.

JBC badr,rel 10 3 2 -- -- -- Springe bei gesetztem Bit und lösche es JB badr,rel 20 3 2 -- -- -- Springe bei gesetztem Bit JNB badr,rel 30 3 2 -- -- -- Springe bei gelöschtem Bit JC rel 40 2 2 -- -- -- Springe bei gesetztem Carry-Bit JNC rel 50 2 2 -- -- -- Springe bei gelöschtem Carry-Bit JZ rel 60 2 2 -- -- -- Springe, wenn Akkuinhalt gleich Null JNZ rel 70 2 2 -- -- -- Springe, wenn Akkuinhalt ungleich Null DJNZ Rn,rel D8-DF 2 2 -- -- -- Vermindere Register um Eins und springe,

wenn der Rest ungleich Null

DJNZ dadr,rel D5 3 2 -- -- -- Vermindere den Speicherinhalt im inter-nen RAM um Eins und springe, wenn der Rest ungleich Null.

CJNE A,#c8,rel B4 3 2 ■ -- -- Vergleiche Akku mit Konstante und ver-zweige bei Ungleichheit. Andernfalls fahre im Programm fort.

CJNE Rn,#c8,rel B8-BF 3 2 ■ -- -- Vergleiche Register mit Konstante und ver-zweige bei Ungleichheit, andernfalls fahre fort.

CJNE A,dadr,rel B5 3 2 ■ -- -- Vergleiche Akku- und Speicherinhalt und verzweige bei Ungleichheit.

CJNE @R0,#c8,rel B6 3 2 ■ -- -- Vergleiche den Inhalt des RAM-internen

CJNE @R1,#c8,rel B7 3 2 ■ -- -- Speichers mit der Konstante und verzweige bei Ungleichheit. (R0 bzw. R1 enthält die Quellenadresse)

LCALL Adr16 12 3 2 -- -- -- Unterprogrammaufruf im 64k-Block ACALL adr11 11-F1 2 2 -- -- -- Unterprogrammaufruf im 2k-Block RET 22 1 2 -- -- -- Ende Unterprogramm RETI 32 1 2 -- -- -- Ende UP plus löschen des INT-Flags

Page 30: Formelsammlung für das Informationstechnische Gymnasium in ... fileFormelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 3/30 Formelsammlung_ITG.doc 18.09.2008

Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 30/30

Formelsammlung_ITG.doc 18.09.2008

Struktur und Verwendung des internen RAMs Die Tabelle zeigt alle Speziellen Funktions-Register mit Adresse und Resetwert.

* nur beim T89C51RD2 DP0L und DP0H heißen beim 8051 DPL und DPH

7F 30 2F 20 1F 18 17 10 0F 08 07 00

RAM zur allge-meinen Ver-wendung Bit-adressierbarer Bereich Bitadressen: 00-7F Bank 3 Bank 2 Bank 1 Bank 0

30 (Byteadresse) 7F 7E 7D 7C 7B .. 77 76 75 74 73 6f 6e 6D 6C 6B .. .. .. .. .. .

................................

................................ 1F 1E 1D 1C 1B ..

17 16 15 14 13

0F 0E 0D 0C 0B

07 06 05 04 03 .

1F (Byteadresse)

07 Register R7

06 Register R6

05 Register R5

04 Register R4

03 Register R3

02 Register R2

01 Register R1

00 Register R0

Spezielle Funktions- Register Byte-Adressen x0 und x8 sind auch bitadres-sierbar

FF

Reset- wert des Stack