mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD Ansteuerung problem mit Steuerport


Autor: Mark K. (spliff)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tachen

versuche gerade ein LCD (normales HD44780 2x16) im 4 Bit Modus 
anzusteuern, leider funkts irgendwie nicht so richtig, weil er mir am 
Steuerport nichts ausgibt. Der Steuerport ist PORT E wenn ich es jedoch 
auf PORT A umschreibe tut sich ebenfalls nichts. Woran könnte das 
liegen?

ich verwende einen PIC 16f877A mit 20MHz Takt und schreibe das Programm 
in C++. (das Board verwendet negative Logik!!!)

Hier ein kurzer Ausschnitt:

void main()
{
  trise = 0x00;    // Ausgang Steuerport
  trisd = 0x00;    // Ausgang Steuerport

  Sleeping_for(100);  //10ms

  Set_to_4bit();    // Auf 4 Bit Modus

  Sleeping_for(400);

  Turn_on_D();    // Display ON
  Sleeping_for(400);

  Set_Adress(0);    // Adresse auf 0 Setzen (Home)

  Write_Data(65);    // Ausgabe 65 = A



}

void Set_to_4bit(void)
{
  porte.0 = 1;    // RS = 0  write in IR
  porte.1 = 1;    // R/W =0

  portd = 2;      // DB5

  Enable();

  delay_ms(100);
}

void Enable(void)
{
  Sleeping_for(100);
  porte.2 = 0;
  Sleeping_for(100);
  porte.2 = 1;
  Sleeping_for(100);
}

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich erkenne mindestens zwei Fehler:

1. Das ist nicht der komplette Quellcode
2. Kein verdrahtungsplan anhängig.

Autor: Mark K. (spliff)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also:

RE2=E
RE1=R/W
RE0=RS

RD0-3 = DB4-7

und nein das ist nicht der Ganze code, aber in den anderen Teilen steht 
auch nicht viel mehr drin und wenn sich hier schon PORT E nicht ändert, 
tut er es auch sonst nirgends

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schalte mal in ADCON1 die Ports von analog auf digital.

Autor: Mark K. (spliff)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie geht das?

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schonmal Google benutzt? Das ist son cooles Ding im Internet; nennt sich 
"Suchmaschine". Da gibt man einfach ein paar Suchbegriffe ein und schon 
finden selbst Leute wie ich, die noch nie einen PIC schief angeguckt 
haben, tolle Ergebnisse. Wie das hier:
void main(void)
{
  ADCON1=0x0F;// Alle AD-Eingänge als Digitale Eingänge Einstellen
  TRISA=0;   //Port A: alles Ausgänge
  TRISB=0;   //Port B: alles Ausgänge
  TRISC=0;   //Port C: alles Ausgänge

while(1)
  { 
  LATAbits.LATA0=!LATAbits.LATA0; // RA0 togglen
  }
}


seuftz

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.