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

Affichage répeté sur mon afficheur LCD 2x16 ?!



  1. #1
    badr-MOB

    Affichage répeté sur mon afficheur LCD 2x16 ?!


    ------

    Bonjour tout le monde !
    Je viens de me lancer a la gestion d'un afficheur LCD 2x16 , j'ai mis une simple simulation pour ecrire le mot 'BADR' quand j'appuiye sur SW1 et pour tout effacer sur SW2 . Pour l'effacement , NIKEL! , sa marche mais pour l'ecriture le mot 'BADR' se repete dans les deux lignes . Quelqun peut me dire d'ou vient le probleme??
    Merci d'avance.
    j'ai posté ci dessous une capture du montage et le programme asm :

    Capture.PNG

    -----

  2. Publicité
  3. #2
    badr-MOB

    Re : Affichage répeté sur mon afficheur LCD 2x16 ?!

    programme :
    ;***************************** ****************************** ****************************** ****************************** *****************************
    ;***************************** ****************************** ****************************** ****************************** *****************************
    ;------------------------------------------------------------Configuration du microcontrolleur------------------------------------------------------
    ;***************************** ****************************** ****************************** ****************************** *****************************
    ;***************************** ****************************** ****************************** ****************************** *****************************
    LIST p=16F84A ; definire le pic utilisé
    #include <p16F84A.inc> ; directive du fichier source

    __CONFIG _CP_OFF & _WDT_OFF & _HS_OSC & _PWRTE_ON

    ;***************************** ****************************** ****************************** ****************************** ****************************

    ;***************************** ****************************** ****************************** ****************************** *****************************
    ;***************************** ****************************** ****************************** ****************************** *****************************
    ;-----------------------------------------------------------------Declaration des variables----------------------------------------------------------
    ;***************************** ****************************** ****************************** ****************************** *****************************

    CBLOCK 0x0C ; adress du debut de la zone (variables)
    COMP1 : 1 ; variable de 1 octet soit 8 bits
    COMP2 : 1 ; variable de 1 octet soit 8 bits
    COMP3 : 1 ; variable de 1 octet soit 8 bits
    C1 : 1 ;
    INT1 : 1 ;
    ENDC ; fin de la zone (variables)

    ;***************************** ****************************** ****************************** ****************************** *****************************


    ;***************************** ****************************** ****************************** ****************************** *****************************
    ;***************************** ****************************** ****************************** ****************************** *****************************
    ;---------------------------------------------------------------Initialisation du Microcontrolleur--------------------------------------------------
    ;***************************** ****************************** ****************************** ****************************** *****************************
    ;***************************** ****************************** ****************************** ****************************** *****************************

    org 0x000 ; adresse de debut du programme apres le demarrage ou reset
    goto main ; aller vers l'adress (main)

    ;***************************** ****************************** ****************************** ****************************** ****************************


    ;***************************** ****************************** ****************************** ****************************** *****************************
    ;--------------------------------------------------------------Sous programmes tempos--------------------------------------------------------------
    ;***************************** ****************************** ****************************** ****************************** *****************************
    SEC2
    movlw d'167' ;
    movwf COMP3 ;
    rep41
    movlw d'164' ;
    movwf COMP2 ;
    rep51
    movlw d'23' ;
    movwf COMP1 ;
    rep61
    decfsz COMP1,f ;
    goto rep61 ;
    decfsz COMP2,f ;
    goto rep51 ;
    decfsz COMP3,f ;
    goto rep41 ;

    return



    MS2
    movlw d'21' ;
    movwf COMP3 ;
    rep4
    movlw d'13' ;
    movwf COMP2 ;
    rep5
    movlw d'1' ;
    movwf COMP1 ;
    rep6
    decfsz COMP1,f ;
    goto rep6 ;
    decfsz COMP2,f ;
    goto rep5 ;
    decfsz COMP3,f ;
    goto rep4 ;

    return




    MICS40
    movlw d'20' ;
    movwf C1 ;
    OTI
    decfsz C1,f ;
    goto OTI ;

    return



    LCD_E
    bsf PORTA,1 ;
    nop ;
    call MICS40 ;
    nop ;
    bcf PORTA,1 ;

    return


    ;***************************** ****************************** ****************************** ****************************** *****************************

    ;***************************** ****************************** ****************************** ****************************** *****************************
    ;***************************** ****************************** ****************************** ****************************** *****************************
    ;--------------------------------------------------------------Configuration des ports A/B-----------------------------------------------------------
    ;***************************** ****************************** ****************************** ****************************** *****************************
    ;***************************** ****************************** ****************************** ****************************** *****************************

    main
    bsf STATUS,RP0 ;
    bcf STATUS,RP1 ;
    ; ouvrir la banque

    movlw b'00001100' ; charger le work avec la valeur h'CF'
    movwf TRISA ; mettre le contenu du work dans TRISA
    movlw h'00' ; charger le work avec la valeur h'80'
    movwf TRISB ; mettre le contenu du work dans TRISB
    bcf STATUS,RP0 ;
    bcf STATUS,RP1 ;
    ; retour a la banque 0

    ;***************************** ****************************** ****************************** ****************************** *****************************




    ;***************************** ****************************** ****************************** ****************************** *****************************
    ;***************************** ****************************** ****************************** ****************************** *****************************
    ;---------------------------------------------------------------Debut du programme initial-----------------------------------------------------------
    ;***************************** ****************************** ****************************** ****************************** *****************************
    ;***************************** ****************************** ****************************** ****************************** *****************************


    clrf PORTA ;
    clrf PORTB ;
    call SEC2 ;

    movlw d'5' ;
    movwf INT1 ;
    REPT
    movlw h'33' ;
    movwf PORTB ;
    call LCD_E ;
    decfsz INT1,f ;
    goto REPT ;



    movlw h'3B' ; ECRIRE B
    movwf PORTB ;
    call LCD_E ;

    movlw h'0C' ; ERCIRE A
    movwf PORTB ;
    call LCD_E ;

    movlw h'06' ; ECRIRE D
    movwf PORTB ;
    call LCD_E ;

    movlw h'01' ; ECRIRE R
    movwf PORTB ;
    call LCD_E ;
    call MS2 ;
    goto EWX2 ;


    EWX2
    btfsc PORTA,2 ;
    goto EWX1 ;
    bsf PORTA,0 ;
    movlw h'42'
    movwf PORTB ;
    call LCD_E ;
    movlw h'41' ;
    movwf PORTB ;
    call LCD_E ;
    movlw h'44' ;
    movwf PORTB ;
    call LCD_E ;
    movlw h'52' ;
    movwf PORTB ;
    call LCD_E ;
    goto EWX2 ;
    EWX1
    btfsc PORTA,3 ;
    goto EWX2 ;
    bcf PORTA,0 ;
    movlw h'01' ;
    movwf PORTB ;
    call LCD_E ;
    call SEC2 ;
    goto EWX2 ;

    END ; END LCD DIRECTIVE

  4. #3
    badr-MOB

    Re : Affichage répeté sur mon afficheur LCD 2x16 ?!

    Ouups ! Le texte n'est converti ... Voici le fichier asm :LCD.zip
    Merci encore une fois.

  5. #4
    MorpheusPic

    Re : Affichage répeté sur mon afficheur LCD 2x16 ?!

    salut

    normal il te faut faire un anti-rebond

    le probleme :

    tu appui sur ton bouton ... tu ecrit BADR sur le lcd le programme revien au debut et il voi koi ? la touche encore enfoncée donc il recommence ....

    Code:
    EWX2 
    btfsc PORTA,2 ; test si le bouton est appuyé
    goto EWX1 ; si non
    attBT:
    btfss PORTA,2 ; test si le bouton est relaché
    goto attBT ; si le bouton est pas relaché on attends
    bsf PORTA,0 ;
    movlw h'42'
    movwf PORTB ;
    call LCD_E ;
    movlw h'41' ;
    movwf PORTB ;
    call LCD_E ;
    movlw h'44' ;
    movwf PORTB ;
    call LCD_E ;
    movlw h'52' ;
    movwf PORTB ;
    call LCD_E ;
    goto EWX2 ;
    EWX1
    btfsc PORTA,3 ;
    goto EWX2 ;
    bcf PORTA,0 ;
    movlw h'01' ;
    movwf PORTB ;
    call LCD_E ;
    call SEC2 ;
    goto EWX2 ;

  6. A voir en vidéo sur Futura
  7. #5
    badr-MOB

    Re : Affichage répeté sur mon afficheur LCD 2x16 ?!

    Merci bcp pour la reponse , vraiment en vin la reponse hhh ! Mais quelie drole de chose au fait de ne pas y penser . J'ai juste une seule a vous demander s'il vous plait , je veux savoir comment passer de la ligne 1 vers la ligne 2 et inversement , juste la procedure . Un grand merci a vous !!

Discussions similaires

  1. Afficheur LCD 2x16 caractères
    Par LouR56 dans le forum Électronique
    Réponses: 9
    Dernier message: 22/02/2012, 12h00
  2. Réponses: 1
    Dernier message: 21/12/2011, 09h13
  3. Afficheur lcd 2x16 programmation
    Par mafiageo dans le forum Électronique
    Réponses: 32
    Dernier message: 29/08/2008, 22h51
  4. Problème affichage LCD 2x16
    Par gaga2410 dans le forum Électronique
    Réponses: 113
    Dernier message: 06/10/2007, 19h56
  5. Afficheur LCD 2x16
    Par Roukben dans le forum Électronique
    Réponses: 4
    Dernier message: 01/02/2006, 15h11
Découvrez nos comparatifs produits sur l'informatique et les technologies.