#define IRWRIN *(unsigned char volatile*)(_IO_BASE+0x60) #define DR_WRITIN *(unsigned char volatile*)(_IO_BASE+0x61) #define right 1 #define left 0 void lcd_init(void); //void rtn_home(void); //void lcd_on(void); //void lcd_off(void); //void lcd_shift(char nb_sh); //void lcdwait(int cnt); //void status(void); //void lcd_cls(void); //void curs_on(void); //void curs_off(void); //char getkey(void); void lcd_initialise(void) { IRWRIN=0x38; /* mode 8 bits */ lcd_tempo(3); IRWRIN=0x06; /* mode */ lcd_efface(); /* efface tout l'afficheur */ retour_chariot(); } void retour_chariot(void) { status(); IRWRIN=0x02; } void lcd_on(void) { status(); IRWRIN=0x0C; /* disp on */ } void lcd_off(void) { status(); IRWRIN=0xB; /* disp off */ } void curs_on(void) { status(); IRWRIN=0x0F; /* curseur on */ } void curs_off(void) { status(); IRWRIN=0x0C; } void lcd_shift(char nb_sh) { lcdwait(10); if (nb_sh) { status(); IRWRIN=0x18; /* shift � gauche */ } else { status(); IRWRIN=0x1F; /* shift � droite */ } } void status(void) /* attend que l'afficheur soit pret � recevoir une commande */ { while ((IRWRIN & 0x80)==0x80); /* attente busy */ return; } void lcd_efface(void) /* effacement de l'afficheur */ { status(); IRWRIN=1; } void lcd_tempo(int cnt) { int i; for(;cnt;cnt--) for(i=0;i<1000;i++); }