Pic 16f877
Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

Pic 16f877



  1. #1
    invite8dac0c00

    Pic 16f877


    ------

    Bonjour tout le monde,

    Je suis en terminal Sti gel, on apprend le langage assembleur en ce moment, on en est a la tempo 0, ce que je comprend pas c'est le "ORG 0x00"

    Je sais pas ce que c'est, le prof m'a di que pour l'interruption il fallait mettre "ORG 0x04" mais quand je le test sur Isis ça marche pas,

    Donc merci de me dire ce qu'est ce ORG et lequel il faut utiliser pour le programme d'interruption Merci.

    -----

  2. #2
    maximilien

    Re : Pic 16f877

    Bonjour!
    ORG pour origine!
    Tu pointe en 0x00

  3. #3
    Gérard

    Re : Pic 16f877

    Pour les PIC, quand il y a interruption, le processeur pointe à l'adresse 4. C'est par construction, on ne peut rien y changer.
    Regarde Bigonoff, le cours N°1 ici : http://www.abcelectronique.com/bigonoff/

  4. #4
    invite8dac0c00

    Re : Pic 16f877

    Merci pour ces reponses,

    je sais je connais ce site, mais je comprend pas tout, Ok origine mais sa pointe ou dans les registres ? Je comprend pas...

    Et dans mon programme, j'ai mis :

    ORG 0x00
    GOTO deb ( Pour le debut du prog, pas de prob )

    ORG 0x04
    GOTO sdeb

    ( le logiciel de simulation m'indique une erreur, comme quoi mon prog sdeb "not previously defined ", il reconnait pas le sdeb en plus alors que j'ai mis mon programme d'interruption qui est définie par "sdeb"

  5. A voir en vidéo sur Futura
  6. #5
    Gérard

    Re : Pic 16f877

    Citation Envoyé par 1ergel Voir le message
    Merci pour ces reponses,

    je sais je connais ce site, mais je comprend pas tout, Ok origine mais sa pointe ou dans les registres ? Je comprend pas...

    Et dans mon programme, j'ai mis :

    ORG 0x00
    GOTO deb ( Pour le debut du prog, pas de prob )

    ORG 0x04
    GOTO sdeb

    ( le logiciel de simulation m'indique une erreur, comme quoi mon prog sdeb "not previously defined ", il reconnait pas le sdeb en plus alors que j'ai mis mon programme d'interruption qui est définie par "sdeb"
    org 0
    goto debut

    org 4
    ;c'est ici que tu dois écrire ta routine d'interruption





    debut:
    ;c'est ici que tu écrit ton prog

  7. #6
    invite8dac0c00

    Re : Pic 16f877

    Merci, ça a l'air de marcher, et comment ce fait-il que dessous un ORG 0x00 on peut mettre un GOTO et pas en dessous de ORG 0x04 ?

  8. #7
    invite8dac0c00

    Re : Pic 16f877

    Non en fait ça marche pas, il me sort pas d'erreur mais c'est comme si mon Flag n'intervenait pas... Je m'en sort pas la

  9. #8
    Gérard

    Re : Pic 16f877

    Citation Envoyé par 1ergel Voir le message
    Non en fait ça marche pas, il me sort pas d'erreur mais c'est comme si mon Flag n'intervenait pas... Je m'en sort pas la
    Un peu plus de précisions ...

  10. #9
    Gérard

    Re : Pic 16f877

    Citation Envoyé par 1ergel Voir le message
    Merci, ça a l'air de marcher, et comment ce fait-il que dessous un ORG 0x00 on peut mettre un GOTO et pas en dessous de ORG 0x04 ?
    L'adr 4 est pointée par le programme quand une interruption survient, c'est pas construction. Tu dois donc commencer la routine d'interruption à cette adresse. Ce n'est pas nécessaire de sauter ailleurs avec un GOTO.

    Après ORG 0, tu DOIS sauter sinon tu vas écraser la routine d'interruption.

    Dans un programme sans interruption, tu peux écrire ORG 0 et tout de suite le programme sans GOTO.

  11. #10
    invite8dac0c00

    Re : Pic 16f877

    LIST p=16F877 ; Definition de processeur
    #include <p16F877.inc> ; Definition de constantes

    ;-----------------------------------------------------------------------------
    ; Nous allons d'abord configurer les 3 bits de poid faible en sortie du PORTB
    ;-----------------------------------------------------------------------------
    VAR1 equ 0x20
    var2 equ 0x21
    var3 equ 0x22

    ORG 0x00
    GOTO deb
    ORG 0x04
    GOTO interupt

    ;***************************** ****************************** ****
    ;* Configuration du port *
    ;***************************** ****************************** ****

    initport BCF STATUS,6 ;choix de la bank1
    BSF STATUS,5
    MOVLW 0xF1 ;3 bits de poid faibles du port B en sortie
    MOVWF TRISB
    RETURN


    ;***************************** ****************************** ****
    ;* Configuration du TIMER0 *
    ;***************************** ****************************** ****

    iniTIMER MOVLW 0x07 ;choix de H : Quartz
    MOVWF OPTION_REG ;Predivision par 256
    BSF INTCON,T0IE
    BSF INTCON,PEIE
    BSF INTCON,GIE
    CLRF TMR0
    RETURN


    ;***************************** ****************************** *****
    ;* MAIN PROG *
    ;***************************** ****************************** *****
    deb CALL initport
    CALL iniTIMER
    BCF STATUS,5 ;choix de la bank0
    RETOUR MOVLW 0x04
    MOVWF PORTB
    GOTO RETOUR

    END

    ;***************************** ****************************** ******
    ; Sous Prog *
    ;***************************** ****************************** ******

    interupt
    sdeb MOVLW 0x00
    MOVWF PORTB
    BCF INTCON,T0IF
    GOTO sdeb



    En espérant que tu puisses m'éclairer, JE veux juste qu'une fois que le flag ce soit levé, il fasse mon prog d'interup qui consiste à éteindre ma led

  12. #11
    gedonet

    Re : Pic 16f877

    Bonjour
    Il ne faut pas placer ton sous programme interupt apres le END, car il n'est pas pris en compte par Mplab.
    Il faut ajouter la ligne:#include <p16F877a.inc> ; fichier include
    Ci dessous une version de ton programme corrigé sans warning.
    Code:
    ;----------------------------------------------------------------------------- 
    ; Nous allons d'abord configurer les 3 bits de poid faible en sortie du PORTB 
    ;-----------------------------------------------------------------------------
    VAR1 equ 0x20 
    var2 equ 0x21
    var3 equ 0x22
    	#include <p16F877a.inc>        ; fichier include
    
    	ORG 0x00
    	GOTO deb
    	ORG 0x04
    	GOTO interupt
    
    ;***************************** ****************************** **** 
    ;* Configuration du port * 
    ;***************************** ****************************** ****
    
    initport 
    	BCF STATUS,6 ;choix de la bank1 
    	BSF STATUS,5 
    	MOVLW 0xF1 ;3 bits de poid faibles du port B en sortie 
    	MOVWF TRISB
    	RETURN 
    
    
    ;***************************** ****************************** **** 
    ;* Configuration du TIMER0 * 
    ;***************************** ****************************** ****
    
    iniTIMER 
    	MOVLW 0x07 ;choix de H : Quartz 
    	MOVWF OPTION_REG ;Predivision par 256
    	BSF INTCON,T0IE
    	BSF INTCON,PEIE
    	BSF INTCON,GIE
    	CLRF TMR0 
    	RETURN 
    
    
    ;***************************** ****************************** *****
    ;* MAIN PROG *
    ;***************************** ****************************** *****
    deb 
    	CALL initport
    	CALL iniTIMER
    	BCF STATUS,5 ;choix de la bank0
    RETOUR 
    	MOVLW 0x04
    	MOVWF PORTB
    	GOTO RETOUR 
    
    
    ;***************************** ****************************** ******
    ; Sous Prog * 
    ;***************************** ****************************** ******
    interupt 
    sdeb 
    	MOVLW 0x00
    	MOVWF PORTB
    	BCF INTCON,T0IF
    	GOTO sdeb
    
    
    	END
    P.S. je n'ai pas regardé s'il fonctionne comme tu veux.
    Gilles

  13. #12
    invite8dac0c00

    Re : Pic 16f877

    Non ça marche pas, Pouaaa j'en peu plus de ce prog, il est super simple et j'y arrive pas, il me sort toujours la même erreur,

    J'ai mis l'image en fichier joint
    Images attachées Images attachées  

  14. #13
    Gérard

    Re : Pic 16f877

    A la fin de la routine d'interruption, il faut écrire l'instruction RETFIE

Discussions similaires

  1. Pic 16f877
    Par invite8dac0c00 dans le forum Électronique
    Réponses: 3
    Dernier message: 13/01/2009, 13h19
  2. pic 16F877 et la mémoire
    Par invite0d9691eb dans le forum Électronique
    Réponses: 1
    Dernier message: 08/05/2008, 11h15
  3. CAN intégré au PIC 16F877
    Par invite80303b0e dans le forum Électronique
    Réponses: 4
    Dernier message: 05/04/2007, 12h30
  4. Réponses: 0
    Dernier message: 18/03/2007, 15h43
  5. Pic 16f877 Pic basic pro conseil
    Par invite4ff7103d dans le forum Électronique
    Réponses: 10
    Dernier message: 04/01/2007, 17h26
Découvrez nos comparatifs produits sur l'informatique et les technologies.