You are on page 1of 2

Licence : Automatique L3

Module : MPC Mme I.Kaoula

TP 5 : PROGRAMMATION DU PIC 16F84 (APPLICATION USUELLES)


CONFIGURATION DES PORTS, LECTURE D’UNE VARIABLE D’ENTREE,
ACTIVER/DESACTIVER UNE SORTIE, TEMPORISATION.

A. CONFIGURATION DES PORTS :

OBJECTIF : Configurer les bits des ports (PORTA et PORTB) comme étant des entrées ou des sorties.

Procédé :
-La configuration des bits du PORTA se fait dans le registre TRISA.
-Configurer un bit du PORTA comme entrée (Input), mettre1 dans le bit correspondant dans TRISA.
-Configurer un bit du PORTA comme sortie (Output), mettre0 dans le bit correspondant dans TRISA.

Exemple : le programme suivant configure le premier bit du porta comme le montre le tableau ci-
dessus.

; --------------------définition des différentes étiquettes---------------------------------


list p=16f84 ;definition du processeur
#include <p16f84.inc> ;definition des constantes
;----------------------début du programme---------------------------------------------------
org 0000 ;debut du programme

;----------------------- Initialisation de RA0 en entree


bcf STATUS, RP0 ;passage en page0 de la mémoire de données.
clrf PORTA ;initialize porta par mise à 0, sortie
bsf STATUS, RP0 ;selection de la bank 1
movlw 0x04 ;valeur utilisée pour initialiser la direction des données.
movwf TRISA ;Mà1 de RA<3 :0>comme entrées et RA4 comme sortie TRISA<5:7>
;toujours sont lus comme’0’.

Exercice :
Reconfigurer le PORTA selon la valeur du registre TRISA donnée dans le tableau suivant :

TRISA 0 0 0 0 1 1 1 1
POTRA x x X RA4 RA3 RA2 RA1 RA0
(sortie) (entrée) (entrée) (entrée) (entrée)

B. LECTURE D’UNE VARIABLE D’ENTREE


OBJECTIF : Lire et tester l’état d’une variable d’entrée logique (sortie logique, interrupteur,
capteur,…).
Procédé :
- En utilisant les instructions BTFSS reg, b (qui fait la lecture et le test du bit b du registre reg.
Si b=1, la ligne suivante du programme ne sera pas exécutée. Si b=0, la ligne suivante du
programme sera exécutée.)
Exemple : ajouter au programme précédent les lignes suivantes.

bcf status,RP0 ;passage en page 0


btfss porta, 0 ;lit et teste le bit 0 du porta.
goto zero ;exécutée si le bit 0 est égale à 0
goto un ; exécutée si le bit 0 est égale à 1
nop
zero bcf porta,RA1 ;met le bit 1 du porta à 0
goto sortir
un bsf porta,RA1 ;met RA1 à 1.
goto sortir
Sortir nop
Exercice :
Refaire le même programme avec les changements/ajouts d’instructions nécessaires, de manière à
ce que le branchement de la fonction btfss, se fait au niveau de l’étiquette « un » et non pas « zéro ».

C. ACTIVER/DESACTIVER UNE SORTIE


OBJECTIF : -Activer (mettre à 1) une variable de sortie (exple : Led).
-Désactiver (mettre à 0) une variable de sortie(exple : Led).
Procédé : pour Activer /Désactiver une sortie on peut utiliser :
- Le registre w.(movlw,movwf).
- Les fonctions bsf/bcf.
Exemple : mettre le bit 3 du porta, en sortie, activer –le puis le désactiver.
Ajouter les lignes suivantes au programme précédent :
bsf porta, 3 ;mettre à 1 le bit 3 du porta (RA3)
bcf porta, 3 ;mettre à 0 le bit RA3.
NB : avant d’écrire ces lignes, il faut s’assurer que RA3 est configuré en sortie.
D. TEMPORISATION.
• Temporisation à un registre :
OBJECTIF : Créer une temporisation à base d’un seul registre (sans calcul de la durée de la
temporisation).
Procédé : On charge un registre avec un nombre puis on le décrémente jusqu’à zéro.
Exemple :
T1 EQU 0D ;un register COMPT se trouve à l’adresse 0Dh

tempo movlw 0x02 ;Charger le registre W avec h’02’


movwf T1 ;Sauvegarder le contenu du registre W dans le registre T1.
S1 decfsz T1;décrémenter le registre T1 et sauter la ligne suivante si le contenu de
;T1 est égal à zéro.
goto S1 ;Aller vers S1(le contenu du T1 est différent de zéro).

return

You might also like