You are on page 1of 96

Informatique industrielle

Carte de dveloppement
EASYPIC 7
contrleur
PIC18F45K22

Licence SPI2 - 2014 Thomas Quiniou 1


Plan
Introduction
Quelques Rappels
Les diffrentes bases de numration (bin, dc, hex)
Reprsentation des nombres (entiers, flottants)
Logique combinatoire et squentielle

Les diffrents types de composant


Les circuits Logiques Programmables (PLD) Langage de description VHDL
Les DSP
Les Contrleurs (assembleur, basic, C, C++)
Les cartes mini-PC type BeagleBone black (OS Linux)

Les contrleurs et en particulier les PICs


Le contrleur PIC 18F45K22
La platine de dveloppement EasyPic7 de chez Lextronics
La carte et ses diffrents modules
Lenvironnement de dveloppement

Langage C embarqu sur contrleur

Licence SPI2 - 2014 Thomas Quiniou 2


Les diffrentes composants
programmables
Les microcontrleurs

Un microcontrleur est un circuit intgr rassemblant dans un mme boitier un


microprocesseur (gnralement peu puissant), plusieurs types de mmoires et
des priphriques de communication (Entres-Sorties).

Les microcontrleurs reprsentent la plus grosse partie


des ventes dans le march des microprocesseur. En effet,
un foyer moyen d'un pays dvelopp est susceptible
d'tre quip de seulement un ou deux microprocesseurs
gnralistes (ordinateurs), mais d'une ou deux douzaines
de microcontrleurs (appareils lectromnagers).

Les microcontrleurs sont des composants microprogramms. Plusieurs


langage sont utiliss : assembleur (bas niveau), Basic, langage C et plus
rcemment C++

Licence SPI2 - 2014 Thomas Quiniou 3


Les microcontrleurs
Un microcontrleur (C) se prsente sous la forme dun circuit intgr runissant tous
les lments dune structure base de microprocesseur. Voici gnralement ce que
lon trouve lintrieur dun tel composant :

un microprocesseur (C.P.U.), avec une largeur du chemin de donnes allant de


4 bits pour les modles les plus basiques 32 ou 64 bits pour les modles les
plus volus,
de la mmoire vive (RAM) pour stocker les donnes et variables,
de la mmoire non volatile (ROM) pour stocker les programmes, diffrentes
technologies EPROM, EEPROM, flash,
souvent un oscillateur pour le cadencement. Il peut tre ralis avec un
quartz, un circuit RC ou encore une PLL,
des priphriques, capables d'effectuer des tches spcifiques.

Licence SPI2 - 2014 Thomas Quiniou 4


Les microcontrleurs
Parmi les priphriques, on peut mentionner entre autre :

les convertisseurs analogiques-numriques (CAN) (donnent un nombre binaire


partir d'une tension lectrique),
les convertisseurs numriques-analogiques (CNA) (effectuent l'opration
inverse),
les gnrateurs de signaux modulation de largeur d'impulsion (MLI, ou en
anglais, PWM pour Pulse Width Modulation),
les timers/compteurs (compteurs d'impulsions d'horloge interne ou
d'vnements externes),
les chiens de garde (watchdog),
les comparateurs (comparent deux tensions lectriques),
les contrleurs de bus de communication (UART, IC, SSP, CAN, FlexRay,
USB, Ethernet, etc.).

Licence SPI2 - 2014 Thomas Quiniou 5


Les microcontrleurs
Un microcontrleur est donc une unit de traitement de linformation de type
microprocesseur laquelle on a ajout des priphriques internes permettant de
raliser des montages sans ncessiter lajout de composants externes.

Plusieurs Constructeurs se partagent le march des microcontrleurs, citons INTEL,


MOTOROLA, SEAGATE-THOMSON, AMTEL, ZILOG, PHILIPS et enfin MICROCHIP
avec ses PICs trs populaires qui nous intressent ici dans ce cours.

Les C sont bass sur 2 architectures


possibles, Von Neumann (INTEL80XX,
motorola HC05, HC08 et HC11, ou
ZILOG Z80) ou Harvard (PIC).

EXEMPLES DE MICROCONTRLEURS

Licence SPI2 - 2014 Thomas Quiniou 6


Les microcontrleurs
De nombreux microprocesseurs et microcontrleurs actuels utilisent une architecture
interne dite de Von Neumann, cest--dire en fait une architecture commune celle
que lon rencontre habituellement dans les micro-ordinateurs. La mmoire, appele
improprement de programme, contient en fait des instructions et des donnes places
la suite les unes des autres et lon ne dispose que dun bus, appel bus de donnes,
pour vhiculer tour tour les codes des instructions et les donnes qui leur sont
associes comme le montre la suivante.

Licence SPI2 - 2014 Thomas Quiniou 7


Les microcontrleurs
Si cette architecture donne toute satisfaction comme vous en avez la preuve
clatante chaque jour, elle pose quelques problmes ds que lon veut faire
fonctionner lensemble rapidement. En effet, lexcution dune seule instruction
ncessite plusieurs changes de donnes sur le seul et unique bus dvolu cet usage
puisquil faut tout dabord aller chercher le code de linstruction puis le ou les donnes
quelle doit manipuler.

Il est alors prfrable de faire appel une architecture dite Harvard dans laquelle
les instructions et les donnes sont clairement diffrencies et sont vhicules sur
des bus diffrents. Vu de lutilisateur, cela ne change rien bien sr et les circuits de
ce type sutilisent exactement comme les autres. En revanche, les rsultats obtenus,
en termes de vitesse dexcution des programmes, peuvent tre impressionnants.

Licence SPI2 - 2014 Thomas Quiniou 8


Les microcontrleurs
En effet, lexcution dune instruction ne fait plus appel qu un seul cycle machine
puisque lon peut simultanment, grce aux deux bus, rechercher le code de
linstruction et la ou les donnes quelle manipule.

Rompant avec une tradition bien tablie, les microcontrleurs PIC de Microchip,
toutes familles confondues, utilisent une architecture Harvard mais ce nest pas tout

Licence SPI2 - 2014 Thomas Quiniou 9


Les microcontrleurs
MICROPROCESSEURS RISC ET CISC

Les microprocesseurs CISC (Complex Instruction Set Computing) sont dots dun jeu
tendu dinstructions complexes. Ces instructions sont relativement lentes. Les
microprocesseurs CISC privilgient la puissance de traitement au dtriment de la
rapidit.

Les microprocesseurs RISC (Reduced Instruction Set Computing) sont munis dun jeu
rduit dinstructions simples (75 pour les PIC 18F). Ces instructions sont adaptes et
sont trs rapides. Les PICs sont des P de type RISC.

PIC : architecture Harvard + RISC

Licence SPI2 - 2014 Thomas Quiniou 10


Les microcontrleurs
Langage de programmation des P - Les programmes peuvent tre crits trois
niveaux diffrents :

Langages volus
Pascal, Basic, Langage C, etc

Assembleur (mnmonique et oprande),

Langage machine (binaire ou hexadcimal).

Licence SPI2 - 2014 Thomas Quiniou 11


Les microcontrleurs
Langage de programmation des P - Exemples

Langage C

Assembleur

Hexadcimal

Licence SPI2 - 2014 Thomas Quiniou 12


Les microcontrleurs
Les P PICs

Les microcontrleurs PIC (ou PICmicro dans la terminologie du fabricant) forment


une famille de microcontrleurs de la socit Microchip. Le nom PIC n'est pas
officiellement un acronyme, bien que la traduction en Peripheral Interface
Controller (contrleur d'interface priphrique) soit gnralement admise.

Famille de PICS : La famille des PICs est subdivise lheure actuelle en 3 grandes
familles : La famille Base-Line, qui utilise des mots dinstructions de 12 bits, la
famille Mid-Range, qui utilise des mots de 14 bits (et dont font partie les 16F877A
et 18F45K22), et la famille High-End, qui utilise des mots de 16 bits.

Pic 18F45K22 quipant la


carte de test Easypic7

Licence SPI2 - 2014 Thomas Quiniou 13


Les microcontrleurs
2 chiffres : famille du PIC (10, 12, 16, 17, 18, 24, 30, 32, 33) le PIC14 existe,
c'est le PIC14000.

1 lettre : type de mmoire de programme (C ou F). Le F indique en gnral qu'il


s'agit d'une mmoire flash et donc effaable lectroniquement. La lettre C indique
en gnral que la mmoire ne peut tre efface que par exposition aux ultra-violets
(exception pour le PIC16C84 qui utilise une mmoire EEPROM donc effaable
lectriquement). Un L peut tre ajout devant pour indiquer qu'il s'agit d'un modle
basse tension (exemple : 2 V 5,5 V si LF 4,2 V 5,5 V si F).

un nombre de 2 4 chiffres : modle du PIC au sein de la famille. Toutefois il y a


maintenant des exceptions : PIC18F45K22 par exemple.

un groupe de lettres pour indiquer le botier et la gamme de temprature.

Par exemple, le PIC18LF4682-I/P est un microcontrleur de la famille PIC18, basse


tension (L), mmoire flash (F), modle 4682, gamme de temprature industrielle (I)
et botier DIL40.
Licence SPI2 - 2014 Thomas Quiniou 14
Les microcontrleurs

Licence SPI2 - 2014 Thomas Quiniou 15


Les microcontrleurs

Licence SPI2 - 2014 Thomas Quiniou 16


Les microcontrleurs
Le PIC 18F45K22 (quipant le carte de test Easypic7)

Brochage

Licence SPI2 - 2014 Thomas Quiniou 17


Les microcontrleurs
8 E/S 8 E/S 8 E/S 8 E/S 4 E/S

PORTD PORTC PORTB PORTA PORTE 16 bits : config

CAN Multiplieur Mmoire


(10-bit) 88 programme
3 Timers
2 CCP de type
(8-bit) W
Flash
Chien de
3 ECCP 4 Timers 161024
garde
(16-bit) mots de 16
WDT ALU
bits

RAM
2 MSSP Horloge EEPROM
(1536 octets)
2 USART (I2C, SPI) systme (256 octets)

- TIMERS : Microchip appelle TIMER des compteurs Bloc diagramme du PIC 18F45K22
- WDT : Watch Dog Timer (Chien de garde)
- (E)CCP : (Enhance)Capture/Compare/PWM
- Capture : permet la mesure de temps
- Compare : permet la production de signaux rectangulaires
- MSSP : Master Synchronous Serial Port (Port Srie Synchrone Matre)
- SPI : communications sries synchrones sans protocole logiciel
- I2C : standard Philips, communications sries synchrones avec protocole logiciel
- A/E/USART : (Addressable/Enhanced) Universal Synchronous Asynchronous Receiver Transmitter (RS232 RS485)
- CAN : convertisseur analogique numrique sur 10 bits 28 entres multiplexes
Licence SPI2 - 2014 Thomas Quiniou 18
Les microcontrleurs
Bloc diagramme du PIC 18F45K2 (quipant le carte de test Easypic7)
Mmoire Programme (8 bits data 21 bits @)

Mmoire Data
(8 bits data 12 bits @)

Le PIC18 possde une multiplication 8x8 matrielle,


extrmement rapide (100nS 1uS) ce qui lui confre
des possibilits de DSP particulirement utiles pour le
traitement numrique du signal.

Licence SPI2 - 2014 Thomas Quiniou 19


Les microcontrleurs

Horloges
externes

Licence SPI2 - 2014 Thomas Quiniou 20


Les microcontrleurs

Licence SPI2 - 2014 Thomas Quiniou 21


Les microcontrleurs

VDD : Positive supply for logic and I/O pins.

VSS : Ground reference for logic and I/O pins.

Licence SPI2 - 2014 Thomas Quiniou 22


Les microcontrleurs
Les lments de base du PIC 18F45K22
Lhorloge :
Il existe diffrents types dhorloge (on compte jusqu 12 types sur certains PIC). Elle
peut tre soit interne, soit externe.

Avec une horloge externe et un oscillateur quartz, on


peut avoir des frquences allant jusqu' 64 MHz. Le
filtre passe bas (Rs, C1, C2) limite les harmoniques dus
lcrtage et rduit lamplitude de loscillation, il n'est
pas obligatoire.

Quelque soit l'oscillateur utilis, l'horloge systme dite aussi horloge instruction est
obtenue en divisant la frquence par 4. Dans la suite de ce document on utilisera le
terme Fosc/4 pour dsigner l'horloge systme. Avec un quartz de 4 MHz, on obtient une
horloge instruction de 1 MHz, soit le temps pour excuter une instruction de 1s.
La configuration de lhorloge seffectue via plusieurs registres de configuration :
CONFIG1H, OSCON, OSCTUNE etc.
Licence SPI2 - 2014 Thomas Quiniou 23
Les microcontrleurs
Les lments de base du PIC 18F45K22

Horloge externe secondaire

Horloge externe primaire


(quartz jusqu 16 MHz)

Horloge interne primaire 16 MHz


(jusqu 64 MHz si par 4 via PLL)
PLL . Phase Lock Loop,
permet de multiplier en
interne la frquence par
4 (frquence dentre
entre 4 et 16 MHz)
Horloge interne secondaire 31.25 kHz

Licence SPI2 - 2014 Thomas Quiniou 24


Les microcontrleurs
L'ALU et laccumulateur W
LALU est une Unit Arithmtique et Logique 8 Bits qui ralise les oprations arithmtiques et
logiques de base. Laccumulateur W est un registre de travail 8 bits, toutes les oprations
deux oprandes passe par lui. On peut avoir :
Une instruction sur un seul oprande qui est en gnral un registre situ dans la RAM
Une instruction sur 2 oprandes. Dans ce cas, lun des deux oprandes est toujours
laccumulateur W, lautre peut tre soit un registre soit une constante.

Pour les instructions dont un des oprandes est un registre, le rsultat peut tre rcupr soit
dans laccumulateur, soit dans le registre lui-mme.

Oprandes = paramtre (variable ou constante) dune opration

Licence SPI2 - 2014 Thomas Quiniou 25


Les microcontrleurs
Organisation Mmoire

Les PIC18 sont architecture HAVARD. Les espaces mmoires programmes et


donnes (appels registres, les registres des priphriques sont appels registres
spciaux) sont distincts. Ceci implique la cration dinstructions et de processus
diffrents pour laccs donnes en ROM et en RAM.

21 12

Mmoire Programme Mmoire Data


2^21 = 2097152 2^12 = 4096
2Mo adressable au maximum 4ko adressable au maximum

Licence SPI2 - 2014 Thomas Quiniou 26


Les microcontrleurs
Organisation de la mmoire RAM (Data)

Lespace mmoire RAM est divise


artificiellement en 16 pages ou banques
(banks), dune taille fixe de 256 octets
chacune (de 00h FFh).
Les registres SFR (Special Function
Registers) qui sont les registres de
configuration du PIC se trouvent en partie
haute de la mmoire, en page 15 (de F38h
Zone mmoire non
mappe avec le
FFFh). PIC18F45K22, mais
elle peut ltre avec
Les positions restantes (en partie basse) dautres variantes

constituent les registres GPR (General


Propose Registers) ou RAM utilisateur.

Licence SPI2 - 2014 Thomas Quiniou 27


Les microcontrleurs
Organisation de la mmoire RAM

Compte tenu de la taille dune page, qui est de 256 octets, il suffit donc de 8 bits pour
adresser nimporte quel lment au sein de cette dernire. Comme le montre la figure
suivante, ces 8 bits font toujours partie intgrante du code de linstruction.

4 bits 12 bits 8 bits


Pour savoir quelle adresse complte
sera rellement adresse par telle ou
telle instruction, il faut donc
connatre galement le numro de
page mmoire utilise, numro qui est
cod dans un registre spcifique
appel BSR (Bank Select Register).

Licence SPI2 - 2014 Thomas Quiniou 28


Les microcontrleurs
Registres de configuration (SFR) avec leurs adresses

Licence SPI2 - 2014 Thomas Quiniou 29


Les microcontrleurs
Registres de configuration (SFR) avec leurs adresses (suite)

Licence SPI2 - 2014 Thomas Quiniou 30


Les microcontrleurs

Dtail de quelques registres SFR et leurs tats au dmarrage

Licence SPI2 - 2014 Thomas Quiniou 31


Les microcontrleurs
EXEMPLE : Le registre STATUS ou registre dtat ( @ FD8h ).

Ce registre, prsent sur tous les contrleur avec parfois des noms lgrement
diffrents selon les fabricant, a pour principal vocation dindiquer sous forme
code le rsultat de la dernire opration ralise par lUnit Centrale. Son
contenu est donc principalement utilis par les instructions de test.

Chaque bit de ce registre a une signification particulire :

Licence SPI2 - 2014 Thomas Quiniou 32


Les microcontrleurs
Le registre STATUS

Licence SPI2 - 2014 Thomas Quiniou 33


Les microcontrleurs
La mmoire EEPROM de donnes (256 Octets)
Le PIC 18F45K22 dispose de 256 octets (00h FFh) de mmoire EEPROM de donne
(mmoire non volatile). Cette mmoire permet la lecture et lcriture de donnes par
lintermdiaire de 4 ou 5 registres particuliers :

EECON1 : registre de control 1


EECON2 : registre de control 2
EEDATA : registre de donne
EEADR : registre dadresse (adressage sur 8 bits 256 octets)
EEADRH : registre dadresse (extensions 1024 octets par ajout de 2
bits supplmentaires)

La procdure de lecture/criture dans lEEPROM est dtaille dans la datasheet du PIC,


nous nen parlerons pas ici. Si nous devions programmer en assembleur, il nous faudrait
cependant connatre le droulement des oprations.

256 octets est une trs petite mmoire pour stocker des donnes. Dans certaines cas, cela
peut tre suffisant mais trs souvent on rajoute une mmoire de stockage externe
(composant EEPROM ou carte Flash). Par exemple : datalogger.
Licence SPI2 - 2014 Thomas Quiniou 34
Les microcontrleurs
La mmoire Programme ou mmoire flash (32 ko)

Cette mmoire de 16 x 1024 mots de 16 bits sert stocker le


programme, mais elle est accessible par programme et peut
donc tre utilise comme une extension de la mmoire EEPROM
de donnes. Elle est non volatile (flash) et reprogrammable
souhait (enfin , presque).

La mmoire programme stend linairement de ladresse 0000h


ladresse la plus leves permise compte tenu de la taille
mmoire du circuit choisi. Dans le cas du Pic 18F45K22, il sagit
de ladresse 7FFFh. Au total, ce sont donc 32768 vecteurs de 8
bits que lon peut adresser (32 ko). Mais comme chaque
instruction est au minimum code sur 2 octets, le compteur
ordinal ou PC, volue de 2 en 2.

Licence SPI2 - 2014 Thomas Quiniou 35


Les microcontrleurs
La mmoire Programme ou mmoire flash (32 ko)
Chaque position de 16 bits contient une instruction.
L'emplacement du programme peut se situer
n'importe quel endroit de la mmoire. Cependant il faut
savoir que suite un RESET ou lors de la mise sous
tension, le PIC commence l'excution l'adresse 0000h.
De plus, lorsqu'il y a une interruption, le PIC va
l'adresse 0008h (haute priorit) ou 0016h (basse
priorit) . Lorsque lon programme en bas niveau
(assembleur), il est donc ncessaire de bien organiser le
programme si celui-ci utilise des interruptions.

Le programme excutable par le PIC est implant dans


la mmoire flash l'aide d'un programmateur sur lequel
nous reviendrons en TP lorsque nous utiliserons la carte
easypic7.
Licence SPI2 - 2014 Thomas Quiniou 36
Les microcontrleurs
Les ports dE/S

Le PIC 18F45K22 dispose de 5 ports parallles (de A E) pour un total de 36 lignes


dEntre/Sortie (E/S). Chaque port ses particularits. Quasiment toutes les lignes
dE/S sont multiplexes avec dautres ressources internes, les priphriques (UART
etc.). En gnral, quand un priphrique est activ, les connections concernes ne
peuvent plus utilises comme E/S gnrale.

Chaque port parallle est command par cinq registres (x=A, B, C, D ou E) :

- un registre appel PORTx, ou registre de donnes, fonctionnant en entre/sortie logique

- un registre appel LATx ou registre tampon (Latch en anglais), ne fonctionnant quen sortie

- un registre appel TRISx, ou registre de sens de fonctionnement du port (entre ou sortie)

- un registre appel ANSELx pour le contrle des entres analogiques

- un registre appel SLRCON permettant le contrle du Slew Rate (vitesse de balayage, permet de
limiter les problme dIEM, Interfrence ElectroMagntique)

Licence SPI2 - 2014 Thomas Quiniou 37


Les microcontrleurs
Les ports dE/S Maintien le bit en sortie

Buffer de sortie
La figure suivante prcise la structure de chaque ligne
de port au moyen dun schma de principe gnral. Elle
permet de comprendre lessentiel des fonctionnalits
des ces lignes, savoir que les donnes de sortie sont
latches (mmorises), alors que les donnes en
entres ne le sont pas et sont donc lues en temps
rel .

Pour lire une valeur logique en entre, on utilisera le


registre PORTx (PORTA par exemple). Pour crire une
valeur logique en sortie, on utilisera le registre LATx
(LATA par exemple).

Dtermine si la broche
est en entre ou sortie

Licence SPI2 - 2014 Thomas Quiniou 38


Les microcontrleurs Interrupteur
=
Transistor
Remarque : les rsistances de tirage (pull-up / pull-down)

Lorsquune sortie est drain ouvert, pour l'utiliser comme sortie logique, il
faut ajouter une rsistance de pull-up externe. Le schma de droite illustre
le principe d'une sortie drain ouvert (ou collecteur ouvert) : si le port est
positionne 0, l'interrupteur est ferm, la sortie est relie la masse,
c'est un niveau bas. Si le port est place 1, l'interrupteur est ouvert, la
sortie serait dconnecte s'il n'y avait pas la rsistance externe qui place
la sortie au niveau haut.

Contrairement une sortie classique, le port en collecteur ouvert permet dalimenter une charge
avec une tension diffrente de celle du contrleur (Vdd = 12V par exemple).

Si on veut utiliser ce type de port pour allumer une LED, on peut utiliser le
schma ci-dessous. Il faut juste remarquer que la logique est inverse, si
on envoie 0 sur le port, l'interrupteur se ferme et la LED s'allume. Si on
envoie 1, l'interrupteur s'ouvre et la LED s'teint.

Licence SPI2 - 2014 Thomas Quiniou 39


Les microcontrleurs
Remarque : rsistances de pull-up et pull-down

On utilise une rsistance de pull-up lorsque


linterrupteur est connect la masse. Sil est
connect lalimentation, on utilisera une
rsistance de pull-down.

Dans certains cas, les rsistances de


pull-up ou pull-down sont directement
intgres dans le composant (par
exemple, pull-up sur le PortB du PIC
18F45K22)

Licence SPI2 - 2014 Thomas Quiniou 40


Les microcontrleurs
A - Le port d' E/S PORTA

Le port A dsign par PORTA est un port bidirectionnel de 8 bits (RA0 RA7). La
configuration de direction se fait l'aide du registre TRISA, positionner un bit de
TRISA 1 configure la broche correspondante de PORTA en entre et inversement.
Au dpart toutes les broches sont configures en entre.

Les broches RA6 et RA7 peuvent tre utilises en E/S ou comme lignes dentre de
loscillateur principal.

La ligne RA4 est quant elle multiplexe avec lentre dhorloge externe du Timer 0
(T0CKL) et lune des sorties du comparateur 1 (C1OUT). Elle est parfois nomme
RA4/T0CKL/C1OUT.

Les autres lignes RA0 RA3 et RA5 sont partages avec les entres du convertisseur
analogiques/numrique (CAN), les entres Vref+ et Vref-, la tension de rfrence de
sortie du comparateur etc.

Les lignes RA0 RA5 peuvent aussi tre utilises comme entres ou sorties du
comparateur.

Licence SPI2 - 2014 Thomas Quiniou 41


Les microcontrleurs

Licence SPI2 - 2014 Thomas Quiniou 42


Les microcontrleurs
B - Le port d' E/S PORTB
Le port B dsign par PORTB est un port bidirectionnel de 8 bits (RB0 RB7).
Prsence, sur toutes les lignes de ce port, de rsistances de pull-up (rsistance
de tirage de niveau haut) de forte valeur. Elle peuvent tre invalides
simultanment par la mise au niveau 1 du bit RPBU du registre INTCON2. Par
contre, lorsquelles sont valides par la mise 0 de ce mme bit, cette validation
nest effective que pour les lignes du port B qui sont places en entre.
La configuration de direction se fait l'aide du registre TRISB, positionner un
bit de TRISB 1 configure la broche correspondante de PORTB en entre et
inversement. Au dpart toutes les broches sont configures en entre.
En entre, une quelconque des lignes RB4 RB7 peut dclencher, sur changement
dtat, une interruption (scrutation dun clavier par exemple ; le contrleur
reste en veille tant quaucune touche nest active). Cette fonction peut tre
valide au moyen du bit RBIF du registre INTCON.
Comme tous les autres ports, le port B peut tre partage avec une ou plusieurs
autres ressources internes.
Licence SPI2 - 2014 Thomas Quiniou 43
Les microcontrleurs
C - Les ports d' E/S C et D

Les ports C et D sont des ports bidirectionnel de 8 bits (RC0 RC7).

La configuration de direction se fait l'aide des registres TRISC et TRISD,


positionner un bit de TRISC (TRISD) 1 configure la broche correspondante de
PORTC (PORTD) en entre et inversement. Au dpart toutes les broches sont
configures en entre.

Toutes les broches du port C (port D) peuvent tre utilises soit comme E/S
normales soit comme broches d'accs diffrents modules comme les timers, les
modules de comparaison et de capture CCP1/2, le port I2C ou encore le port
srie (EUSART).

Pour lutilisation dune broche du port C ou D comme E/S normale, il faut


sassurer quelle na pas t affecte un de ces modules.

Licence SPI2 - 2014 Thomas Quiniou 44


Les microcontrleurs
E - Le port d' E/S PORTE

PORTE contient seulement 3 bits RE0, RE1 et RE2. Les 3 sont configurables en
entre ou en sortie laide des bits 0, 1 ou 2 du registre TRISE.

Un exemple simple : clignotement des LED du port B (mode pull-up dsactiv)

Connexions sur la carte EasyPic Programme C

Licence SPI2 - 2014 Thomas Quiniou 45


Les microcontrleurs
Les Interruptions :

Une interruption(*) provoque larrt du programme principal pour aller excuter une
procdure d'interruption. A la fin de cette procdure, le microcontrleur reprend
le programme principal lendroit o il la laiss.

Le PIC 18F45K22 possde plusieurs sources dinterruptions (primaires ou


priphriques) qui peuvent tre configures selon un niveau de priorit haute
(@ 0008h) ou basse (@ 0018h), grce au registre IPRx. Seule linterruption INT0
ne possde pas de niveau de priorit (toujours leve).

En gnral, chaque interruption sont associs trois bits, un bit de validation (PIE),
un bit drapeau (PIR) un bit de priorit (IPR). Le premier permet d'autoriser ou non
l'interruption, le second permet au programmeur de savoir de quelle interruption il
s'agit et le troisime donne le niveau de priorit.
(*) Evnement provoqu par exemple : la fin dune conversion A/N, la fin de programmation dun
octet dans lEEPROM, la rception dune information, la dtection dun front, etc

Licence SPI2 - 2014 Thomas Quiniou 46


Les microcontrleurs
Schma de principe de la circuiterie de prise en compte des interruptions

Licence SPI2 - 2014 Thomas Quiniou 47


Les microcontrleurs
Les Interruptions :

Il existe 2 niveaux de fonctionnement (bit 7 du registre RCON - IPEN):

en mode non hirarchis IPEN.RCON = 0, dans ce cas toutes les interruptions


ont la mme priorit (haute)

en mode hirarchis IPEN.RCON = 1, dans ce cas les 2 niveaux de priorit sont


activs, par dfaut en mode haute priorit. Il vous appartient donc de dfinir
individuellement les interruptions de basse priorit, registre IPRx. Une
interruption de priorit haute peut interrompre une interruption de niveau bas.

Par ailleurs, il est possible dactiver toutes les interruptions ou seulement les
interruptions primaires (si IPEN=0) ou de niveau bas (si IPEN=1) en jouant sur les
bits 6 et 7 du registre INTCON.

Licence SPI2 - 2014 Thomas Quiniou 48


Les microcontrleurs
Les Interruptions : registres associs

Gestion globale + interruptions primaires

INTCON : INTerrupt CONtrol

IPR : Interrupt Priority Register

PIE : Peripheral Interrupt Enable

PIR : Peripheral Interrupt Register

Gestion des interruptions priphriques

RCON : Reset Control Register

Licence SPI2 - 2014 Thomas Quiniou 49


Les microcontrleurs
Le registre INTCON

Lorsque la hirarchisation des interruptions nest pas autorise (bit IPEN=0), le bit7 du
registre INTCON sappelle GIE et le bit6 sappelle PEIE

Toutes les interruptions peuvent tre valides/interdites par le bit INTCON.GIE


Toutes les interruptions priphriques peuvent tre valides/interdites par le bit
INTCON.PEIE
Chaque interruption peut tre valide/interdite par son bit de validation individuel

En rsum, pour valider une interruption priphrique (par exemple) en mode


non hirarchis, il faut positionner 4 bits:

- IPEN 0

- GIE, PEIE et le bit individuel de linterruption (PIE) 1

Licence SPI2 - 2014 Thomas Quiniou 50


Les microcontrleurs
Le registre INTCON

Lorsque la hirarchisation des interruptions est autorise (bit IPEN=1), le bit7 du registre
INTCON sappelle GIEH et le bit6 sappelle GIEL.

Toutes les interruptions peuvent tre valides/interdites par le bit INTCON.GIEH


Toutes les interruptions de priorit basse peuvent tre valides/interdites par le bit
INTCON.GIEL
Chaque interruption peut tre valide/interdite par son bit de validation individuel

En rsum, pour valider une interruption priphrique (par exemple) en basse


priorit, il faut positionner 5 bits:

- IPEN 1

- Le niveau de priorit de linterruption 0 (basse priorit)

- GIEH, GIEL et le bit individuel de linterruption 1


Licence SPI2 - 2014 Thomas Quiniou 51
Les microcontrleurs
Les Timers

Un timer est un compteur prpositionnable qui compte ou dcompte au rythme dune


horloge interne ou externe. Les PICs 18F45K22 disposent de 7 timers, 3 de 8 bits
et 4 de 16 bits.

- Le timer 0 (8 ou 16 bits): il peut tre incrment par des impulsions


extrieures via la broche (TOCKI/ RA4) ou par lhorloge systme (Fosc/4).

- Les timers 1/3/5 (16 bits): ils peuvent tre incrments soit par lhorloge
interne(Fosc), par lhorloge systme (Fosc/4), par des impulsions sur les
broches TxCKI (RC0/RB5/RC2) ou encore par un oscillateur (RC ou quartz)
connect sur les broches SOSC0/RCO et SOSC1/RC1.

- Le timers 2/4/6 (8 bits) : ils sont incrments par lhorloge systme


(Fosc/4), celle-ci peut tre prdivise par 4 ou 16.

Tous ces timers peuvent dclencher une interruption interne.

Licence SPI2 - 2014 Thomas Quiniou 52


Les microcontrleurs
Le TIMER0 :

Cest le plus ancien des timers implants dans les PICs, son ancienne appellation
tait RTC, pour Real Time Clock (horloge temps relle). Cest aussi le plus simple car
il est autonome, cest--dire quil nest pas associ dautres ressources internes.

On peut sen servir pour gnrer des vnements priodiques, comme le


clignotement de LEDs ou lincrmentation de variables (secondes, minutes ).

Il peut fonctionner en mode 8 bits (comptage de 00 FF) ou en mode 16 bits


(comptage de 0000 FFFF).

Il est incrment soit par lhorloge systme (Fosc/4), soit par un front montant ou
descendant appliqu sur la broche TOCKI/RA4.

Il est configur par les registres T0CON, TMR0L, TMR0H et les registres
INTCON, INTCON2 (interruptions) et TRISA (broche RA4).

Licence SPI2 - 2014 Thomas Quiniou 53


Les microcontrleurs
Commutateurs (switch)
Le TIMER0 en mode 8 bits

- Un premier commutateur, command par le bit T0CS, permet de slectionner lorigine de la source
(horloge systme ou front sur la broche T0CKL).
- Le ou exclusif, via le bit T0SE, permet de slectionner le front montant ou descendant sur la
broche T0CKL (lorsque cette source est active).
- Le module Programmable Prescaler permet de fixer le taux de division de lhorloge. Il est
command par 3 bits, T0PS<2:0>.
- Le second commutateur, command par le bit PSA, permet de slectionner ou non le prdiviseur.
- Le registre TMR0L (sur 8 bits) est accessible en lecture/criture. Il contient la valeur courante
du comptage et doit au pralable tre charg par une valeur initiale.
Licence SPI2 - 2014 Thomas Quiniou 54
Les microcontrleurs
Les registres associs au TIMER0

TMR0L seul : si compteur 8 bits

TMR0L + TMR0H : si compteur 16 bits

Principe de fonctionnement : quand le contenu du timer 0 passe de FF 00 (si mode 8 bits,


registre TMR0L), le bit TMR0IF passe 1 pour signaler un dbordement ; si le bit TMR0IE est 1,
alors une interruption timer 0 est dclenche.

Licence SPI2 - 2014 Thomas Quiniou 55


Les microcontrleurs

Le registre T0CON

Valeurs du prdiviseur
De 2 256

Licence SPI2 - 2014 Thomas Quiniou 56


Les microcontrleurs
Le TIMER2 (/4/6)

Cest un timer 8 bits, son horloge ne peut tre que lhorloge systme (Fosc/4). Il est
compos dun registre 8 bits appel TMR2, associ un prdiviseur, un postdiviseur
ainsi qu un registre dit de priode appel PR2.

Ici, x=2

Remarque : La sortie du comparateur dgalit entre le contenu de TMR2 et PR2 peut tre utilis
par dautres ressources internes. En particulier, par le module de modulation de largeur
dimpulsions (PWM).

Licence SPI2 - 2014 Thomas Quiniou 57


Les microcontrleurs
Les registres associs au TIMER2 (/4/6)

Licence SPI2 - 2014 Thomas Quiniou 58


Les microcontrleurs

Le registre TxCON
X=2 ici

Valeurs du postdiviseur
De 1 16

Valeurs du prdiviseur
1 4 - 16

Licence SPI2 - 2014 Thomas Quiniou 59


Les microcontrleurs
Le Watchdog Timer WDT (Chien de garde)

Cest un compteur 8 bits incrment en permanence (mme si le C est en mode


sleep) par une horloge RC intgre indpendante de l'horloge systme.

Lorsquil dborde (WDT TimeOut), deux situations sont possibles :

- Si le C est en fonctionnement normal, le WDT time-out provoque un RESET.


Ceci permet dviter les situation de blocage du microcontrleur par un
processus indsirable non contrl

- Si le C est en mode SLEEP, le WDT time-out provoque un WAKE-UP,


l'excution du programme continue normalement l o elle s'est arrte avant
de rentrer en mode SLEEP. Cette situation est souvent exploite pour raliser
des temporisations

Licence SPI2 - 2014 Thomas Quiniou 60


Les microcontrleurs
La modulation PWM (Pulse Width Modulation)
Principe : un signal PWM est caractris par sa priode et son rapport cyclique.

Period = Priode
Pulse Width = Largeur dimpulsion
Duty Cycle Ratio = Rapport cyclique = Pulse Width/Period

Priode = (PRx + 1) 4 TOSC (Contenu du prdiviseur de TMRx )


Largeur = DCx TOSC (Contenu du prdiviseur de TMRx ) Si utilisation dun module
Rapport Cyclique = DCx /[4 (PRx + 1)] CCP du MCU

o DCx = CCPRxH : CCPxCON < 5 : 4 >

Lune des application classique de cette modulation est le contrle de moteurs (mode PWM tendu
ou EPWM). Mais elle peut galement tre mise en uvre pour contrler le Buzzer sur la carte
EasyPic7 : note (priode du signal et donc frquence), volume (rapport cyclique). Deux possibilits
pour cela : soit en utilisant lun des modules CCP du MCU ou en mulant la forme du signal voulu sur
lune des broches du MCU.

Licence SPI2 - 2014 Thomas Quiniou 61


Les microcontrleurs
Carte EasyPic7 : durant les TP, vous mettrez en uvre la carte EasyPic7 de
MikroElektronika sur laquelle est install un C PIC 18F45K22.

Licence SPI2 - 2014 Thomas Quiniou 62


Les microcontrleurs
Carte EasyPic7
Programmateur embarqu

Zone
dalimentation
Port A

Port RS232
Microcontrleur
Switch
Sonde de T
Afficheur
7 segments
Quartz

Afficheur
LCD 216 LEDs

Afficheur Boutons
GLCD 12864 poussoirs

Buzzer

Licence SPI2 - 2014 Thomas Quiniou 63


Les microcontrleurs
Alimentation
Jumper J6
2 possibilits pendant les TP :
- par le cble USB
- grce au bloc dalimentation externe

Licence SPI2 - 2014 Thomas Quiniou 64


Les microcontrleurs
Les DELs et boutons poussoirs

DEL : Diode Electro-Luminescentes (LED en anglais)

Chaque port (de A E), est connect un rseau de rsistances pull-up/pull-down (4,7 k - switch
SW7), des connecteurs pour cartes filles, des DELs (validation) et boutons poussoirs. Pour
allumer une LED, il faudra la valider grce au switch SW3 et appliquer un niveau logique haut 1
sur la broche correspondante du PIC. Pour utiliser les boutons poussoirs, il faudra positionner le
cavalier J17 sur VCC (niveau haut) ou la masse (niveau bas).

Licence SPI2 - 2014 Thomas Quiniou 65


Les microcontrleurs Segment b
Segment a

Lafficheur 7 segments 4 digits

Chaque afficheur 7-segments est constitu de 7+1


DELs qui permettent dafficher les chiffres de 0
9, quelques lettres de lalphabet et le sparateur
dcimal (DP).

RA0 RA3 : slection de lafficheur (portA)


RD0 RD6 : activation des 7 segments (portD)
RD 7 : activation du point DP (portD)

Licence SPI2 - 2014 Thomas Quiniou 66


Les microcontrleurs
Lafficheur LCD 216 (2 lignes, 16 colonnes, soit 32 caractres)

- Connexion sur le port RB (RB0 RB5)


- Rtroclairage possible grce au switch SW4 :
rtroclairage maximal : SW4-6 on
rtroclairage rglable : SW4-5 on (connexion au port RC2 du MCU)

Rglage de la luminosit
Rtroclairage

Licence SPI2 - 2014 Thomas Quiniou 67


Les microcontrleurs
Lafficheur LCD 216

Liste des caractres


(modle GDM1602A)

Information complmentaire
datasheet du composant

Licence SPI2 - 2014 Thomas Quiniou 68


Les microcontrleurs
Lafficheur GLCD 12864 (GLCD = Graphical Liquid Crystal Display )

Ecran monochromatique permettant dafficher du texte, des images, une IHM etc
Les lignes de commande sont routes vers le port B, les lignes DATA vers le port C du C
Lcran LCD 216 utilisant les mmes ports, les 2 afficheurs ne peuvent tre utiliss en mme
temps.

Rglage
de la
luminosit
(P3)
Rtroclairage

Licence SPI2 - 2014 Thomas Quiniou 69


Les microcontrleurs
Ecran tactile associ lafficheur GLCD 12864
Cet cran tactile se place au dessus de lafficheur GLCD. Il est constitu de 2 couches rsistives
superposes qui se mettent en contact lorsquune pression est exerce.

Licence SPI2 - 2014 Thomas Quiniou 70


SW3
Les microcontrleurs
Le capteur de T DS1820 2 mthodes pour alimenter ce circuit :

Capteur numrique de T sur interface 1-fil. - soit par une alimentation externe

Fonctionne en mode esclave


T de -55C +128C, Prcision 0.5C

- soit par une alimentation parasite

Connexion sur les broches RA4 ou RE2


(jumper J11)

Licence SPI2 - 2014 Thomas Quiniou 71


Les microcontrleurs
Le capteur de T DS1820
Le capteur de T DS1820 est un capteur
numrique qui communique, via linterface 1-
fil (one-wire) avec le processeur. Il
intgre une mmoire ROM 64 bits et une
mmoire RAM.

La temprature est code sur 2 octets mais


les 8 bits de poids forts indiquent tous le
signe : 0 si T 0, 1 si T< 0

Si la T est ngative, les 8 bits de poids


faibles sont cods en complment 2.

Pour connatre la T en C, il suffit de


convertir le nombre binaire en dcimal et
de diviser par 2.

Licence SPI2 - 2014 Thomas Quiniou 72


Les microcontrleurs
Le capteur de T DS1820
Mmoire ROM 64 bits

Les 8 premiers bits correspondent au code famille du capteur (ici 10h)


Les 48 bits suivants correspondent au numro de srie du capteur (pour son identification)
Les 8 bits restants permettent de dtecter et de corriger les ventuelles erreurs sur linterface
1-wire. CRC = contrle de redondance cyclique, ou en anglais Cyclic Redundancy Check)

La mmoire RAM Registre de T (2 octets)

La mmoire est constitue de ram statique SRAM


pour la partie bloc-notes (Scratchpad) et de mmoire
non volatile EEPROM pour les registres de seuils
dalarme TH et TL. A noter que si la fonctionnalit
dalarme nest pas utilise, ces registres peuvent Temprature seuil si

servir de mmoire usage gnral. utilisation dune alarme

Licence SPI2 - 2014 Thomas Quiniou 73


Les microcontrleurs
Le capteur de T DS1820 Les commandes ROM
READ ROM (33h) - Cette commande ne peut tre utilise que s'il n'y a qu'un seul esclave sur le
bus. Celui ci rpond alors ces 64 bits de code.

MATCH ROM (55h) - Cette commande suivi de 64 bits de code, va permettre au matre de
slectionner un esclave particulier.

SKIP ROM (CCh) - Commande d'appel gnral, pour adresser tous les esclaves. Cette fonction
est utile pour adresser un esclave qui est seul sur le bus, sans avoir envoyer les 64 bits de son
code.

SEARCH ROM (F0h) - Cette commande va permettre de rechercher bit bit les codes de tous
les esclaves raccords au bus 1 Wire.

CONDITIONAL SEARCH (ECh) - Cette commande fonctionne comme la commande SEARCH


ROM, la diffrence que seul les circuits ayant une condition bien spcifie participent la
recherche. Par exemple les circuits de mesure de la temprature qui ont le Flag d'alarme actif
ou les port E/S qui ont leur sortie "1".

Licence SPI2 - 2014 Thomas Quiniou 74


Les microcontrleurs
Le capteur de T DS1820 Les codes commandes
Aprs avoir envoy une commande ROM pour adresser un DS18S20 esclave, le matre doit
envoyer un code de commande :

Dbut de conversion (44h) - Cette commande lance la conversion de temprature. Le rsultat


est rang dans les 2 octets LSB et MSB .

ECRITURE en RAM (4Eh) - Seuls les octets 2 et 3 de la zone RAM peuvent tre crits. Il s'agit
des octets: Alarme seuil haut et Alarme seuil bas.

LECTURE de la RAM (BEh) - Les 9 octets de la RAM sont envoys vers le matre. L'esclave
commence par le bit 0 du premier octet et transmet ainsi les 9 octets de sa RAM. Le matre peut
interrompre tout moment la lecture en faisant un Reset.

COPIE RAM en EEPROM (48h) - Copie des octets 2 et 3 de la zone RAM dans la zone EEPROM
pour sauvegarde en cas de coupure d'alimentation.

RECOPIE EEPROM en RAM (B8h) - Cette commande rcupre en EEPROM les octets Alarme
seuil haut et Alarme seuil bas pour les placer en RAM dans les octets 2 et 3.

Licence SPI2 - 2014 Thomas Quiniou 75


Les microcontrleurs
Le capteur de T DS1820 Les codes commandes
ALIMENTATION PARASITE (B4h) - L'esclave rpond cette commande par un bit "1" s'il
fonctionne avec une alimentation extrieure, c'est--dire sur 3 fils, et par le bit "0" s'il est en
mode d'alimentation parasite, sur 2 fils.
Procdure dinitialisation
Toute communication avec un capteur de T DS1820 commence par une squence dinitialisation
qui se droule en 2 tapes :
Le master envoie un pulse de reset, la ligne qui est ltat haut au repos (prsence dune
rsistance de pullup) passe ltat bas pour une dure minimale de 480 s
Lorsque la ligne revient ltat haut, le capteur attend entre 15 et 60 s avant de
transmettre son tour un pulse de prsence dune dure comprise entre 60 et 240 s

Licence SPI2 - 2014 Thomas Quiniou 76


Les microcontrleurs

Licence SPI2 - 2014 Thomas Quiniou 77


Les microcontrleurs
Le capteur de T DS1820 Les codes commandes

ALIMENTATION PARASITE (B4h) - L'esclave rpond cette commande par un bit "1" s'il
fonctionne avec une alimentation extrieure, c'est--dire sur 3 fils, et par le bit "0" s'il est en
mode d'alimentation parasite, sur 2 fils.
La librairie OneWire de lIDE MikroC Pro for Pic

Licence SPI2 - 2014 Thomas Quiniou 78


Les microcontrleurs
Le capteur de T DS1820 Les codes commandes

La librairie OneWire de lIDE MikroC Pro for Pic

Licence SPI2 - 2014 Thomas Quiniou 79


Les microcontrleurs
Le capteur de T DS1820 Les codes commandes

La librairie OneWire de lIDE MikroC Pro for Pic

Commande Skip ROM

Licence SPI2 - 2014 Thomas Quiniou 80


Les microcontrleurs
Le buzzer Piezo embarqu

Frquence de rsonnance : 3,8 kHz


Utilisable entre 20 Hz et 20 kHz, plage idale entre 2 et 4 kHz
Niveau acoustique : 85 dB

Connexion sur les broches RE1 ou RC2 (jumper J21)

- Commande du son (Frquence et volume)


grce la modulation PWM
- Le volume est donn par le rapport
cyclique de la modulation PWM

Licence SPI2 - 2014 Thomas Quiniou 81


Les microcontrleurs
Le CAN embarqu

Possibilit de tester 2 lignes du convertisseur analogique numrique directement sur


la carte. Les potentiomtres (10 k) P1 et P2 sont des ponts diviseurs de tension.
- Cavalier J15 : permet de connecter une des broches de RA0 RA5
- Cavalier J16 : permet de connecter une des broches de RB0 RB5)

Licence SPI2 - 2014 Thomas Quiniou 82


Les microcontrleurs
Le module GPS Click

Composant u-blox LEA-6S


Communication avec le MCU via linterface UART ou I2c
Les data peuvent aussi tre rcupres sur un PC via linterface USB

Licence SPI2 - 2014 Thomas Quiniou 83


Les microcontrleurs
Bus mikroBUS

Bus propritaire MikroElectronika :


Permet de connecter facilement diffrents
modules sur la carte
2 connecteurs 18 femelles
3 types de ports communicants : SPI, UART
et I2C
Plusieurs broches pour les signaux PWM,
entre analogique, interruption, reset et
chip select
Alimentation 3.3 ou 5 V

Licence SPI2 - 2014 Thomas Quiniou 84


Les microcontrleurs
Langage C & microcontrleur

De plus en plus, les programmes pour micro-contrleur sont crits en langage C. Ce


langage permet de dvelopper rapidement des programmes, des bibliothques qui
pourront tre ensuite utilises sur diffrentes machines.

Pourquoi un langage tel que le C ?

Universel : il nest pas ddi une application !


Moderne : structur, dclaratif, rcursif, avec structures de contrle et
de dclaration.
Proche de la machine : manipulations de bits, pointeurs, possibilit
d'incorporer de l'assembleur, etc.
Portable : le mme code peut tre utilis sur plusieurs machines (il faut
toutefois faire attention ne pas crer des fonctions spcifiques une
machine).
Extensible : il est possible de crer des bibliothques ou d'en incorporer.

Licence SPI2 - 2014 Thomas Quiniou 85


Les microcontrleurs
Langage C & microcontrleur

Vous avez accs la majorit des fonctionnalits du C de la norme ANSI C. Vous


pouvez donc crire quelque chose comme vitesse = 0x27 pour faire l'affectation d'une
variable code sur 8 bits, ou encore if(vitesse == limite) pour effectuer un test
d'galit entre deux variables entires codes sur un nombre de bits appropris.

Plus prcisment, vous avez accs :


aux dclaration de variables, constantes, tableaux, pointeurs, structures, etc.
aux oprateurs arithmtiques et logiques,
aux oprateurs d'affectation, incrmentation et dcrmentation,
aux oprateurs de contrle de flux (test et boucles),
la conversion de type,
l'intgration de routines en assembleur.

Par contre, les instructions grant les entres et sorties (cran, clavier, disque, etc.)
n'ont pas toujours de sens dans ce type de contexte.

Licence SPI2 - 2014 Thomas Quiniou 86


Les microcontrleurs
Un premier programme

Affectation des registres TRISx du MCU


(sens des I/O)

Toutes les LEDs sont teintes

Dlais dune seconde

Toutes les LEDs sont allumes

Licence SPI2 - 2014 Thomas Quiniou 87


Les microcontrleurs

Licence SPI2 - 2014 Thomas Quiniou 88


Les microcontrleurs

Licence SPI2 - 2014 Thomas Quiniou 89


Les microcontrleurs
Les formats bit et sbit
Le compilateur mikroC PRO for PIC permet daccder individuellement aux bits des diffrents
registres 8 bits. Il supporte galement les types sbit et bit.

Prenons le bit dinterruption gnrale (GIE) comme exemple.


Ce bit est dfinit dans le fichier de dfinition de notre
microcontrleur (C:\Program Files\Mikroelektronika\mikroC
PRO for PIC\defs\PIC18F45K22.c) :

Ainsi, pour accder ce bit individuel, vous pouvez passer


par son alias :

Une autre manire daccder directement aux bits


individuels dun registre est dutiliser les identificateurs
B0,B7 ou F0,, F7 (avec F7 = MSB) :

Si on revient notre bit GIE, on pourrait donc y accder de


cette manire :
Licence SPI2 - 2014 Thomas Quiniou 90
Les microcontrleurs
Les formats sbit
Le compilateur mikroC PRO for PIC possde un type de donne appel sbit qui donne accs aux
registres, SFR, variables etc. Vous pouvez par exemple dclarer une variable sbit de telle manire
quelle pointe vers lun des bits dun registre :

Notez lutilisation du mot cl sfr lors de la


dclaration de Abit, cela vient du fait que PORTB
est un registre de type SFR. Dans le programme
principal, vous devez spcifier vers quel registre
Remarque : la dclaration dune variable sbit nest
la variable Abit pointe, par exemple :
pas possible avec les identifieurs F0,F7.

Si vous souhaitez dclarer un bit


qui nest pas li un registre SFR,
le mot cl sfr nest plus
indispensable :
Licence SPI2 - 2014 Thomas Quiniou 91
Les microcontrleurs
Mot cl at
Vous pouvez utiliser le mot cl at pour crer un alias sur une variable. Par exemple, vous
pouvez crer une librairie sans utiliser les noms des registres et plus tard, dans le programme
principal, dfinir ces registres :

Le type bit

Il est possible dutiliser le format de donne bit pour dclarer une


variable. Il ne peut cependant pas etre utilis comme argument
dans une liste ou comme valeur de retour dune fonction. Il ne peut
pas non plus tre utilis pour la dfinition dun pointeur ni pour celle
dun tableau.

Licence SPI2 - 2014 Thomas Quiniou 92


Les microcontrleurs

Licence SPI2 - 2014 Thomas Quiniou 93


Les microcontrleurs
Le programmateur MikroProgSuite et la fentre principale

Licence SPI2 - 2014 Thomas Quiniou 94


Les microcontrleurs
Le programmateur MikroProgSuite et la page CONFIG

Licence SPI2 - 2014 Thomas Quiniou 95


Les microcontrleurs
Le programmateur MikroProgSuite
et la page MCU INFO

Licence SPI2 - 2014 Thomas Quiniou 96

You might also like