Vous êtes sur la page 1sur 8

CEDT « Le G15 » Architecture et Pratique des systèmes Electrotechnique

Centre d'entreprenariat et de
développement Technique à Microprocesseurs Electronique

Le microcontrôleur PIC 16F877

 Brochage du microcontrôleur PIC 16F877

 Ressources du microcontroleur PIC 16F877

 Mémoires du microcontroleur PIC 16F877

Documentation du microcontrôleur PIC 16F877  1/7  MARS 2016


CEDT « Le G15 » Architecture et Pratique des systèmes Electrotechnique
Centre d'entreprenariat et de
développement Technique à Microprocesseurs Electronique

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 :

Le tableau ci-contre donne les plages de fréquences pour les oscillateurs de


type quartz.

Documentation du microcontrôleur PIC 16F877  2/7  MARS 2016


CEDT « Le G15 » Architecture et Pratique des systèmes Electrotechnique
Centre d'entreprenariat et de
développement Technique à Microprocesseurs Electronique

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.

Documentation du microcontrôleur PIC 16F877  3/7  MARS 2016


CEDT « Le G15 » Architecture et Pratique des systèmes Electrotechnique
Centre d'entreprenariat et de
développement Technique à Microprocesseurs Electronique

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  4/7  MARS 2016


CEDT « Le G15 » Architecture et Pratique des systèmes Electrotechnique
Centre d'entreprenariat et de
développement Technique à Microprocesseurs Electronique

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  5/7  MARS 2016


CEDT « Le G15 » Architecture et Pratique des systèmes Electrotechnique
Centre d'entreprenariat et de
développement Technique à Microprocesseurs Electronique

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

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


16
t = ( 2 – 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  6/7  MARS 2016


CEDT « Le G15 » Architecture et Pratique des systèmes Electrotechnique
Centre d'entreprenariat et de
développement Technique à Microprocesseurs Electronique

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  7/7  MARS 2016


CEDT « Le G15 » Architecture et Pratique des systèmes Electrotechnique
Centre d'entreprenariat et de
développement Technique à Microprocesseurs Electronique

VI. Caractéristiques électriques

Documentation du microcontrôleur PIC 16F877  8/7  MARS 2016

Vous aimerez peut-être aussi