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