Ampelsteuerung Neu

OP #2502823
Lesenswert?

So, habe nun einen neuen Programmcode geschrieben.
Den Mikrocontroller den wir in der Schule verwernden heißt AT89C51RC2 
und ist von Atmel.
Die LEDs an P2 schalten nicht um wie ich es mir erhofft hatte..

und zwar
-10001b
-10010b
-10100b
-01100b
-10100b
-10110b
-10001b

bis der Taster P3.3 wieder betätigt wurde..

endlos:
MOV P2,#10001b         //Fußgänger rot, Autos grün
MOV P0,#000000b       //zur Visialisierung

endlos1:
JB P3.3,endlos1     //Taster gedrückt?

ACALL warte //Warte

MOV A,R1
MOV DPTR,#tabelle1  //Umschalten von Rot auf Gruen
MOVC A,@A+DPTR
MOV P2,A
INC R1
CJNE R1,#4,endlos1

ACALL warte //Warte

endlos2:
ACALL warte //Warte

MOV A,R0
MOV DPTR,#tabelle2  //Umschalten von Gruen auf Rot
MOVC A,@A+DPTR
MOV P2,A
INC R0
CJNE R0,#3,endlos2

LJMP endlos1

warte:              //Unterprogramm Warteschleife 3 Sekunden
MOV R2,#0
eins:
MOV R3,#0
zwei:
MOV R4,#22
drei:
NOP
NOP
NOP
NOP
NOP
DJNZ R4,drei
DJNZ R3,zwei
DJNZ R2,eins
NOP
RET

tabelle1:                    //Schalte von Rot auf Grün
db 10010b,10100b,01100b
tabelle2:                    //Schalte von Grün auf Rot
db 10100b,10110b,10001b

END
Gast #2502854
Lesenswert?

Sag doch erstmal was das werden soll. Ampelsteuerung... ok!
Dann mal Butter bei die Fische!


Wenn ich das bauen würde, wäre das in etwa so:

Grundzustand:
- Autos: grün
- Fußgänger: rot

Taster wurde gedrückt:
- 3 Sek warten
- Autos: gelb, dann rot
- Fußgänger: grün

Nach x Sekunden:
- Fußgänger: rot
- Autos: rot+gelb, dann grün
- goto Grundzustand

oder was?
OP #2502864
Lesenswert?

@peda

Einen PAP hab ich schon gemacht ;)

und die überflüssigen NOPs enstammen einem vorgefertigten Unterprogramm, 
das wir auch sonst in der Schule verwenden.

@was denn nun?

So in etwa hab ich es mir auch gedacht, bloß das "goto Grundzustand" 
geht nicht, da richtige Verkehrsampeln wie folgt umschalten: "rot, rot & 
gelb, dann grün."

Das sollen die Tabellen erfüllen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren