PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PIC16F877A + LCD



grower
01.12.2006, 12:07
Hallo,
bin neu hier und kenn mich außerdem noch nicht so gut mit der Programmierung von PICs aus.
Also folgendens, ich benutze einen PIC16F877A (20MHz Eingangstakt) und ein 16x2 LCD (AV1624)
Ich programmiere in C und benutze den CC5X-Compiler.
Ich habe schon kleine Testprogramme geschrieben, bei denen einfach ein Rechtecksignal an einem Pin des Ports ausgegeben wird. Hat alles super funktioniert.
Jetzt wollte ich mein LCD initialiseren. Hab dazu in der Beschreibung vom LCD nachgesehen. (LCD möchte ich im 4-BIT Mode betreiben)

So sieht mein Programm jetzt aus:


#include <C:\CC5\16F877A.h>

void pause(void)
{
OPTION=3;
TMR0=102;
while(TMR0);
}


void main(void)
{
PORTB=0x00;
TRISB=0b00000000;
pause();
pause();
pause();
pause();
pause();
pause();
pause();
pause();
pause();
pause();
pause();
pause();
pause();
pause();
pause();
pause();
pause();
pause();
pause();
pause();
PORTB=0b.00110100;
pause();
pause();
pause();
pause();
pause();
pause();
PORTB=0b.00110100;
pause();
PORTB=0b.00110100;
PORTB=0b.00100100;
PORTB=0b.11100100;
PORTB=0b.11000100;
PORTB=0b.00010100;
PORTB=0b.01100100;
}

Ich weiß sieht sehr stümperhaft aus. Mit pause erzeuge ich eine 1ms Pause.
Die Belegung der Pins vom LCD am PIC sieht so aus:

RB7...RB6...RB5...RB4...RB3..RB2..RB1..RB0..--> PIC
DB7...DB6..DB5...DB4.. R/W.. E.....RS.....-.....-->LCD

Normalerweise sollte doch nach der Initialisierung der Curser am LCD blinken oder?
Ein weiter Problem hab ich mit der Enable Leitung. Ich weißnicht ob diese 1 oder 0 sein muss. (Habs schon mit beiden ausprobiert - geht trotzdem nichts)

Könnt ihr mir vl helfen?

phaidros
01.12.2006, 18:53
Ist das Display ganz schwarz? Dann stimmt vielleicht die Kontrasteinstellung nicht. Muss mit einem Poti extra geregelt werden. Was ist denn zu sehen?

grower
02.12.2006, 13:08
Am Display sieht man gar nichts, das ist das Problem. Nichtmal die Kontrastkästchen. Kontrastspg. wird mit einem Poti eingestellt. Liegt derzeit auf 3,8V (laut Datenblatt). Hab aber von 0-4V schon durchprobiert - tut sich absolut nichts.

phaidros
02.12.2006, 15:16
Ok. Um zu sehen, ob das Display überhaupt geht, würde ich den Code der folgenden Seite: http://sandiding.tripod.com/pana.html
einmal in den PIC laden und ausprobieren. Falls das funktioniert, kann man das Ganze dann ja auf C umschreiben.

Kirgam
08.12.2006, 13:04
wie wärs denn damit: http://www.cc5x.de/LCD.html ?

damit hab ich es in ein paar minuten hinbekommen (bei schätzungsweise gleichem kenntnisstand ;-)).

gruß

Goblin
12.12.2006, 16:36
wenn VOR der initialisierung die schwarzen kaestchen zu sehen sind und danach nicht mehr, dann ist das afaik ok so. um einen blinkenden cursor zu bekommen, musst du das entsprechenden steuerzeichen senden, welches den cursor einschaltet. naeheres dazu steht in deinem datenblatt.