Pic 16f84

Signaler
Messages postés
1
Date d'inscription
vendredi 20 mars 2009
Statut
Membre
Dernière intervention
3 avril 2009
-
pont
Messages postés
197
Date d'inscription
samedi 2 mai 2009
Statut
Membre
Dernière intervention
16 novembre 2010
-
c lilyange
bonsoir a tous ,
voila je debute dans la programmation des pic , et j'ai comme projet
de générer un signal carré a l'aide d'un pic 16f84 donc j'arrive pas a
faire le programme.
si quelqu'un peut m'orienter just un peut; merci

4 réponses

Messages postés
6
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
15 mars 2010

Salut c lilyange,

D-abord tu ne me precises pas dans quel langage tu veux ecrire ton programme (Assembler, C ANSI, Basic, Pascal )alors moi, je fais mon choix : Pascal pour PIC avec le compilateur mikroPascal .

Alors si tu desires generer un signal carre avec un PIC16F84, soit sur la broche designee PB3

Program SignalPB3;
Begin
TRISB:=0;
PORTB:=0;

While (1=1) do
      begin
         setbit(PortB,3);
         delay_ms(500);
         clearbit(PortB,3)
        delay_ms(500);
      end;

End.
Messages postés
197
Date d'inscription
samedi 2 mai 2009
Statut
Membre
Dernière intervention
16 novembre 2010
1
Et en assembleur:

; PROG1
;----------------------------------------------------------------------------
; MON PREMIER PROGRAMME:   Génération de signal carré sur RB0
;----------------------------------------------------------------------------

; *** Configuration
        LIST       p=16F84A                            ; Processeur 16F84A
        INCLUDE  "P16F84A.inc"                  ; Les dispositions du 16F84A
 
; *** Variables
        CBLOCK 0x0C
 ;                néant
        ENDC
       
; *** Vecteur du départ
        ORG      H'0000'          ; Origine du programme.
        GOTO     prepa            ; préparation  du port de sortie

prepa    BCF     STATUS, RP0      ; Accès Bank0  (normalement inutile)
         CLRF     PORTB              ; Mettre à zéro les sorties de B
         BSF     STATUS, RP0      ; Accès Bank1
         MOVLW   0xFE              ; Bit 0  mis à 0 pour direction
         MOVWF   TRISB              ; Pins 0  du port B en sortie
         BCF     STATUS, RP0      ; Retour Bank0

;-------------------------------------------------------------------

; * Programme principal

;-------------------------------------------------------------------

prog     BSF     PORTB, 0         ; sort 1 du bit 0 sortie du carré
         CALL    Tempo                ; facultatif
         BCF     PORTB, 0            ; sort 0 du bit 0   (voir à l'oscillo) 
         CALL    Tempo                ; facultatif
         GOTO    prog                   ; Reboucle au départ

;------------------routine- de temporisation----------------------------------
Tempo  NOP       ; nbre de nop selon fréquence voulue du signal carré
            NOP        ; qui tient compte du quartz.
            NOP       
          RETURN

      End
Messages postés
2
Date d'inscription
jeudi 15 mars 2007
Statut
Membre
Dernière intervention
2 novembre 2009

@c++ je debute dans la programmation des pic!!!!!!!!!!!!!!!!!!!?????????????????????????,,,,,;si quelqu'un peut m'orienter just un peut
Messages postés
197
Date d'inscription
samedi 2 mai 2009
Statut
Membre
Dernière intervention
16 novembre 2010
1
Bonjour joker2007,

On ne dit pas "just un peut" avec 2 fautes, mais juste un peu, car la programmation ne tolère pas la plus petite faute et si tu ne soçrs pas de l'habitude de faire des fautes, tes programmes ne marcheront pas.

Ceci dit, le programme que j'ai mis est très simple, et surtout complet; car beaucoup ne donnent pas le début, si je t'avais mis le programmec principal seulement il n'y en a que 5 lignes, et on peut faire pire, mettre un seul mot, qui renverra à une bibliothèque qui donnera le détail, mais j'ai voulu justement aider le débutant qui ne sait rien et peut-être le résultat n'a pas été atteint tu as été effrayé par ce long début, pourtant tu dois bien te douter que des PICs, il y en a plus de 500 modèles, comment ton logiciel va savoir lequel tu utilises si tu ne le dis pas?

S'il y a différents modèles de PIC c'est qu'ils ne sont pas pareils dedans. Et il faut que tu déclares aussi les variables que tu vas utiliser, bref tout ce que tu vas mettre en jeu pour faire tourner le programme. Si tu prends la peine de passer au peigne fin le programme, mot par mot, tu verras qu'il n'y a rien de compliqué, aucune astuce pourrie de spécialiste, je suis contre ça, je suis pour une programmation claire et compréhensible.

Bonsoir et courage, suis les conseils et tu y arriveras. Tu as une comparaison entre Pascal et assembleur. Pascal est plus court, mais tu ne sais pas ce qui se passe dans le µC, en assembleur tu sais, et comme le PIC ne comprend pas le Pascal, il a fallu programmer le Pascal en assembleur, donc seul celui qui a écrit le Pascal en assembleur sait ce qu'il fait réellement.Donc, c'est comme passer en avion sur une forêt ou t'y promener à pied, à toi de choisir!
pont