probleme de programation de pic
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
    invite0f16d05f

    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 à 17h24. Motif: Ajout de la balise Code (#) pour garder l'indentation

  2. #2
    Jack
    Modérateur

    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 à 17h27. Motif: Activation du lien

  3. #3
    Jack
    Modérateur

    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?

  4. #4
    invite0f16d05f

    Angry Re : probleme de programation de pic

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

  5. A voir en vidéo sur Futura
  6. #5
    Jack
    Modérateur

    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. #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.

  8. #7
    invite0f16d05f

    Re : probleme de programation de pic

    mon projet concernant l'eclairage public automatique avec affichagede temperature et barriere infrarouge:
    voila shema sur isis :
    Nom : Diapositive1.JPG
Affichages : 90
Taille : 136,3 Ko

  9. #8
    invite0f16d05f

    Re : probleme de programation de pic

    l'organigramme :
    Nom : CaptureAA.PNG
Affichages : 103
Taille : 63,3 Ko

  10. #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 ?

  11. #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'.

  12. #11
    invite0f16d05f

    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

  13. #12
    Jack
    Modérateur

    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.

  14. #13
    invite0f16d05f

    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 ,

  15. #14
    Jack
    Modérateur

    Re : probleme de programation de pic

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

  16. #15
    invite0f16d05f

    Re : probleme de programation de pic

    oui exactement jack

  17. #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 ?

  18. #17
    Jack
    Modérateur

    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?

  19. #18
    Jack
    Modérateur

    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

  20. #19
    Jack
    Modérateur

    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

  21. #20
    invite0f16d05f

    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

  22. #21
    invite0f16d05f

    Re : probleme de programation de pic

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

  23. #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.

  24. #23
    Jack
    Modérateur

    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 ...

  25. #24
    invite0f16d05f

    Re : probleme de programation de pic

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

  26. #25
    invite0f16d05f

    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

  27. #26
    inviteb3c806f8

    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.

  28. #27
    invite0f16d05f

    Re : probleme de programation de pic

    merci pour votre censeil

  29. #28
    Jack
    Modérateur

    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 à 23h54.

  30. #29
    invite0f16d05f

    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;

  31. #30
    Jack
    Modérateur

    Re : probleme de programation de pic

    Quelle ligne?

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Probleme de programation sur fanuc ot
    Par invitee4792f61 dans le forum TPE / TIPE et autres travaux
    Réponses: 5
    Dernier message: 15/05/2013, 22h43
  2. problème programation pic18F452!
    Par invite02763473 dans le forum Électronique
    Réponses: 16
    Dernier message: 04/04/2010, 23h14
  3. probléme programation PIC 16f84
    Par invite6802cc87 dans le forum Électronique
    Réponses: 21
    Dernier message: 22/12/2008, 00h16
  4. problème programation picbasic
    Par invite9d4e5ea4 dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 26/04/2006, 20h40
  5. probleme au programation pic 12c508
    Par invite3a0dfb22 dans le forum Électronique
    Réponses: 3
    Dernier message: 04/04/2006, 11h37
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...