Programmation du PIC16F877A (EasyPIC 4) sous MikroBasic - Page 2
Discussion fermée
Page 2 sur 2 PremièrePremière 2
Affichage des résultats 31 à 55 sur 55

Programmation du PIC16F877A (EasyPIC 4) sous MikroBasic



  1. #31
    invite466af31c

    Re : Programmation du PIC16F877A (EasyPIC 4) sous MikroBasic


    ------

    Sinon, tu pourrais m'aider rapidement parce que lorsque je passerai mon P.P.E., mon professeur va surement me poser des questions, et il faut que je saches tout sur tout, tu pourrais me dire si c'est vrai ou bien faux :

    Pour le C.A.N. (voir pièce jointe) :

    Les diodes permettent aux signal de ne pas passer en négatif.
    Le condensateur permet aux signal d'être. retardé un peu
    Le transistor permet un signal carrée.
    L'inverseur 40106 permet au signal de s'inverser, car sans le 40106, le signal carré se fait en négatif.
    Les résistances permettent au transistor d'être passant.
    Le signal 5 V permet aussi au transistor d'être passant.

    Pour le Programme :

    1=Entrée
    0=Sortie

    Code:
    Program Vitesse
    
    Const K As Float = 0.17
    
    Menu:
     Option_Reg = %10111000
     TrisB = 0
     
    Debut:
     Tmr0 = 0
     Delay_ms(1000)
     PortB = Dec2BCD(Tmr0 * K)
    
    Goto Debut
    
    End.
    Const K As Float = 0.17 (C'est pour intégrer une constante k = 0.17)

    Option_Reg = %10111000 (C'est pour que PS0=0, PS1=0, PS2=0, PSA=1, T0SE=1, T0CS=1, INDEDG=0, RBPU=1, mais c'est quoi PS0, PS1, PS2, PSA ...)

    TrisB = 0 (C'est pour mettre tout les PortB en sorties)

    Tmr0 = 0 (Tmr0 c'est pour RA4/T0CKI/C1OUT mais je ne comprend pas trop pourquoi Tmr0=0 et non 1, mais il compte quoi, la durée de niveau haut, ou directement la fréquence, mais je sais qu'il a un lien avec l'option du registre.)

    Delay_ms(1000) (Attente de 1000 milliseconde, peut-être pour que le PIC ait le temps de faire les calculs, mesure ...)

    PortB = Dec2BCD(Tmr0 * K) (C'est pour dire qu'à la sortie du PortB les deux BCD affichent la valeur de (Tmr0 * K) soit la fréquence multiplié par la constante k=0,17, mais quand on fait dec2bcd, le 2 de dec(2)bcd c'est pour dire qu'il y en a deux des afficheurs BCD ? Sinon je ne comprend pas Dec2BCD est-ce que c'est une fonction surement complexe qui permet d'afficher la valeur suivie de dec2bcd qui est entre parenthèse.)

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

  2. #32
    invite466af31c

    Re : Programmation du PIC16F877A (EasyPIC 4) sous MikroBasic

    J'ai un dernier problème, lorsque tmr0 dépasse les 255 Hz (255 bits), tmr0 revient à 0 Hz (0 bits), donc aussi la vitesse revient 0 km/h alors qu'elle devrait être plus grande que 45 km/h, y a pas un moyen ?

  3. #33
    invite7a49d0d5

    Cool Re : Programmation du PIC16F877A (EasyPIC 4) sous MikroBasic

    re ;O]

    ahh, on rentre enfin dans le vif du sujet ;O]

    je dirais même maxi 32 tours/seconde...
    vu que chaque tour incrémente le compteur/timer0 de 8...

    mais quelle est la vitesse max prévue?

    plusieurs solutions possibles :
    -activer le prescaler (PSA, PS1, ...)...
    -utiliser le TMR1 (65536 bits) au lieu du TMR0...
    -diminuer le tempo_ms(1000)...
    -...

    vede
    ;O]
    ______________
    ...

  4. #34
    invite466af31c

    Re : Programmation du PIC16F877A (EasyPIC 4) sous MikroBasic

    Ben non, pas 32 tr/s, mais Tmr0(max)*k soit 43.35 km/h soit environ 550 tr/min soit 9tr/s, Tmr0 mesure la fréquence.

    La vitesse de sécurité est comme par hasard de 45 km/h.

    Et merci pour l'idée du timer1, j'essayai de faire une sorte de boucle afin que tmr0 lorsqu'il atteint 255, il fait comme s'il continuer encore alors qu'il est à 0 ... (mais bon laisse tomber...).

    Mais je ne comprend pas pourquoi diminuer le delay_ms ? Et de plus je ne comprend toujours pas les prescaler de l'option du registre, et timer=0 ou 1 ? Mais bon je vais essayer de revoir dans le datasheet.

    Sinon encore MERCI.

  5. #35
    invite466af31c

    Re : Programmation du PIC16F877A (EasyPIC 4) sous MikroBasic

    Tu peux voir l'image en pièce jointe, à 250 Hz, V = 45 km/h

  6. #36
    invite7a49d0d5

    Cool Re : Programmation du PIC16F877A (EasyPIC 4) sous MikroBasic

    re ;O]

    en neffet, j'ai oublié K dans mes calculs...

    avec 1000ms, le tmr0 "compte" pendant 1 seconde...
    si tu réduis, exemple 100ms, il comptera pendant seulement 100ms,
    d'où moins de risques de dépasser 255...

  7. #37
    invite466af31c

    l'

    Je pense que je vais utiliser la méthode Tmr1=0 et raccorder la fréquence du Scoot Elec' sur le Port C (RC0/T1OSO/T1CKI) ainsi le programme devient :

    Code:
    Program Vitesse
    
    Const K As Float = 0.17
    
    Menu:
    Option_Reg = %10111000
    TrisB = 0
    
    Debut:
    Tmr1 = 3 ou 7
    Delay_ms(1000)
    PortB = Dec2BCD(Tmr1 * K)
    
    Goto Debut
    
    End.
    En rouge c'est les ligne de code que je ne comprends toujours pas :

    Option_Reg=%10111000 ( PS0=0, PS1=0, PS2=0, PSA=1, T0SE=1, T0CS=1, INDEDG=0, RBPU=1. PS0, PS1, PS2, PSA sont des prescaler, ils réduisent la fréquence mais, T0SE, T0CS, INDEDG, RBPU, c'est quoi et de plus ca permet quoi tout cet ensemble (Option_Reg) ).

    Tmr1 = 3 ou 7 ( A l'aide de ceci :

    bit 7-6 Unimplemented: Read as ‘0’

    bit 5-4 T1CKPS1:T1CKPS0: Timer1 Input Clock Prescale Select bits
    11 = 1:8 prescale value
    10 = 1:4 prescale value
    01 = 1:2 prescale value
    00 = 1:1 prescale value

    bit 3 T1OSCEN: Timer1 Oscillator Enable Control bit

    1 = Oscillator is enabled
    0 = Oscillator is shut-off (the oscillator inverter is turned off to eliminate power drain)

    bit 2 T1SYNC: Timer1 External Clock Input Synchronization Control bit
    When TMR1CS = 1:
    1 = Do not synchronize external clock input
    0 = Synchronize external clock input
    When TMR1CS = 0:
    This bit is ignored. Timer1 uses the internal clock when TMR1CS = 0.

    bit 1 TMR1CS: Timer1 Clock Source Select bit
    1 = External clock from pin RC0/T1OSO/T1CKI (on the rising edge)
    0 = Internal clock (FOSC/4)

    bit 0 TMR1ON: Timer1 On bit
    1 = Enables Timer1
    0 = Stops Timer1

    Tmr1 = %00000011 = 3 ou bien Tmr1 = %00000111 = 7

    Faut-il utiliser Option_Reg avec Tmr1 ?

  8. #38
    invite466af31c

    Re : Programmation du PIC16F877A (EasyPIC 4) sous MikroBasic

    J'ai essayé de réduire le delay_ms à 100, ca ne change rien lorsque je dépasse 45 km/h ça revient à 0 a part que les 45 km/h sont atteint à une fréquence de 25 Hz

  9. #39
    invite466af31c

    Re : Programmation du PIC16F877A (EasyPIC 4) sous MikroBasic

    Sinon pour le timer1 j'ai essayai toute les possibilité, ca ne marche pas

  10. #40
    invite7a49d0d5

    Cool Re : Programmation du PIC16F877A (EasyPIC 4) sous MikroBasic

    Citation Envoyé par Robert_Werlick Voir le message
    J'ai essayé de réduire le delay_ms à 100, ca ne change rien lorsque je dépasse 45 km/h ça revient à 0 a part que les 45 km/h sont atteint à une fréquence de 25 Hz
    Bonjour,

    c'est timpossible... je t'explique :
    tmr0 ne peut pas compter le même nombre d'impulsions
    en 100ms qu'en 1000ms... c'est tévident...
    tu n'a pas du re-compiler le programme...
    il faut recompiler (build) après chaque modif...
    puis re-charger le "nouveau" .hex dans ta simu...
    pour que tes modifs soient prises en compte...
    dans ta simu...

    ensuite, laisses béton le timer1...
    actives plutôt le prescaler du timer0...
    tu le mets sur 8, comme ça, au lieu
    de compter 8 impulsions/tour, il en
    comptera qu'une... ce qui obligatoirement
    donnera un resultat (valeur timer0) divisé par 8...

    après la simu, ça n'est pas l'idéal pour débuter...
    l'idéal c'est une platine d'essai, une led, ...

    et je comprends pas comment et où sont connectées
    tes 2 anodes ou cathodes communes des afficheurs?
    car sans ça, ça fonctionnera jamais dans la vraie vie...

    vede
    ;O]
    _____________
    ...

  11. #41
    invite466af31c

    Re : Programmation du PIC16F877A (EasyPIC 4) sous MikroBasic

    J'ai fais build ect... Et en plus si je change le delay_ms tout va changer, la vitesse du Scoot Elec' aura une allure de 60 km/h, alors que ça m'affichera 2 km/h, mais pour la programmation j'ai utilisé la méthode : V = k * f et non je compte 8 période vaut 1 tour, car celle-ci est fausse (pour qu'on se comprenne bien)

    Pour la platine d'essai, ça va être chaud parce que j'en ai pas. J'ai que de la simulation chez moi. Et il n'y a qu'une carte EsayPIC 4 qui est au lycée.

    Je viens d'activer les Prescaler PS0 PS1 PS2 PSA, rien ne change, toujours lorsque le tmr0 lit 255 bits (255 Hz), la vitesse affiche 0 km/h, sur les afficheurs 7 segments, quand je changes le delay_ms, ça recommence à 0 mais avec une fréquence différente.

    Pour encore bien se comprendre, quand je dis fréquence je parle de la fréquence du générateur qui sert de signal de sortie du capteur électromagnétique, le signal qui sert de signal du capteur dans la simulation ISIS Proteus (c'est dans cette simulation que je teste le programme après avoir bien fait Build dans MikroBasic), il est sinusoïdale. qui se transforme en numérique par le C.A.N. , de plus le C.A.N. dans la vraie vie, il ne marche pas vraiment, je ne sais pas pourquoi, alors je pense que je vais activer l' A/D conversion si j'y arrive (avec ADCON0 et ADCON1 ...)

    Sinon, pour les afficheur 7 segments, ça marchera pas dans la vraie vie ? Ça veut dire que que ce sont les DEL en bas à gauche de l'image jointe (encadrée en jaune ) qui vont s'allumer.

    Ben alors comment faire pour que ce soit les afficheurs 7 segments qui affiche la vitesse, je suis dans une merde international ...
    Images attachées Images attachées  

  12. #42
    invite7a49d0d5

    Cool Re : Programmation du PIC16F877A (EasyPIC 4) sous MikroBasic

    Citation Envoyé par Robert_Werlick Voir le message
    (...)
    Ben alors comment faire pour que ce soit les afficheurs 7 segments qui affiche la vitesse, je suis dans une merde international ...
    re ;O]

    http://www.sonelec-musique.com/elect...heurs_led.html
    puis
    http://www.sonelec-musique.com/elect...tiplexage.html

    sinon dans google...7 segments pic schéma...par exemple...
    ton problème : il manque les 2 broches communes des afficheurs sur ton schèma...
    vede
    ;O]
    _______________
    ...

  13. #43
    invite466af31c

    Re : Programmation du PIC16F877A (EasyPIC 4) sous MikroBasic

    Je bloque là, il faut que je trouve un afficheur BCD comme sur l'EsayPIC 4 ?

    Mais sinon j'ai des questions S.V.P. :

    L'option du registre c'est pour régler le timer0 ?
    Le timer0 il compte quoi réellement, une fréquence? quand tmr0 = 255 bits, c'est égal à 255 Hz ?

    Pour le C.A.N. (voir pièce jointe) :

    Les résistance permettent au transistor d'être passant ?
    Les diodes permettent au signal de ne pas passer en négatif ?
    Le condensateur permet au signal de se retarder, c'est-à-dire de " s'avancer " ?
    Le transistor permet au signal d'être carrée ?
    L'inverseur 40106 permet d'inverser le signal (car il est positif au mauvais endroit, quand le signal vert est en positif le rouge est en négatif donc il faut inverser... voir pièce jointe) ?
    L'alimentation continue permet d'alimenter le 40106 et de mettre le transistor en passant.
    Images attachées Images attachées  

  14. #44
    invite7a49d0d5

    Cool Re : Programmation du PIC16F877A (EasyPIC 4) sous MikroBasic

    Citation Envoyé par Robert_Werlick Voir le message
    (...)
    L'option du registre c'est pour régler le timer0 ?
    Le timer0 il compte quoi réellement, une fréquence? quand tmr0 = 255 bits, c'est égal à 255 Hz ? (...)
    il compte les impulsions venant du capteur... pendant 1000ms...

  15. #45
    invite7a49d0d5

    Cool Re : Programmation du PIC16F877A (EasyPIC 4) sous MikroBasic

    ps :

    lis ça, c'est des traductions partielles des datasheets,
    et le fonctionnement des timers est identiques (16F88,877,877A...)

    http://www.didel.com/pic/Prog877.pdf

    et ça

    http://daniel.menesplier.free.fr/Doc/PIC16F88.pdf

    je pense que là tu vas avancer avec ça...

  16. #46
    invite466af31c

    Re : Programmation du PIC16F877A (EasyPIC 4) sous MikroBasic

    Sinon, tu penses que le PIC16F877A reconnaitra les impulsion du capteur, sans le C.A.N. ?

  17. #47
    invite7a49d0d5

    Cool Re : Programmation du PIC16F877A (EasyPIC 4) sous MikroBasic

    .
    Bonjour,

    c'est possible...
    et tu ne risques rien à tester...
    si tu es certain que la tension en sortie du capteur ne dépasse jamais 5VAC...

    vede
    ;O]
    _______________
    ...

    .

  18. #48
    invite466af31c

    Re : Programmation du PIC16F877A (EasyPIC 4) sous MikroBasic

    Ok merci .

    Sinon là, aussi j'en suis sur que ça ne va pas afficher la vitesse dans les afficheurs B.C.D. à 7 segments sur la carte EasyPIC 4 (donc je suis dans une merde mondial), mais bon ...

    Au fait, j'ai décidé d'activer le Convertisseur Analogique - Numérique du PIC16F877A, car le C.A.N. j'ai peur qu'il foire au dernier moment... ça veut dire que maintenant qu'il y a deux sorties pour le capteur (une pour le "+" et l'autre pour le "-") au lieu d'une qui partait directement vers le pin T0CKI.
    Alors je pense qu'il faudrait brancher, le "+" vers le pin Vref+ et le "-" vers le Vref- mais après comment relier le signal au pin T0CKI pour que le Timer0 compte les impulsions.

    Pour la partie programmation :

    Il faudrait que je rajoutes les registres :

    ADCON0 = %11???101 (ici les ??? dépendent du branchement entre le signal capteur et le PIC16F877A)

    ADCON1 = %?100???? (ici le ? je ne comprend pas ce que configure le bit 8, et les ???? dépend du branchement entre le signal capteur et le PIC16F877A

    Images attachées Images attachées  

  19. #49
    invite466af31c

    Re : Programmation du PIC16F877A (EasyPIC 4) sous MikroBasic

    Regarde qu'est-ce que j'ai trouvé en (pièce jointe), c'est le schéma du circuit entre le micro-contrôleur PIC16F877A des 4 afficheurs B.C.D. à 7 segments de la carte EasyPIC 4, mais je sens que ça va être chaud à programmer, et maintenant, il me reste qu'un seul jour ...
    Images attachées Images attachées  

  20. #50
    invite466af31c

    Re : Programmation du PIC16F877A (EasyPIC 4) sous MikroBasic

    Regarde qu'est-ce que j'ai trouvé en (pièce jointe), c'est le schéma du circuit entre le micro-contrôleur PIC16F877A et les 4 afficheurs B.C.D. à 7 segments de la carte EasyPIC 4, mais je sens que ça va être chaud à programmer, et maintenant, il me reste qu'un seul jour ...
    Images attachées Images attachées  

  21. #51
    invite466af31c

    Re : Programmation du PIC16F877A (EasyPIC 4) sous MikroBasic

    Salut, il est bon mon algorigramme ? (piece jointe)
    Images attachées Images attachées  

  22. #52
    invite466af31c

    Re : Programmation du PIC16F877A (EasyPIC 4) sous MikroBasic

    Maintenant que mon P.P.E. est finie, j'aurais bien aimé savoir les lignes du programme qui me manqués S.V.P.

  23. #53
    invite7a49d0d5

    Cool Re : Programmation du PIC16F877A (EasyPIC 4) sous MikroBasic

    .

    Ben maintenant que ton PPE est fini ben tu vas pouvoir enfin te mettre à la programmation...
    si ça t'intéresse vraiment...
    (commences par faire clignoter une led en "vrai"... c'est le B.A.B.A... delà si t'as des questions...)...

    .

  24. #54
    Gérard

    Unhappy Re : Programmation du PIC16F877A (EasyPIC 4) sous MikroBasic

    Pour ton info Robert_Werlick, j'ai signalé ton message à la modération.



  25. #55
    gienas
    Modérateur

    Re : Programmation du PIC16F877A (EasyPIC 4) sous MikroBasic

    Bonjour Robert_Werlick et tout le groupe

    Et puis au revoir.

    Il me semble que tu te trompes de monde, en plus de t'assoir allègrement sur la charte que tu as pourtant acceptée.

    Ton comportement et les injures grossières que tu as écrites, même si elles ne sont plus visibles, sont archivées, donc mémorisées.

    Ce n'est pas un comportement acceptable ici, ni même dans la vie courante.

    La présente discussion est fermée.

    Tu demeures malgré tout bienvenu pour poser des questions, à condition de respecter les règles, et les intervenants.

Page 2 sur 2 PremièrePremière 2

Discussions similaires

  1. programmation sous R
    Par invitefca55c10 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 11/05/2008, 16h07
  2. Programmation en C sous windows xp
    Par invite0ff12b77 dans le forum Logiciel - Software - Open Source
    Réponses: 8
    Dernier message: 09/10/2007, 18h02
  3. afficheur avec PIC le tout sous mikrobasic !
    Par LTHOMAS dans le forum Électronique
    Réponses: 5
    Dernier message: 09/11/2006, 19h19
  4. Pb de programmation sous Word
    Par invite2ac350bd dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 25/04/2006, 18h20
  5. programmation C sous Linux
    Par invitefad81a05 dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 06/04/2006, 19h51
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...