Vous êtes sur la page 1sur 6

Ministère de l’Enseignement Supérieur

‫وزارة اﻟﺘﻌﻠﻴـﻢ اﻟﻌﺎﻟﻴﻮاﻟﺒﺤﺚ اﻟﻌﻠﻤﻲ‬


et de la Recherche Scientifique

Université de Carthage
‫ﺟﺎﻣﻌـﺔ ﻗﺮﻃﺎج‬

Ecole Nationale d’Ingénieurs de Carthage ‫اﻟﻤﺪرﺳـﺔ اﻟﻮﻃﻨﻴﺔ ﻟﻠﻤﻬﻨﺪﺳﻴﻦ ﺑﻘﺮﻃﺎج‬

M I
Travaux pratique N°1 de MICROCONTROLEURS :

KI
Accès à la mémoire RAM du PIC 16F877

HA
Enseignant responsable : Walid HAKIMI
ID
AL
W

Walid HAKIMI Page 1


Travaux pratiques n°1 de microcontrôleurs
Accès à la mémoire RAM du PIC 16F877

1. Objectifs visés :
Le but de ce TP est de programmer des applications simples avec le microcontrôleur 16F877. Ces
différentes applications visent la maîtrise de la gestion d’accès à la mémoire RAM de ce microcontrôleur
sous les deux modes direct et indirect. La simulation des applications seront réalisées à l’aide de MPLAB
SIM..

I
2. Le microcontrôleur 16F877 :

M
2.1. Définition :
Un microcontrôleur est une unité de traitement de l'information de type microprocesseur à laquelle
on a ajouté des périphériques internes permettant de réaliser des montages sans être obligé d’ajouter des
composants annexes Un microcontrôleur peut donc fonctionner de façon autonome après sa programmation.
En ce sens, les PIC sont particulièrement bien dotés, car ils intègrent plusieurs mémoires : de programme et

KI
de données, des ports d'entrée-sortie (numériques, analogiques, PWM, UART, bus I²C, etc.), et une horloge
même si des bases de temps externes puissent être employées. Certains modèles disposent de port et unités
de traitement de l’USB.

2.2. Description et structure interne : HA


Un microcontrôleur est un circuit intégré réunissant tous les éléments d’une structure de base d’un
microprocesseur, il intègre tous les éléments suivant :
• Un microprocesseur (C.P.U.).
• De la mémoire de donnée (RAM et EEPROM).
• De la mémoire programme (ROM, OTPROM, UVPROM ou EEPROM),
• Des interfaces parallèles pour la connexion des entrées / sorties,
• Des interfaces séries (synchrone ou asynchrone) pour le dialogue avec d’autres unités.
• Des TIMERs pour générer ou mesurer des signaux avec une grande précision temporelle,
• Des convertisseurs analogique / numérique pour le traitement des signaux analogiques.
ID

• Le chien de garde (Watchdog) est un système anti-plantage du microcontrôleur.

2.3. Les Pics (Programmable Interface Contrôle) :


 Présentation :
Les Pics sont des composants dits RISC (Reduced Instructions Set Computer), ou encore composant à jeu
AL

d’instructions réduit.
 Familles de Pics :
En réalité les Pics se divisent en trois grandes familles:
 Les Base-Line qui utilisent des instructions à 12 bits.
 Les Mid-Range qui utilisent des instructions à 14 bits.
 Les High-End qui utilisent des instructions à 16 bits.
W

 Identification d’un PIC :


Pour identifier un PIC, on déchiffre simplement son numéro.
 Les 2 premiers chiffres indiquent la catégorie du PIC,
 Ensuite parfois une lettre L celle-ci indique que le PIC peut fonctionner avec une plage de
tension beaucoup plus tolérante.
 C indique que la mémoire programme est une EPROM ou plus rarement une EEPROM
 CR pour indiquer une mémoire de type ROM.
 F pour indiquer une mémoire de type FLASH.

Walid HAKIMI Page 2


Travaux pratiques n°1 de microcontrôleurs
Accès à la mémoire RAM du PIC 16F877

M I
KI
Figure 1: Brochage du microcontrôleur 16F877.

3. La manipulation :
3.1. Mode d’adressage direct : HA
On donne la fonction suivante:

Tempo_1s :
movlw X1; 1 cycle
movwf CMPT1; 1 cycle
dec1 : movlw X2; 1 cycle
movwf CMPT2; 1 cycle
ID

dec2 : movlw X3; 1 cycle


movwf CMPT3; 1 cycle
dec3 : decfsz CMPT3,f;
goto dec3;
AL

decfsz CMPT2,f; 1 cycle ou 2 cycles


goto dec2; 2 cycles
decfsz CMPT1,f ; 1 cycle ou 2 cycles
goto dec1; 2 cycles
return; 2 cycles
W

Figure 2 : Fonction temporisation Tempo_1s.

Q1- Déterminer les valeurs des constantes X1, X2 et X3 pour avoir une durée 1 seconde de
temporisation sachant que Fosc=4MHz.
Q2- Déclarer les constantes X1, X2, X3 et N=0x10 ainsi que sept variables Var0, Var1, Var2,
Var3, CMPT1, CMPT2 et CMPT3 respectivement aux adresses 0x20, 0xA1, 0x122, 0x1A3,
0x30, 0x31 et 0x32.

Walid HAKIMI Page 3


Travaux pratiques n°1 de microcontrôleurs
Accès à la mémoire RAM du PIC 16F877

Q3- Déterminer les valeurs des fusibles à placer dans la directive __CONFIG sous format
hexadécimal pour avoir les options suivantes:
Fusibles de Définition de la fonction des fusibles Mode à choisir
configurations
CP1/CP0 : Protection mémoire programme (Code Protection) → _CP_OFF
Debug : Validation du mode debug en circuit → _DEBUG_ON,

I
WRT : Autorisation d’écriture en flash → _WRT_ENABLE_ON

M
CPD : Protection en lecture de la mémoire EEPROM de → _CPD_OFF
données (Data Code Protection):
LVT : Utilisation de la pin RB3/PGM comme broche de → _LVP_OFF
programmation 5V (Low Voltage Programming)
BODEN : provoque le reset du PIC en cas de chute de tension → _BODEN_ON

KI
(Brown-out Reset) :
PWRTE Délai de démarrage à la mise en service (Power up → _PWRTE_ON
Timer)
WDTE Validation du Watchdog timer → _WDT_OFF
FOSC1/FOSC0 Sélection du type d’oscillateur
HA → _XT_OSC

Q4- Déterminer le code d’un programme assembleur de l’organigramme 1 suivant :

Début

Var0←0, Var1←0,
Var2←0 et Var3←0
ID

Tempo_1s

Incrémenter Var0, Var1, Var2 et Var3


AL

Var0=N

Fin

Figure 3 : Organigramme 1
W

Q4- Taper et compiler ce programme en assembleur avec le MPASMWIN.


3.2. Mode d’adressage indirect :
Dans cette partie, on conserve le même mode de fonctionnement du microcontrôleur que le mode
d’adressage direct et on suppose que la fonction Tempo_1s est bien définie (Même déclaration de constantes
et de variables nécessaires).
Q1- Ajouter la déclaration de N1, N2 et Adr constantes égalent respectivement à 0x04, 0x10 et
0x20 ainsi que la variable CMPT à l’adresse 0x21.

Walid HAKIMI Page 4


Travaux pratiques n°1 de microcontrôleurs
Accès à la mémoire RAM du PIC 16F877

Q2- Déterminer le code d’un programme assembleur de l’organigramme 2 suivant :

Début

CMPT ← N1

I
Pointer sur le registre d’adresse 0x120

M
en utilisant la constante Adr et le
registre FSR et le bit IRP

INDF ← 0

KI
Incrémenter FSR

Décrémenter CMPT
HA CMPT=0

Tempo_1s

CMPT ← N1
ID

Pointer sur le registre d’adresse 0x120


en utilisant la constante Adr et le
registre FSR et le bit IRP

Incrémenter INDF
AL

Incrémenter FSR

Décrémenter CMPT
W

CMPT=0

Décrémenter FSR

INDF=N2

Fin
Figure 4 : Organigramme 2
Walid HAKIMI Page 5
Travaux pratiques n°1 de microcontrôleurs
Accès à la mémoire RAM du PIC 16F877

Q3- Taper et compiler ce programme en assembleur avec le MPASMWIN.


Q4- Exécuter ce programme et expliquer ce qu’il fait.

M I
KI
HA
ID
AL
W

Walid HAKIMI Page 6

Vous aimerez peut-être aussi