Bonjour.
Bon, là j'en peux plus. J'ai un LCD TOUT NEUF, donc il n'y a pas de raison que ça ne marche pas.
Problème : le LCD ne s'initialise pas ( la ligne du haut reste allumée, et celle du bas éteinte ).
PIC : 16F877, quartz 14.745 MHz
Schéma :
- Les pates 7 à 14 du LCD sont reliées au port B ( RB0 => 7, RB1=> 8, ... , RB7=>14 ).
- Enable relié à RD7, R/W relié à RD6, RS relié à RD5
Voici le programme du PIC :
Voilà, alors je vous en prie aidez moi, car je suis en train de craquer ! Plus d'1 mois que j'en suis toujours à cette foutue initialisation !!!!!Code:list P=16F877 #include <p16f877.inc> #define LCD_ENABLE PORTD,7 #define LCD_RW PORTD,6 #define LCD_RS PORTD,5 __CONFIG _CP_OFF & _DEBUG_OFF & _WRT_ENABLE_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _PWRTE_ON & _WDT_OFF & _HS_OSC CBLOCK 0x20 cpt1 : 1 cpt2 : 1 cpt3 : 1 ENDC org 0x000 goto init; org 0x005 BANK0 macro ; passe en banque0 bcf STATUS,RP0 bcf STATUS,RP1 endm BANK1 macro ; passe en banque1 bsf STATUS,RP0 bcf STATUS,RP1 endm init BANK1 movlw b'00000000' movwf TRISB movlw b'00000000' movwf TRISD BANK0 clrf PORTB clrf PORTD call tempo; call init_LCD; binfi goto binfi init_LCD movlw 0x38; call send_cmd_LCD; movlw 0x38 call send_cmd_LCD; movlw 0x38 call send_cmd_LCD; movlw 0x08 call send_cmd_LCD movlw 0x01 call send_cmd_LCD movlw 0x07 call send_cmd_LCD movlw 0x0F call send_cmd_LCD return send_cmd_LCD bcf LCD_RS bcf LCD_RW movwf PORTB bsf LCD_ENABLE call tempo call tempo bcf LCD_ENABLE return tempo movlw 0xFF movwf cpt2 t13 decfsz cpt2,1 goto t10 return t10 movlw 0xFF movwf cpt1 t12 decfsz cpt1,1 goto t12 goto t13
-----