Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Aide pour un programme MPLAB



  1. #1
    Grosso

    Aide pour un programme MPLAB


    ------

    bonjour j'ai une demande pour un programme MPLAB, mon programme doit faire clignoter les leds des mes portA et portB (EN MEME TEMPS), avec uune fréquence d'environ 1Hz.

    ;_____________________________ ______________________________ __________________
    ;Programme "EX2" Sur pic 16F84A permetant de faire clignoter toute les leds du
    ;porta et portb

    LIST P=16F84A
    ;_____________________________ ______________________________ ___________________

    ;Zone de déclaration des variables et des constantes
    PORTB EQU h'06'
    PORTA EQU h'05'
    STATUS EQU h'03'
    TRISA EQU h'85'
    TRISB EQU h'86'
    INTCON EQU h'0B'
    TAMPON1 EQU h'0C'
    TAMPON2 EQU h'0D'
    TAMPON3 EQU h'0E'

    ;_____________________________ ______________________________ ___________________

    ;Configuration du vecteur Reset
    ORG h'00' ;commence le programme à l'adresse 00
    Goto debut ;renvoie a debut
    ;_____________________________ ______________________________ ___________________

    ;initialisation du port AB
    INITAB BSF STATUS,05 ; acces banque 1
    CLRF TRISB ; port B en sortie
    BCF INTCON,7 ; pas d'interruption
    CLRF TRISA ; port A en sortie
    BCF STATUS,5 ; acces banque 0
    RETURN

    ;_____________________________ ______________________________ ___________________
    ;Programme source
    debut CALL INITAB ;Initialisation des portAB
    LB2 MOVLW h'FF' ;envoie h'AA' dans W
    MOVWF PORTB ;portB = W
    MOVLW h'00' ;envoie h'00' sur W
    MOVWF PORTB ;portB = W
    goto LB2
    END
    Voila mon programme me perme de faire clignoter le PORTB mais a la vitesse du processeur, Ma demande est comment faire la tempo de 1 Hz et comment faire pour que les 2 port clignotent en même Temps. merci A vous

    -----

  2. Publicité
  3. #2
    Moezzz

    Re : Aide pour un programme MPLAB

    Il faut simplement appeler un sous programme qui fait une temporisation entre le passage de 0 à 1 et de 1 à 0

    ;----------------------------------------------------------------------------
    ; Sous-programme : Temporisation
    ;----------------------------------------------------------------------------
    tmp: MOVLW 0xFF ; 255 dans tmp1 et tmp2
    MOVWF tmp1
    MOVWF tmp2

    tp1: NOP ; 2 nop pour augmenter la pause
    NOP
    DECFSZ tmp1,1 ; tmp1 = tmp1 - 1 et saute l'instruction suivante si le resultat est nul
    GOTO tp1
    MOVLW 0xFF
    MOVWF tmp1
    DECFSZ tmp2,1
    GOTO tp1
    RETURN


    le programme principal devient
    ;Programme source
    debut CALL INITAB ;Initialisation des portAB
    LB2 MOVLW h'FF' ;envoie h'AA' dans W
    MOVWF PORTB ;portB = W
    MOVWF PORTA ;portA = W
    CALL tmp
    MOVLW h'00' ;envoie h'00' sur W
    MOVWF PORTB ;portB = W
    MOVWF PORTA ;portA = W
    CALL tmp
    goto LB2
    END

  4. #3
    Moezzz

    Re : Aide pour un programme MPLAB

    il faut réserver deux octet mémoire pour tmp1 et tmp2
    il faut inserer ces deux lignes au début du programme

    tmp1 EQU 0Ch
    tmp2 EQU 0Dh

  5. #4
    Grosso

    Re : Aide pour un programme MPLAB

    merci c'est sympas, j'ai tou mi mais lorsque je simule mais le programme tourne en boucle s'en rien faire:

    tp1: NOP ; 2 nop pour augmenter la pause
    NOP
    DECFSZ tmp1,1 ; tmp1 = tmp1 - 1 et saute l'instruction suivante si le resultat est nul
    GOTO tp1

    ici, il repete s'en cesse Goto TP1 met s'en rien faire!!

  6. #5
    RISC

    Re : Aide pour un programme MPLAB

    Grosso,

    Quelques petites suggestions si tu utilises l'environnement MPLAB avec l'assembleur intégré

    1/ Déclaration des registres du micro :
    Tu peux te simplifier la tâche en utilisant un fichier fourni dans l'assembleur pour chaque modèle de micro, qui déclare tous les registres existant pour celui que tu as sélectionné. Pour le PIC16F84A, il s'appelle : P16F84A.INC et tu le trouves ici (si tu as laissé MPLAB s'installer par défaut) :
    C:\Program Files\Microchip\MPASM Suite

    Je te conseille de copier ce fichier P16F84A.INC (pour préserver l'original) dans le même répertoire que ton fichier source xxxx.ASM. Ensuite tu insères l'instruction suivante dans ton fichier source (juste après ta ligne
    LIST P=16F84A) : #include <p16f84a.inc>

    Si tu l'as copié dans ton projet, tu peux le modifier à souhait pour insérer d'autres déclarations propres à ton projet.

    2/ Tu peux également utiliser le simulateur : Debugger > Select Tool > MPLAB SIM
    et ouvrir une fentre de "WATCH" pour surveiller les variables qui t'interessent :
    View > Watch et ensuite tu ajoutes dans cette fenetre les variables qui t'interessent ;=) .

    Evidemment le simulateur ne permet pas de respecter les delai mais de s'assurer que l'aspect fonctionnel est ok.

    Si tu veux pousser plus loin il est possible d'injecter des signaux en utilisant le SCL (Simulator Script Language) dans le simulateur. Plus de renseignements ici :
    http://forum.microchip.com/tt.aspx?forumid=18

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

    Re : Aide pour un programme MPLAB

    OK merci, mais je suis obliger de l'écrire moi même c'est pour le lycée le prof veux voir comment on est capable d'écrire le programme nous même, donc il faut que j'écrive le sous programme de temporisation..

    Merci encore pour toute vos informations..

  9. Publicité

Sur le même thème :

Discussions similaires

  1. Aide PIC à programmé pour faire marché un affichage LCD
    Par Raphael2 dans le forum Électronique
    Réponses: 48
    Dernier message: 19/01/2008, 18h40
  2. Aide pour Messagerie Du Programme Act V 8.0
    Par Lo69 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 20/04/2007, 06h42
  3. Cherche aide pour programme vhdl
    Par H3bus dans le forum Électronique
    Réponses: 2
    Dernier message: 26/02/2007, 19h16
  4. compilation du programme par MPLAB
    Par clinon dans le forum Électronique
    Réponses: 1
    Dernier message: 19/10/2006, 06h47
  5. Aide pour programme PIC18F (PIC-->CNA)
    Par strat666 dans le forum Électronique
    Réponses: 1
    Dernier message: 12/06/2006, 21h54