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

Aide dans la programmation de PIC



  1. #1
    boussema

    Question Aide dans la programmation de PIC


    ------

    Salut à tous,
    Est ce que quelq'un peut m'aider dans mon projet?
    Le projet est à base de microcontroleur, donc je vais faire un code en assembleur ou en C, je dois faire convertir une trame de longueur 26 bits vers une trame serie pour l'envoyer par un câble serie RS485, je dois tout d'abord saisir la trame et faire le controle des erreurs à l'aide des bits de parité, je suis dans la phase ou je dois enregistrer la trame dans les registres de microcontroleur (là je vois pas comment faire les choses, j'ai pas pu manipuler ça, et j'ai pas pu utiliser les registres de microcontroeleur car c'est mon premier programme de microntroleur à ecrire).

    voici un bout de programme que j'ai fais:

    ;-------------------------------------------------
    ;*********** Programme d 'interruption ***********
    ;-------------------------------------------------
    ; Lire les entrées sur RB1 et RB2

    movf PORTB, RB1 ;charger la variable D0 par l'entrée de RB1
    movf PORTB, RB2 ;charger la variable D1 par l'entrée de RB2

    movlw 25 ;charger 25 dans w
    movwf compt1 ;initialiser compteur par 25
    boucle
    ;comparer les entrées D0 et D1
    movf RB1, w ;charger le registre w par D0
    subwf RB2, w ;soustraire W de D1 pour faire la comparaison
    btfsc STATUS, Z ;tester le bit Z de régistre STATUS si Z=1 alors D0 et D1 sont égaux
    sleep ;si oui le microcontroleur ne fait rien
    ;si non
    clrf STATUS ;il faut reinitialiser le registre STATUS pour l'utiliser une autre fois
    btfss PORTB, 1 ;tester le niveau de RB1, s'il est à 1 alors le bit récuperé n'est pas zéro
    goto recuperer_bit ;recuperer le bit et l'enregistrer dans un registre!!!!!!!!


    btfss PORTB, 2 ;tester le bit de RB2, s'il est à 0 alors le bit récuperé n'est pas 1
    goto recuperer_bit


    decfsz compt1 , f ;décrémenter compteur et tester sa valeur
    goto boucle ;si compteur pas 0, on boucle

    ;stockage registre variable
    ; boucle 26 fois
    ; controle erreur



    RETFIE ; retour d'interruption


    Je serais ravi de lire vos réponse.

    -----

  2. Publicité
  3. #2
    Toufinet

    Re : Aide dans la programmation de PIC

    En tout cas t'es pas encore au point sur le LATEX

    ( joke ) .. tu auras sans doute une réponse quand tu auras remis en forme ton joli message

  4. #3
    boussema

    Re : Aide dans la programmation de PIC

    Désolé le temps à expirer et j'ai pas pu le modifier, j'espère qu'il soit comréhensible au moins!

  5. #4
    mat64

    Re : Aide dans la programmation de PIC

    Pour garder l'indentation, il faut utiliser la balise CODE (bouton avec un #)
    Code:
    ;-------------------------------------------------
    ;*********** Programme d 'interruption ***********
    ;-------------------------------------------------
    ; Lire les entrées sur RB1 et RB2
    
    	movf 	PORTB, RB1 		;charger la variable D0 par l'entrée de RB1
    	movf 	PORTB, RB2 		;charger la variable D1 par l'entrée de RB2
    
    	movlw 	25 				;charger 25 dans w
    	movwf 	compt1 			;initialiser compteur par 25
    boucle
    							;comparer les entrées D0 et D1
    	movf 	RB1, w 			;charger le registre w par D0
    	subwf 	RB2, w 			;soustraire W de D1 pour faire la comparaison
    	btfsc 	STATUS, Z 		;tester le bit Z de régistre STATUS si Z=1 alors D0 et D1 sont égaux
    	sleep 					;si oui le microcontroleur ne fait rien
    							;si non
    	clrf 	STATUS 			;il faut reinitialiser le registre STATUS pour l'utiliser une autre fois
    	btfss 	PORTB, 1 		;tester le niveau de RB1, s'il est à 1 alors le bit récuperé n'est pas zéro
    	goto 	recuperer_bit 	;recuperer le bit et l'enregistrer dans un registre!!!!!!!!
    
    	btfss 	PORTB, 2 		;tester le bit de RB2, s'il est à 0 alors le bit récuperé n'est pas 1
    	goto 	recuperer_bit
    
    	decfsz 	compt1 , f 		;décrémenter compteur et tester sa valeur
    	goto 	boucle 			;si compteur pas 0, on boucle
    
    							;stockage registre variable
    							; boucle 26 fois
    							; controle erreur
    
    	RETFIE 					; retour d'interruption

  6. A voir en vidéo sur Futura
  7. #5
    mat64

    Re : Aide dans la programmation de PIC

    déja, les 2 premières ligne semblent fausses :
    movf PORTB, RB1

    relire la description de l'instruction movf.

  8. #6
    boussema

    Re : Aide dans la programmation de PIC

    Vous avez raison, désolé, je vais rectifier.

  9. Publicité

Discussions similaires

  1. erreur 0X00 programmation PIC plus questions sur les PIC
    Par ROTT dans le forum Électronique
    Réponses: 4
    Dernier message: 22/07/2007, 15h36
  2. programmation du pic 18F dans MPLAB
    Par lyrah dans le forum Électronique
    Réponses: 3
    Dernier message: 04/10/2006, 16h10
  3. Programmation de pic
    Par KHEOPS1982 dans le forum Électronique
    Réponses: 2
    Dernier message: 09/10/2005, 20h42
  4. Aide à la programmation des PIC
    Par alainav1 dans le forum Électronique
    Réponses: 0
    Dernier message: 06/07/2005, 18h36
  5. Debutant dans la programmation des pic:Quel language choisir
    Par pikatchu38 dans le forum Électronique
    Réponses: 2
    Dernier message: 27/01/2003, 22h18
Découvrez nos comparatifs produits sur l'informatique et les technologies.