Forum: Mikrocontroller und Digitale Elektronik Mit PIC und DTMF ein Relais schalten


von Chrischan (Gast)


Angehängte Dateien:

Lesenswert?

Hi Leute,

im Rahmen meiner Ausbildung hab ich ein Projekt bekommen in dem ich 
mittels DTMF Decoder und einem PIC 16f877 oda 16F84a ein Relais 
schalten.

Vorgabe ist: mit der Kombination Ton 1,2,3,4 ein Relais zur Ansteuerung 
bringen..Quasi ein kleines Zahlenschloss.

Das mit den Ausgängen und der Codetabelle ist mir klar..nur es hapert an 
der Programmierung des PICs

Nun meine Fragen:

Muss ich unbedingt eine zeitliche Abfrage machen ob und wie lange das 
DTMF Signal am Eingang anliegt machen oder ist es auch ohne möglich?

Habe über google diverse Quellcodes gefunden(siehe Anhang), wie müsste 
ich den umändern damit nur ein Realis mit dem richtigen Code geschaltet 
wird?(mir liegen grad erst di grundlagen mit PIC-.-)

von Juergen G. (jup)


Lesenswert?

Welcher DTMF Decoder?

Bsp.  MT8870

gibt Dir direkt einen 4-Bit code aus, brauchst also nur die Zahlen zu 
lesen und deinen Code zu erkennen.

Ju

von Chrischan (Gast)


Lesenswert?

ja davor ist ein dtmf decoder mt8870

nur ich hab keine ahnung wie ich dem beibringe die werte einzulesen und 
sich zu merken..der unterricht an der berufsschule ist nicht so 
tierfgründig.. über die Q-Ausänge wird ja der jeweilige binärcode 
eingelesen...über portb z.b.

der soll aber erst die 1(ton 1= q1 high)einlesen...alles andere soll 
nicht gelten und dann die 2(ton2= q2 high)...

bedingungen hab ich nicht drauf und wir arbeiten direkt mit der 
programmierumgebung von microship..

thx für die antwort

von Philipp F. (philippfister)


Lesenswert?

Hallo Chrischan!
Bin auch in der Ausbildung und lernen auch mit diesem Steinzeitmodell 
eines Microcontrollers ;-).
Nun frage ich dich willst du ein komplett lauffähiges Programm oder was 
"erwartest" du?

Gruß Philipp

von Chrischan (Gast)


Lesenswert?

nee nen komplettes programm kann ich ja nicht verlangen^^ auch wenn es 
top wäre..

ich brauche eher nen anstoß wie ich die bedingungen realisiere...im 
bascom kann ich ja IF Then Else verwenden...das hab ich eben noch 
gefunden...

bin grad dabei mir das im bascom zu schreiben...denke da komme ich wohl 
eher zum ziel, weil wie ich das nicht hinbekomme mit der bedingung der 
richtigen codeeingabe....

ich versuche es grad mit xor-verknüpfung des eingangsports..kann das 
aber erst ende der woche "in real life" testen...

zur simulation nutze ich proteus da läuft es soweit...

viell hast du ne idee? hoffe ich habs so gut es geht verständlich 
geschrieben^^

greetz

von Gast (Gast)


Lesenswert?

xor ist eine gute Idee. Subtraktion würde auch gehen.

Du XORst dein eingelesenes Byte mit deinem Vergleichswert. Ist das 
Ergebnis gleich Null (das Bit STATUS,Z ist auf 1 gesetzt) dann waren die 
verglichenen Bytes gleich. Auswerten tust du das Bit mit btfss oder 
btfsc. Darüber kannst du dann auch deine Verzweigung realisieren.

Schau dir die Befehle einfach mal an (sprut.de ist dein Freund). Ist im 
Assembler der 16F recht umständlich gemacht, funktioniert aber.

Gruß
Sven

von Marcus0100 (Gast)


Lesenswert?

Hallo,
habe mal ne Schaltung aus Elektor nachgebaut, dort war ein PIC16C84 
verbaut, hat auch gut funktioniert.
Bin noch am Suchen, das war schon ein älteres Heft, wenn ich es finde, 
melde ich mich wieder.
Gruß
Marcus

von Marcus0100 (Gast)


Lesenswert?


von Jens (Gast)


Lesenswert?

Was hst du in der Ausbildung gelernt, wenn es schon an dieser simplen 
Aufgabe scheitert?

Kopfschüttel...

von Maik W. (werner01)


Lesenswert?

Mensch Jens, deine herablassende kindische Haltung darfst du ganz allein 
für dich behalten, zeig halt mal wies geht!

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
Noch kein Account? Hier anmelden.