Forum: Mikrocontroller und Digitale Elektronik DTMF-Decoder mit Dotmatrix-Anzeige


von Storm87 (Gast)


Lesenswert?

Hallo,
ich habe einen DTMF-Decoder mit Dotmatrix-Anzeige, nach diesen 
Schaltplan gebaut.

http://www.hagi-online.org/picmicro/dtmfdotmatrix.html

Das Problem ist das auf der Dotmatrix-Anzeige immer nur eine LED 
leuchtet, das bedeutet wenn auf dem Telefon eine Zahl gedrückt wird 
leuchtet nur eine LED auf, wenn ich eine andere Zahl drücke leuchtet 
eine andere LED auf der Matrix-Anzeige auf, aber sie zeigt nicht die 
Zahl an.
Woran kann das liegen ?

von Wusel D. (stefanfrings_de)


Lesenswert?

Entferne den PIC und schließe LED's mit Vorwiderstand an die Q Ausgänge 
des DTMF Decoders an. Dann siehst Du, ob der richtig arbeitet.

Danach sehen wir weiter. Mach das erstmal.

von Strom87 (Gast)


Lesenswert?

So hab ich gemacht:
wenn ich anschalte ist Leuchten Q1, Q2, Q3, Q4
Zahl 1: Q1
Zahl 2: Q2
Zahl 3: Q1, Q2
Zahl 4: Q3
Zahl 5: Q3, Q1
Zahl 6: Q2, Q3
Zahl 7: Q1, Q2, Q3
Zahl 8: Q4
Zahl 9: Q1, Q4

Ist das richtig so?

von Michael A. (Gast)


Lesenswert?

Strom87 schrieb:
> Ist das richtig so?

Sieht doch gut aus, aber warum fragst du?
Das kannst du doch direkt durch Vergleich mit der Tabelle im Datenblatt 
(Figure 2. Functional Decode Table) feststellen.
http://www.biltek.tubitak.gov.tr/gelisim/elektronik/dosyalar/18/ics8870.pdf

von Storm87 (Gast)


Lesenswert?

Danke!

Aber was kann es sonst sein, meint ihr der PIC ist defekt, wie kann ich 
den Prüfen?

von Bernd S. (bernds1)


Lesenswert?

Storm87 schrieb:
> Danke!
>
> Aber was kann es sonst sein, meint ihr der PIC ist defekt, wie kann ich
> den Prüfen?

Muß ja nicht kaputt sein, vielleicht ist nur ein Fehler im Programm.
Zeig doch mal den Sourcecode, vielleicht kann dir dann geholfen werden.

von Reinhard Kern (Gast)


Lesenswert?

Strom87 schrieb:
> Ist das richtig so?

Das ist die Binärdarstellung der Zahlen. Ist wahrscheinlich so 
beabsichtigt (gibt ja auch Binäruhren) oder ein BCD-7Segment-Decoder 
soll nachgeschaltet werden, was allerdings relativ unsinnig ist, wenn 
man schon einen PIC verwendet.

Die Gedankengänge fremder Entwickler sind oft unerforschlich. Vielleicht 
ist das Ganze auch einfach nicht fertiggeworden.

Ich tippe auf einen Hardcore-Binärfan.

Gruss Reinhard

von Bernd S. (bernds1)


Lesenswert?

Reinhard Kern schrieb:
>
> Das ist die Binärdarstellung der Zahlen. Ist wahrscheinlich so
> beabsichtigt (gibt ja auch Binäruhren) oder ein BCD-7Segment-Decoder

Aus dem 8870 kommt ein BCD-Code raus, das sind die 4 Ausgänge Q1..Q4.
Und die meinte Storm87 damit, als er die Tabelle "Zahl 1: Q1..." 
schrieb.

Der PIC soll daraus erstmal eine lesbare Zahlendarstellung machen auf 
der Dotmatrix-Anzeige. Und nun ist die Frage, ist der PIC kaputt oder 
stimmt das Programm nicht?

Da fällt mir noch eine ganz dumme Frage an den Storm87 ein:

Ist der PIC überhaupt programmiert, oder hast du ihn gekauft und 
eingelötet?

Sorry, aber es kann ja sein, daß jemand nicht weiß, daß das ein 
Prozessor ist, der erst ein Programm braucht, um seine Aufgabe zu 
erfüllen.

von NoNo (Gast)


Lesenswert?

Bernd S. schrieb:
> Sorry, aber es kann ja sein, daß jemand nicht weiß, daß das ein
> Prozessor ist, der erst ein Programm braucht, um seine Aufgabe zu
> erfüllen.

Ist keine dumme Frage,hätte ich auch als erstes gestellt.
Wobei,wenn bei unterschiedlichen Signalen unterschiedliche LEDs der 
Matrix aufleuchten,muss ja was drauf sein.

Sicher dass die Leitungen an die Matrix richtig angeschlossen sind? 
Richtige Matrix (column Anode)?

von c-hater (Gast)


Lesenswert?

Reinhard Kern schrieb:

> Das ist die Binärdarstellung der Zahlen. Ist wahrscheinlich so
> beabsichtigt

Das glaube ich nicht. Zu Binärdarstellung hätten ja 4 LEDs genügt, dafür 
nimmt doch niemand ein 5x7 Dotmatrix.

> oder ein BCD-7Segment-Decoder
> soll nachgeschaltet werden, was allerdings relativ unsinnig ist, wenn
> man schon einen PIC verwendet.

Und vor allem auch ein Dotmatrix-Display. Wenn der Plan war, einen 
Siebensegmentdecoder zu verwenden, wäre wohl auch ein 
Siebensegment-Display verwendet worden. Dafür braucht's dann ganz sicher 
auch keinen PIC mehr, da hätte es dann ein primitives 4Bit-Latch vor dem 
Siebensegmentdecoder getan.

> Vielleicht
> ist das Ganze auch einfach nicht fertiggeworden.

Das könnte sein. Vielleicht ist aber auch nur irgendein Debugmodus in 
der Software aktiviert, dessen Aufgabe halt genau ist, einfach nur das 
Binärmuster des DTMF-Decoders anzuzeigen. Wenn ich sowas so bauen würde, 
wäre auf jeden Fall so ein Debugmodus drinne.

Allerdings würde ich das nicht so bauen. Ich würde einfach nur einen AVR 
nehmen und den die ganze Arbeit erledigen lassen, einschließlich der des 
DTMF-Decoders.

von Tachen (Gast)


Lesenswert?

Wenn ich die Doku auf der Homepage richtig lese, wird nur die gedrückte 
Taste im Ziffernblock angezeigt:

1  2  3  A
4  5  6  B
7  8  9  C
*  0  #  D

Also kann eigentlich immer nur EINE Led in der Matrix leuchten ;-)

von Bernd S. (bernds1)


Lesenswert?

Tachen schrieb:
> Wenn ich die Doku auf der Homepage richtig lese, wird nur die gedrückte
> Taste im Ziffernblock angezeigt:
>
> 1  2  3  A
> 4  5  6  B
> 7  8  9  C
> *  0  #  D
>
> Also kann eigentlich immer nur EINE Led in der Matrix leuchten ;-)

Du hast Recht, das könnte man auch so interpretieren.
Auf der Homepage steht:
> Zusätzlich wird über eine DotMatrix-Anzeige angezeigt,
> welche Taste zuletzt gedrückt wurde.
Aber da steht nicht, ob eine Ziffer oder nur ein Punkt an der richtigen 
Stelle angezeigt wird. Ich hatte bis jetzt angenommen, daß das 
entsprechende Zeichen auf der Anzeige dargestellt wird.
Aber bevor wir den Sourcecode nicht sehen, ist das nur ein Raten...

von John (Gast)


Lesenswert?

Hast Du vielleicht diese Schaltung aufgebaut?
http://www.hagi-online.org/picmicro/dtmfled.html

von Bernd S. (bernds1)


Lesenswert?

John schrieb:
> Hast Du vielleicht diese Schaltung aufgebaut?
> http://www.hagi-online.org/picmicro/dtmfled.html

Entschuldige die Zwischenfrage, aber er hat doch die Schaltung verlinkt, 
die er aufgebaut hat. Und er spricht auch von Dotmatrix-Anzeige.
Warum fragst du jetzt nach einer anderen Schaltung? Ich dachte, über die 
Schaltung gibt's keinen Zweifel?

von John (Gast)


Lesenswert?

Bernd S. schrieb:
> Warum fragst du jetzt nach einer anderen Schaltung?

Weil die von mir verlinkte Schaltung genau das macht, was er in seinem 
erstem Post beschreibt.

von Davis (Gast)


Lesenswert?

> Aber bevor wir den Sourcecode nicht sehen, ist das nur ein Raten...

------------------------------------------------------------------------ 
---
;  Die Zeichentabelle für die LED-Anzeige kommt in das EEPROM
;----------------------------------------------------------------------- 
---
    org 0x2100
    de 0xF0, 0x48, 0x48, 0x48, 0x48, 0x48, 0xF0 ; D
    de 0x20, 0x60, 0x20, 0x20, 0x20, 0x20, 0x70 ; 1
    de 0x70, 0x88, 0x08, 0x70, 0x80, 0x80, 0xF8 ; 2
    de 0x70, 0x88, 0x08, 0x30, 0x08, 0x88, 0x70 ; 3
    de 0x10, 0x30, 0x50, 0x90, 0xF8, 0x10, 0x10 ; 4
    de 0xF8, 0x80, 0xF0, 0x08, 0x08, 0x88, 0x70 ; 5
    de 0x30, 0x40, 0x80, 0xF0, 0x88, 0x88, 0x70 ; 6
    de 0xF8, 0x08, 0x10, 0x20, 0x40, 0x40, 0x40 ; 7
    de 0x70, 0x88, 0x88, 0x70, 0x88, 0x88, 0x70 ; 8
    de 0x70, 0x88, 0x88, 0x78, 0x08, 0x10, 0x60 ; 9
    de 0x70, 0x88, 0x98, 0xA8, 0xC8, 0x88, 0x70 ; 0
    de 0x20, 0xA8, 0x70, 0xF8, 0x70, 0xA8, 0x20 ; *
    de 0x50, 0x50, 0xF8, 0x50, 0xF8, 0x50, 0x50 ; #
    de 0x20, 0x50, 0x88, 0x88, 0xF8, 0x88, 0x88 ; A
    de 0xF0, 0x48, 0x48, 0x70, 0x48, 0x48, 0xF0 ; B
    de 0x70, 0x88, 0x80, 0x80, 0x80, 0x88, 0x70 ; C
    de 0x00, 0x50, 0x00, 0x20, 0x20, 0x88, 0x70 ; Smiley

von Bernd S. (bernds1)


Lesenswert?

Seine Schaltung macht das wahrscheinlich auch, nur eben nicht mit 
einzelnen Dioden, sondern mit einer Matrix-Anzeige.

Mal sehen, ob er noch den Sourcecode postet, dann sehen wir weiter...

P.S.: nicht übelnehmen, ich war nur verwundert...

von Bernd S. (bernds1)


Lesenswert?

Danke an Davis, jetzt wissen wir wenigstens, daß wirklich die Zeichen 
auf der Dotmatrix angezeigt werden sollen und nicht nur ein Punkt pro 
Ziffer.

Das heißt jetzt aber trotzdem, daß wir nicht wissen, was im PIC 
passiert. Ist das Programm richtig und fehlerfrei? Und ist der PIC 
überhaupt programmiert?
Das obige ist ja nur eine Zeichentabelle und kein Programm.

Die Ausgänge vom 8870 (Q1..Q4) sind ja erstmal richtig, das hat Storm87 
schon überprüft.

von John (Gast)


Lesenswert?

Bernd S. schrieb:
> Mal sehen, ob er noch den Sourcecode postet, dann sehen wir weiter...

Den Sourcecode gibt es als Download auf der Seite.
(Erste Position in der Stückliste -> Disketten-Symbol)

von John (Gast)


Lesenswert?

Im Download sind die Hex-Files von allen DTMF-Decoder Versionen 
enthalten.
Was ist wenn er das falsche File programmiert hat?

von Bernd S. (bernds1)


Lesenswert?

John schrieb:
> Im Download sind die Hex-Files von allen DTMF-Decoder Versionen
> enthalten.
> Was ist wenn er das falsche File programmiert hat?

Das ist auch möglich.
Den Download-Link hatte ich übersehen. Sonst hätte ich nicht paarmal 
nach dem Sourcecode gefragt, sorry...

Jetzt schauen wir mal, ob sich Storm87 nochmal meldet, nachdem er den 
PIC auf richtige Programmierung überprüft hat. Vielleicht war das ja 
alles...

von Storm87 (Gast)


Lesenswert?

Danke für den Tipp mit der Programmierung, hab den Code von der Seite 
genommen. Aber örgend was stimmt da nicht, ich schau mir das noch mal 
genau an und meld mich wieder.

von Bernd S. (bernds1)


Lesenswert?

Okay, ich bin gespannt :-)

von Storm87 (Gast)


Lesenswert?

So, kann ich überhaupt den PIC direkt auf der Platine Programmieren oder 
brauch ich noch eine Brenner Platine für den Pic? Weil es klappt nicht 
richtig.

von Mike (Gast)


Lesenswert?

Storm87 schrieb:
> Weil es klappt nicht richtig.
Was klappt nicht? Von selbst wird das Programm nicht in den PIC wandern. 
Wie hast du denn versucht, es dort rein zu bekommen?

von Storm87 (Gast)


Lesenswert?

Mit einem Brennprogramm, aber reicht das oder brauch ich noch eine Pic 
Brennplatine

von Bernd S. (bernds1)


Angehängte Dateien:

Lesenswert?

Storm87 schrieb:
> Mit einem Brennprogramm, aber reicht das oder brauch ich noch eine Pic
> Brennplatine

Wie hast du denn das hex-File vom Brennprogramm auf den PIC bekommen?
Du mußt doch irgendwas am PIC angeschlossen haben?
Beschreib das mal bitte, wie du das gemacht hast.

Es gibt zwei Möglichkeiten.
Entweder du steckst den PIC in ein Programmiergerät, was am PC hängt. 
Dann kann das Brennprogramm den PIC im Programmiergerät brennen.
Oder du möchtest ihn in der Schaltung programmieren, dann brauchst du 
einen Programmieradapter (PICKIT oder was ähnliches). Der Adapter stellt 
dann das Bindeglied zwischen dem PC und deiner Schaltung mit dem PIC 
her. Und damit kannst du dann den PIC brennen. Für das Programmieren in 
der Schaltung müssen die Anschlüsse am PIC so belegt sein, wie du das 
auf dem Bild siehst.

von Storm87 (Gast)


Lesenswert?

ich hatte gedacht ich kann ihn einfach auf der Platine über die 
com-schnittstelle übertragen, auf der Seite steht ja nichts weiter dazu. 
ich werde mich dann wohl noch mal mit der ganzen sache beschäftigen. 
Kann ich denn einfach so einen PIC Programmer bei E... kaufen?

von Bernd S. (bernds1)


Lesenswert?

Storm87 schrieb:
> ich hatte gedacht ich kann ihn einfach auf der Platine über die
> com-schnittstelle übertragen, auf der Seite steht ja nichts weiter dazu.
> ich werde mich dann wohl noch mal mit der ganzen sache beschäftigen.
> Kann ich denn einfach so einen PIC Programmer bei E... kaufen?

Du hast bestimmt die COM deines PC an die 9polige Buchse in deiner 
Schaltung angeschlossen, stimmts? Das funktioniert aber nicht, denn die 
Schnittstelle in deiner Schaltung gibt nur die gedrückten Zahlen seriell 
raus, damit du sie über den PC oder eine andere Schaltung auswerten 
kannst. Und das funktioniert auch erst dann, wenn der PIC programmiert 
ist und läuft. Lies mal die Beschreibung auf der Webseite.
Die Schnittstelle ist kein Eingang!

Dein Brennprogramm muß dir doch nach dem Brennversuch eine Meldung 
ausgegeben haben? Und das war doch bestimmt eine Fehlermeldung, oder?
Was hast du eigentlich für ein Brennprogramm benutzt?

Hier sind mal zwei Varianten, die für deinen Zweck geeignet wären:
http://www.conrad.de/ce/de/product/160402/PICkit-3-Debug-Express-DebuggerProgrammer-DV164131-Microchip-DV164131-Ausfuehrung-PICkit-3-Debug-Express-DebuggerProg

http://www.reichelt.de/Programmer-Entwicklungstools/DV-164131/3/index.html?;ACTION=3;LA=446;ARTICLE=87178;GROUPID=2969;artnr=DV+164131

Es kann auch noname-Varianten geben oder Nachbauten. Da mußt du aber 
dann schauen, ob sie von deinem Brennprogramm unterstützt werden.

Was hast du für ein Programm zum Brennen benutzt?

von Storm87 (Gast)


Lesenswert?

Hallo,
ich habe jetzt diesen Brenner: 
http://www.ebay.de/itm/ICSP-PIC-Brenner-Programmierer-Programmer-USB-Programmierger-at-fur-16F-12C-12F-/140936251715?pt=Wissenschaftliche_Ger%C3%A4te&hash=item20d0748943

brauche ich noch was um den PIC16F627 zu brennen?
Wie kann ich vorgehen, hab bis jetzt usburn auf dem Computer?

von Storm87 (Gast)


Lesenswert?

weiß jemand mit dem Brennen bescheid?

von Bernd S. (bernds1)


Lesenswert?

Hallo Storm,

laut Beschreibung sollte der Brenner funktionieren.
Mit dem Brennprogramm kenn ich mich leider auch nicht aus. Ich arbeite 
nicht mit PIC. Aber prinzipiell sollte es so funktionieren, daß dein 
Brennprogramm erstmal den Brenner erkennen sollte. Wenn das der Fall 
ist, mußt du den richtigen PIC auswählen. Dann muß da ein Punkt sei, wo 
du das Hex-File wählen kannst, was du von der Website runtergeladen 
hast. Wenn das geschafft ist, suche den Punkt "Flash programmieren" oder 
so ähnlich.
Wie gesagt, ich kenne das Programm nicht, aber so ungefähr sollte es 
laufen.
Vielleicht kann dir hier noch jemand einen Tipp geben, der das Programm 
kennt.

Gruß Bernd

von Bernd S. (bernds1)


Lesenswert?

Ich hab hier was gefunden, schau dir die Seite mal an. Dort solltest du 
die Antworten auf deine Fragen finden:

http://www.sprut.de/electronic/soft/usburn/usburn.htm

Gruß Bernd

von axelr. (Gast)


Lesenswert?

Die Zeichentabelle im EEPROM ist für die Schaltungsvariante2 mit LCD.
Findet man beim Download im Verzeichnis DOC. Die LED MAtrix zeigt 
tatsächlich nur die Position der Taste an.

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.