Bonjour à tous,
Pour mon projet de fin d'étude, j'ai besoin d'afficher diverses informations sur un écran LCD standard 2x16 caractères à l'aide d'un PIC16F688. J'ai configuré les registres du PIC comme suit dans le logiciel mikroC :
Pour tester le bon fonctionnement du PIC, j'ai tout d'abord mis un programme basique permettant de faire clignoter des LEDs sur le portA ainsi que le portC. Tout fonctionne nickel.Code:_FCEM_OFF _IESO_OFF BOD_ON CPD_OFF _CP_OFF MCLRE_OFF _PWRTE_ON _WDT_OFF _INTRC_OSC_NOCLKOUT Oscillator: INTERNE, 04.0000 MHz
Ensuite, pour essayer de faire fonctionner l'écran LCD, j'ai simplement utiliser un programme simple permettant d'afficher sur la 1er ligne le mot : mikroElek.
Voici le code source :
Après avoir compilé ce petit programme, je le met dans le PIC, j'alimente l'écran LCD ainsi que le PIC et l'écran LCD affiche juste un carré clignotant toutes les secondes à l'emplacement du 1er caractères à la place du mot : mikroElekCode:char *text = "mikroElek"; void main() { ANSEL = 0x00; //entrées et sorties en digital CMCON0 = 0xFF; // les comparateurs sont éteint, RA0, RA1, RC0, RC1 configuré en digital I/O PORTA = 0x00; // initialiser le portA TRISA = 0x00; // configurer le portA en sortie PORTC = 0x00; // initialiser le portC TRISC = 0x00; // configurer le portC en sortie Lcd_Custom_Config(&PORTC,3,2,1,0,&PORTA,0,1,2); // Lcd_Init_EP4, see Autocomplete // (|data_port| : char db3, char db2, char db1, char db0, |ctrl_port| : char rs, char ctrl_rw, char enable); while(1) { Lcd_Cmd(Lcd_CLEAR); // Clear display Lcd_Cmd(Lcd_CURSOR_OFF); // Turn cursor off Lcd_Out(1, 1, text); // Print text to LCD, 2nd row, 1st column Delay_ms(1000); } }
Qu'en pensez vous ? Il y a t-il un autre registre à configurer pour que cela fonctionne parfaitement ?
Merci pour vos réponses
-----