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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.