Lcd !!
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Lcd !!



  1. #1
    mmm999

    Lcd !!


    ------

    Bonjour les tous
    je cherche une solution autour une astuce sur l'écran LCD. j'ai un clavier relier à mon pic
    je veu lorsque je appui sur le boutton BACKSPACE, j'efface un caractère LCD.
    ce qui j'avais fai comme algo. je transforme le mode d'ecriture de lcd vers la gauche. j'ecri un espace.je transforme le mode d'écriture vers droite j'ecri un espace. je transforme le mode d'ecriture de lcd vers la gauche et k'ecrit un autre espace.
    c'est comme ca j'ai eu un caractere effacé

    il ya pas une methode plus optimisé en terme d'algo?

    -----

  2. #2
    invitefaaca50b

    Re : Lcd !!

    Ben non, apparemment pas. Tu memorise ton emplacement, tu decale a gauche, tu fais un espace et tu redacale a gauche. Il semble n'y avoir que cela. Mais le backspace est un des seuls a devoir bricoler comme ca pour l'emuler...

  3. #3
    mmm999

    Re : Lcd !!

    j'avais fait cette méthode avant.
    mais je doit mémorisé ma position et je vois que c'est un gaspillage en terme de mémoire

  4. #4
    invitefaaca50b

    Re : Lcd !!

    bah, pas tant que ca, tu utilises 2 octets pour memoriser la position XY si necessaire... Deux variables reutilisables.

  5. A voir en vidéo sur Futura
  6. #5
    mmm999

    Re : Lcd !!

    sayer j'ai trouvé la solution
    il y'a une commande interne à LCD qui permet de reculer d'un pas dans le LCD. et ça marcher parfaitement

  7. #6
    invite5c0d525e

    Re : Lcd !!

    Si tu peux nous faire part de la solution c'est bien, le but d'un forum c'est pas seulement de touver de l'aide, c'est aussi de partager ses résultats.

  8. #7
    mmm999

    Re : Lcd !!

    ok je join mon fichier lcd.c et lcd.h dont j'ai modifié
    fonction backspace qui efface un caractere et fonction pour afficher ou nn le curseur
    idéal pour écriture

  9. #8
    gienas
    Modérateur

    Re : Lcd !!

    Bonjour mmm999 et tout le groupe

    Citation Envoyé par mmm999 Voir le message
    ... je join mon fichier lcd.c et lcd.h ...
    Les extension c et h ne sont pas acceptées par le serveur. Mais, s'agissant de programmes, généralement courts, tu peux les insérer dans le corps de tes messages, entre les balises code (symbole # de la boîte à outils).

  10. #9
    mmm999

    Re : Lcd !!

    ok c bon je passe le code :


    Code:
    /*
     *	bibéothèque LCD
     *	utilisation de mode 4 bits
     *
     *	
     *	PORTD bits 0-3 are connected to the LCD data bits 4-7 (high nibble)
     *	PORTD bit 5 is connected to the LCD RS input (register select)
     *	PORTA bit 7 is connected to the LCD EN bit (enable)
     *	
     *	To use these routines, set up the port I/O  TRISD then
     *	call lcd_init(), then other routines as required.
     *	
     */
    
    #ifndef _XTAL_FREQ
     // Unless specified elsewhere, 4MHz system frequency is assumed
     #define _XTAL_FREQ 1000000
    #endif
    
    
    #include	<htc.h>
    #include	"lcd.h"
    
    #define	LCD_RS PORTDbits.RD5
    #define	LCD_RW PORTDbits.RD6
    #define LCD_EN PORTDbits.RD7
    
    #define LCD_DATA	PORTD
    
    #define	LCD_STROBE()	((LCD_EN = 1),(LCD_EN=0))
    
    /* write a byte to the LCD in 4 bit mode */
    
    void lcd_write(unsigned char c)
    {
    	__delay_us(40);
    
    	LCD_DATA = (LCD_DATA & 0xF0) | ( ( c >> 4 ) & 0x0F );
    	LCD_STROBE();
    	LCD_DATA = (LCD_DATA & 0xF0) | ( c & 0x0F );
    	LCD_STROBE();
    }
    
    /*
     * 	Clear and home the LCD
     */
    
    void lcd_clear(void)
    {
    	LCD_RS = 0;
    	lcd_write(0x1);
    	__delay_ms(2);
    }
    
    /* write a string of chars to the LCD */
    
    void lcd_puts(const char * s)
    {
    	LCD_RS = 1;	// write characters
    	while(*s)
    		lcd_write(*s++);
    }
    
    /* write one character to the LCD */
    
    void lcd_putch(char c)
    {
    	LCD_RS = 1;	// write characters
    	lcd_write( c );
    }
    
    
    /*
     * Go to the specified position
     */
    
    void lcd_goto(unsigned char pos)
    {
    	LCD_RS = 0;
    	lcd_write(0x80+pos);
    }
    
    void lcd_backspace()
    {
    LCD_RS = 0;
    lcd_write(0x10);
    
    lcd_puts(" ");
    LCD_RS = 0;
    lcd_write(0x10);
    }
    	
    void affiche_curseur(char affichage)
    {
    LCD_RS = 0;
    if (affichage) lcd_write(0x0F);
    else lcd_write(0x0C);
    
    }
    /* initialise the LCD - put into 4 bit mode */
    void lcd_init()
    {
    	char init_value;
    
    	ADCON1 = 0x06;	// Disable analog pins on PORTA
    
    	init_value = 0x3;
    	TRISD=0;
    	TRISC=0;
    	LCD_RS = 0;
    	LCD_EN = 0;
    	LCD_RW = 0;
    	
    	__delay_ms(15);	// wait 15mSec after power applied,
    	LCD_DATA	 = init_value;
    	LCD_STROBE();
    	__delay_ms(5);
    	LCD_STROBE();
    	__delay_us(200);
    	LCD_STROBE();
    	__delay_us(200);
    	LCD_DATA = 2;	// Four bit mode
    	LCD_STROBE();
    
    	lcd_write(0x28); // Set interface length
    	lcd_write(0xF); // Display On, Cursor On, Cursor Blink
    	lcd_clear();	// Clear screen
    	lcd_write(0x6); // Set entry Mode
    }

    et pour lcd.h

    Code:
    /*
     *	LCD interface header file
     *	See lcd.c for more info
     */
    
    /* write a byte to the LCD in 4 bit mode */
    
    extern void lcd_write(unsigned char);
    
    /* Clear and home the LCD */
    
    extern void lcd_clear(void);
    
    /* write a string of characters to the LCD */
    
    extern void lcd_puts(const char * s);
    
    /* Go to the specified position */
    
    extern void lcd_goto(unsigned char pos);
    	
    /* intialize the LCD - call before anything else */
    
    extern void lcd_init(void);
    
    extern void lcd_putch(char);
    
    extern void lcd_backspace();
    
    /*	Set the cursor position */
    
    #define	lcd_cursor(x)	lcd_write(((x)&0x7F)|0x80)
    
    void affiche_curseur(char affichage);

  11. #10
    mmm999

    Re : Lcd !!

    dsl la derniere fonction manque le mot reservé externe

Discussions similaires

  1. [Brun] TV LCD Seeltech lcd 26" st 2606 GCI : démarre sans image ?
    Par inviteb0f63f06 dans le forum Dépannage
    Réponses: 30
    Dernier message: 21/02/2011, 16h05
  2. [LCD] info sur LCD graphique LM6300 ?
    Par invite565767eb dans le forum Électronique
    Réponses: 2
    Dernier message: 02/12/2010, 23h01
  3. [Brun] TV LCD Samsung LE32A336J1N : activé par erreur LCD Fac mode !
    Par invite2ca052b4 dans le forum Dépannage
    Réponses: 1
    Dernier message: 21/11/2009, 14h50
  4. Afficher sur un LCD des données séries, RS232 vers LCD
    Par invite71524902 dans le forum Électronique
    Réponses: 0
    Dernier message: 27/03/2009, 13h32
  5. [Brun] Lcd Benq Alimentation d'un ecran LCD!!! [résolu]
    Par invitec87978c8 dans le forum Dépannage
    Réponses: 19
    Dernier message: 17/06/2008, 15h25
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...