- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 5 von 5

Thema: 16f876 Ein und Ausgänge

  1. #1

    16f876 Ein und Ausgänge

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo vielleicht kann einer helfen

    ich habe keine ahnung woran es liegen kann, noch sprut und ein paar tage Forum lesen haben mir nicht geholfen.

    Ich habe ein pic 16f876 den ich mit einem velleman bord programmiere funktioniert auch alles, solange ich mich auf eine reine ausgabe beschränke.

    nun wollte ich aber auf partA, B oder C ablesen ob diese high oder low sind, und dann dieses Bitmuster auf einem anderen Port wieder ausgeben.

    hier der verwendete code

    Code:
    INPUT		EQU	H'23'
    
    
    		ORG	0
    		GOTO	RESET
    	
    
    
    ;		**************************
    ;               *     main routine:      *
    ;               **************************
    
    RESET		
    		
    		BSF	STATUS,RP0
    		MOVLW	B'11111111'
    		MOVWF	TRISC		
    		MOVLW	B'00000000'
    		MOVWF	TRISB
    		BCF	STATUS,RP0
    
    		CLRF	PORTB
    
    		
    RUECK		MOVLW	PORTC
    		MOVWF	INPUT
    		MOVLW	INPUT	
    		MOVWF	PORTB
    		GOTO	RUECK
    
    	        END

    danke für eure hilfe, dürfte woll nicht so schwer sein

    grischan

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.12.2005
    Ort
    Euskirchen-Großbüllesheim
    Alter
    75
    Beiträge
    2.063
    Hallo grischan,
    meine erste (Gegen-) Frage zielt auf Deine Hardware: haben die Eingangs-Pins einen PullUp-Widerstand ?

    Dann zum Code:
    Code:
    RUECK
    MOVLW   PORTC   ; Literal = Adresse von Port C nach W laden
    MOVWF   INPUT    ; Port C Adresse in Variable INPUT speichern
    MOVLW   INPUT    ; Literal = Adresse von Variable INPUT nach W laden
    MOVWF   PORTB   ; INPUT Adresse an Port B ausgeben
    GOTO   RUECK
    
    ; Wie wäre es so:
    RUECK
    MOVFW   PORTC   ; Inhalt von Port C nach W laden
    MOVWF   INPUT    ; Port C Zustand in Variable INPUT speichern
    ;MOVFW   INPUT    ; Inhalt von Variable INPUT nach W laden (warum ?)
    MOVWF   PORTB   ; W / INPUT Inhalt an Port B ausgeben
    GOTO   RUECK
    
    END
    PS: Warum ist das Code-Feld so lang ?
    MfG Karl-Heinz
    HobbyElektronik hier klicken ....

  3. #3
    an portc werden die eingänge einfach über schalter auf die vdd spannung gezogen. der eingang wird auch über leds kontrolliert.

    danke für die schnelle antwort

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.12.2005
    Ort
    Euskirchen-Großbüllesheim
    Alter
    75
    Beiträge
    2.063
    Digital-Eingänge brauchen einen definierten Pegel. Über einen Schaltkontakt bekommen sie nur einen Pegel bei geschlossenem Kontakt, jedoch keinen bei offenen Kontakt. Deshalb muß der Pegel für einen offenen Kontakt über einen Widerstand dem Eingang zugeführt werden (PullUp oder PullDown).

    Hast Du die Software-Fehler erkannt ? Funktioniert jetzt Dein Programm ?
    MfG Karl-Heinz
    HobbyElektronik hier klicken ....

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    27.01.2006
    Beiträge
    44
    Hallo,

    zusätzlich zu dem vorangegangenen noch eine kleine Bemerkung. Mircochip empfiehlt als ersten Befehl ein "nop" auszuführen. Bei MPLAB ist dazu auch eine vorlage dabei.
    Also: ORG 0
    nop
    goto RESET
    ....

    Gruß
    Mario

Berechtigungen

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

12V Akku bauen