Professional Documents
Culture Documents
Chapitre 2 :
prsentation du microcontrleur
le pic 16F877
1. Les microcontrleurs :
Gnralits :
Un microcontrleur se prsente comme tant une unit de traitement de linformation de
type microprocesseur contenant tous les composants dun systme informatique, savoir
microprocesseur, des mmoires et des priphriques (ports, timers, convertisseurs). Chaque
fabricant a sa ou ses familles de microcontrleurs.
Une famille se caractrise par un noyau commun (le microprocesseur, le jeu
dinstruction). Ainsi les fabricants peuvent prsenter un grand nombre de pins qui sadaptent
plus au moins certaines tches. Mais un programmeur connaissant une famille na pas besoin
dapprendre utiliser chaque membre, il lui faut connatre juste ces diffrences par rapport au
pre de la famille. Ces diffrences sont souvent, la taille des mmoires, la prsence ou labsence
des priphriques et leurs nombres.[3 ]
Tout dabord, un microcontrleur intgre dans un seul et mme botier ce qui, avant
ncessitait une dizaine dlments spars. Il rsulte donc une diminution vidente de
lencombrement de matriel et de circuit imprim.
maintenant facile produire, mais plutt cause de la fentre en quartz ncessaire son
effacement, on a vu galement apparatre des microcontrleurs dits OTPROM. [4]
Dans ces circuits ou OTPROM (ONE TIME PROM), cest dire programmable une fois,
la mmoire UVPROM existe toujours dans ce programme donc comme nimporte quel circuit de
ce type, mais, fait de labsence de toute fentre, cette mmoire nest ensuite plus effaable. Cest
une solution intressante pour les productions en petite srie, ne justifiant pas une programmation
par masque. En effet, du fait de labsence de fentre, ces versions OTPROM sont disponibles en
botier plastique trs peu coteux. [4]
2.1
2.2
microprocesseurs de lordinateur)
prcises.
2.3
de
ports
La mmoire programme :
La mmoire programme est constitue de 8k mots de 14 bits. Cest dans cette zone que
nous allons crire notre programme. Le PIC excute une une les instructions loges dans la
mmoire de programme.
La mmoire EEPROM :
20
2.4
pins
utiliss sont les pins AN0 AN4 (qui sont en fait les dnominations analogique des pins RA0
RA3 + RA5).
On peut noter galement que les pins Anx sont des pins dentes. Il nest donc pas
question desprer leur faire sortir une tension analogique. Ceci ncessairement un
convertisseur numrique/analogique dont nest pas pourvu notre PIC.
Le port B :
Hors de sa fonction principale autant que ports dentres/sorties, on note la pin RB0
qui en configuration dentre est de type trigger de Schmitt quand elle est utilise en
mode interruption INT ; la lecture simple de RB0 se fait dune faon tout fait classique,
en entre de type TTL. Encore il y a (RB3-RB6-RB7) qui peuvent servir dans la
programmation en cas dabsence de programmateur commercial.
Le port C :
Cest un port tout ce quil a de plus classique,or quil a deux pins quon utilisera plus
tard dans la communication srie avec le PC travers( TX et RX ) (pin25et pin 26) .
Le port D :
Ce port fonctionne de faon identique aux autres, dans son mode de fonctionnement
gnral. Le registre TRISD comportera donc les 8bits de direction, pendant que le registre
port D correspond aux pins I/O concerns. Do les 8 pins I/O, en mode entre, sont du type
<trigger de Schmitt>.
Le port E :
Ce port nest prsent que sur les PIC 16F877. Il ne comporte que 3 pins RE0 RE2,
mais, contrairement aux ports, les bits non concerns de TRISE sont, cette fois, implants
pour dautres fonctions. Les pins REX peuvent galement tre utiliss comme pins dentres
analogiques. Dou le registre ADCON1 qui dtermine si ce port est utilises comme port I/O
ou comme port analogique.
2.5
Le convertisseur :
Le CAN est un priphrique intgr destin mesurer une tension et la convertir en
nombre binaire qui pourra tre utilis par un programme.
Notre 16F877 travaille avec un convertisseur analogique/numrique qui permet un
chantillonnage sur 10 bits. Le signal numrique peut donc prendre 1024 valeurs possibles.
On sait que pour pouvoir numriser une grandeur, nous devons connatre la valeur minimale
quelle peut prendre, ainsi que sa valeur maximale, Les pics considrent par dfaut que la
valeur minimale correspond leur Vss dalimentation, tandis que la valeur maximale
correspond la tension positive dalimentation Vdd. le principe de la conversion suit la
squence est la suivante :
- Le pic connecte la pin sur laquelle se trouve la tension mesurer un condensateur
interne, qui va se charger via une rsistance interne jusque la tension applique.
-
Le temps ncessaire la conversion est gal au temps ncessaire la conversion dun bit
multipli par le nombre de bits dsirs pour le rsultat. Concernant notre pic, il faut savoir quil
ncessite, pour la conversion dun bit, un temps nomm Tad.
Ce temps est driv par division dhorloge principale. Le diviseur peut prendre une valeur
de 2, 8 ou 32. Le temps de conversion Tad ne peut dtendre, pour des raisons lectroniques, en
dessous de 1.6 us pour les versions classiques de 16F87x, et en dessous de 6 us pour les versions
LC. [5]
Donc en fonction des frquences utilises pour le quartz du pic, on choisit le diviseur le
plus appropri.
Voici un tableau qui reprend les valeurs de diviseur utiliser pour quelques frquences
courantes du quartz et pour les PICs de type classique.
Diviseur
2
8
32
Osc RC
20Mhz
100ns
400ns
1,6s
2-6s
5Mhz
400ns
1,6s
6,4s
2-6s
4Mhz
500ns
2s
8s
2-6s
2Mhz
1s
4s
16s
2-6s
1,25Mhz
1,6s
6,4s
25,6s
2-6s
333,3Khz
6s
24s
96s
2-6s
Les valeurs 400ns; 1,6s; 2s; 4s; 6,4; 24s correspondent au meilleur diviseur en
fonction de la frquence choisie, en ce qui nous concerne puisquon utilise une frquence de
4MHZ, on utilisera la valeur de 2s dans notre programmation.
Il faut prsent prciser que le PIC ncessite un temps Tad avant le dmarrage effectif de
la conversion, et un temps supplmentaire Tad la fin de la conversion.
Rsumons donc le temps ncessaire pour effectuer lensemble des oprations :
- On charge le condensateur interne (ncessite le temps Tacq)
- On effectue la conversion (ncessite le temps 12 * Tad)
- On doit attendre 2 * Tad avant de pouvoir recommencer une autre conversion
On attire votre attention sur le fait que le convertisseur donne un rsultat sur 10 bits, et donc que
ce rsultat devra donc obligatoirement tre sauvegard dans 2 registres. Ces registres sont tout
simplement les registres ADRESL et ADRESH. Comme 2 registres contiennent 16 bits, et que
nous nen utilisons que 10, Microchip nous a laiss le choix sur la faon dont est sauvegard le
rsultat, nous pouvons soit justifier le rsultat gauche, soit droite.
La justification droite complte la partie gauche du rsultat par des 0 . Le rsultat sera donc
de la forme :
ADRESH
0
ADRESL
0
B9
B8
B7
B6
B5
B4
B3
B2
B1
B0
B8
B7
B6
B5
ADRESL
B4
B3
B2
B1
B0
La justification droite sera principalement utilise lorsque nous avons besoin de lintgralit des
10 bits de rsultat, tandis que la justification gauche est trs pratique lorsque 8 bits vous
suffisent. Dans ce cas, les 2 bits de poids faibles se trouvent isols dans ADRESL, il suffit donc
de ne pas en tenir compte. Cette approche est destine nous pargner des dcalages de rsultats.
Le choix de la mthode seffectue laide du bit 7 de ADCON1.
Le registre ADCON1
Ce registre permet de dterminer le rle de chacune des pins AN0 AN7. Il permet donc de
choisir si un pin sera utilis comme entre analogique, comme entre/sortie standard, ou comme
tension de rfrence. Il permet galement de dcider de la justification du rsultat.
Pour pouvoir utiliser un pin en mode analogique, il faudra que ce pin soit configur galement en
entre par TRISA. Le registre ADCON1 dispose, comme tout registre accessible de notre PIC, de
8 bits, dont seulement 5 sont utiliss :
ADFM
INUTILISE
B5
INUTILISE
lu comme 0
B4
INUTILISE
lu comme 0
B3
PCFG3
B2
PCFG2
B1
PCFG1
B0
PCFG1
Le bit ADFM permet de dterminer si le rsultat de la conversion sera justifi droite (1)
ou gauche (0). Nous trouvons dans ce registre les 4 bits de configuration des pins lis au
convertisseur analogique/numrique. Ces bits nous permettent donc de dterminer le rle de
chaque pin.
Comme nous avons 16 combinaisons possibles, nous aurons autant de possibilits de
configuration (en fait, vous verrez que nous nen avons que15). (Annexe2 )
. Le registre ADCON0
Ce registre est le dernier utilis par le convertisseur analogique/numrique. Il contient les bits que
nous allons manipuler lors de notre conversion. Sur les 8 bits de notre registre, 7 seront utiliss.
B7
ADCS1
B6
ADCS0
B5
B4
B3
B2
CHS2
CHS1
CHS0
GO/DONE
B1
Inutilis
lu comme 0
B0
ADON
A/D ON bit
2.6
MCLR :
Entre de remise zro, lorsque cette entre est mise ltat bas, le microcontrleur est
VCC
R0
1k
D3
1N4148
MCLR
C71
220u
SW3
2.7
Loscillateur :
Lhorloge est un systme qui peut tre ralise soit avec un QUARTZ(a) , soit avec
une horloge extrieur(b), soit avec un circuit RC(c), dans ce dernier la stabilit du montage
est limite.
La frquence maximale dutilisation va dpendre de Microcontrleur utilis. Le
suffixe indiqu sur le botier donne la nature de lhorloge utiliser et sa frquence maximale.
Partant dune prsentation gnrale sur les microcontrleurs, nous avons ensuite dfini la
famille des PICs et plus particulirement le 16F877.
En conclusion dans ce chapitre nous pouvons dire que le microcontrleur 16F877 peut
bien jouer le rle d'une unit de contrle pour notre systme.
Sachant que lvolution du niveau deau est trs lente nous pouvons dire que le
convertisseur intgr dans le PIC nous convient parfaitement.
Maintenant, nous pouvons passer la conception puisque le composant le plus important
dans notre systme nous est dj familier.