schule-on-line.de

CPU-Simulator

Componenten:
RAM (LOW)
7x:
6x:
5x:
4x:
3x:
2x:
1x:
0x:
Ports
P3.7 Ports können EIN/AUS-Gänge sein.
Bits können einzeln gelesen/gesetzt werden.
Seg a Seg b Seg c Seg d Seg e Seg f Seg g Seg h Seg a Seg b Seg c Seg d Seg e Seg f Seg g Seg h
Mode: Off DCBA FULL
P1.7
P3.6P1.6
P3.5P1.5
P3.4P1.4
P3.3P1.3
P3.2P1.2
P3.1P1.1
P3.0P1.0

P2.7Ports können EIN/AUS-Gänge sein.
Bits können einzeln gelesen/gesetzt werden.
P0.7
P2.6P0.6
P2.5P0.5
P2.4P0.4
P2.3P0.3
P2.2P0.2
P2.1P0.1
P2.0P0.0
Register
R7:
R6:
R5:
R4:
R3:
R2:
R1:
R0:
Timerconfig
Controlle und Einstellung für Timer1 bzw. Timer0
work in progress..
TCON
Kontrolle:
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
 
TMOD
Einstellung:
Gate1 C/!T Mode1 GATE0 C/!T Mode0
 
Zähler(16Bit)   d TH1=h  TL1=h
  d TH0=h  TL0=h
AKKU ( Carry-Bit und 8 DataBit) Carry-Bit Akku Bit 7 Akku Bit 6 Akku Bit 5 Akku Bit 4 Akku Bit 3 Akku Bit 2 Akku Bit 1 Akku Bit 0 Akku=00h=0d

Befehle:
History:
Befehl (Auswahl)Beschreibung
Lädt den Akku mit "NULL" alle Bit auf Null setzen
Lädt den Akku abwechselnd mit 0 1
Lädt den Akku abwechselnd mit 1 0
Lädt den Akku mit dem angegeben Wert z.B. 0b110011 0x55
Lädt den Akku mit dem Inhalt des angegebenen Registers
Lädt das angegebene Register mit dem Inhalt des Akkus
Lädt den Akku mit dem Inhalt der angegebenen LOW RAM-Addresse
Lädt das Carry-Bit mit "0" oder "1"d
Vertauscht Akku mit Register R0..R7
Vertauscht Lädt den Akku mit dem am Port Pn anliegenden Wert

Befehl(Auswahl)Beschreibung
INCREMENT Erhöht den Inhalt des Akkus um 1 A++ bei Überlauf wird C gesetzt!
DECREMENT Erniedrigt den Inhalt des Akkus um 1A-- bei 0 wird C gesetzt!
INCREMENT Erhöht den Inhalt des Registers um 1 (bei Überlauf wird C gesetzt!)
DECREMENT Erniedrigt den Inhalt des Registers um 1 (bei 0 wird C gesetzt!)
Vertauscht die oberen 4 mit den unteren 4 Bits im AKKU
Clear Akku alle Bits im Akku auf 0 setzen
Alle Bit im Akku complementieren, also 1=→0 und 0→1
Rotiere die Akku-Bits nach ← Links. Höchstes Bit kommt nach A0
Rotiere die Akku-Bits nach → Rechts. Niedriges Bit kommt nach A7
Rotiere die Akku-Bits nach ← Links. Höchstes Bit kommt ins Carry akku*=2
Rotiere die Akku-Bits nach → Rechts. Niedriges Bit kommt ins Carry akku/=2
UND Verknüpfung mit direktem Wert
ODER Verknüpfung mit direktem Wert
XOR Verknüpfung mit direktem Wert
Befehl(Auswahl)Beschreibung
Addiert diesen Wert zum aktuellen AkkuWert
bei Überlauf wird C gesetzt!
Addiert diesen Wert+Carry zum aktuellen AkkuWert
bei Überlauf wird C gesetzt!
Subtrahiert den Wert+Carry-Bit vom Akku
falls Akku <0 wird Carry-Bit gesetzt
Das B Register wird nur für Mulitiplikation/Division verwendet
Es ist das SFR mit Adr 0xF0
Multiplikation Akku * B..!! not implemented !!
Division Akku/B !! not implemented !!
Decimal Adjust Akku.. !! not implemented !!
Befehl für P.Beschreibung
Clear Carry = Setzt das Carry-Bit auf 0
Einzelnes Port-Bit complementieren 1 → 0 bzw. 0 → l
Einzelnes Port-Bit clearen / löschen
Einzelnes Port-Bit mit Inhalt von Carry belegen
Einzelnes Port-Bit Setzen

Befehl Beschreibung
Springe zu einer relativ nahen Befehlszeile im Programm
Springe zu einer weit entfernten Befehlszeile im Programm
Rufe ein vorhandenes Unterprogramm auf
cooming soon
Befehl Beschreibung
Lese einen Analogen Wert von Eingangskanal
cooming soon
Befehl Beschreibung
Configuriere die Schnittstelle
Schreibe ein Byte zum Seriellen Ausgang
Lese ein Byte vom Seriellen Eingang
cooming soon
Befehl Beschreibung
Timer zählt von 15536..655356=50000 µs
cooming soon
Befehl Beschreibung
Serielle Schnittstelle auf 57600 Bit/sec einstellen
Verzoegerung von genau 1.000ms Veraendert KEIN Register!!
von 1..65535 ms Veraendert KEIN REGISTER!!
cooming soon