Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 35

probleme de programation de pic



  1. #1
    saif12

    Thumbs up probleme de programation de pic

    s'il vous plait j'ai trouvé un problème au cours de simulation de mon programme en MikroPascal à logiciel Proteus 8 au niveau de l'affichage de 'sensibilité lum'
    et 'limière courante' et aussi ' delai ecran'. Aidez-moi si possible et merci d'avance. Voici mon programme :



    Code:
    Program TempLDRIR;
    
    { Declarations section }
    Type
        TAnalog = Record
          Analog       : Byte;
          Sensivity    : Byte;
          Value        : Word;
        End;
    
        TDelay  = Record
          Delay_Sec     : Byte;
          CycleWord     : Word;
          CycleMax      : Word;
        End;
    
    Var
         LCD_RS : sbit at RB7_bit;
         LCD_EN : sbit at RB6_bit;
         LCD_D4 : sbit at RB5_bit;
         LCD_D5 : sbit at RB4_bit;
         LCD_D6 : sbit at RB3_bit;
         LCD_D7 : sbit at RB2_bit;
    
         LCD_RS_Direction : sbit at TRISB7_bit;
         LCD_EN_Direction : sbit at TRISB6_bit;
         LCD_D4_Direction : sbit at TRISB5_bit;
         LCD_D5_Direction : sbit at TRISB4_bit;
         LCD_D6_Direction : sbit at TRISB3_bit;
         LCD_D7_Direction : sbit at TRISB2_bit;
    
         KeypadPort       : byte at PORTC;
    
    
         Relay            : sbit at RB1_bit;
         IR_b             : sbit at RB0_bit;
    
         LM35_b           : sbit at RA0_bit;
         LDR_b            : sbit at RA1_bit;
    
         Temp, LDR        : TAnalog;
         Byte_Text        : Array[3] of char;
         KeyPad           : Byte;
         KeyPad_Pressed   : Boolean;
    
         TMR1I            : Byte;
         TMR1X            : Byte;
    
         Delay_LCD, Delay_Relay : TDelay;
    
         IR_Active : Boolean;
    
         I                : Byte;
    
    
    
    
    
         Procedure LDR_Sensivity;
         Var Sens, I : Byte;
         Begin
            Lcd_Cmd(_LCD_CLEAR);
            LCD_Out(1,1,'Sensibilite Lum');
            LCD_Out(2,1,'Lumiere courante');
            Sens := LDR.Sensivity ;
            While True Do Begin
                  ByteToStr(Sens,Byte_Text);
                  LCD_Out(1,17,Byte_Text);
                  I:=LDR.Value;
                  ByteToStr(I,Byte_Text);
                  LCD_Out(2,17,Byte_Text);
    
            End;
            LDR.Sensivity:=Sens;
            Lcd_Cmd(_LCD_CLEAR);
            Delay_LCD.CycleWord := Delay_LCD.CycleMax;
            KeyPad_Pressed      := True;
         End;
    
    
         Procedure LCD_Delay;
         Var W : DWord;
             Sens    : Word;
         Begin
            Lcd_Cmd(_LCD_CLEAR);
            LCD_Out(1,5,'Delai Ecran');
            Sens:=Delay_LCD.Delay_Sec;
    
            While True Do Begin
                  WordToStr(Sens,Byte_Text);
                  LCD_Out(2,8,Byte_Text);
    
            End;
            Delay_LCD.Delay_Sec := Sens;
            W :=  (Sens*1000) Div 65;
            Delay_LCD.CycleMax:=W;
            Delay_LCD.CycleWord := Delay_LCD.CycleMax;
    
            Lcd_Cmd(_LCD_CLEAR);
            Delay_LCD.CycleWord := Delay_LCD.CycleMax;
            KeyPad_Pressed      := True;
         End;
    
         Procedure Relay_Delay;
         Var W : DWord;
             Sens    : Byte;
         Begin
            Lcd_Cmd(_LCD_CLEAR);
            LCD_Out(1,5,'Delai Lumiere');
            Sens:=Delay_Relay.Delay_Sec;
    
            While True Do Begin
                  ByteToStr(Sens,Byte_Text);
                  LCD_Out(2,8,Byte_Text);
    
            End;
            Delay_Relay.Delay_Sec := Sens;
            W :=  (Sens*1000) Div 65;
            Delay_Relay.CycleMax := W;
    
            Lcd_Cmd(_LCD_CLEAR);
            Delay_LCD.CycleWord := Delay_LCD.CycleMax;
            KeyPad_Pressed      := True;
         End;
    
    
         Procedure IR_Activation;
         Begin
            Lcd_Cmd(_LCD_CLEAR);
            LCD_Out(1,1,'Barriere infrarouge');
    
            While True Do Begin
                  IF IR_Active Then LCD_Out(2,4,'    Activee') Else LCD_Out(2,5,'Desactivee');
    
            End;
    
            Lcd_Cmd(_LCD_CLEAR);
            KeyPad_Pressed      := True;
         End;
    
         Procedure Test_IR;
         Begin
            Lcd_Cmd(_LCD_CLEAR);
            LCD_Out(1,1,'Barriere Infrarouge');
            INTE_bit:=0;
    
            While True Do Begin
                  IF IR_b=1 Then  LCD_Out(2,4,'Discontinue') Else  LCD_Out(2,4,'   Continue');
    
                  Delay_ms(300);
            End;
            Lcd_Cmd(_LCD_CLEAR);
            KeyPad_Pressed      := True;
            INTF_bit:=0;
            INTE_bit:=1;
         End;
    
    Begin
              //INTCON
           GIE_bit        :=     0;
           PEIE_bit       :=     0;
           T0IE_bit       :=     0;
           TMR0IE_bit     :=     0;
           INTE_bit       :=     1;
           RBIE_bit       :=     0;
           T0IF_bit       :=     0;
           TMR0IF_bit     :=     0;
           INTF_bit       :=     0;
           RBIF_bit       :=     0;
    
           TMR1CS_bit     :=     0;
           TMR1IE_bit     :=     1;
           TMR1IF_bit     :=     0;
           TMR1ON_bit     :=     1;
    
              //I/O
           TRISA          :=     255;
           TRISB          :=     1;
           TRISC          :=     255;
    
           CHS0_bit       :=     0;
           CHS1_bit       :=     0;
           CHS2_bit       :=     0;
           ADON_bit       :=     1;
           ADFM_bit       :=     0;
           PCFG0_bit      :=     0;
           PCFG1_bit      :=     0;
           PCFG2_bit      :=     0;
           PCFG3_bit      :=     0;
           ADIF_bit       :=     0;
           ADIE_bit       :=     1;
    
    
           TMR1I          :=     1;
           TMR1X          :=     0;
           Delay_LCD.CycleWord      :=     Delay_LCD.CycleMax;
           KeyPad_Pressed :=     True;
           Relay          :=     0;
    
           PEIE_bit       :=     1;
           GIE_bit        :=     1;
    
           Lcd_Init();
           Lcd_Cmd(_LCD_CURSOR_OFF);
           Lcd_Cmd(_LCD_CLEAR);
           Keypad_Init();
    
           LCD_Out(1,1,'RAMIT BENMESBAH 2012');       LCD_Out(2,1,'Eclairage Automatise'); Delay_ms(3000);Lcd_Cmd(_LCD_CLEAR);
    
    
           While True Do Begin
    
              IF KeyPad_Pressed Then Begin
                  I := Temp.Value;ByteToStr(I,Byte_Text);LCD_Out(1,1,'Temperature : '+Byte_Text+'C');LCD_chr(1,19,223);
                  IF Relay Then LCD_Out(2,4,'Lampe : Allumee') Else LCD_Out(2,4,'Lampe : Eteinte');
              End Else Lcd_Cmd(_LCD_TURN_OFF);
    
              KeyPad := Keypad_Key_Press;
              IF KeyPad>0 Then  Begin
                Lcd_Cmd(_LCD_TURN_ON);
                Delay_LCD.CycleWord :=  Delay_LCD.CycleMax;
                IF KeyPad_Pressed Then
                    Case  KeyPad Of
                                     16 : LDR_Sensivity;
                                     15 : LCD_Delay;
                                     14 : Relay_Delay;
                                     12 : IR_Activation;
                                     11 : Test_IR;
                    End
                Else KeyPad_Pressed :=  True;
                Delay_ms(300);
              End;
           End;
    
    End.

    -----

    Dernière modification par JPL ; 01/05/2014 à 16h24. Motif: Ajout de la balise Code (#) pour garder l'indentation

  2. Publicité
  3. #2
    Jack

    Re : probleme de programation de pic

    Bonjour,

    être nouveau sur le forum n'excuse pas tout. Merci de lire les règles et recommandations placées en début de page à l'avenir:
    http://forums.futura-sciences.com/pr...ves-forum.html
    Dernière modification par JPL ; 01/05/2014 à 16h27. Motif: Activation du lien

  4. #3
    Jack

    Re : probleme de programation de pic

    j'ai trouvé un problème au cours de simulation de mon programme en MikroPascal à logiciel Proteus 8 au niveau de l'affichage de 'sensibilité lum'
    et 'limière courante' et aussi ' delai ecran'
    Je ne comprendrai jamais ce genre de demande: est-ce que tu penses que beaucoup de monde va passer du temps afin de comprendre ce qui ne marche pas exactement dans ton programme alors qu'il aurait suffit d'une phrase de ta part pour l'indiquer?

  5. #4
    saif12

    Angry Re : probleme de programation de pic

    où est le probléme mdr !!!!!

  6. #5
    Jack

    Re : probleme de programation de pic

    Citation Envoyé par saif12 Voir le message
    où est le probléme mdr !!!!!
    Réponse très utile. On voit bien maintenant ce qui ne fonctionne pas, c'est beaucoup plus clair.

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

    Re : probleme de programation de pic

    On ne sait pas ce que doit faire ton programme.
    On ne sait pas non plus ce que sont les 3 problèmes que tu as rencontrés.
    Tu nous pond presque deux cent lignes, même pas commentées. Ça ne donne pas envie de faire de la spéléo.
    Seuls les faucons volent. Les vrais restent au sol.

  9. Publicité
  10. #7
    saif12

    Re : probleme de programation de pic

    mon projet concernant l'eclairage public automatique avec affichagede temperature et barriere infrarouge:
    voila shema sur isis :
    Diapositive1.JPG

  11. #8
    saif12

    Re : probleme de programation de pic

    l'organigramme :
    CaptureAA.PNG

  12. #9
    Gérard

    Re : probleme de programation de pic

    Il faut préciser exactement ce qui ne fonctionne pas.
    Comme dit plus haut, dans les 200 lignes, on ne sait pas où se situe le problème, aucun commentaire, franchement, si tu voyais une demande de ce genre, quelle sera ta réaction ?

  13. #10
    abracadabra75

    Re : probleme de programation de pic

    Bonjour.
    En admettant que ton organigramme soit correct (je ne l'ai pas décortiqué, et je n'ai aucune envie de le faire), si ça ne marche pas c'est que le programme est nase.
    Analyse-le pas à pas et regarde où il déc.... (censuré) débloque.
    D'autant plus que tu as Isis, donc tous les outils adéquats.
    Trouver par toi-même le défaut te sera bien plus profitable que si un membre te dit (par exemple) : "tu n'as pas initialisé correctement tes variables donc ton calcul est faux...".

    A+
    Il n'y a que dans le dictionnaire où 'réussite' vient avant 'travail'.

  14. #11
    saif12

    Thumbs up Re : probleme de programation de pic

    merci chere ami ,,mais aider moi de plus svp j'ai pas trouver l'erreur , c'est mon projet de fin d'etude et ne reste plus de temps merci de m'aider moi

  15. #12
    Jack

    Re : probleme de programation de pic

    Visiblement tu ne comprends pas qu'il faut que tu nous dises quel problème tu rencontres.

    Lorsque j'amène ma voiture chez le garagiste, je ne sais pas forcément quelle est la panne, mais je lui explique le défaut que j'ai constaté, pour qu'il puisse identifier cette panne.

  16. Publicité
  17. #13
    saif12

    Re : probleme de programation de pic

    le probleme est que le programme ne calcul pas de temperature ni de la lumiere ils sont toujours 0 ,

  18. #14
    Jack

    Re : probleme de programation de pic

    Donc il y a 0 qui s'affiche sur l'afficheur LCD?

  19. #15
    saif12

    Re : probleme de programation de pic

    oui exactement jack

  20. #16
    Gérard

    Re : probleme de programation de pic

    Est ce que l'afficheur fonctionne ?
    Si tu envoies un valeur à afficher, est ce qu'il le fait ?

  21. #17
    Jack

    Re : probleme de programation de pic

    Il n'y a pas moyen de debuger avec ton système? Il faudrait suivre l'évolution des variables instruction par instruction

    Ou bien, il n'y a pas moyen de sortie la valeur des variables sur une console virtuelle à coup de writeln?

  22. #18
    Jack

    Re : probleme de programation de pic

    Citation Envoyé par Gérard Voir le message
    Est ce que l'afficheur fonctionne ?
    Si tu envoies un valeur à afficher, est ce qu'il le fait ?
    C'est ce que je viens de lui demander et apparemment la réponse est oui

  23. Publicité
  24. #19
    Jack

    Re : probleme de programation de pic

    Pour prolonger ce que demande gerard, essaie avec un programme plus simple qui ne fais qu'afficher une valeur et un texte par exemple

  25. #20
    saif12

    Re : probleme de programation de pic

    oui l'afficheur fonctionne mais les valeurs de temperature et sensiblité sont toujours nul ,aussi le relais ne marche pas

  26. #21
    saif12

    Re : probleme de programation de pic

    jack s'il vous plait dis moi où l'erreur exactement merciiiii

  27. #22
    Gérard

    Re : probleme de programation de pic

    Je viens de voir dans ton programme que tu utilises RB2 à RB5 pour envoyer les données sur le LCD. C'est une pratique déconseillée.
    Utilise soit RB0 à RB3 ou RB4 à RB7.

  28. #23
    Jack

    Re : probleme de programation de pic

    mais qu'est-ce que tu crois? Que quand j'ai un problème, je claque des doigts et je trouve la solution? Bin non, je fais des tests et j'élimine les sources d'erreur les une après les autres.
    Mais apparemment, tu ne veux pas.
    Je ne vois pas comment on va pouvoir trouver une solution ...

  29. #24
    saif12

    Re : probleme de programation de pic

    je ne compris bien le langage micro pascal c'est pour ça .

  30. Publicité
  31. #25
    saif12

    Re : probleme de programation de pic

    POUR Gerrard j'ai utilisés de RB0 à RB3 mais c 'est la meme chose affiche des valeurs nuls

  32. #26
    futhier9178

    Re : probleme de programation de pic

    Tu n'as pas de cours sur le micro pascal.
    C'est pas aux membres du forum de faire ton projet.

  33. #27
    saif12

    Re : probleme de programation de pic

    merci pour votre censeil

  34. #28
    Jack

    Re : probleme de programation de pic

    Dans la procedure LCD_Delay je vois:
    Code:
            While True Do Begin
                  WordToStr(Sens,Byte_Text);
                  LCD_Out(2,8,Byte_Text);
            End;
    On sort comment de la boucle?

    De plus, à quel ligne lit-on la valeur de la LDR?
    Dernière modification par Jack ; 19/05/2014 à 22h54.

  35. #29
    saif12

    Re : probleme de programation de pic

    voici ou il lire la valeur de ldr


    Procedure LCD_Delay;
    Var W : DWord;
    Sens : Word;
    Begin
    Lcd_Cmd(_LCD_CLEAR);
    LCD_Out(1,5,'Delai Ecran');
    Sens:=Delay_LCD.Delay_Sec;

    While True Do Begin
    WordToStr(Sens,Byte_Text);
    LCD_Out(2,8,Byte_Text);

    End;
    Delay_LCD.Delay_Sec := Sens;
    W := (Sens*1000) Div 65;
    Delay_LCD.CycleMax:=W;
    Delay_LCD.CycleWord := Delay_LCD.CycleMax;

    Lcd_Cmd(_LCD_CLEAR);
    Delay_LCD.CycleWord := Delay_LCD.CycleMax;
    KeyPad_Pressed := True;
    End;

  36. #30
    Jack

    Re : probleme de programation de pic

    Quelle ligne?

Sur le même thème :

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Probleme de programation sur fanuc ot
    Par FRITOS dans le forum TPE / TIPE et autres travaux
    Réponses: 5
    Dernier message: 15/05/2013, 21h43
  2. problème programation pic18F452!
    Par naniaa dans le forum Électronique
    Réponses: 16
    Dernier message: 04/04/2010, 22h14
  3. probléme programation PIC 16f84
    Par NEOROBOT dans le forum Électronique
    Réponses: 21
    Dernier message: 21/12/2008, 23h16
  4. problème programation picbasic
    Par piertomjack dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 26/04/2006, 19h40
  5. probleme au programation pic 12c508
    Par anass123 dans le forum Électronique
    Réponses: 3
    Dernier message: 04/04/2006, 10h37