ATMEGA8 an LCD-Display anschließen

Microcontroller PIC und Atmel AVR

Microcontroller PIC und Atmel AVR

Moderator: Moderatorengruppe

ATMEGA8 an LCD-Display anschließen

Neuer Beitragvon ATMEGA8 am Dienstag 25. Dezember 2007, 19:14

Hallo!
Ich habe mir vor einiger Zeit ein LCD-Display und einen ATMEGA8 bei www.pollin.de bestellt. Ein Board zum programmieren habe ich schon.

Jetzt zur Frage: Ich weiß nicht, wie ich das LCD-Display an den ATMAGA8 anschließe usw. Also brauche ich den ganzen "Schaltplan". Kann mir jemand dabei helfen???

Hier zum Datenblatt vom LCD-Display:
> http://imagesup.de/picture.php?code=2gx ... aia15ckfxl
> http://imagesup.de/picture.php?code=2qf ... qjzucy4o6o

Und dann habe ich eine 2. Frage:
Ich habe mir den "Text", den ich auf den ATMEGA8 programmieren will geschrieben. Ich habe es schon von einem E-Technik-Studenten konotrollieren lassen Wink. Jetzt weiß ich nur nicht, ob das mit dem Text richtig ist. (Dort wo Steht "HIER MUSS DER TEXT HIN!!!" Das würde er dann ja anzeigen, oder? Also ist das so alles richtig, oder habe ich noch irgendwelche Befehle vergessen?)




#include <mega8.h>

// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x12 ;PORTD
#endasm
#include <lcd.h>
HIER MUSS DER TEXT HIN!!!
HIER MUSS DER TEXT HIN!!!
#include <delay.h>

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// LCD module initialization
lcd_init(16);

while (1)
{
// Place your code here

};
}







Noch eine Kurze Ergänzung zum LCD-DISPLAY: es kann 2 Zeilen á 16 Buchstaben anzeigen. Gekauft bei www.pollin.de - Best.Nr. 120 461


mfg. Andre
ATMEGA8
Threadstarter
30426
 
Beiträge: 2
Registriert: Dienstag 25. Dezember 2007, 19:13

Neuer Beitragvon Schwarz am Mittwoch 26. Dezember 2007, 08:54

Hallo

LCD Displays kann man im 4-Bit-Modus oder im 8-Bit-Modus ansteuern. entsprechend braucht man 4 oder 8 Datenleitungen plus die Steuerleitungen.
Eine Übersicht findest du hier
http://www.sprut.de/electronic/lcd/

#include <lcd.h>
HIER MUSS DER TEXT HIN!!!
HIER MUSS DER TEXT HIN!!!
#include <delay.h>

nein, so kann das nicht funktionieren
Du hast eine lcd-library. Der must du beim initialisieren die Displaygröße übergeben, was weiter unten ja auch geschieht und evt. noch den Datenmodus.

Um jetzt Text auf dem Display auszugeben wird dir die lcd-library sicherlich eine Funktion zur Verfügung stellen, der du dann den Text übergeben musst.

Für die lcd-library gibt es sicherlich Beispielquelltext oder eine Readme, mach dich da mal schlau.

Wolfgang
Benutzeravatar
Schwarz
30428
Moderator
 
Beiträge: 809
Registriert: Dienstag 15. Oktober 2002, 11:37
Wohnort: Wir können alles - Außer Hochdeutsch

Neuer Beitragvon ATMEGA8 am Mittwoch 26. Dezember 2007, 13:12

Schwarz hat geschrieben:
#include <lcd.h>
HIER MUSS DER TEXT HIN!!!
HIER MUSS DER TEXT HIN!!!
#include <delay.h>

nein, so kann das nicht funktionieren
Du hast eine lcd-library. Der must du beim initialisieren die Displaygröße übergeben, was weiter unten ja auch geschieht und evt. noch den Datenmodus.

Um jetzt Text auf dem Display auszugeben wird dir die lcd-library sicherlich eine Funktion zur Verfügung stellen, der du dann den Text übergeben musst.

Für die lcd-library gibt es sicherlich Beispielquelltext oder eine Readme, mach dich da mal schlau.

Wolfgang



Für die Displaygröße usw. ist doch der Rest von dem programmierten Text da... oder ist das irgendwie falsch?


Da ich leider noch Anfänger bin brauche eine Art Schaltplan. Also wie ich die 28 Beinchen vom ATMEGA8 an die 16 Beinchen vom Bildschirm löte. Bisher habe ich nur Schaltpläne zusammengelötet. Einmal auch mit einem ATMEGA8.

Ich würde ja auch ein paar Euro bezahlen, wenn jemand so nett wäre und mir den Schaltplan macht, bzw. sagt, wo die einzelnen Beinchen hinmüssen.

Wie gesagt es wäre sehr nett.

Und bitte nicht sagen, dass ich es lieber lassen soll ;)

mfg.
ATMEGA8
Threadstarter
30429
 
Beiträge: 2
Registriert: Dienstag 25. Dezember 2007, 19:13

Neuer Beitragvon Schwarz am Donnerstag 27. Dezember 2007, 15:28

ATMEGA8 hat geschrieben:Für die Displaygröße usw. ist doch der Rest von dem programmierten Text da... oder ist das irgendwie falsch?

das geschieht hier
Code: Alles auswählen
// LCD module initialization
lcd_init(16);



ATMEGA8 hat geschrieben:Da ich leider noch Anfänger bin brauche eine Art Schaltplan. Also wie ich die 28 Beinchen vom ATMEGA8 an die 16 Beinchen vom Bildschirm löte.

Die Belegung muss irgendwo in der LCD-Library stehen, Quellcode (lcd.c) oder Dokumentation. Das ist für mich aus deinem Quelltext nicht ersichtlich.

Wo hast du den Quelltext überhaupt her?

Wolfgang
Benutzeravatar
Schwarz
30439
Moderator
 
Beiträge: 809
Registriert: Dienstag 15. Oktober 2002, 11:37
Wohnort: Wir können alles - Außer Hochdeutsch


Zurück zu Atmel AVR Pic und C Control

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste