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?
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?