Ampelsteuerung

OP #2502570
Lesenswert?
• ▲
▼
Hallöchen,

ich habe ein kleines Problem :( und zwar bin ich in dem Fach 
Mikrocontroller eine ziemliche Niete..

Ich soll eine Ampelsteuerung programmieren, da es meinem Lehrer mit 
Timer und Interrupt Service Routine nicht recht war, habe ich mich dazu 
entschlossen es mit Unterprogramm und Datenpointer zu programmieren.

Wir nutzen in der Schule den Atmel AT89C51RC2.

Zudem soll es in etwa so ablaufen:

-Druck Taster P3.3
-Unterprogramm mit Wartezeit von 3 Sekunden wird augerufen
-Ampel wird umgeschalten, P2
-Unterprogramm mit Wartezeit von 3 Sekunden wird augerufen
-Ampel wird wieder zurückgeschalten, P2
-Endlosschleife, warten bis wieder P3.3 gedrückt wurde

Ich habe schon ein Programm geschrieben, bloß mit wenig Erfolg.. ich 
hoffe ihr könnt mir weiterhelfen..

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

endlos:
JB P3.3, endlos        //Taste gedrückt
endlos1:
JNB P3.3, endlos1     //Taste losgelassen

ACALL warte             //Warte 3 Sekunden

MOV A,R1
MOV DPTR,#tabelle1
MOVC A,@A+DPTR
MOV P2,A

ACALL warte            //Warte 3 Sekunden

MOV A,R1
MOV DPTR,#tabelle2   //Umschalten
MOVC A,@A+DPTR
MOV P2,A

LJMP endlos           //Endlosschleife

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                          //Ende des Unterprogramms

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

END

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.