Forum: Mikrocontroller und Digitale Elektronik unprogrammierbarer PIC16F887


von Roland E. (roland_91)


Lesenswert?

Guten Tag allerseits.

Mein Problem ist, dass ich einen PIC16F887 mit MPLAB PM3 flashen will, 
der Pic das Programm aber nicht wiedergibt.
Das MPLAB IDE v8.88 zeigt mir zwar "build succeeded" und "program 
suceeded" an, der PIC gibt dann aber im Testboard nichts aus.

Zum PIC:
Ich nehme einen alten PIC16F887 aus einer Zwischenprüfung her. Ein 
anderer Pic, der originale, unveränderte PIC aus der Zwischenprüfung, 
gibt im Testboard schon etwas aus.

Ich denke es liegt wohl am Konfigurationswort, denn das gleiche Programm 
läuft mit dem PIC16F84 problemlos.
Hier ist noch das rudimentäre Programm, welches ich auf den PIC zu 
flashen versuche:




     list      p=16F887            ; list directive to define processor
  #include <p16F887.inc>        ; processor specific variable 
definitions

__CONFIG _CONFIG1, _XT_OSC & _WDTE_ON & _PWRTE_ON


;definierte Variable/Speicherorte

  cblock  0x0C
  timer1
  endc

  ORG     0x000             ; processor reset vector
    goto    init              ; go to beginning of program

;Konfiguration der Ports
init
  bsf    STATUS,RP0  ; auf registerbank 1 umschalten
  movlw      h'00'
  movwf    TRISB
  movwf    TRISD
   movwf    TRISE
  movwf    TRISC
  movwf     TRISA          ; TRISA/B/C/D/E ist  Ausgang
  bcf    STATUS, RP0  ; auf registerbank 0 umschalten
  clrf     PORTA    ; PORTA/B/C/D/E löschen
  clrf    PORTC
  clrf    PORTB
  clrf    PORTD
  clrf    PORTE
  goto     main

;Hauptprogramm
main
  movlw    h'FF'      ; lade h'FF' in timer1
  movwf    timer1
t1  movlw    h'FF'
  movwf    PORTA      ; Ausgabe h'FF' an PORTA/B
  movwf    PORTB
  decfsz    timer1      ; subtrahiere timer1 bei  W=0 überspringe 
nächsten Befehl
  goto    t1
  RETURN

   END


Vielen Dank schonmal.

von Erhard S. (Gast)


Lesenswert?

Hallo,

Config überprüfen, dazu Datenblatt lesen!

Was soll das Return im Programm, kein Unterprogramm aufgerufen.

Ist der Sinn des Programms nur an PORTA und B 255 ausgeben? Was soll die 
Schleife?

von Chris B. (dekatz)


Lesenswert?

Ich würde "cblock" NICHT bei 0x0C beginnen, denn da schreibts du in den 
SFR-Bereich. Was genau überschrieben wird weiss ich nicht auswendig, 
aber das der RAM-Bereich erst ab 0x20 frei ist, weiss ich sicher!

von Roland E. (roland_91)


Lesenswert?

Ok danke schonmal.

@Erhard:
Ja ich will erstmal die beiden Ports auf Ausgabe schalten um zu sehen ob 
an meinem Bord überhaupt die LEDS leuchten.
Aber das mit dem return überprüfe ich gleich mal. Hatte zuerst ein 
Unterprogramm geschrieben.

von Roland E. (roland_91)


Lesenswert?

Jetzt läuft er, habe die Konfiguration lvp_off vergessen.

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.