Pic 16f88 RS232 initialisieren

Gast #338741
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 ??
Gast #338745
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
Gast #338746
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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.