// arlotto 2006 c18 sur 18F4520 carte PICDEM2+ // démonstration utilisation de la librairie xlcd100_4520.lib // à compiler avec l'option memory model large pour ne pas // avoir de warning sur printf #include // configuration PICDEM2+ quartz #pragma config OSC = HS #pragma config WDT = OFF #pragma config LVP = OFF #pragma config PBADEN = OFF #include #include "xlcd100.h" void main (void) { char mybuffer[]="hello world !!"; int cpt=0; int time=0; unsigned char state=0 ; unsigned char code = 0 ; TRISB = 0; PORTB = cpt; // initialise le lcd écran effacé curseur pos 0 OpenXLCD(OPEN_PICDEM_LCD); // redirige sortie standard sur le lcd stdout = _H_USER ; // affiche chaîne putsXLCD(mybuffer); // change de ligne gotoXLCD(LCD_LINE_TWO+2); printf ( "xlcd100.lib !!" ); for(;;) { switch (state) { case 0 : if ( PORTAbits.RA4==0) { clearXLCD(); state = 1; } break ; case 1 : if(PORTAbits.RA4==1) { state = 2 ; } break ; case 2 : if ( PORTAbits.RA4==0) { gotoXLCD(LCD_LINE_ONE+2); printf("cpt=%d",cpt); PORTB = cpt ; cpt++; if(cpt>7) { cpt=0; } state = 1 ; } break ; } // défilement de tous les caractères // sur la ligne 2 time++; if(time%3000==0) { PORTBbits.RB3= !PORTBbits.RB3; if(state) { gotoXLCD(LCD_LINE_TWO); printf("code %02x : %c",code,code); code++; } } } }