Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

Initialisation d'un LCD



  1. #1
    Toufinet

    Initialisation d'un LCD


    ------

    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 :
    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
    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 !!!!!

    -----

  2. Publicité
  3. #2
    DavidDB

    Re : Initialisation d'un LCD

    Salut,

    En annexe, une routine d'INIT d'un LCD...

    David.
    Fichiers attachés Fichiers attachés

  4. #3
    Toufinet

    Re : Initialisation d'un LCD

    un grand merci d'avance au modérateur qui validera la pièce jointe

  5. #4
    Toufinet

    Re : Initialisation d'un LCD

    Problème résolu : j'ai mis le signal LCD_ENABLE sur RD0 au lieu de RD7.
    Quelqu'un a une idée quant à la provenance du non fonctionnement si je met enable sur RD7 ???

  6. #5
    nams2590

    Re : Initialisation d'un LCD

    Le problème que tu as rencontré provient surement du registre ADCON1 que tu as oublié de définir au début de ton programme. En effet, ce registre te permet de définir comment tu vas utiliser tes E/S. En entrées sorties, ou en fonctions spéciales.

    Je remarque également que tu as utilisé mon site pour réaliser ta commande de l'afficheur LCD. Pourrais-tu m'indiquer si tu trouves ce cours clair, et si tu verrais des modifications à apporter pour simplifier les explication. Merci
    Dernière modification par nams2590 ; 24/05/2006 à 13h53.
    namselectro

  7. A voir en vidéo sur Futura
  8. #6
    Toufinet

    Re : Initialisation d'un LCD

    Ton site est parfait, à part que tu ne dis pas à quelle fréquence est cadencé ton PIC.
    Cette info serait forte utile, surtout lorsque l'on remarque des nop dans tes routines.

    En tout cas merci

  9. Publicité
  10. #7
    Toufinet

    Re : Initialisation d'un LCD

    une dernière chose : écrire un mot, une phrase, lettre après lettre, c'est un peu long, et pas très esthétique. Y-a-t'il une astuce pour envoyer directement un mot, une phrase ?

  11. #8
    DavidDB

    Re : Initialisation d'un LCD

    Une boucle pour "remplir" les 32 places du LCD :

    P.S. : Il n'y a pas de "problème" avec ADCON1 sur le PORTD

    David.
    Fichiers attachés Fichiers attachés
    Dernière modification par DavidDB ; 24/05/2006 à 16h55.

  12. #9
    Toufinet

    Re : Initialisation d'un LCD

    Je n'arrive pas à comprendre l'utilisation de la directive "DT", que je n'ai jamais vu auparavant .

    Es-ce que quelqu'un peut m'en dire 2 mots svp ?

  13. #10
    DavidDB

    Re : Initialisation d'un LCD

    DT signifie, définir une table ou définir les données d'une table.

    DT sera remplacé lors de l'assemblage du programme par RETLW suivi de la donnée.

    David.

  14. #11
    Toufinet

    Re : Initialisation d'un LCD

    Donc si je comprend bien :

    DT "cou",0 = retwl "c"; retwl "o"; retwl "u"

    Ainsi, je vois pas du tout comment mettre ces caractères dans var, var+1, var+2

  15. #12
    DavidDB

    Re : Initialisation d'un LCD

    Dans mon exemple, DT est un tableau. Pour rentrer dans ce tableau on initialise un compteur qui va déterminer l'emplacement du saut dans ce tableau.

    Une fois dans ce tableau, on sort une des données grâce au retlw pour l'envoyer sur le LCD.

    C'est rapide comme explication, mais il faudrait simuler les routines pour bien comprendre la méthode...

    David.

  16. Publicité
  17. #13
    nams2590

    Re : Initialisation d'un LCD

    Merci pour tes conseil pour le site. Je vais essayer d'améliorer ça. Et bon courage pour la suite
    namselectro

Sur le même thème :

Discussions similaires

  1. [Brun] Lcd Benq Alimentation d'un ecran LCD!!! [résolu]
    Par acidburn62 dans le forum Dépannage
    Réponses: 19
    Dernier message: 17/06/2008, 14h25
  2. pilotage d'un ecran lcd d'un vieil organisateur
    Par martinr dans le forum Électronique
    Réponses: 0
    Dernier message: 12/02/2007, 04h46
  3. Initialisation LCD Bit Enable ???
    Par Jraf78 dans le forum Électronique
    Réponses: 3
    Dernier message: 20/07/2006, 10h17
  4. Initialisation d'un cancer
    Par snowteam dans le forum Biologie
    Réponses: 2
    Dernier message: 01/01/2005, 22h06
  5. branchement d'un ecran lcd d'un gps de voiture
    Par scal91630 dans le forum Électronique
    Réponses: 0
    Dernier message: 21/11/2004, 13h06