mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik DTMF Dekoder und 8051er Passwortabfrage brauche Hilfe!


Autor: Ertan Metin (drbrain)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen :-)

ich zerbreche mir seit 3 Tagen meinen Kopf und ich komme zur keiner 
Lösung !

ich habe mir eine DTMF Dekoderschaltung gebaut dazu habe ich den 
beliebten Mitel MT8870D-1 Chip verwendet Dekoderschaltplan befindet sich 
im Dateianhang.
Die Schaltung funktioniert Reibungslos habe alle Tastenkombination 
ausprobiert und alle Ausgänge Q1-Q4 werden ordnungsgemäß mit 5V 
angesteuert.


Habe die Schaltung erweitert und die Ausgänge Q1 - Q4 an die Ports 
2.0-2.3
meines Atmel C8051ED2 Mikrocontrollers angeschlossen.
Den Est (PIN 16) Ausgang habe ich an meinem P1.0 angeschlossen.


Habe dazu ein kleines Programm geschrieben, womit ich ein 4 stelliges 
Passwort abgefragt werden kann.

Programmablauf:

1. mit * also Binär 00001011b kommt man in die Eingabe

2. über den P1.0 (ESt) wird abgefragt ob eine Taste gedrückt wurde, also 
High Pegel (der Pegel ist nur für einen Moment da und fällt gleich 
wieder ab)

3.abfragebcd BCD code wird abgefragt falls die Eingabe stimmt gehts 
weiter zu nächsten Abfrage wenn nicht fängt das Programm von vorne an

4.falls alles Abfragen richtig waren wird auf dem Display Hallo 
angezeigt


Mein Problem ist wenn ich das Programm im Debug laufen lasse 
funktioniert es ohne Probleme jedoch wenn ich es so laufen lasse 
funktionieren die ersten beiden Eingaben also *,9,2 und danach geht 
nichts mehr.


Der BCD Code wird auf den Port LED's richtig angzeigt jedoch nicht in 
der Abfrageroutine abgefragt bzw. erkannt !

wer kann mir Helfen


der Assembler Code ist hier:


include c51ed2.inc

Extern Code 
initLCD,loeschen,loeschzeile1,loeschzeile2,textzeile1,textzeile2,cursorp 
os,cursoran,cursoraus
Extern Code 
textaus,zifferaus,hexaus,dezaus,dualaus,dualaus1,dualaus2,charaus
Extern Code 
definierezeichen,loeschzeile3,loeschzeile4,textzeile3,textzeile4

Abfrage data p2


code ;at 0

public start:

lcall initLCD
lcall loeschen

call Eingabebeginn

loop1:
call polling2
cjne a,#9,loop1
lcall dualaus1

call polling2
cjne a,#2,loop1  // bis hier her funktionierts
lcall dualaus1

call polling2
cjne a,#9,loop1 // wird nicht mehr erkannt bzw. ausgeführt
lcall dualaus1  // im Debug läuft es ohne Probleme

call polling2
cjne a,#2,loop1
lcall dualaus1


call polling2
cjne a,#9,loop1
mov dptr,#Text
lcall textaus
Text: db 'Hallo',0

sjmp start


Eingabebeginn:
call abfragebcd
cjne a,#11,Eingabebeginn
ret


polling2:
mov a,p1
ANL a,#1
cjne a,#1,polling2
;jnb P1.0,polling2
call abfragebcd
ret

abfragebcd:
mov a,Abfrage
ANL a,#15 ; Akku wird mit Konstante verundet
ret

entry:
mov dptr,#text1
lcall textaus
text1: db 'Endlich',0
ret

end.


Datenblatt zu dem Mitel MT8870 Chip gibt es hier

http://pdf1.alldatasheet.com/datasheet-pdf/view/77...


ich hoffe Ihr könnt mir da Helfen

Gruß Ertan

Autor: Manni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was verwendest du für quartze??? der 8870 läuft bei mir mit 3.597M... 
benutzt du einen externen für dein controller??? eventuell ein 
Timing-Problem???

Autor: Ertan Metin (drbrain)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hab einen 3.597Mhz. verwendet und es mit dem Oszilloskop überprüft 
:-)!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.