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
Mach mal einen Programmablaufplan, damit Du selber erstmal durchsiehst, wie das Programm überhaupt funktionieren soll. Und was sollen die überflüssigen NOPs, mußt Du eine Mindestzeilenzahl erreichen? Peter
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?
@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.
Alex S. schrieb: > da richtige Verkehrsampeln wie folgt umschalten: "rot, rot & > gelb, dann grün." Steht doch auch so da: > Nach x Sekunden: > - Fußgänger: rot > - Autos: rot+gelb, dann grün > - goto Grundzustand
Alex S. schrieb: > db 10100b,10110b,10001b Was mir da auffällt... wie sind deine LEDs am Port angeschlossen? Wenn LED zwischen Port und GND, dann an bei "0" und aus bei "1"
Ich habs jetzt zum Glück endlich hinbekommen, trotzdem möchte ich euch für Eure Hilfe danken :)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.