RS232 und LCD gleichzeitig mit PIC

Gast #28948
Hallo,

ich hab ein funktionierendes Programm das mit printf() Texte über die 
UART schicken kann, und ich hab ein funktionierendes Programm das mit 
lcd_puts() Texte auf ein 4x20 Display schreiben kann.
Ich will nun beide vereinen um beide Schnittstellen gleichzeitig nutzen 
zu können. Sie liegen auch auf verschieden PINs. UART liegt auf PortB 5 
und 6. Lcd liegt auf PortB 0-3 und rs auf PortA2 und En auf PortA3. 
Jedoch stören sich (vermutlich) die beiden folgenden initialisierungen:


#define INIT_PORTS {TRISA = 0x00; TRISB = 0x00; TRISC = 0xBF; 
TRISD = 0xFF; TRISE = 0x07;}
//---------------------------------------------------------------------- 
------------
void RegInit(void)
//---------------------------------------------------------------------- 
------------
{
 //Pull-up port B
 RBPU = 0;

 INIT_PORTS;

 BRGH=1;    // high baud rate
 SPBRG=22;     //set the baud rate 22-9600Bd,11-19200(3.58MHz)
 SYNC=0;    // asynchronous
 SPEN=1;    // enable serial port pins
 CREN=1;    // enable reception
 SREN=0;    // no effect
 TXIE=0;    // disable tx interrupts
 RCIE=0;    // disable rx interrupts
 TX9=0;    // 0-8 or 1-9bit transmission
 RX9=0;    // 0-8 or 1-9bit reception
 TXEN=1;    // enable the transmitter
}

void
lcd_init(void)
{
  LCD_RS = 0;  // write control bytes
  DelayMs(15);  // power on delay
  PORTB = 0x3;  // attention!
  LCD_STROBE;
  DelayMs(5);
  LCD_STROBE;
  DelayUs(50);
  LCD_STROBE;
  DelayMs(5);
  PORTB = 0x2;  // set 4 bit mode
  LCD_STROBE;
  DelayUs(40);
  lcd_write(0x28); // 4 bit mode, 1/16 duty, 5x8 font
  lcd_write(0x0F);  // display on, blink curson on
  lcd_write(0x04);  // entry mode
  lcd_write(0x01);  // Display Löschen
}

Bin für jede Hilfe Dankbar!
MFG
Holger
Gast #28949
Damit du Daten empfangen kannst muss RX als Eingang definiert sein. Laut 
Datenblatt sollen sogar beide Pins also auch TX in TRISB gesetzt sein.
MfG
Steffen

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 23 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.