LCDm8.c


1
#include <avr/io.h>
2
3
char hallo[]="hallo";
4
5
void init_lcd(void);
6
void write_lcd(void);
7
int lcd_busy(void);
8
9
void main (void)
10
{
11
DDRC=0xff;
12
DDRB=0xff;
13
  write_lcd();
14
  while(1);
15
}
16
17
18
void init_lcd(void)
19
{
20
char befehl[7]={0x38,0x38,0x38,0x08,0x01,0x06,0x0C}; //Initialisierungsbefehle aus Tabelle
21
int i,k;                                             //Zählvariable für die Verzögerungsschleife und Ausgabeschleife
22
  PORTD=0x00&0x03;                                   //RS&RW Befehlsregister auswählen & Schreiben auf das Display
23
  for(k=0;k<7;k++)                                   //Ausgabeschleife für die 6 Befehle
24
  {
25
   PORTC = 0xff&0x04;                                //enable flanke vorbereiten
26
   PORTB = befehl[7];                                //Befehl ausgeben
27
   PORTC = 0x00&0x04;                                //enable abfallende Flanke erzeugen
28
   for(i=0;i<800;i++);                               //warten auf Befehlsausführung
29
   } 
30
}
31
32
33
void write_lcd(void)
34
{
35
  init_lcd();
36
  PORTB=hallo;
37
}