- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 5 von 5

Thema: Einfach eine LED am PIC16F84A blinken lassen. Brauche Hilfe.

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    02.11.2007
    Beiträge
    8

    Einfach eine LED am PIC16F84A blinken lassen. Brauche Hilfe.

    Anzeige

    Praxistest und DIY Projekte
    Hallo zusammen !

    Ich weiß nicht mehr weiter, daher brauche ich ein bisschen Hilfe von euch.

    Ich möchte eine LED am PIC16F84A zum leuchten bringen, bisher jedoch ohne Erfolg! Eingeladen habe ich das Lernbeispiel "Lauflicht" (lauf.hex) von sprut.

    Im Simulator programm MiSim DE funktioniert es auch einwandfrei.
    Auf meiner Platine bekomme ich es aber nicht zum laufen.

    Um Fehler an meiner Platine etc. auszuschließen habe ich in letzter Konsequenz die Pins direkt verlötet. Leider leuchtet die LED auch hiermit nicht...

    Irgendwie habe ich ein Problem mit dem richtigen Anschluss des PIC oder dem Keramikresonator (den ich schon mehrfach getauscht habe).

    Es wäre schön, wenn ihr mir noch ein paar Tips geben könntet. Ich weiß nicht mehr weiter was ich noch probieren soll.

    Folgenden Anschluss am PIC habe ich :

    PIC16F84A liegt vor mir, die Einkerbung ist oben.
    von links oben, nach unten Pin 1-9
    von rechts unten, nach oben Pin 10 - 18.
    (gem. Bild im Anhang)

    Pin 5 (VSS), mit masse belegt.
    Pin 14 (VDD), mit plus belegt.
    Pin 15/16 (OSC1/OSC2), belegt mit äußeren Beinchen des Keramikresonators (CST 4,00, Reichelt), mittleres Beinchen auf Pin 5.
    Außere Beinchen auch schon mal getauscht...LED leutet ebenfalls nicht.

    Als Stromversorung habe ich 4 AA/Ni-Mh Batterien mit 1,2V, 23000mAh verwendet.

    Das wars doch eigentlich schon mit der Belegung oder ?
    Wenn ich nun eine LED (Spannung 2-3V) an den PIC löte z.B. plus mit Pin 9(RB3) und minus Pin 5 (VSS), müsste die doch irgendwann mal kurz leuchten. Wenn sie wegen der 5V durchbrennt wärs mir auch egal. Haupsache sie blitzt mal kurz, würde mich schon freuen.

    Es tut sich aber nichts. Auch wenn ich ein Messgerät an Pin 5 (VSS) und Pin 9 (RB3) halte, läßt sich keine Spannung von ~5V messen egal wie lange ich warte.
    Ich erwarte eigentlich, dass bei dem Lauflichtprogramm irgendwann kurz die Spannung zu messen ist... ist das falsch ?

    Auch wenn ich Pin 5 (VSS) und Pin 4 (MCLR) kurz oder konstant miteinander verbinde tut sich nichts.

    Ich vermute das Problem liegt an dem Keramikresonator. Aber was soll ich noch versuchen. Das Ding müsste doch eigentlich für das Lauflicht funktionieren ? Gibt es eine Möglichkeit die Funktion zu überprüfen ohne Ozilloskop ?

    Das Programm von sprut sieht so aus (habe das fertige hex file geladen):
    list p=16f84
    ;************************************************* *************
    ;*
    ;* Pinbelegung
    ;* ----------------------------------
    ;* PORTA: 0
    ;* 1
    ;* 2
    ;* 3
    ;* 4
    ;* PORTB: 0 LED
    ;* 1 LED
    ;* 2 LED
    ;* 3 LED
    ;* 4 LED
    ;* 5 LED
    ;* 6 LED
    ;* 7 LED
    ;*
    ;************************************************* *************
    ;
    ; sprut (zero) Bredendiek 05/2000 (mod. am 16.01.2002)
    ;
    ; Lauflicht am Port B
    ;
    ; Taktquelle: 4MHz
    ;
    ;************************************************* *************
    ; Includedatei für den 16F84 einbinden
    ;
    #include <P16f84.INC>
    ;
    ; Configuration festlegen
    ;
    ; bis 4 MHz: Power on Timer, kein Watchdog, XT-Oscillator
    __CONFIG _PWRTE_ON & _WDT_OFF & _XT_OSC
    ;
    ; ab 4 MHz: Power on Timer, kein Watchdog, HS-Oscillator
    ; __CONFIG _PWRTE_ON & _WDT_OFF & _HS_OSC
    ;
    ;************************************************* *************
    ; Variablennamen vergeben
    ;
    loops Equ 0x22 ; Zähler für Warteschleife
    loops2 Equ 0x23 ; Zähler für Warteschleife

    ;************************************************* *************
    ; los gehts mit dem Programm
    ; Port B auf Ausgabe stellen

    Init
    bsf STATUS, RP0 ; auf Bank 1 umschalten
    movlw B'00000000' ; PortB alle output
    movwf TRISB
    bcf STATUS, RP0 ; auf Bank 0 zurückschalten
    clrf PORTB ; alle LEDs ausschalten

    ; 1. LED einschalten

    bsf PORTB,0 ; LED an RB0 einschalten

    ; Lauflicht

    Loop
    call Wait ; Wartezeit
    rlf PORTB,f ; laufen zur nächsten LED
    goto Loop


    ;************************************************* *********
    ; Warteschleife 250 ms

    Wait
    movlw D'250' ; 250 ms Pause
    movwf loops

    Wai
    movlw .110 ; Zeitkonstante für 1ms
    movwf loops2
    Wai2 nop ;
    nop
    nop
    nop
    nop
    nop
    decfsz loops2, F ; 1 ms vorbei?
    goto Wai2 ; nein, noch nicht
    ;
    decfsz loops, F ; 250 ms vorbei?
    goto Wai ; nein, noch nicht
    retlw 0 ; das Warten hat ein Ende

    end



    Wäre für eure Hilfe sehr dankbar !
    Ich weiß nicht, wie ich das Problem lösen kann.

    Gruß
    Heiko
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken pins84.jpg  

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.10.2007
    Ort
    Bayern
    Alter
    36
    Beiträge
    116
    Hi

    Pin 4 (MCLR) über einen 10k Widerstand mit VDD (5V) verbinden!
    Wenn Du diesen auf Masse legst löst DU einen Reset aus, verbindest Du VSS und MCLR ständig dann kann das nicht funktionieren, da dauernd resetet wird!

    EDIT: Das Beispiel baut noch auf einen 16F84 auf, Du verwendest aber warschienlich einen 16F84A. Im Code deshalb noch ausbessern und neu kompilieren!


    mfg
    Benny

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    02.11.2007
    Beiträge
    8
    Oh mann Benny !

    Danke ! Danke ! Danke !

    Es funktioniert. Endlich. =D> ))

    Ich hatte soviel herumprobiert, ... oh mann.

    Echt cool ! Jetzt laufen Sie im Kreis, auch auf meiner Platine *freu*

    Thx nochmal !!!!

    Gruß
    Heiko

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.10.2007
    Ort
    Bayern
    Alter
    36
    Beiträge
    116
    Freut mich!

    Viel Erfolg bei deinen weiteren Experimenten!

    mfg
    Benny
    cooming soon...

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    04.11.2007
    Ort
    Weßling
    Alter
    39
    Beiträge
    6
    Auch ein dickes Danke von mir! Hab das mit dem Reset auch nicht bedacht.
    Werde das gleich mal ausprobieren.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen