Problème de simulation sur Proteus ISIS
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Problème de simulation sur Proteus ISIS



  1. #1
    invite82295142

    Problème de simulation sur Proteus ISIS


    ------

    Bonjours !
    Je suis une débutante en électronique et je suis chargée de la conception d'une carte électronique d'une serrure codée
    j'ai fait le schéma électronique et le code source en C en utilisant le compilateur PIC C

    Le code

    Code:
    #include "16f877A.h"                   // PIC16F877 HEADER FILE 
    
    #include "lcd.c"
    
    #use delay (clock =20M)                // 20 MHZ CRYSTAL
    
    #fuses HS,NOWDT,NOPROTECT
    
    #byte TRISA=0x85
    #byte TRISB=0x86
    #byte TRISC=0x87
    #byte TRISD=0x88
    
    #byte PORTA=0x05
    #byte PORTB=0x06
    #byte PORTC=0x07
    #byte PORTD=0x08
    
    #bit c1=PORTD.1
    #bit c2=PORTD.2
    #bit c3=PORTD.3
    
    #bit l1=PORTD.4
    #bit l2=PORTD.5
    #bit l3=PORTD.6
    #bit l4=PORTD.7
    
    #bit red=PORTA.0
    #bit green=PORTA.1
    
    #bit BUZZ=PORTB.0
    
    #bit RELAY=PORTC.2
    
    #define LCD_DATA_PORT getenv("SFR:PORTD") //CONFIGURATION LCD methode "port access"                                                              
    #define LCD_ENABLE_PIN  PIN_B1                                   
    #define LCD_RS_PIN      PIN_B2                                    
    #define LCD_RW_PIN      PIN_B3                                   
    #define LCD_DATA4       PIN_B4                                    
    #define LCD_DATA5       PIN_B5                                   
    #define LCD_DATA6       PIN_B6                                    
    #define LCD_DATA7       PIN_B7     
    
    int touche;
    char welcome[16]={'-','-','-','-','B','i','e','n','v','e','n','u','e','-','-','-'};
    
    char Ancien_cod[16]={'A','n','c','i','e','n',' ','c','o','d','e'};
    char Nouveau_cod[16]={'N','o','u','v','e','a','u',' ','c','o','d','e'};
    char Erreur_cod[16]={'E','r','r','e','u','r'};
    char Entrer_cod[16]={'E','n','t','r','e','r',' ','c','o','d','e'};
    int code[4]={0,0,0,0},code_saisie[4];
    
    void clavier(void)
    {
       int i=0;
       PORTD=PORTD&0xF0;
       touche=13;
          l1=1;
          if(c1==1) {touche=1;++i;while(c1==1);}
          if(c2==1) {touche=2;++i;while(c2==1);}
          if(c3==1) {touche=3;++i;while(c3==1);}
          l1=0;
          l2=1;
          if(c1==1) {touche=4;++i;while(c1==1);}
          if(c2==1) {touche=5;++i;while(c2==1);}
          if(c3==1) {touche=6;++i;while(c3==1);}
          l2=0;
          l3=1;
          if(c1==1){ touche=7;++i;while(c1==1);}
          if(c2==1) {touche=8;++i;while(c2==1);}
          if(c3==1) {touche=9;++i;while(c3==1);}
          l3=0;
          l4=1;
          if(c1==1) {touche=10;++i;while(c1==1);} //'*'
          if(c2==1) {touche=0;++i;while(c2==1);}
          if(c3==1) {touche=11;++i;while(c3==1);}//'#'
          l4=0;
    }
    
    
     void mise_a_jour_code()
    {
       int j,i=0,Nb_vrai=0;
       if (touche==10)
       {
          lcd_gotoxy(1,1);
          for(j=0;j<16;j++)lcd_putc(Ancien_cod[j]);
          lcd_gotoxy(1,0x0D);
          while(i<4)
          {
             clavier();
        
        if((touche!=13) & (touche!=10) & (touche!=11))
             {
                code_saisie[i]=touche;
                lcd_putc('*');
                i++;
             }
          }
          for(i=0;i<4;i++) if(code[i]==code_saisie[i]) Nb_vrai++;
          i=0;
          if (Nb_vrai==4) 
          {
             lcd_gotoxy(1,1);
             for(j=0;j<16;j++)lcd_putc(Nouveau_cod[j]);
             lcd_gotoxy(1,0x0E);
             while(i<4)
             {
                clavier();
                if((touche!=13) & (touche!=10) & (touche!=11))
                {
                   code[i]=touche;
                   lcd_putc('*');
                   i++;
                }
             }
             lcd_gotoxy(1,1);
             for(j=0;j<16;j++)lcd_putc(welcome[j]);
        
          }
          else
          {
             lcd_gotoxy(1,1);
             for(j=0;j<16;j++)lcd_putc(Erreur_cod[j]);
          }
          
       }
    }
    
    
    void saisie_code()
    {
       int j=0,Nb_essais=0,Nb_vrai=0;
       if (touche==11)
       {
    Lab1: lcd_gotoxy(1,1);
          for(j=0;j<16;j++) lcd_putc(Entrer_cod[j]);
          j=0;
          lcd_gotoxy(1,0x0D);
          while(j<4)
          {
             clavier();
             if((touche!=13) & (touche!=10) & (touche!=11))
             {
                code_saisie[j]=touche;
                lcd_putc('*');
                j++;
             }
          }
          delay_ms(1000);
          for(j=0;j<4;j++) if(code[j]==code_saisie[j]) Nb_vrai++;
          if(Nb_vrai==4)
          {
             lcd_gotoxy(1,1);
             for(j=0;j<16;j++)lcd_putc(welcome[j]);
       
             RELAY=1;
             green=1;
             delay_ms(5000);
             RELAY=0;
             green=0;
          }
          else
          {
             Nb_essais++;
             lcd_gotoxy(1,1);
             for(j=0;j<16;j++)lcd_putc(Erreur_cod[j]);
             if (Nb_essais==3)
             {
                BUZZ=1;
                red=1;
                delay_ms(10000);
                BUZZ=0;
                red=1;
                break;
             }
             delay_ms(2000);
             goto Lab1;
          }
       }
    }
    
    void main()
    {
    
    SET_TRIS_A(0x00);
    SET_TRIS_B(0x00);
    SET_TRIS_C(0x00);
    SET_TRIS_D(0xff);
    
    
     lcd_init();
     while(true)
       {
     int j;
     lcd_gotoxy(1,1);;
       for(j=0;j<16;j++){lcd_putc(welcome[j]);}
    
       
          clavier();
          mise_a_jour_code();
          saisie_code();
       }
    }
    le schéma lors de la simulation :

    Simulation.JPG

    J'ai remarqué un problème dans le fonctionnement de l'LCD

    simulation LCD.JPG

    Je doute que j'ai fait une faute de configuration de l'LCD dans le code source vu mes connaissance limitées et que c'esi la première fois que j'utilise ce compilateur


    Avez vous des remarques ou des idées?

    Merci pour votre aide

    -----
    Images attachées Images attachées  

  2. #2
    invite4738fba1

    Cool Re : Problème de simulation sur Proteus ISIS

    Salut a ma connaissance quand je fais de la simulation sur proteus la pin r/w doit etre connectée a la masse c'est a dire avec le vss et les pin D0 D1 D2 D3
    si tu as toujours des probs avec ton lcd tu pourrais te servir de flex_lcd.c (pour config tes pin de lcd) au lieu de lcd.c dans mon cas ça a reglé mes probs d'affichages....je vais en fds charger ton code et faire une sim avec proteus...(au début j'en ai cherché pis pas a peu pres avec les lcd et proteus)

    Bonne journée!!!!

  3. #3
    invite4738fba1

    Re : Problème de simulation sur Proteus ISIS

    En passant quelle version de Proteus que tu te sert????

  4. #4
    invite82295142

    Re : Problème de simulation sur Proteus ISIS

    Citation Envoyé par bauche1 Voir le message
    En passant quelle version de Proteus que tu te sert????
    Version 8

    pour les les pins connectés à RS, Rw, E, D4..D7 comment je dois les déclarés : entrés ou sorties ?

  5. A voir en vidéo sur Futura
  6. #5
    Antoane
    Responsable technique

    Re : Problème de simulation sur Proteus ISIS

    Bonjour,
    quelques détails quant à ton schéma :
    - R4 est inutile dans la mesure ou Q1 est en collecteur commun ;
    - Tu es sûr pour R5 ? ;
    - ton circuit de MCLR est mal câblé , cf la datasheet.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

Discussions similaires

  1. probleme simulation proteus isis
    Par inviteb4beade9 dans le forum Électronique
    Réponses: 6
    Dernier message: 04/11/2020, 15h53
  2. Proteus Isis simulation Colpitts
    Par inviteeddcde8d dans le forum Électronique
    Réponses: 69
    Dernier message: 14/11/2013, 10h04
  3. Erreur du simulation sur proteus(Isis)
    Par invite5e2e894b dans le forum Électronique
    Réponses: 4
    Dernier message: 16/05/2008, 18h40
  4. simulation proteus isis
    Par invite279d610d dans le forum Électronique
    Réponses: 5
    Dernier message: 14/02/2007, 12h53
  5. Probleme simulation proteus isis
    Par invite3d3ec029 dans le forum Électronique
    Réponses: 10
    Dernier message: 14/02/2007, 00h39
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...