Sunteți pe pagina 1din 35

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

Contenu
1.

Introduction :.................................................................................................................................. 2

2. L'explorateur de code:...................................................................................................................... 2
1. L'diteur de code:............................................................................................................................. 2
1.1

L'assistant de code:................................................................................................................ 2

1.2

L'assistant de paramtres:......................................................................................................3

1.3 Correcteur automatique:.............................................................................................................. 3


1.4 Mise en forme automatique:........................................................................................................3
1.5 Affichage syntaxique color:........................................................................................................3
1.6 Puissant mode "Undo / Redo":....................................................................................................3
1.7 Impression et prvisualisation:....................................................................................................3
2.1 Mini terminal USART................................................................................................................... 3
2.2 Mini gestionnaire 7 segments......................................................................................................4
2.3 Table de conversion ASCII.......................................................................................................... 4
2.4 Terminal de programmation "Bootloader"...................................................................................4
2.5 Editeur d'EEprom........................................................................................................................ 4
2.6 Terminal et gnrateur de descripteur USB.................................................................................4
2.7 Terminal de communication Ethernet (UDP)...............................................................................5
2.8

Gestion simplifie des LCD graphiques....................................................................................5

3. Module de statistiques:.................................................................................................................... 5
4. Les routines de fonctions intgres:................................................................................................6
5. Debugger intgr:............................................................................................................................. 6
Activit n 1: Dcouverte de lenvironnement de programmation textuelle............................................7
Activit n 2: Compteur sur la Maquette dexprimentation ZITOPIC..................................................11
Activit n 3: Gestion dun afficheur LCD............................................................................................14
Activit n 4: Serrure code................................................................................................................ 19
Activit n 5 (bis) : Porte automatique dun entrept rfrigr.............................................................23
Activit n 6: Comptage de vhicules sur une route............................................................................25
Activit n 7: Ventilateur sur un concentrateur USB............................................................................27
Activit n 8 (bis): Calculateur de gestion dun moteur de vhicule.....................................................29
Activit n 8: Coffre-fort lectronique roue codeuse 12 digits...........................................................33

-1-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

1. Introduction :
MikroPASCAL PRO est un compilateur "PASCAL" pour microcontrleurs PIC, il bnficie d'une
prise en main trs intuitive et d'une ergonomie sans faille. Ses trs nombreux outils intgrs (mode
simulateur, terminal de communication Ethernet, terminal de communication USB, gestionnaire pour
afficheurs 7 segments, analyseur statistique, correcteur d'erreur, explorateur de code, mode Dbug
ICD...) associ sa capacit pouvoir grer la plupart des priphriques rencontrs dans l'industrie
(Bus I2C, 1Wire, SPI, RS485, Bus CAN, USB, gestion de cartes compact Flash et
SD/MMC, gnration de signaux PWM, afficheurs LCD alphanumriques et graphiques et 7
Leds segments, etc...) en font un outil de dveloppement incontournable.
Cette nouvelle version appele "MikroPascal PRO" dispose de trs nombreuses amliorations:
nouvelles variables utilisables, nouvelle interface IDE, amlioration des performances du linker et de
l'optimisateur, cycle de compilation plus rapide, code machine gnr plus compact (jusqu' 40 %
suivant les cas), nouveaux PIC supports, environnement de dveloppement encore
plus ergonomique, nouveaux exemples d'applications, etc...

2. L'explorateur de code:
Cette fonction intgre au compilateur vous permettra de surveiller et de retrouver rapidement vos
variables, fonctions et procdures l'intrieur de votre programme. Pour ce faire, il vous suffira
simplement de cliquer sur un lment pour que l'explorateur vous positionne directement dessus
(idal lorsque vous travaillez sur de "gros" projets).

L'explorateur de code permet de retrouver aisment tous les lments.


L'aide rapide permet en cliquant sur une instruction d'obtenir sa description.
Le rappel des touches de fonctions simplifie la saisie.

1. L'diteur de code:
Extrmement convivial, l'diteur du "MikroPASCAL PRO" pour PIC dispose d'une multitude de
fonctions qui permettront aussi bien aux utilisateurs novices comme aux professionnels de travailler
trs rapidement.
1.1 L'assistant de code:
Ce dernier vous permettra aprs avoir tap
les premires lettres d'une instruction d'ouvrir une
fentre en tapant CTRL + ESPACE afin d'obtenir la
liste de toutes les instructions commenant par les
mmes lettres. Il vous suffira ensuite de cliquer sur
celle qui vous convient pour l'importer directement
dans l'diteur.
1.2 L'assistant de paramtres:
Ce dernier vous permettra aprs avoir saisie le dbut d'une
-2-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

fonction ncessitant des paramtres, d'afficher la syntaxe de ces


paramtres (le premier paramtre crire s'affiche en caractres
gras). Aprs avoir saisie ce premier paramtre, le second s'affiche
alors son tours en caractres gras).

1.3 Correcteur automatique:


Ce dernier vous permettra de corriger automatiquement vos erreurs de frappes les plus
courantes. Vous pourrez galement ajouter vos propres prfrences dans la liste des mots
reconnatre.

1.4 Mise en forme automatique:


Afin d'obtenir une lisibilit maximale, il est possible de gnrer automatiquement la mise en
forme de certaines instructions. Par exemple, tapez l'instruction IF, puis CRTL + J. A ce stade,
l'diteur ajoute tout seul les instructions THEN et END IF. A vous ensuite de complter le programme !

1.5 Affichage syntaxique color:


Toujours dans le but d'obtenir une lisibilit maximale de votre programme, il vous est possible
de configurer entirement les couleurs de chaque partie du listing. Par exemple les commentaires en
"vert", les instructions en "noir", les valeurs numriques en "bleu clair", etc....

1.6 Puissant mode "Undo / Redo":


L'diteur est capable de revenir sur votre saisie en arrire (Undo) ou en avant (Redo) sur une
plage de 1024 modifications ! (vous permettant aisment de rattraper une erreur de dveloppement).

1.7 Impression et prvisualisation:


L'diteur vous permet d'obtenir une prvisualisation de votre listing avant son impression afin
que vous puissiez ventuellement remanier sa mise en page pour une plus grande clart des
documents.

2. Les outils intgrs:


Le compilateur "MikroPASCAL PRO" pour PIC intgre diffrents petits outils trs pratiques qui
vous simplifieront "la vie" lors de vos dveloppements.

2.1 Mini terminal USART


Le compilateur "MikroPASCAL PRO" intgre un
petit terminal de communication USART RS-232
(Universal Synchronous Asynchronous Receiver) pour
lequel vous pourrez configurer le dbit, les commandes
RTS et DTR....

2.2 Mini gestionnaire 7 segments


Le compilateur "MikroPASCAL PRO" intgre un petit utilitaire qui
vous permettra de slectionner la valeur dcimale ou hexadcimale
fournir pour piloter un afficheur 7 segments.

-3-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

2.3 Table de conversion ASCII


Le compilateur "MikroPASCAL PRO" intgre un
petit utilitaire qui vous permettra d'afficher une table de
conversion ASCII (trs utile lorsque vous travaillez avec
des
afficheurs
LCD).

2.4 Terminal de programmation


"Bootloader"
Le compilateur "MikroPASCAL PRO" intgre un
terminal permettant de charger vos programmes sur certains
modles de PIC via un Bootloader au travers d'une liaison
USB.

2.5 Editeur d'EEprom


Le compilateur "MikroPASCAL PRO" intgre
un petit utilitaire qui vous permettra d'diter la
mmoire EEprom de certains PIC.

2.6 Terminal et gnrateur de descripteur


USB
Le compilateur "MikroPASCAL PRO" intgre un
terminal de communication et un gnrateur de
descripteur qui vous permettront de tester les
communications USB de votre application (si le PIC utilis
dispose de ce type de communication).

-4-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

2.7 Terminal de communication Ethernet


(UDP)
Le compilateur "MikroPASCAL PRO" intgre un
terminal UDP qui vous permettra de tester si ncessaire
les communications Ethernet de votre application.

2.8 Gestion simplifie des LCD


graphiques
Le compilateur "MikroPASCAL PRO" intgre
un petit utilitaire qui vous permettra de convertir des
fichiers BMP en donnes pouvant tre affiches sur
plusieurs types de LCD graphiques.

3. Module de statistiques:
Aprs une compilation sans erreur, il vous est possible d'activer un module qui vous permettra
de consulter diverses statistiques selon 6 critres

ressources mmoire utilises : Vous indique par le biais de barographes l'occupation en


RAM et ROM de votre programme.

-5-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

Rcapitulatif des procdures : Vous donnent une rcapitulation des procdures utilises et
de leurs tailles mmoires.
Localisation des procdures locales : Montre comment les procdures et les fonctions sont
agences dans la mmoire du microcontrleur.
Dtail des procdures : Vous donne un rcapitulatif dtaill des diffrentes caractristiques
de chaque procdure.

4. Les routines de fonctions


intgres:
Le compilateur "MikroPASCAL PRO" pour "PIC"
intgre en plus de ses instructions de base une multitude
de routines capables de raliser des fonctions trs
puissantes telles que:

5. Debugger intgr:
Le compilateur "MikroPASCAL PRO" est
directement capable de piloter l'lectronique du
programmateur "PICFlash/ICD" afin de pouvoir vous faire
bnficier pour certains modles de PIC d'une
fonction dbugger ICD qui vous permettra de vrifier sur
l'cran de votre PC les valeurs de vos variables, les
valeurs des registres spciaux (SFR) ou encore l'tat de la
mmoire EEPROM pendant l'excution de votre
programme afin de vous faire bnficier d'un outils de
mise au point extrmement puissant et performant
(compilateur / programmateur / debugger).
Les fonctions du dbugger sont galement
accessibles via des touches de raccourcis clavier:
F9 : Demarre le mode Debug
F6 : Pause mode Debug
F5 : Active / dsactive un point d'arrt
F4 : Excute le programme jusqu'au curseur
F7 : Mode pas pas ou arrt jusqu'au dbut d'une sous-routine
F8 : Pas pas ou arrt jusqu'au retour d'une sous-routine
[CTRL] + F8 : Excute le programme jusqu'au
premier retour d'une sous-routine

-6-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

Activit n 1: Dcouverte de lenvironnement de programmation textuelle


1

Lancer le logiciel mikropascal pro et crer un


nouveau projet :
1- Dans le menu principal cliquer sur
Project par la suite sur New project

2- Une fentre New Project


Wizard apparait, cliquer sur
Next
3- Dans le champ Project Name
Saisir le nom du projet
Par exemple : activite1, ce nom ne
doit pas contenir des caractres
accentus ou des espaces.

4- Cliquer sur le bouton Browse et


slectionner un rpertoire sur le disque de
votre PC, ce rpertoire contiendra tous les
fichiers de votre projet.
5- Slectionner le type du microcontrleur :
P16F628A
6- Fixer la valeur de lhorloge du
microcontrleur : 4Mhz.
7- Cliquer sur le bouton Next

4
3

5
6

8- Cliquer sur le bouton Next

-7-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

9- Cocher la case Include All


cette option permet dutiliser les
fonctions prdfinies de
Mikropascal
10- Cliquer sur le bouton Next

1111
10

Cocher la case Open Edit


Project window to set
Configuration bits
12- Cliquer sur le bouton
Finish

12

13

-8-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

156

14

13- Assurer les rglages des bits de configurations comme indiqu dans la figure
prcdente
14- Cliquer sur le bouton OK
15- Saisir le programme ci-contre
16- Compiler le projet et vrifiez que la compilation a russi : message Compiled
Successfuly dans longlet messages.

-9166

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

16

17- Lancez le logiciel ISIS et saisissez le schma de simulation.


18- Dans la fentre Edit Component indiquer le
nom et le chemin du fichier .hex
19- Rgler lhorloge 4MHz

18
19

20- Lancer la simulation et remplir


la table de vrit suivante.

E3 E2 E1 E0 S3 S2 S1 S0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1

24252627-

21- En dduire la fonction assure

22-Bancher le programmateur Zitopic au PC via le


cble USB

23- Lancer le logiciel WinPic800.


Placer le microcontrleur sur le support 18 broches du programmateur.
Cliquer sur licne de dtection du type du microcontrleur.
Dans le menu principal cliquer sur : Fichier Ouvrir activite1.hex
Programmer le microcontrleur PIC16F628A
-10-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

26

25
27

28- Raliser le cblage et tester le fonctionnement du montage sur plaque essai

Activit n 2: Compteur sur la Maquette dexprimentation ZITOPIC


-11-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

On souhaite raliser un compteur modulo 10 en utilisant la valise dexprimentation ZITOPIC


conformment au montage suivant :

A, B, C, D
vers
RB0, RB1, RB2, RB3

DR1 vers GND

VCC du bloc afficheur 7


vers

VCC du bloc alimentation

1. Reliez DR1 du bloc afficheur 7 segments GND du bloc alimentation


2. Reliez VCC du bloc afficheur 7 segments VCC du bloc alimentation
3. Reliez les entres A, B, C et D respectivement aux broches RB0, RB1, RB2 et RB3 du
microcontrleur PIC16F876A.
4. Reliez les connecteurs DR2, DR3 et DR4 VCC du bloc dalimentation

Complter le programme suivant et testez-le sur la maquette dexprimentation


-12-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

program compteur10;
var
i : byte;
begin
trisb:= ;
while true do
begin
for i:=0 to 9 do
begin
portb:= ;
delay_ms(1000);
end;
end;
end.
Appliquer les combinaisons donnes au tableau ci-dessous quant au cblage des
connecteurs DR1 DR4, excuter le programme prcdent et noter ltat de chaque
afficheur 7 segments
DR4 DR3
DR2 DR1 Afficheur 4 Afficheur 3 Afficheur 2 Afficheur 1
VCC VCC VCC
GN
OFF
OFF
OFF
ON
D
VCC VCC GND VCC
..
..
..
..
VCC GND VCC VCC
..
..
..
..
GND VCC VCC VCC
..
..
..
..
En dduire le rle des connecteurs DR1 DR4

Afin de raliser un compteur modulo 10000 on va connecter DR1 DR4 RC0 RC3 du
microcontrleur PIC16F876A selon le montage suivant :

DR1 DR4
vers
RC0 RC3

Expliquer le rle des instructions en rouge dans le programme suivant ;


program compteur10000;
var
i,j : word;
uni,dix,cent,mil : byte;
-13-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

const
aucun_afficheur : byte = %1111;
afficheur1 : byte = %1110;
afficheur2 : byte = %1101;
afficheur3 : byte = %1011;
afficheur4 : byte = %0111;
begin
trisb:=$F0; trisc:=$F0; portc:=$FF; portb:=0;
while true do
begin
For i := 0 to 9999 do
begin
uni := i mod 10;
//
dix := (i div 10) mod 10; //
cent := (i div 100) mod 10; //
mil := (i div 1000);
//
for j:=0 to 10 do
begin
portc:=aucun_afficheur; //
delay_ms(1);
portb:=uni;
portc:=afficheur1;
//
delay_ms(10);
portc:=aucun_afficheur ;
delay_ms(1);
portb:=dix;
portc:=afficheur2;
delay_ms(10);
portc:=aucun_afficheur ;
delay_ms(1);
portb:=cent;
portc:=afficheur3;
delay_ms(10);
portc:=aucun_afficheur ;
delay_ms(1);
portb:=mil;
portc:=afficheur4;
delay_ms(10);
end;
end;
end;
end.
Compiler ce programme et simuler le fonctionnement ;
Transfrer le programme vers le microcontrleur et tester le fonctionnement sur la
maquette dexprimentation.

-14-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

Activit n 3: Gestion dun afficheur LCD


Soit le montage suivant :

1) Complter puis simuler le programme suivant :


program affichage;
// connections du module Lcd
var LCD_RS : sbit at PORTB.0;
var LCD_EN : sbit at ;
var LCD_D4 : sbit at ;
var LCD_D5 : sbit at ;
var LCD_D6 : sbit at ;
var LCD_D7 : sbit at ;
var
var
var
var
var
var

LCD_RS_Direction
LCD_EN_Direction
LCD_D4_Direction
LCD_D5_Direction
LCD_D6_Direction
LCD_D7_Direction

:
:
:
:
:
:

sbit
sbit
sbit
sbit
sbit
sbit

at
at
at
at
at
at

TRISB.0;
;
;
;
;
;

begin
LCD_init();
LCD_CMD(_LCD_CURSOR_OFF);
while true do
begin
LCD_out(1,1,'Bonjour');
-15-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

end;
end.
2) Cbler le montage prcdent sur la maquette ZITOPIC, transfrer le programme et
tester le fonctionnement :

3) Dans le menu principal de mikropascal pro cliquer sur Tools puis LCD Custom
Caracter
4) Dans la fentre LCD Custom Caracter slectionner : 5*7 + cursor line
5) Tracer la lettre sur la matrice
6) Cliquer sur longlet mikroPascal PRO
7) Cliquer sur le bouton Generate Code
8) Cliquer sur le bouton Copy Code to Clipboard pour copier le sous-programme
gnr par cet outil
9) Dans le programme prcdent cliquer sur coller dans zone de dclaration
10) Remplacer linstruction LCD_out(1,1,Bonjour) ; par CustomChar(1,5) ;

-16-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

6
3

program affichage;
// connections du module Lcd
var LCD_RS : sbit at PORTB.0;
var LCD_EN : sbit at PORTB.1;
var LCD_D4 : sbit at PORTB.2;
var LCD_D5 : sbit at PORTB.3;
var LCD_D6 : sbit at PORTB.4;
var LCD_D7 : sbit at PORTB.5;
var LCD_RS_Direction : sbit at TRISB.0;
var LCD_EN_Direction : sbit at TRISB.1;
var LCD_D4_Direction : sbit at TRISB.2;
var LCD_D5_Direction : sbit at TRISB.3;
var LCD_D6_Direction : sbit at TRISB.4;
var LCD_D7_Direction : sbit at TRISB.5;
const character: array[0..7] of byte = (0,0,5,0,2,30,0,0);
procedure CustomChar(pos_row, pos_char: Byte);
var i: Byte;
begin
Lcd_Cmd(64);
for i := 0 to 7 do Lcd_Chr_CP(character[i]);
Lcd_Cmd(_LCD_RETURN_HOME);
Lcd_Chr(pos_row, pos_char, 0);
end;
begin
LCD_init();
LCD_CMD(_LCD_CURSOR_OFF);
while true do
begin
-17-

Programmation avance des microcontrleurs PIC

CustomChar(1,5);
end;
end.

CENAFFE CARTHAGE 2014

10

11) Compiler le programme, lexcuter puis dduire le rle de loutil LCD Custom
Caracter

12) Faites le mme travail pour la lettre mais changer la case char par la valeur 1

12

13) Coller le sous-programme gnr dans zone de dclaration et modifier le comme


suit :
program arabe;
// connections du module Lcd
var LCD_RS : sbit at PORTB.0;
var LCD_EN : sbit at PORTB.1;
var LCD_D4 : sbit at PORTB.2;
var LCD_D5 : sbit at PORTB.3;
var LCD_D6 : sbit at PORTB.4;
var LCD_D7 : sbit at PORTB.5;
var LCD_RS_Direction : sbit at TRISB.0;
var LCD_EN_Direction : sbit at TRISB.1;
var LCD_D4_Direction : sbit at TRISB.2;
var LCD_D5_Direction : sbit at TRISB.3;
var LCD_D6_Direction : sbit at TRISB.4;
var LCD_D7_Direction : sbit at TRISB.5;
const character: array[0..7] of byte = (0,0,5,0,2,30,0,0);
procedure CustomChar(pos_row, pos_char: Byte);
var i: Byte;
begin
Lcd_Cmd(64);
for i := 0 to 7 do Lcd_Chr_CP(character[i]);
Lcd_Cmd(_LCD_RETURN_HOME);
Lcd_Chr(pos_row, pos_char, 0);
end;
const character2: array[0..7] of byte = (0,0,7,5,7,1,31,0);
procedure CustomChar2(pos_row, pos_char: Byte);
var i: Byte;
begin
Lcd_Cmd(72);
-18-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

for i := 0 to 7 do Lcd_Chr_CP(character2[i]);
Lcd_Cmd(_LCD_RETURN_HOME);
Lcd_Chr(pos_row, pos_char, 1);
end;
begin
LCD_init();
LCD_CMD(_LCD_CURSOR_OFF);
while true do
begin
CustomChar(1,5);
CustomChar2(1,4);
end;
end.
14) Compiler le programme, lexcuter puis faire le mme travail pour avoir laffichage
suivant :

-19-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

Activit n 4: Serrure code


Pour accder un immeuble, lutilisateur doit saisir un mot de
passe laide dun clavier matriciel 12 touches install lentre.
Si le mot de passe est correct, un tmoin vert sallume et la porte
souvre, louverture de la porte est assure par un relais qui doit rester
aliment pendant 2 secondes.
Si le mot de passe est incorrect, un tmoin rouge sallume durant
une seconde, la porte reste ferme et lutilisateur doit saisir nouveau le
mot de passe.
Lappui sur la touche * valide le mot de passe saisi, lappui sur la touche # permet
dinitialiser le systme pour une nouvelle lecture du code daccs.
La serrure est munie dun haut-parleur pizolectrique Sounder qui met un bip
sonore chaque appui sur une touche du clavier.
Schma du montage :

Soit le montage et le programme donns ci-dessous :


program serrure;
var keypadPort : byte at PORTB;
var kp : byte;
begin
trisa:=0;
porta:=0;
CMCON:=$07;
Keypad_Init();
while true do
begin
kp := Keypad_Key_Click();
if kp <> 0 then porta:=kp;
end;
end.

Simuler le fonctionnement et dduire le rle de ce programme :

-20-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

Pour chaque touche appuye, retrouver le code correspondant en dcimal. Complter la table
suivante :
Touche
Code en dcimal

Complter le programme suivant :

program serrure2;
var keypadPort : byte at PORTB;
var kp,a : byte;
code_serrure : word;
begin
trisa:=0;
porta:=0;
CMCON:=$07;
code_serrure :=0;
a:=0;
kp:=0;
Keypad_Init();
sound_init(porta,3);
while true do
begin
kp := Keypad_Key_Click();
if kp <> 0 then
begin
sound_play(1000,100);
case kp of
1: a := 1;
2: a := 2;
3: a := ;
5: a := ;
6: a := ;
7: a := ;
9: a := ;
10: a := ;
11: a := ;
13: a := '*';
14: a := 0 ;
15: a := '#';
end;
if a <> '*' then code_serrure := code_serrure *10 + a ;
if a = '#' then code_serrure :=0;
if a = '*' then
begin
if code_serrure = 1978 then
begin
porta.0:=1;
porta.2:=1;
delay_ms(2000);
-21-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

end
else
begin
porta.1:=1;
delay_ms(1000);
end;
code_serrure :=0;
end;
end;
porta:=0;
end;
end.
Dduire, chaque fois, la valeur de la variable code_serrure lorsque lutilisateur appuie sur
les touches donnes dans le tableau suivant :
Touche appuye
1
4
7
5
#
2
3
*

Valeur en dcimal de la variable code_serrure

Quel est le code qui permet douvrir la porte, justifier votre rponse en soulignant dans le
programme prcdent la ligne dinstructions qui teste ce code ?

Compiler le programme prcdent et simuler le fonctionnement de la serrure code

Cbler le montage sur la maquette ZITOPIC, programmer le microcontrleur PIC16F628A et


valider le fonctionnement

-22-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

-23-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

Activit n 5 (bis) : Porte automatique dun


entrept rfrigr
Ce systme est destin ouvrir ou fermer une porte de
sortie dun entrept rfrigr dune usine de produits laitiers de
manire automatique.
La porte est initialement ferme et la lampe rouge
allume, un dtecteur infrarouge signale la prsence dun
camion la sortie, ce moment, la porte souvre
automatiquement et la lampe verte sallume, une fois le camion
sorti, la porte se ferme et la lampe rouge sallume de nouveau.
IR1
IR2
Pf
Po

Capteurs
Camion devant la porte
Sortie du camion de lentrept
Porte ferme
Porte ouverte

LR
LV
KM1
KM2

Practionneurs
Lampe rouge
Lampe verte
Fermeture de la porte
Ouverture de la porte

Parmi les
microcontrleurs
suivants choisir
celui qui se prte

le mieux cette application, justifier votre rponse :


PIC16F876
A
PIC16F84A
PIC16F628
A
PIC16F877
A

...
...
...
...

Remplir la table daffectation des entres/sorties :


Entres
Soties
Systme
microcontrleu
Systme
microcontrleu
r
r
IR1
RB0

Grafcet de point de vue

partie
commande de la porte

Dresser le grafcet cod microcontrleur et proposer un schma de simulation ou cblage :

-24-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

Complter le programme suivant :


program porte;
Var
IR1 : sbit at portb.0;
IR2 : ;
Pf : ;
Po : ;
LR : ;
LV : ;
KM1 : ;
KM2 : ;
X0,X1,X2,X3 : bit;
begin
TrisA:= ;
TrisB:= ;
CMCON:= $07;
X0:=1;X1:=0;X2:=0;X3:=0;
while true do
begin
if ((X0=1) AND ()) then
begin
X0:=0;
X1:=1;
end;
if ((X1=1) AND (Po=1)) then
begin

end;
if ((X2=1) AND (IR2=1) AND (IR1=0)) then
begin

end;
if then
begin
X3:=0;
X0:=1;
end;
/// sorties
if ((X0=1) OR (X1=1) OR (X3=1)) then LR:=1 else :=0;
if X1=1 then KM1:=1 else KM1:=0;
if X2=1 then
if X3=1 then
end;
end.
Compiler ce programme, simuler le sur logiciel puis tester le fonctionnement sur maquette
dexprimentation.
-25-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

Activit n 6: Comptage de vhicules sur une


route
Ce systme permet lenregistrement du nombre de
vhicules qui passent sur une route durant un temps donn.
Le dispositif est constitu dun tuyau sensible la
pression, reli une carte base de microcontrleur
PIC16F628A et un afficheur 7 segments 4 digits, le tout
contenu dans un botier rsistant aux intempries en plastique transparent.
Pour lutiliser, il faut dployer le tuyau travers la route, en le fixant avec une robuste bande
adhsive, puis laisser les voitures rouler dessus. Chaque jeu
de deux essieux (c'est dire toutes les deux impulsions) est
enregistr comme un vhicule.
Lappareil comporte une batterie rechargeable
intgre au lithium-polymre qui offre une autonomie de
fonctionnement d'environ 12 heures.

Schma :

A chaque passage dun vhicule le capteur gnre deux impulsions, justifier le choix de lentre
RA4 du microcontrleur PIC16f628A pour relier ce capteur :

Dterminer la valeur du registre OPTION_REG :


Bit 7
RBPU
..

Bit 6
INTEDG
..

Bit 5
TOCS
..

Bit 4
TOSE
..

Bit 3
PSA
..

-26-

Bit 2
PS2
..

Bit 1
PS1
..

Bit 0
PS0
..

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

Complter le programme suivant :


program compteur;
var
i : word;
a, j, uni,dix,cent,mil : byte;
const
aucun_afficheur : byte = %1111;
afficheur1 : byte = %1110; afficheur2 : byte = %1101;
afficheur3 : byte = %1011; afficheur4 : byte = %0111;
begin
trisb:= ; trisa:= ;
i:=0;a:=0;
TMR0:=0;
OPTION_REG := ;
while true do
begin
if TMR0 > 200 then
begin
TMR0:=TMR0-200;
a:=a+1;
end;
i:=TMR0 + a*200 ;
uni := i mod 10;
dix := (i div 10) mod 10;
cent := (i div 100) mod 10;
mil := (i div 1000);
for j:=0 to 10 do
begin
porta:=aucun_afficheur; delay_ms(1);
portb:=uni; porta:=afficheur1;
delay_ms(10);
porta:=aucun_afficheur ; delay_ms(1);
portb:=dix; porta:=afficheur2;
delay_ms(10);
porta:=aucun_afficheur ; delay_ms(1);
portb:=cent; porta:=afficheur3;
delay_ms(10);
porta:=aucun_afficheur ; delay_ms(1);
portb:=mil; porta:=afficheur4;
delay_ms(10);
end;

end;
end.
Compiler ce programme, simuler le sur logiciel ISIS puis tester le fonctionnement sur maquette
dexprimentation ZITOPIC.

-27-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

Activit n 7: Ventilateur sur un concentrateur USB


Le systme prsent est un concentrateur USB appel en
anglais USB hub muni dun petit ventilateur de bureau. Le
systme est autoaliment via lalimentation 5V de lUSB du PC.
Lhlice du ventilateur est entraine en rotation par un moteur
courant continu de trs faible puissance (5V, 200mW).
Lutilisateur a la possibilit de varier la vitesse de rotation du
ventilateur via un potentiomtre rotatif plac lavant du
concentrateur USB.
Schma :

Donner le rle du transistor Q1 :

Quelle est la technique utilise pour faire varier la vitesse du moteur M1, justifiez le choix de la
sortie RC2/CCP1 du microcontrleur PIC16F876A :

Quel est le type du signal prsent sur lentre RA0/AN0, justifiez le choix de cette entre

Dduire la valeur du registre ADCON1 :


ADFM

PCFG3

PCFG2

PCFG1

PCFG0

N tant le nombre lu par le module convertisseur CAN du microcontrleur et alpha tant le


paramtre passer la fonction PWM1_set_duty(alpha), retrouver la relation entre N et alpha

-28-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

Complter le programme suivant :


program ventilateur;
var
alpha : byte;
N : word;
begin
PWM1_init(250);
ADCON1:=;
PWM1_start;
while true do
begin
N:= adc_read();
alpha:= ;
PWM1_set_duty(alpha);
end;
end.

Raliser le cblage et tester le fonctionnement du montage sur plaque essai


5V

GND

-29-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

Activit n 8 (bis): Calculateur de gestion


dun moteur de vhicule
Le calculateur de gestion moteur est un des
nombreux calculateurs prsents dans un vhicule et il
gre, en temps rel, une multitude de paramtres de
fonctionnement du moteur. Pour ce faire, il analyse en
permanence les signaux envoys par les divers
capteurs (position de lacclrateur, rgime moteur,
pressions, tempratures, etc.), dcide du rglage
optimal du moteur et agit sur les multiples actuateurs
(allumage des bougies, injecteurs de carburant, etc.),
qui mettront le moteur dans les conditions dquilibre
entre rendement maximal, rduction de la consommation de carburant et rduction des
missions.
Le capteur de position du vilebrequin
est conu pour contrler la vitesse de rotation
et la position du vilebrequin. Son rle consiste
indiquer au calculateur le moment o le
premier piston est au point mort haut, et grce
cette information, le calculateur de gestion
moteur peut donner lordre aux injecteurs et
aux bougies au bon moment.

Limpulsion gnre par le capteur de


position du vilebrequin doit tre lue
instantanment par le microcontrleur du
calculateur, proposez une technique qui
permet de lire cet vnement quel que soit ltat du programme en cours dexcution :

Le microcontrleur utilis tant un PIC16F876A donnez la valeur du registre INTCON :


Bit 7
GIE
.

Bit 6
PEIE
.

Bit 5
TOIE
.

Bit 4
INTE
.

Bit 3
RBIE
.

Bit 2
TOIF
.

Bit 1
INTF
.

Bit 0
RBIF
.

Pour simplifier ltude, on se limitera deux fonctions excutes par le calculateur qui sont :
Lecture de la temprature du liquide de refroidissement du radiateur.
Affichage de la temprature sur lafficheur LCD du porte-instruments.
La plupart des sondes de tempratures dans lautomobile sont de types rsistance
variable. Le paramtre physique qui varie en fonction de la temprature est la rsistance du
matriau qui constitue la sonde. Dans notre cas on utilisera le capteur de temprature LM35.

-30-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

Schma de simulation :

Ecrire un programme qui permet de lire et afficher la temprature sur lafficheur LCD sans
tenir compte de limpulsion gnre par le capteur de position du vilebrequin :
program calculateur;
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
-31-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
La rponse limpulsion gnre par le capteur de position du vilebrequin est simule par
une mise 1 de broche RB7 du PIC16F876A.

Modifier ce programme pour assurer la lecture de limpulsion gnre par le capteur de


position du vilebrequin et mettre 1 la sortie RB7 comme rponse cet vnement
.
.
.
.
.
.
-32-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Cbler le montage sur la maquette ZITOPIC ou sur plaque essai, programmer le
microcontrleur PIC16F876A et valider le fonctionnement

-33-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

Activit n 8: Coffre-fort lectronique roue codeuse 12 digits


Ce coffre-fort lectronique sert protger des objets de valeur
du vol, pour louvrir lutilisateur doit introduire une squence
de 6 chiffres dans lordre via une roue codeuse par exemple :
5, 4, 7, 10, 9, 12
Un bouton poussoir situ sur la roue codeuse permet
dinitialiser la squence douverture partir du premier chiffre
du code, chaque changement de la position de la roue, le
microcontrleur de la carte de commande du coffre enregistre
les positions intermdiaires.
Par exemple :
Pour le code : 5, 4, 7, 10, 9, 12 la squence correcte qui
permet douvrir la porte du coffre aprs lappui sur le bouton
poussoir est :
5 4 5 6 7 8 9 10 9 10 11 12
Schma de la carte de commande

On souhaite lire les 4 bits fournis par la roue codeuse chaque changement dtat, quelle
est la technique la plus adapte qui permet de lire cet vnement quel que soit ltat du
programme en cours dexcution :

Le microcontrleur utilis tant un PIC16F628A, donner la valeur du registre INTCON :


Bit 7
GIE
.

Bit 6
PEIE
.

Bit 5
TOIE
.

Bit 4
INTE
.

Bit 3
RBIE
.

Bit 2
TOIF
.

Bit 1
INTF
.

Bit 0
RBIF
.

Complter le programme suivant :


program coffre;
const
code_acces : array[12] of byte = (5,4,5,6,7,8,9,10,9,10,11,12);
var
code_saisi : array[12] of byte;
i,j :byte;
-34-

Programmation avance des microcontrleurs PIC

CENAFFE CARTHAGE 2014

etat : byte;
RAZ : sbit at porta.0;
porte: sbit at porta.1;
ok : bit;
Procedure Interrupt;
begin
etat:=portb;
// lecture du port B
etat:=etat SHR 4; // dcalage droite des 4 bits lus
code_saisi[j] := etat;
j:=j+1;
if j > 11 then j:=0;
INTCON.RBIF:=; // Remise zro de l'indicateur RBIF
INTCON.GIE:= ; // Ractivation Globale des interruptions
end;
begin
CMCON:=$07;
j:=0;
trisa.1:=0;
porte :=0;
INTCON:= ;
while true do
begin
if RAZ = 1 then
begin
code_saisi[0]:= portb shr 4;
j:=1;
end;
ok:=1;
for i:=0 to 11 do
begin
// test de la squence saisies
if code_saisi[i] <> code_acces[i] then ok:=0;
end;
If ok = 1 then porte:=1 else porte :=0; // ouverture porte
end;
end.
Simuler le fonctionnement et cbler le montage sur plaque essai, programmer le
microcontrleur PIC16F628A et valider le fonctionnement

-35-

S-ar putea să vă placă și