Vous êtes sur la page 1sur 7

Université de Thiès Architecture et Pratique des systèmes Génie Electrique

Institut Universitaire de Technologie à Microprocesseurs Informatique Industrielle

Le microcontrôleur PIC 16F877

Brochage du microcontroleur PIC 16F877

Ressources du microcontroleur PIC 16F877

Mémoires du microcontroleur PIC 16F877

Documentation du microcontrôleur PIC 16F877 1/7 Janvier 2014 O.SOW


Université de Thiès Architecture et Pratique des systèmes Génie Electrique
Institut Universitaire de Technologie à Microprocesseurs Informatique Industrielle

I. Architecture du microcontrôleur PIC 16F877

A partir le l’oscillateur connecté aux bornes OSC1 et OSC2, le


microcontrôleur génère une horloge interne d’une fréquence déterminée.
La période de cette horloge correspond à un cycle du microprocesseur, c’est la
durée minimal pour que le microprocesseur exécute une instruction.
Pour le PIC 16F877, on a :

4
Le tableau ci-contre donne les plages de fréquences pour les oscillateurs de
type quartz.
Documentation du microcontrôleur PIC 16F877 2/7 Janvier 2014 O.SOW
Université de Thiès Architecture et Pratique des systèmes Génie Electrique
Institut Universitaire de Technologie à Microprocesseurs Informatique Industrielle

II. Le jeu d’instruction du microcontrôleur PIC 16F877


INSTRUCTIONS OPERANT SUR REGISTRE (Direct) Indicateurs Cycles
ADDWF F,d W+F {W,F ?d} C,DC,Z 1
ANDWF F,d W and F {W,F ?d} Z 1
CLRF F Clear F Z 1
CLRW Clear W Z 1
CLRWDT Clear Watchdoc timer TO’,PD’ 1
COMF F,d Complémente F {W,F ?d} Z 1
DECF F,d Décrémente F {W,F ?d} Z 1
DECFSZ F,d Décrémente F {W,F ?d} saute si 0 1(2)
INCF F,d Incrémente F {W,F ?d} Z 1
INCFSZ F,d Incrémente F {W,F ?d} saute si 0 1(2)
IORWF F,d W or F {W,F ?d} Z 1
MOVF F,d F {W,F ?d} Z 1
MOVWF F W F 1
RLF F,d Rotation à gauche de F à travers C {W,F ?d} C 1
RRF F,d Rotation à droite de F à travers C {W,F ?d} C 1
SUBWF F,d F-W {W,F ?d} C,DC,Z 1
SWAPF F,d Permute les 2 quartets de F {W,F ?d} 1
XORWF F,d W xor F {W,F ?d} Z 1

INSTRUCTIONS OPERANT SUR BIT


BCF F,b Force à 0 le bit b du registre F 1
BSF F,b Force à 1 le bit b du registre F 1
BTFSC F,b Teste le bit b de F, si 0 saute une instruction 1(2)
BTFSS F,b Teste le bit b de F, si 1 saute une instruction 1(2)

INSTRUCTIONS OPERANT SUR DONNEE (Immédiat)


ADDLW K W+K W C,DC,Z 1
ANDLW K W and K W Z 1
IORLW K W or K W Z 1
MOVLW K K W 1
SUBLW K W-K W C,DC,Z 1
XORLW K W xor K W Z 1

INSTRUCTIONS GENERALES
CALL L Branchement à un sous programme de label L 2
GOTO L Branchement à la ligne de label L 2
NOP Pas d’opération 1
RETURN Retour d’un sous programme 2
RETFIE Retour d’interruption 2
RETLW K Retour d’un sous programme avec K dans W 2
SLEEP Se met en mode standby TO’, PD’ 1
{W,F ?d} signifie que le résultat va soit dans W si d = 0 ou w, soit dans F si d = 1 ou f.
7 6 5 4 3 2 1 0
STATUS IRP RP1 RP0 TO PD Z DC C
T1CON - - T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON
PIR1 PSPIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF

Documentation du microcontrôleur PIC 16F877 3/7 Janvier 2014 O.SOW


Université de Thiès Architecture et Pratique des systèmes Génie Electrique
Institut Universitaire de Technologie à Microprocesseurs Informatique Industrielle

III. Organisation du fichier assembleur du logiciel de programmation MPLAB

II.1. En-tête du fichier assembleur


Un programme commence par les deux lignes suivantes :
LIST p=16f877A
#INCLUDE <p16f877A.inc>

II.2. Configuration des PORTs


Sur le module O.SOW µP le PORTA et le PORTB sont des entrées ; alors que le PORTC, le PORTD
et le PORTE sont des sorties.

II.3. Déclaration d’une variable


Exemple, donner le nom COMPT à la mémoire d’adresse 20h s’écrit : COMPT EQU 20h

II.4. Choix de l’adresse de chargement d’un programme


Exemple, charger les instructions qui suivent à partir de l’adresse 08h s’écrit : ORG 08h

II.5. Les sous programmes usuels


;------------------Sous programme de rotation à droite sur 8 bits d’un registre F-------------Disque 0------
ROT_D_8bits
RRF F,f
BCF F,7
BTFSC STATUS,C
BSF F,7
RETURN

;---------------Sous programme de rotation à gauche sur 8 bits d’un registre F---------------Disque 0------
ROT_G_8bits
RLF F,f
BCF F,0
BTFSC STATUS,C
BSF F,0
RETURN

Documentation du microcontrôleur PIC 16F877 4/7 Janvier 2014 O.SOW


Université de Thiès Architecture et Pratique des systèmes Génie Electrique
Institut Universitaire de Technologie à Microprocesseurs Informatique Industrielle

;-----------Sous programme « TEMPO » de temporisation avec le TIMER1----------------Disque 0------

Le sous programme de temporisation ci-dessous a une dure de :


t = ( 216 – N )*Pred*Tcycle
TEMPO
MOVLW h'XY'
MOVWF T1CON
MOVLW H'UV'
MOVWF TMR1H
MOVLW H'ZT'
MOVWF TMR1L
BCF PIR1,TMR1IF
L200
BTFSS PIR1,TMR1IF
GOTO L200
RETURN

Tcycle est la durée d’un cycle du microprocesseur. Pour le PIC on a :


Tcycle = 4*Tosc
avec Tosc étant la période de l’oscillateur connecté au PIC.
N est un entier qui sera converti en hexadécimale sur 4 chiffres pour obtenir les chiffres U, V, Z et T
des registres TMR1H et TMR1L.
Pred peut prendre la valeur 1, 2, 4 ou 8 selon les valeurs des bits 4 et 5 du registre T1CON de
configuration du Timer1.

Documentation du microcontrôleur PIC 16F877 5/7 Janvier 2014 O.SOW


Université de Thiès Architecture et Pratique des systèmes Génie Electrique
Institut Universitaire de Technologie à Microprocesseurs Informatique Industrielle

IV. Partition de la mémoire RAM du microcontrôleur PIC 16F877


La mémoire RAM est organisée en 4 disques. Pour accéder à un registre il faut d’abord sélectionner
son disque avec les 2 bits RP0 et RP1 du registre STATUS.
STATUS
RP1 RP0 Partition
0 0 Disque 0
0 1 Disque 1
1 0 Disque 2
1 1 Disque 3

Documentation du microcontrôleur PIC 16F877 6/7 Janvier 2014 O.SOW


Université de Thiès Architecture et Pratique des systèmes Génie Electrique
Institut Universitaire de Technologie à Microprocesseurs Informatique Industrielle

VI. Caractéristiques électriques

Documentation du microcontrôleur PIC 16F877 7/7 Janvier 2014 O.SOW

Vous aimerez peut-être aussi