PIC 16F627 ; 7Segment Ansteuerung

OP #846940
Hey Leute..
Hab den oben genannten PIC mit einem 7Segment Display verbunden..
Möchte auf dem Display Zahlen runterzählen lassen automatisch..
Funzt leider nicht. Zeigt mir lediglich ne sek null an und dann aus..
Hoffe ihr könnt mir helfen.. Danke im Vorraus!
Tobias
Angehängte Dateien:
Gast
Hi,

> MOVLW  B'00001001'  ; Binärzahl für Dezimalzahl 9

und warum schreibst du das binär? Machs dir doch nicht so schwär! (hehe)

  movlw 9


und das

> GOTO  WAIT0    ; Warteschleife

sollte wohl besser so sein:

  call WAIT0            ; x ms warten
Persönliche Seite
Genau. Durch das GOTO macht dein PIC vermutlich ein Reset nach dem RETLW 
der Warteschleife. RETLW und RETURN beenden ein Unterprogramm welches 
durch CALL aufgerufen werden muss. Bei einem CALL wird der 
Programmcounter auf den Stack gerettet und das Programm springt zu der 
Adresse auf die das CALL verweist. Wenn das Unterprogramm nun zu Ende 
ist (RETLW) wird der gerettete Programmcounter wieder geladen und das 
Programm macht mit dem Befehl weiter, welcher nach dem CALL kommt. GOTO 
dagegen springt einfach zu der Adresse auf die verwiesen wird ohne den 
PC zu retten. Wenn du also mit GOTO in einen Programmteil springst, 
welcher mit RETLW beendet wird, lädt der µC den Wert in den PC zurück 
welcher gerade auf dem Stack liegt und das geht normalerweise immer 
schief.

Ändere das mal ab. Ansonsten wir dein Prog wohl nie die Null anzeigen, 
da der DECFSZ-Befehl immer erst herunterzählt und dann auf Null 
vergleicht. Wenn du also eine Eins in Zahl hast, wird DECFSZ auf Null 
zählen, feststellen dass Zahl nun Null ist und den zweiten GOTO-Befehl 
ausführen. Da du dort dann wieder die 9 lädst, kann nie die Null 
angezeigt werden.

Sven

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.