Parkhausverwaltungsystem

itas
Parkhausverwaltungsyste
guten morgen alle zusammen.

wir haben folgendes problem.
wir haben eine 3 wochen langes projekt,
wo unsere aufgabe drin besteht ein Parkhausmodell nachzubauen.
folgende aufgaben werden gefordert:#
die ein/ausfahrt soll aus folgenden sachen bestehen:
lichtsensor,simmulationsknopf, ampel und motor für die schranke und einer parkplatzanzeige, die die anzahl der freien parkplätze anzeigt.es soll bei 250 anfangen.bei jeder einfahrt wird - 10 gezählt bei ausfahrt +10.
das soll so ablaufen!

kommt ein auto an die einfahrt rangefahren, wird der lichtsensor unterbrochen und erst wenn die simmulationstaste gedrückt wird soll die schranke hochgehen. es soll UND-verknüpft werden.
dabei soll die ampel vor der einfahrt auf rot springen und parkplatzanzeige, die aus drei 7- Segment anzeigen besteht - 10 zählen. wenn das auto reingefahren ist, soll wieder der ausgangszustand eintreffen, d.h die ampel auf grün, schranke unten.
bei der ausfahrt das gleiche spielchen, nur die parkplatzanzeige natürlich + 10.

das alles soll mit assembler programmiert werden und
an einem mc80535 ausgegeben werden


wer uns helfen kann, sollte das bitte tuhen
wir sind für jeden tipp dankbar
vielen dank im vorraus
mfg ITAS :cry1
Hunter
Hallo itas,

du hast vergessen zu posten wie weit ihr schon seid, ohne euren Sourcecode wird euch hier keiner helfen (können).
Und zum Hausaufgaben machen sind wir ja nicht da ;-)

Nachtrag:
Hab den anderen Thread gelöscht, da doppelt.
itas
Guten morgen.
danke das sie sich gemeldet haben.
wir haben schon angefangen, aber es läuft nicht so richtig(interrupt,will nicht starten).
wir haben folgende Schnittstellen belegt:
Eingabeport ist bei uns P1.
Einen Interrupt haben wir auf P1.0 gelegt.
das ist der Eingabesignal der Einfahrtsschranke.
zwteites eingangsignal haben wir auf P1.1 gelegt Einganssignal der Ausfahrtlichtschranke.
P5 haben wir verwendet um die Anzahl der Freien Parkplätze auszugeben.
Dort sind drei - 7-segmentanzeigen die es ausgeben sollen.
das läuft aber noch garnicht,weil wir nicht wissen wie wir es hinkriegen sollen:-(
P4.0 ist für AuffahrtSchranke dir durch einen Motor betrieben wird
P4.1 ist für die Ausfahrtampel
P4.2 ist für Einfahrts Schranke dir durch einen Motor betrieben wird
P4.3 ist für die Einfahrtsampel.

ich leg am besten unser bischeriges ausgearbeites programm dazu!
ob es ihnen hilft?;-)


;Programmanfang

CSEG AT 8053h ;Interrupt
Ljmp Start4


RSEG Parkhaus
Setb I3FR
Setb EX3
Setb Eal

;---------------------------------Hauptprogramm----------------------------
--

MOV DPTR,# Tab
Start : MOV R1,#00h

Start1: MOV A,R1
MOVC A,@ A+DPTR
MOV P5,A
MOV P4,#00001010b
MOV R3,P1
CJNE R3,#00000010b, ANF
CJNE R3,#00000001b, Start4
SJMP Start1
;----------------------Ausfahrt------------------------------------
ANF: MOV P4,#00001001b
INC R1
SJMP Start1

;-----------------------------------Ausfahrt-----------------------



;--------------------------------Interrupt----------------------

Start4:MOV P4,#00001010b
CJNE R1,#00000000b,Start3
DEC R1
Sjmp Start1
RETI
;------------------------------------------------------------------
Start3:MOV P4,#00000010b
MOV R1,#3Fh
SJMP Start1

TAB: DB 3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh
;**************************************************************************
***
END ;Programmende
Warning: Unexpected character in input: '' (ASCII=26) state=1 in /home/www/htdocs/goldzeiten.de/Community/asm/read.php on line 50







ich dank ihnen im voraus


mfg ihre Itas
Hunter
Hallo itas,

hast du als allererstes mal ein paar Debugschritte durchgeführt?
Sprich, nur den Interrupt aktiviert und damit eine LED schalten lassen?

Das TAB ist 0-9 auf den LCDs bzw. pro LCD, oder?
Wenn ja, dann musst du einfach eine durchgehende 10er Division durchführen.
Also du hast bspw. 15 Autos in der Garage.
Da machst du erst sowas wie "div 10" nimmst den Modula Rest (der sich sicher in einem Register befindet) und addierst den zu der Startadresse des TAB Arrays.
Diese gepointerte Speicherstelle schickst du dann an P5, wobei... wie breit ist P5?
Oder habt ihr da noch nen Wandler drin?

Bloss wofür braucht ihr dann TAB?

Also soweit ich dein Programm verstehe, ist es mir noch etwas unlogisch.

Aber falls ich es falsch aufgefasst habe, würde mich interessieren, was

Zitat:
MOV DPTR,# Tab
Start : MOV R1,#00h

Start1: MOV A,R1
MOVC A,@ A+DPTR
MOV P5,A


macht. Besonders bei Werten > 9.

Nochwas: Hier brauchst du nicht Sietzen, ein einfaches du langt vollkommen ;-)
Und warum schreibst du eigentlich "ihre itas" wenn du als Geschlecht männlich gewählt hast?