Anda di halaman 1dari 12

Lyce Jacquard Lyce La tourelle Documents ressources N1

1/12 COURS

vendredi 13 avril 2001 TS1EN V 3.1

Assembleurs PIC

Le PIC 16FXX

1. La FAMILLE PIC 16FXX de MICROCHIP.


Caractristiques gnrales importantes
Les PIC 16FXX sont des microcontrleurs 8 bits (largeur du bus de donnes) conus en technologie CMOS (faible consommation lectrique). Tous les PIC 16FXX utilisent une architecture RISC ( -> Processeur jeu dinstructions rduit ). Reduce Instruction Set Computer

La sparation des bus instructions et donnes de larchitecture HARVARD (Annexe), souvent oppose larchitecture VON NEUMAN (Annexe), permet davoir des instructions codes en un seul mot de 14 bits, tout en manipulant des donnes dune largeur classique de 8 bits. Chaque instruction est excute en un seul cycle, lexception des instructions de branchement qui en ncessitent 2. Le temps de cycle est gal quatre fois la priode dhorloge. Ainsi, si un PIC est pilot partir dun quartz de 10 MHz (priode de 100 ns), le temps de cycle sera de 400 ns. On pourra donc excuter 1/ 400 E-9 = 2 500 000 instructions par seconde ( lexception des instructions de branchement), ce qui correspond une puissance de calcul de 2,5 MIPS. Grce cette architecture RISC, un programme ncessite environ deux fois moins despace mmoire et tourne environ deux fois plus vite que sur les systmes architecture classique.

2. Le PIC 16F84
2.1. Prsentation gnrale, spcificits

Voir la premire page du DATA BOOK MICROCHIP. On distingue particulirement : La mmoire programme compose de 1024 mots de 14 bits dEEPROM FLASH (programmation possible en situation); Les 68 octets de RAM 64 octets de EEPROM pour des donnes de configuration ou dexploitation (consignes...) la prsence dun timer et dun chien de garde la prsence dun port A (5 lignes) et dun port B (8 lignes) compatible avec le 16C84

Documents Ressources

1/12

GUILBERT B. VILLERS JM

Lyce Jacquard Lyce La tourelle

2/12

vendredi 13 avril 2001

2.2.

Schma fonctionnel
Voir page 8 du DATA BOOK MICROCHIP.

2.3.

Organisation mmoire
Comme mentionn prcdemment, on distingue 2 zones distinctes :

la zone donne la zone programme possdant chacune leur propre bus.

Documents Ressources

2/12

GUILBERT B. VILLERS JM

Lyce Jacquard Lyce La tourelle

3/12

vendredi 13 avril 2001

2.4.

La zone programme (voir carte ci-dessous)

Le PC (compteur programme) contient 13 bits permettant dadresser 8K x 14 bits (taille dune instruction). Sur le 16F84, seul les 1024 premiers mots sont utiliss et matrialiss par de la mmoire EEPROM. Lespace programme stale donc de 0000h 03FFh. Le vecteur RESET se trouve en 0000h. Lunique vecteur li aux autres interruptions se trouve en 0004h. (Un registre de contrle et dtat des interruptions permet de connatre la source de linterruption survenue (port, timer ...).

Documents Ressources

3/12

GUILBERT B. VILLERS JM

Lyce Jacquard Lyce La tourelle

4/12

vendredi 13 avril 2001

2.5.

La zone de donnes ( FILE )

(Voir carte ci-dessous et page 13 du DATA BOOK de MICROCHIP) Elle est vue par le constructeur comme un fichier ( FILE ). Elle stale de 00h FFh. Une majorit de cet espace est inutilis. On distingue 2 zones distinctes : les registres usage gnral (GPR) qui constituent les 36 octets de RAM du 16F84 les registres usage spcial (SFR) qui sont en fait constitus du registre dtat du noyau du processeur (CORE) et des registres de contrle et dtat des priphriques.

IMPORTANT : La zone de donne est divise en 2 banques. Avant daccder certains registres, il faut sassurer que la banque correspondante est slectionne. Cette slection se fait par laffectation du bit 5 (RP0) du registre STATUS (0 -> Banque 0 / 1 -> Banque 1).

Documents Ressources

4/12

GUILBERT B. VILLERS JM

Lyce Jacquard Lyce La tourelle

5/12

vendredi 13 avril 2001

2.6.

Le jeu dinstruction

2.6.1. Format des instructions.


Comme annonc prcdemment, une instruction est code en un seul mot de 14 bits. Ce mot de 14 bits est compos : dun code opration (OPCODE), dispos sur les bits de poids forts du mot, prcisant le type dinstruction dune ou plusieurs oprande(s), code(s) sur les bits restants, prcisant lopration de linstruction.

On distingue 4 grands types dinstruction : Les instructions orientes octet . Le traitement porte simultanment sur 8 bits Les instructions orientes bit . Le traitement porte sur un seul bit dsign Les instructions de contrle de branchement. Le codage seffectue donc de la faon suivante :

Documents Ressources

5/12

GUILBERT B. VILLERS JM

Lyce Jacquard Lyce La tourelle

6/12

vendredi 13 avril 2001

2.6.2. liste des instructions.


Voir page 51 du DATA BOOK de MICROCHIP. Il faut noter la prsence et limportance du registre W (Working register). Ce registre est en fait lunique accumulateur du processeur. En effet, toute instruction de calcul (addition, soustraction, ET logique...) sollicite lALU qui travaille uniquement sur w et un registre de la zone FILE ( Voir page 8 du DATA BOOK MICROCHIP). Dans le cas des instructions orientes octet , selon ltat du bit d (rang 7) de linstruction, le rsultat de linstruction sera log dans W (d=0) ou dans le registre considr de la zone FILE (d=1).

Exemples :
Soit linstruction ADDWF 0x0C, 1 o 0x0C dsigne le registre 0x0C de la zone FILE (RAM). Cette instruction accomplit le travail suivant : W + (0x0C) --> (0x0C) Son codage sur 14 bits est le suivant : 0 0 0 1 1 1 1 0 0 0 1 1 0 0

ADDWF

0x0C
d=1 rsultat dans le registre considr de la zone FILE.

Sil avait fallu loger le rsultat du calcul dans W, lcriture de linstruction aurait t le suivant :

ADDWF et son codage :


0 0 0 1 1

0x0C, 0

Documents Ressources

6/12

GUILBERT B. VILLERS JM

Lyce Jacquard Lyce La tourelle

7/12

vendredi 13 avril 2001

Exercices :
I - Charger 0x22 dans le premier emplacement RAM.

II - Charger W avec le contenu du 5me emplacement RAM.

III - Ralisez lopration suivante : (0x0C) + (0x0D) -> (0x0E)

IV - Ralisez lopration suivante: (0x0D) x 2 -> W

V - Brancher sur ltiquette LAB1 si (0x0F) = 0 :

LAB1

Documents Ressources

7/12

GUILBERT B. VILLERS JM

Lyce Jacquard Lyce La tourelle


VI -

8/12

vendredi 13 avril 2001

1) Codez le sous-programme ralisant lopration suivante : (0x0C) x (0x0D) -> (0x0E)H / (0x0F)L (multiplication) 2) Calculez le temps dexcution de ce sous-programme si le PIC est cadenc par un quartz de 4.000MHz.

2.7.

Les ports dEntres/Sorties.

Comme tout microcontrleur qui se respecte, Le 16F84 possde un PIA intgr. Plus prcisment : X PORTA RB7 PORTB Un port A dune largeur de 5 bits, X X RA4 RA3 RA2 RA1 RA0

Un port B dune largeur de 8 bits. RB6 RB5 RB4 RB3 RB2 RB1 RB0

Chacune de ces lignes peuvent-tre configures par logiciel en entre ou en sortie. Quelques diffrences lectriques, importantes dans certains cas dutilisation, existent entre ces lignes. Consulter la documentation constructeur. A ces deux registres, PORTA et PORTB correspondent galement deux registres de direction : TRISA et TRISB.

X TRISA TRISB7 TRISB

TRISA4

TRISA3

TRISA2

TRISA1

TRISA0

TRISB6

TRISB5

TRISB4

TRISB3

TRISB2

TRISB1

TRISB0

Documents Ressources

8/12

GUILBERT B. VILLERS JM

Lyce Jacquard Lyce La tourelle

9/12

vendredi 13 avril 2001

Un bit de ces registres 1 positionne la ligne correspondante en entre. Ci-dessous, le schma fonctionnel de la cellule dune ligne du port B : Sur ce schma, on distingue notamment les points suivants : Data Latch : Cette bascule permet de mmoriser ltat dposer sur la ligne dans le cas o celle-ci est utilise en sortie. Les 8 lignes du port B comportent une de ces bascules ce qui constitue le registre de donne du port B (PORTB). -TRIS Latch : Cette Bascule permet de valider ou dinvalider le buffer c. Lorsque un 1 est mmoris dans cette bascule le buffer nest pas valid (Haute impdance - TRI-State). Dans ce cas, la ligne est utilise en entre. Les 8 lignes du port B comportent une de ces bascules ce qui constitue le registre de direction du port B (TRISB). - Une lecture sur le registre de donnes est toujours une lecture de ltat des lignes du port via les buffers b, d et les bascules Latch. Les buffers a permettent une lecture du registre TRISB. Une rsistance de rappel (pull-up) interne au PIC peut-tre dispose sur chaque entre ce qui vite de devoir la rajouter sur le montage lorsque certaines applications en ont besoin. Cette possibilit se slectionne par logiciel laide dun bit du registre OPTION. Cette fonctionnalit, si elle est utilise, sapplique sur toutes les lignes du port B. Le port A ne possde pas cette possibilit.

De plus, lorsquelles sont utilises en entres, les lignes RB4 RB7 peuvent tre configures pour dclencher une interruption lors dun changement dtat sur une de ces quatre entres. Cette fonctionnalit est permise grce aux fonctions logiques A, B, C et Porte IT.

Documents Ressources

9/12

GUILBERT B. VILLERS JM

Lyce Jacquard Lyce La tourelle

10/12

vendredi 13 avril 2001

En effet, la fonction XOR C dlivrent 1 lorsque la valeur obtenue lors de la dernire lecture de la ligne via Latch est diffrente de la valeur actuelle de lentre via Porte IT. La fonction ET C permet dautoriser cette fonctionnalit uniquement lorsque la ligne est en entre. La fonction OU A rassemble les quatre lignes dotes de cette fonctionnalit.

2.8.

Le TIMER

Le TIMER du 16F84 prsente les fonctionnalits classiques suivantes : Compteur 8 bits pouvant tre relu; Horloge interne ou externe; Slection du front actif sur lhorloge externe; Interruption possible sur le passage de 0x00 0xFF; Pr division possible de la frquence dhorloge jusqu 256.

Le schma fonctionnel du TIMER est le suivant :

Remarques importantes :
- Lentre du signal dhorloge dans le cas de lutilisation dune horloge fait sur la patte RA0 qui peut donc tre utilise de deux faons; Le pr diviseur peut aussi tre utilis pour le WATCHDOG. La configuration du TIMER se fait depuis le registre SFR OPTION. externe se

2.9.

Les interruptions

Le 16F84 possde 4 sources dinterruption : Changement dtat de RB4 RB7; Front actif sur RB0, le sens pouvant tre slectionn par logiciel; TIMER; Fin dcriture dans un octet de la EEPROM DATA. Il existe un seul vecteur dinterruption situ ladresse 0x0004 de la mmoire programme (cf 3.2.3.1). Le registre FSR INTCON permet la gestion des interruption.

Documents Ressources

10/12

GUILBERT B. VILLERS JM

Lyce Jacquard Lyce La tourelle

11/12

vendredi 13 avril 2001

En effet, grce ce registre, on peut inhiber ou autoriser une source dinterruption interrompre le CPU, mais aussi dterminer la source dune interruption. On retrouve le rle des bits de ITCON dans le schma suivant :

Exemple : #include "p16F84.inc" org 0 goto debut inter org 4 bcf INTCON,INTF nop retfie

; enlve le Flag dint erruption par RB0

debut bsf bsf fin INTCON,GIE ; demasque les interruptions INTCON,INTE ; autorise linterruption par RB0

goto fin ; boucle infini end Dterminer ce que fait ce programme simple.. trs simple. Exercice VII Proposer un programme qui fasse clignoter une led sur RB1 toute les 200ms (1/400e-3 Hz) Exercice VIII Proposer un programme qui modifie ltat dune LED branche sur RA0 chaque front montant vu sur RB0. (utilisation des interruptions.) Raliser les ORGANIGRAMMES avant les programmes.. Tester et valider les exercices avec MPLAB, puis en rel sur cible PIC16F84.

Documents Ressources

11/12

GUILBERT B. VILLERS JM

Lyce Jacquard Lyce La tourelle

12/12

vendredi 13 avril 2001

Annexe
HARVARD

VON NEUMAN

bus d'adresse Decodeur d'adresse BC CPU

ROM
instructions et donnes

RAM
instructions et donnes

Bus de donne

PERIPHE RIQUE Donnes

Schma simplifi de la structure de Von Neuman


BC: BUS DE CONTROLE

Documents Ressources

12/12

GUILBERT B. VILLERS JM

Anda mungkin juga menyukai