www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik PIC 16F627 ; 7Segment Ansteuerung

Autor: Tobias B. (technic)
Datum: 19.04.2008 16:41
Dateianhang: Test_8.asm (2,5 KB, 55 Downloads) | formatierter Code

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
Autor: tastendrücker (Gast)
Datum: 19.04.2008 17:00

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
Autor: Sven Stefan (stepp64)
Datum: 20.04.2008 12:49

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

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

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
  • Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net