www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Pic 16f88 RS232 initialisieren


Autor: lass (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich möchte mit dem Pic 16f88 analoge Spannungen einlesen und per USART
auslesen. Ich habe das PC-Programm in VB geschrieben und es
funktioniert mit anderen Pic´s zusammen wunderbar. Der "Fehler" macht
sich so bemerkbar, dass das Funkmodul die Daten empfängt und direkt an
Pin 8 des Pic´s 16f88 (RX)weitergibt, es da aber stark gedämpft wird
und nur ca. 0,7 Volt erreicht. Ist die initialisierung des Pic´s
eventl. fehlerhaft ??

;Usart init aus Datenblatt
BSF  STATUS,PRO
MOVLW  D'64' ; für 19200 Baud
MOVWF  SPBRG
MOVLW  0x20
MOVWF  TXSTA
BSF  PIE1,TXIE
BSF  PIE1,RCIE
BCF  STATUS,PRO
MOVLW  0x90
MOVWF  RCSTA

auf versucht :

; USART initialisieren
   ; BSF      STATUS,RP0    ; Bank1
   ; MOVLW    0x20          ; Sender: RS232
   ; MOVWF    TXSTA         ;
   ; BCF      STATUS,RP0    ; Bank 0
   ; MOVLW    0x90          ; Empfänger: RS232
   ; MOVWF    RCSTA         ;

; USART Baudrate einstellen
   ; BSF      STATUS,RP0    ; Bank1
   ; MOVLW    D'64'         ; Set Baud rate  kBPS bei 20 MHz
   ; MOVWF    SPBRG
   ; BsF      TXSTA, BRGH   ; BRGH=1
   ; BCF      STATUS,RP0    ; Bank 0
wer kann mit helfen ??

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du RB2 als Eingang definiert?

Autor: lass (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
.... ja hab ich auch versucht, aber so weit ich weiss ist das nicht
nötig, weil durch die Initialisierung der Schnittstelle das sowieso
passiert

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, das TRIS-Register wird defintiv nicht von der
Schnittstellenkonfiguration geändert!

Autor: lass (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe den Gesamten Aufbau mit dem 16f876 getestet und es läuft
fehlerfrei ?? Ich hab´s auf den f88 umgeschrieben, wobei die Register
genutzen Reg. alle gleich sind. Die Uart-initialisierung die mit dem
876 klappt sieht so aus :
init
; PortB vorbereiten
  clrf     DatenSindDa
    bsf  STATUS, RP0  ; auf Bank 1 umschalten
  movlw  B'11111111'  ; PortB alle input
  movwf  TRISB
  bcf  STATUS, RP0  ; auf Bank 0 zurückschalten
    ;clrf  PORTB    ; alle LEDs ausschalten

; ADC einschalten
  BSF  ADCON0, 0  ; ADON=1

; ADC-Eingang AN0 auswählen
  ;call ADXEinschalten

; ADC speed für 20 MHz einstellen
  BSF  ADCON0, 7  ; ADCS1=1
  BCF  ADCON0, 6  ; ADCS0=0

; Daten linksbündig
  BSF  STATUS,RP0  ; Bank1
  BCF  ADCON1, 7  ; ADFM=0
  BCF  STATUS,RP0  ; Bank0
; USART initialisieren
    BSF      STATUS,RP0    ; Bank1
    MOVLW    0x24          ; Sender: RS232
    MOVWF    TXSTA         ;
    BCF      STATUS,RP0    ; Bank 0
    MOVLW    0x90          ; Empfänger: RS232
    MOVWF    RCSTA         ;

; USART Baudrate einstellen
    BSF      STATUS,RP0    ; Bank1
    MOVLW    D'64'         ; Set Baud rate  kBPS bei 20 MHz
    MOVWF    SPBRG
    BsF      TXSTA, BRGH   ; BRGH=1
    BCF      STATUS,RP0    ; Bank 0

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die UART liegt beim 16F876 schon mal auf PortC und nicht auf PortB.

Wie sieht genau der Code für den 16F88 aus? Wenn du den oben geposteten
kopiert und nicht abgeschrieben hast, lässt der sich mit Sicherheit
schon mal nicht assemblieren.

Antwort schreiben

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

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.