formelsammlung für das informationstechnische gymnasium in ... fileformelsammlung für das...
TRANSCRIPT
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
Formelsammlung für das Informationstechnische Gymnasium in Baden-Württemberg 2/30
Formelsammlung_ITG.doc 18.09.2008
Strukturierte Programmentwicklung
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
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>>
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
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
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
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
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
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
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',.....)
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
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.
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
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
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)
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
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
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
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
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
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
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.
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.
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
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.
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
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
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
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