Vous êtes sur la page 1sur 68

PFE : POINTEUSE

INTRODUCTION

L’informatique est aujourd’hui présente dans divers domaines et secteurs. La


présence des systèmes informatisés est devenue un critère de base pour assurer le bon
développement d’une société ou d’une industrie.

C’est dans ce cadre, que s’inscrit mon projet de fin d’études.


Il s’agit d’un système de pointage pour contrôler l’entrée et la sortie des employés
d’une entreprise.

Après une présentation générale du projet, j’indiquerai dans un premier temps


la spécification du système qui consiste à définir les différentes taches à effectuer, par
la suite, je donnerai une étude théorique sur les microcontrôleurs, l’afficheur LCD, le
MAX232 et la carte à puce à contact qui composent principalement la carte
électronique de la pointeuse. Ensuite, je présenterai une étude de conception
complète de mon projet. Aussi, je décrirai enfin les différentes phases de réalisation
et terminerai par la mise en disposition de lecture des annexes.

-1-
PFE : POINTEUSE

Chapitre1
Présentation du projet

-2-
PFE : POINTEUSE

1. Cahier De charges

Sujet :
Mise en œuvre d’un système de pointage pour la gestion de présence des employés d’une
entreprise.
Description :
Le présent sujet est scindé en trois chapitres:
1. L’étude et la conception de la carte avec le logiciel PROTEUS 7 Professionnel.
2. La réalisation physique de la carte.
3. La programmation du système.
Remarque :
La réalisation des taches citées dans le paragraphe Description dépendra du temps associé à
la réalisation de ce projet et du matériel disponible sur le marché.
Travaux à faire :
 Etude bibliographique
 Etude théorique
 Etude technologique
 Conception
 Réalisation technique
 Rapport

-3-
PFE : POINTEUSE

3. Qu’est ce qu’une pointeuse ?

Une pointeuse est une machine permettant de contrôler l’heure d’entrée et l’heure de sortie
d’un employé sur le lieu de travail. Cet instrument était nécessaire aux temps du capitalisme
sauvage et de la construction industrielle des pays développés. Ces activités nécessitaient des
équipes très nombreuses dont le travail était mal encadré et difficile à surveiller ou à surveiller.

4. Un peu d’histoire

Dans cette rubrique je donnerai l’exemple de l’historique de la fabrication et de la


commercialisation des pointeuses LAMBERT à Saint Nicolas d’Aliermont en France.
a- Les pointeuses à carton de type cisaillées :

Principe de fonctionnement :

A chaque pointage un couteau découpait un petit bout de carton permettant de décaler la


ligne d'écriture pour le pointage suivant.

La pointeuse à cartons était une base de temps reliée à un système d'impression de différents
types selon leurs années de conception.

- La première pointeuse avait une poignée manuelle sur laquelle l'utilisateur appuyait après
avoir introduit sa carte de pointage. Ce type de pointeuses était souvent à remontage
mécanique car non reliées sur le secteur

-4-
PFE : POINTEUSE

Fig. 1- Horloges Pointeuses à cartes cisaillées

Fabrications enregistreuses Lambert

À partir de 1905 (environ)

- La deuxième évolution fût de pouvoir relier la pointeuse sur le secteur ce qui permis d'y
ajouter un moteur de remontage automatique du ressort barillet et de proposer à l'utilisateur
un pointage automatique à introduction de la carte de pointage, des micros contacts
détectaient la présence de la carte et actionnaient un électro-aimant pour déclencher la
frappe au bon endroit.

Fig. 2- Horloge Pointeuse à cartes cisaillées

TYPE 481

Fabrications enregistreuses Lambert

À partir de 1948

-5-
PFE : POINTEUSE

Fig. 3- Horloge Pointeuse à cartes cisaillées

TYPE 615

Fabrications enregistreuses Lambert

À partir de 1961

- La troisième évolution fût bien sur l'arrivée du quartz, le principe de fonctionnement était le
même mais la base de temps était régulée par ce fameux quartz remplaçant définitivement
les mouvements d'horlogeries mécaniques sur toutes les pointeuses. Par contre Lambert
continue à fabriquer des pointeuses à déclenchement manuel car elles sont très robustes et
peuvent fonctionner dans les endroits les plus hostiles et même à l'extérieur.

Fig. 4- Pendule Pointeuse à cartes cisaillées

TYPE 783

Fabrications enregistreuses Lambert

À partir de 1978

b- Les pointeuses à carton de type cadastrées par programmation :

-6-
PFE : POINTEUSE

Principe de fonctionnement :

La carte de pointage est divisée en plusieurs cases, généralement 6 colonnes (entrée matin /
sortie matin / entrée après midi / sortie après midi / et 2 colonnes pour les pointages irréguliers)
certaines pointeuses affichaient tout le mois sur la même face, d'autres étaient recto / verso
(Première et deuxième quinzaine).

Sur les premiers modèles le pointage était mécanique (marteau de frappe relié à un électro-
aimant) aujourd'hui l'impression de toutes pointeuses se fait grâce à une imprimante à aiguilles.

Lors de la mise en service de la pointeuse l'utilisateur programme l'heure des changements de


colonne

Exemple : Horaire de l'entreprise 8H00 12H00 13H30 17H30 dans ce cas la programmation sera la
suivante :

 Pointage en première colonne de 00H00 à 10H00


 Pointage en deuxième colonne de 10H01 à 12H30
 Pointage en troisième colonne de 12H31 à 15H30
 Pointage en quatrième colonne de 15H31 à 23H59

Sur les premières pointeuses cadastrées le changement de colonne se faisait grâce à des
cames sur lesquels un palpeur venait se caler, le système était entièrement mécanique.

Fig. 5- Pendule Pointeuse à cartes cadastrées

TYPE 701

-7-
PFE : POINTEUSE

Fabrication brillée

1970-1978

Par la suite une roue de programmation munie de taquets que l’on déplaçait faisait le rôle de
programmateur sur la pointeuse.

Fig. 6- Pendule Pointeuse à cartes cadastrées

TYPE 701 702 703

Fabrications enregistreuses Lambert

1978-1985

Les dernières générations de pointeuses cadastrées sont maintenant totalement électroniques.

Fig. 7- Pendule Pointeuse à cartes cadastrées

TYPE MEMOR

Fabrication solary udine (Italie)


-8-
PFE : POINTEUSE

1980-2003

c- la détection automatique de colonne de pointage :

Principe de fonctionnement

Chaque fiche de pointage comporte un code unique grâce à un codage.

La pointeuse garde en mémoire les pointages de chaque fiche et peut donc savoir combien
de pointage a déjà été effectué depuis le début de la journée, il n’y a donc plus de programmation à
faire et il n’y a plus aucun risque de superposition de pointage.

Ce type de pointeuse peut même dans certain cas effectuer des calculs de cumuls journaliers.

Fig.8- Pendule Pointeuse à cartes cadastrées

TYPE ER 1500

Fabrication MAX (japon)

À partir de 2003

d- Les pointeuses type horodateurs :

Principe de fonctionnement :

Ce système fonctionne comme un composteur et il permet d’inscrire l’heure et la date sur


tous les documents. Il est aujourd’hui encore utilisé pour le courrier ou pour les bons de travaux en
atelier. Ils servaient aussi beaucoup dans les assurances pour valider les prises de contrats, ils étaient
alors plombés afin que personne ne puisse modifier l’heure.

-9-
PFE : POINTEUSE

Fig.9- Pendule Pointeuse Horodateur

Fabrications enregistreuses Lambert

À partir de 1905 (environ)

Fig.10- Pendule Pointeuse Horodateur

TYPE H 71

Fabrications enregistreuses Lambert

À partir de 1971

Fig.11- Pendule Pointeuse Horodateur

TYPE ES900

- 10 -
PFE : POINTEUSE

Fabrication Accroprint (USA)

À partir de 2005

e- Les pointeuses type compteur horaires variables individuelles :

Principe de fonctionnement :

Chaque utilisateur dispose de son propre compteur électromécanique et de sa propre clé de


mise en marche. Lorsque l’utilisateur prend son poste il lui suffit alors de donner un tour de clés
pour mettre son compteur en route, il fait l’opération inverse lors du départ de son poste. Il suffit de
relever les compteurs en fin de période pour obtenir un résultat d’heures.

Des centaines de ce type de systèmes furent installés notamment dans les administrations et les
grands groupes dés l’arrivée des horaires variables.

Fig.12- Pointeuse compteurs d’horaires variables

SÉRIE 1

Fabrications enregistreuses Lambert

À partir de 1976

- 11 -
PFE : POINTEUSE

Fig.13- pointeuse compteurs d’horaires variables

SÉRIE PAYSAGE

Fabrications enregistreuses Lambert

À partir de 1984

5. Exemple de pointeuse

Dans cette partie je vais étudier le cas d’une pointeuse qui ressemble beaucoup à la
pointeuse que je souhaite réaliser.

Nom :

Vedex AS 3000

Caractéristiques principales :

- 9999 cartes admissibles


- Afficheur 2 x 16 caractères rétro éclairés

- Affichage permanent du jour, de la date et de l’heure

- Affichage de messages et de cumuls

- Touche d’interrogation

- Message général défilant de 32 caractères

- 100 messages personnels de 16 caractères

- 200 cumuls utilisateur visualisables par interrogation

- Led de contrôle

- Lecteur magnétique, carte à puce, carte de proximité, ou porte clés de proximité

- Mémoire et horloge sauvegardées par pile lithium

- 12 -
PFE : POINTEUSE

- Mémoire de 14000 pointages environ

- Liaison RS232, RS422 ou modem

- Alimentation externe 9 à 12VDC 0.2A

- 15 terminaux possibles en réseau RS422 ou par liaison modem

Constitution :

Le terminal AS 3000 est constitué d’une carte mère basée sur un microcontrôleur, d’un
afficheur 2x16 caractères rétro éclairés, d’une Led de contrôle, d’un lecteur de différentes
technologies et d’un bouton poussoir. L’alimentation est externe.

La carte mère comprend :

- Un circuit "chien de garde" (Watch Dog) effectuant un reset automatique en cas de


dysfonctionnement du microcontrôleur.
- Une horloge/mémoire de 32 Ko sauvegardée par une pile lithium incorporée. Cette horloge
ne comporte aucun composant externe évitant ainsi tout réglage et déréglage. La durée de
vie donnée par le constructeur de la pile au lithium est de 10 ans et la précision de l’horloge
est de 1 minute par mois (dans la pratique la précision est de 10 secondes par mois).

- Un récepteur/émetteur RS 232 ou un émetteur et un récepteur RS422.

- 4 interrupteurs de codage d’adresses spécifiques parmi 15 possibilités.

Schéma de la carte :

Le schéma suivant donne une idée générale sur l’implantation des différents composants sur
la plaque électronique de la pointeuse.

- 13 -
PFE : POINTEUSE

Fig.14- Schéma de la carte électronique

Du terminal Vedex AS 3000

6. Conclusion

Cette première partie nous a permis d’avoir une idée générale sur le concept du projet que je
vais réaliser. Par la suite, je passerai à la spécification de mon système. Cette phase présente la 1ère
étape et l’activité primordiale dans le développement d’un nouveau projet.

- 14 -
PFE : POINTEUSE

- 15 -
PFE : POINTEUSE

Chapitre2
Spécification

1. Introduction :
Afin de pouvoir concevoir un système qui répond aux services souhaités il est impératif de
répondre à la phase de spécification. Cette phase consiste à traduire le cahier de charges afin
d’aboutir à une expression technique du besoin auquel le système doit répondre, sans faire appel à
des considérations informatiques et techniques. Le but de la spécification est de donner une solution
compacte aux questions : qui ? Quoi ? Et Comment ?
Cette expression doit simplifier la compréhension du fonctionnement du système.

- 16 -
PFE : POINTEUSE

On a fait ainsi appel à l’approche de SART (Analyse Structurée du Temps Réel) du fait qu’elle se
base sur l’analyse structurée pour spécifier et concevoir notre STR (Système Temps Réel) en
présentant le diagramme de contexte, le diagramme préliminaire et le dictionnaire de données.
2. Diagramme de contexte :
Il s’agit d’une modélisation de l’environnement du système. C’est un diagramme qui est
très abstrait, représentant le somment de la hiérarchie d’analyse. Il comporte un seul processus
traduisant la fonction principale du système. Sur ce diagramme sont présentés les bords de modèles
liants le système à son environnement.

Contrôle des
horaires
d’entrée/sortie
Informations sur la des employés
carte à puce
Résultats
introduite

Lecteur de cartes Afficheur

Fig.15- Diagramme de contexte

3. Diagramme préliminaire :
Ce diagramme permet de représenter la décomposition du système en sous systèmes.

- 17 -
PFE : POINTEUSE

Informations
sur la carte à Afficher
Détecter les puce introduite l’interface
informations M
6.0
de la carte à <A/I>
puce
2.0
<A/I>

Contrôler la
présence des Date et
employés heure
1.0 restaurées
Informations
sur la carte à
puce introduite <A/I>

Informations
valides
Restauration
Vérifier les <D> de la date et
informations d’heure
détectées 5.0
3.0
Informations
invalides <A/I>

Modifier les
stockages du
Informations de la carte
système
Écriture 4.0
Date et heure

Lecture

Fig.16- Diagramme préliminaire

4. Dictionnaire de données :
Ce tableau permet de spécifier la nature des informations citées et utilisées dans la
conception du diagramme préliminaire.

- 18 -
PFE : POINTEUSE

Nom Type Spécification


A F.e Autorise les processus primitifs
I F.e Inhibe les processus
D F.e Déclancher les processus primitifs
Contrôler la présence des Transformation de -
employés contrôle
Informations sur la carte F.d.d Informations stockées sur la carte à
introduite puce
Lecture F.d.d Lecture des informations stockées
sur la carte
Écriture F.d.d Écriture des nouvelles informations
Informations valides F.e Résultats de vérification
Informations invalides F.e Résultats de vérification
Date et heure restaurées F.e Affectation de la date et heure
Détecter les informations de la Transformation de Détecter les données
carte à puce données
Afficher l’interface Transformation de Afficher les résultats
données
Vérifier les informations détectées Transformation de Tester les informations détectées
données
Modifier les stockages du système Transformation de Modifier les enregistrements du
données système
Restauration de la date et heure Transformation de Chercher la date et heure
données

Tableau 1 –Dictionnaire de données

5. Diagramme d’état transition:


Ce diagramme permet de représenter les différentes étapes de fonctionnement du système.

- 19 -
PFE : POINTEUSE

Repos
<M>

<A/I> détecter les informations


de la carte à puce

Détection <Informations sur la


carte introduite>

<D> vérifier les


informations
<Informations
Vérification <Informations
valides>
invalides>

<A/I> restauration de <A/I> afficher


la date et heure l’interface

<Date et heure Restauration Affichage


restaurées>

<A/I> modifier les stockages du


système

Modification des
<Résultats> stockages

<A/I> afficher
l’interface
Affichage

Fig.17- Diagramme d’état transition

6. Conclusion :

- 20 -
PFE : POINTEUSE

Cette partie nous a permis d’avoir une idée conceptuelle éclaircie du système qu’on souhaite
réaliser. Passons maintenant à une nouvelle partie qui est assez importante car elle nous permettra
d’implémenter nos choix technologiques pour la conception technique de notre système.

- 21 -
PFE : POINTEUSE

Chapitre3
Étude technologique
du système

- 22 -
PFE : POINTEUSE

1. Introduction :
Dans cette partie, je m’intéresserai particulièrement à l’étude des différentes composantes
de ma carte. Il s’agit bien évidemment du choix du pic, de ses caractéristiques, et son implantation
avec les autres éléments du montage.
2. Le microcontrôleur :
2.1 Définition :
Les microcontrôleurs sont aujourd’hui implantés dans la plupart des applications grand
public ou professionnelles, il en existe plusieurs familles.
La société Américaine Microchip Technologie a mis au point dans les années 90 un microcontrôleur
CMOS : le PIC (Peripheral Interface contrôler). Ce composant encore très utilisé à l’heure actuelle,
est un compromis entre simplicité d’emploi, rapidité et prix réduit.
Les PIC existent dans plusieurs versions :
* les UVPROM qui sont effaçables par une source de rayonnements ultraviolets.
* les OTPROM programmables une seule fois.
* les EEPROM et flash EPROM qui sont effaçables électriquement.
2.2 Classification des PICs :
Actuellement les modèles Microchip, sont classés en trois grandes familles, comportant
chacune plusieurs références. Ces familles sont :
*Base –line : les instructions sont codées sur 12 bits.
*Mide –line : les instructions sont codées sur 14 bits.
*High –end : les instructions sont codées sur 16 bits.
2.3 Identification des PICs :
Un PIC est généralement identifié par une référence de la forme suivante : xx (L) XXyy-zz
xx : famille du composant, actuellement « 12, 14, 16,17 et 18 ».
L: tolérance plus importante de la plage de tension.
XX : type de programme
C : EPROM ou EEPROM
F : flash
yy : identificateur
zz : vitesse maximale du quartz de pilotage.

- 23 -
PFE : POINTEUSE

2.4 Tableau comparatif :

Tableau 2- comparaison de quelques familles de PICs

2.5 Définition d’un PIC 16F877 :


Le pic 16F877 est un circuit intégré contenu dans un boîtier nommé « DIL 40 », il présente
40 broches, 20 de chaque coté. Les broches sont virtuellement numérotées de 1 à 40. La 1 ere broche
est placé dans le coin situé à gauche de l’encoche de repérage.

Fig.18- Les pins du 16F877

- 24 -
PFE : POINTEUSE

2.6 Les pins du 16F877 :

 MCLR

Cette broche sert à initialiser le microcontrôleur.


Le microcontrôleur dispose de plusieurs sources de RESET :
• POR.
• EXTERNAL RESET
• WDT
• BOR
• POR: (POWER ON RESET) Mise sous tension.
Un front montant sur MCLR déclenche l'initialisation du microcontrôleur. Le temps nécessaire est
au minimum de 72ms et au maximum de 72ms+1024*Tosc. Le microcontrôleur dispose en interne
d’un circuit de détection de niveau, quand la tension VDD est comprise entre 1.2V et 1.7V, il
démarre une procédure d’initialisation.
Cette broche peut être simplement reliée à VDD si on n’a pas besoin de RESET externe. Par contre
si on souhaite implanter un bouton de remise à zéro, on pourra câbler un simple réseau RC sur la
broche MCLR.
Remarque importante : On peut se passer de circuit RC à la seule condition que le temps de
monté de VDD soit suffisamment rapide (au minimum 50mV/ms). Si le temps de montée est
inférieur à 50mV/ms, il faut rajouter un réseau RC.
• EXTERNAL RESET (Mise à l’état bas de MCLR). Remise à zéro extérieure. Il faut
appliquer un niveau bas sur l'entrée RESET pendant au moins 2μS pour que l'Initialisation soit
prise en compte.
• WDT: Chien de garde.

Si le WDT arrive à la fin du temps de garde sans avoir été rafraîchi il y aura alors une initialisation
du microcontrôleur.
• BOR: Baisse de l’alimentation.

Si la tension VDD chute en dessous de 4V pendant 100μS au moins, le microcontrôleur peut


générer un RESET.

- 25 -
PFE : POINTEUSE

 Oscillateur : OSC1 et OSC2 ou CLKIN et CLOUT.

Ces broches permettent de faire fonctionner l’oscillateur interne du PIC.


On peut utiliser 3 types d’oscillateurs :
- Un quartz ou résonateur céramique
- Un oscillateur externe
- Un réseau RC
Remarque : Les instructions standards durent 1 cycle machine (sauf les instructions de sauts 2
cycles). Le microcontrôleur utilise 4 coups d’horloge pour réaliser un cycle machine.
Si la fréquence du QUARTZ est de 20MHz (T=50nS), une instruction sera exécutée toutes les
200nS, Dans ce cas là, le microcontrôleur a une puissance de calcul de 5MIPS (5 Millions
d’instructions par secondes ! ! !).
La fréquence MAX est de 20MHz pour les microcontrôleurs dont les références se terminent par
-20.
Par exemples : 16F876-20 (20MHz max) et 16F876-04 (4MHz max).
La fréquence MIN est le continu.
Remarque : La consommation du circuit sera d'autant plus faible que la fréquence sera petite, cela
peut être intéressant pour des applications de faible consommation (alimentation autonome).
Pour des applications faible consommation, on peut utiliser les séries LF (Low Frequency and
Low Power).
 Alimentation : VDD et VSS.
Ce sont les broches d'alimentation du circuit. Les tensions qui peuvent être appliquées vont :
1 - De 4,5V à 6V pour la gamme standard F.
2 - De 2 à 6V pour la gamme étendue LF.
L'intensité du courant consommé peut aller de 1μA à 10mA.
La consommation du microcontrôleur sera fonction de :
- La tension d'alimentation.
- La fréquence interne.
- Le mode de fonctionnement.
De plus ces bornes doivent être découplées par deux condensateurs :
1 - 1μF électrolytique.
2 - 10nF céramique.

- 26 -
PFE : POINTEUSE

 L’Interruption : RBO/INT.

Cette broche à une double fonction elle peut être utilisée comme une broche standard RBO ou
comme une entrée d’interruption INT.
Si cette broche est utilisée comme une entrée d'interruption externe, elle doit être maintenue à un
niveau haut par l'intermédiaire de résistances de 10 kΩ pour ne pas déclencher d’interruptions
imprévues, cela permet aussi de relier plusieurs sources d'interruptions sur une même ligne (OU
CABLE).
2.7 Architecture Interne du 16F877 :
Comme pour tous les circuits intégrés, chacune de ses broches a une ou plusieurs fonctions
qui sont résumées par un sigle mnémotechnique.
Ce microcontrôleur présente une architecture Harvard, les données sont placées dans une mémoire
de type RAM de 368 bytes. La mémoire de programme est constituée de mot de 14 bytes, et de type
FLASH (non volatile).
Ces ressources sont donc précieuses, en comparaison avec celles d’autres composantes. Le 16F877
possède encore 5 ports (A à E) et 3 temporisateurs (timers), ce diagramme bloc présente les
composantes du 16F877 :

- 27 -
PFE : POINTEUSE

Fig.19- Architecture interne du 16F877


Les 5 ports sont d’entrées sorties input/output, ils sont bidirectionnels :
-Le port A (6 bits) I/O pure et/ou convertisseur analogique et/ou TIMER 0.
La broche RA4 (Entrée du timer 0 T0CKI) est de type DRAIN OUVERT.
-Le port B (8 bits) I/O pure et/ou programmation in situ ICSP/ICD, RB0 est une entrée
d’interruption externe.
-Le port C (8 bits) I/O pure et/ou SPI/I2C et/ou USART.
-Le port D (8 bits) I/O pure et/ou port parallèle 8 bits associé au port E.
-Le port E (3 bits) I/O pure et/ou pilotage du port E RE0/R, RE1/WR et RE/CS.

Remarque : Si le PIC est utilisé en mode ICSP/ICD il faut laisser libre les broches RB3/PGM,
RB6/PGC ainsi que RB7/PGD) et les configurer en entrée.
1 • Le PORT C (8 bits) I/O pure et/ou TIMER 1 et/ou SPI / I2C et/ou USART.
2 • Le PORT D (8 bits) I/O pure et/ou port parallèle 8 bits associé au PORT E.
3 • Le PORT E (3 bits) I/O pure et/ou pilotage du PORT E RE0/RD, RE1/WR et
RE2/CS.

 Configuration des PORTx, les registres PORTx et TRISx.


Tous les ports sont pilotés par deux registres :
1 - Le registre de PORTx, si le PORT x ou certaines lignes de PORT X sont configurées
en sortie, ce registre détermine l’état logique des sorties.
2 - Le registre TRISx, c’est le registre de direction. Il détermine si le PORTx ou certaines
lignes de port sont en entrée ou en sortie. L’écriture d’une 1 logique correspond à une
entrée (1 comme Input) et l’écriture d’une 0 logique correspond à une sortie (0 comme
Output).
Au RESET toutes les lignes de ports sont configurées en entrées.

Remarque : Les registres TRISx appartiennent à la BANQUE 1 des SFR.


Lors de l’initialisation du microcontrôleur il ne faut pas oublier de changer de page mémoire pour
les configurer.

- 28 -
PFE : POINTEUSE

Le tableau ci dessous représente les caractéristiques de PIC :

Fig.20- Caractéristiques générales d’un 16F877

2.8 Les mémoires du 16F877 :


Le PIC 16F877 comprend trois types de mémoires :
a- La mémoire Flash :
C’est une mémoire programme de taille 8ko.Chaque case mémoire unitaire est de taille 13
bits. Cette mémoire est de type mémoire stable, c'est-à-dire qu’on peut réécrire dessus à volonté,
car le 16F877 est caractérisé par la possibilité d’écrire des données. La zone mémoire est
caractérisée par une adresse de 13 bits, alors ceci nous impose donc pour l’adressage les registres
EEAR et EEADRH. De même, nous aurons pour les données, les registres EEDATA et EEDATH.

- 29 -
PFE : POINTEUSE

b- La mémoire RAM :
Cette mémoire de taille 368 octets est une mémoire d’accès rapide et elle est volatile (les
données seront perdus lorsque elle n’est plus sous tentions). Elle contient tous les registres de
configuration du PIC ainsi que les différents registres de données. Elle contient également les
variables utilisées par le programme. La RAM est la mémoire la plus utilisée. Toutes les données
qui y sont stockées seront perdues lors d’une coupure de courant.
La RAM est subdivisée de plus en deux parties dans chacune on trouve des « cases mémoire
spéciales » appelée REGISTRES SPECIAUX et des cases mémoire « libre » dont on peut se servir
pour provoquer un fonctionnement spécial du PIC ou la mise en service d’une fonction particulière.
c- L’EEPROM interne :
Le pic 16F877contient également une mémoire électriquement effaçable. Ce type de
mémoire est d’accès plus lent. Pour gérer cette EEPROM on a besoin de quatre registres, à savoir
EEDR, EEDATA, EECON1 et EECON2.
Le registre EEADR est utilisé pour placer l’adresse relative en EEPROM, tandis que l’EEDATA
contient la donnée à lire ou à écrire.
L’adresse relative de l’accès EEPROM est donc comprise entre 0000 et 00FF ce qui nous permet
d’utiliser un registre de huit bit pour définir cette adresse.
2.9 Les timers :
Notre pic possède 3 timers qui sont :
-Le Timer0 (8bits) : il peut être incrémenté par des impulsions extérieures via la broche
(TOCKI/RA4) ou par l’horloge interne (Fosc/4).
-Le Timer1 (16 bits) : il peut être incrémenté soit par l’horloge interne, par des impulsions sur la
broche T1CKI/RC0 ou par un oscillateur (RC ou quartz) connecté sur les broches T1OSO/RC0 et
T1OSI/RC1.
- Le Timer2 (8bits) : il est incrémenté par l’horloge interne, celle-ci peut être pré divisé.
Tous ces timers peuvent déclencher une interruption interne, s’ils ont été autorisés.
2.10 L’unité centrale :
Comme les PICs utilisent un bus pour les instructions et un bus pour les données, il faut
considérer deux plans mémoire l’un pour les instructions et l’autre pour les données ainsi que les
registres internes.

- 30 -
PFE : POINTEUSE

Fig.21- Plan mémoire pour les instructions


Le plan mémoire est linéaire : les adresses vont de 0000h à 1FFFh (8k mots de 14 bits), par
page de 2K mots. On peut remarquer que le vecteur de reset est figé en 0000h.
Les PICs n’ont qu’un seul vecteur d’interruption en 0004h. Lors d’une interruption, le sous
programme associé devra déterminer quel périphérique a demandé une interruption.
La pile utilisée par les sous programmes n’est pas implantée en mémoire de données comme avec
les microcontrôleurs classiques, mais dans la mémoire programme. Elle est utilisée lors d’appels de
sous programmes, on ne peut pas imbriquer plus de 8 sous programmes (Ce qui est déjà beaucoup).
2.11 Les interruptions :
a- Présentation :
Le microcontrôleur dispose de plusieurs sources d'interruptions.
• Une interruption externe, action sur la broche INT/RB0.
• Débordement du TIMER0.
• Changement d’état logique sur une des broches du PORTB (RB4 à RB7).
• Une interruption d’un des périphériques (PEIE).
- Fin de programmation d’une case mémoire de l’EEPROM.
- Changement d’état sur le PORTD (PSPIE).
- Fin de conversion analogique numérique (ADIE).
- Réception d’une information sur la liaison série (RCIE).
- Fin d’émission d’une information sur la liaison série (TXIE).
- Interruption SPI ou I2C du module MSSP (SSPIE).
- Interruption du registre de capture et/ou de comparaison 1 (CCPI1E).
- Interruption du registre de capture et/ou de comparaison 2 (CCPI2E).
- Débordement du TIMER1 (TMR1E).
- Débordement du TIMER2 (TMR2E).
- Collision de BUS (BCLIE).
b- Fonctionnement :
Lors d’un événement dans un ou plusieurs des circuits périphériques (ADC, EEPROM,
USART-SCI, MSSP-I2C-SPI, TIMER1, TIMER2) comme par exemple : la fin de conversion, la
fin de programmation d’un octet dans l’EEPROM, la réception d’une information, la détection
d’un front, etc.… et si le bit de l’interruption concernée a été autorisé (EEIE, PSPIE, ADIE,

- 31 -
PFE : POINTEUSE

RCIE, TXIE, SSPIE, CCP1IE, TMR2IE, TMR1IE, CCP2IE ou BCLIE : Registres PIE1 et
PIE2) alors une interruption périphérique est déclenchée. Pour que celle-ci soit prise en compte il
faut que le bit d’autorisation des interruptions périphériques soit positionné à 1 (PEIE) ainsi que le
bit GIE d’autorisation globale des interruptions du registre INTCON.
Pour qu’une interruption du type TIMER0 ou INT/RB0 ou PORTB soit prise en compte il suffit
que le bit local d’autorisation d’interruption soit positionné à 1 (T0IE ou INTE ou RBIE) ainsi que
le bit GIE d’autorisation globale des interruptions du registre INTCON.
Dans ces conditions le programme en cours d’exécution est interrompu et le microcontrôleur
exécute le programme d’interruption à partir de l’adresse 0x0004. Au début de celui-ci il faut que le
logiciel vérifie quel périphérique a déclenché l’interruption.
c- Définition d’une interruption :
Imaginez une conversation normale. Chaque interlocuteur prend la parole quand vient son
tour de parler. Survient alors un événement extérieur dont le traitement est urgent. Par exemple, un
piano tombe du 3ème étage de l’immeuble au pied duquel vous discutez. Vous imaginez bien que
votre interlocuteur ne va pas attendre la fin de votre phrase pour vous signaler le danger. Il va donc
vous INTERROMPRE durant le cours normal de votre conversation. Afin de pouvoir TRAITER
IMMEDIATEMENT l’EVENEMENT extérieur. Les interlocuteurs reprendront leur conversation où
elle en était arrivée, sitôt le danger écarté.

Et bien, pour les programmes, c’est exactement le même principe. Votre programme se déroule
normalement. Survient un événement spécifique. Le programme principal est interrompu (donc,
subit une INTERRUPTION), et va traiter l’événement, avant de reprendre le programme principal à
l’endroit où il avait été interrompu.

L’interruption est donc une RUPTURE DE SEQUENCE ASYNCHRONE, c’est à dire non
synchronisée avec le déroulement normal du programme. Vous voyez ici l’opposition avec les
ruptures de séquences synchrones, provoquées par le programme lui-même (goto, call, btfss…).

d- Mécanisme général d’une interruption :

Nous pouvons dire, sans nous tromper de beaucoup, qu’une routine d’interruption est un sous-
programme particulier, déclenché par l’apparition d’un événement spécifique. Cela a l’air un peu
ardu, mais vous allez voir que c’est très simple.

- 32 -
PFE : POINTEUSE

Fig.21- synoptique des modes d’interruptions

Voici donc comment cela fonctionne :

 Le programme se déroule normalement


 L’événement survient
 Le programme achève l’instruction en cours de traitement
 Le programme saute à l’adresse de traitement de l’interruption
 Le programme traite l’interruption
 Le programme saute à l’instruction qui suit la dernière exécutée dans le programme
principal.

Il va bien sûr de soi que n’importe quel événement ne peut pas déclencher une interruption. Il faut
que 2 conditions principales soient remplies :

 L’événement en question doit figurer dans la liste des événements susceptibles de provoquer
une interruption pour le processeur sur lequel on travaille
 L’utilisateur doit avoir autorisé l’interruption, c’est à dire doit avoir signalé que l’événement
en question devait générer une interruption.

Nous pouvons déjà nous dire que le programme principal ne sait pas quand il est interrompu, il est
donc crucial de lui remettre ses registres dans l’état où ils étaient avant l’interruption.

En effet, supposons que l’instruction xxx ait positionné un flag (par exemple, le bit d’indicateur Z).
Si par malheur, la routine d’interruption a modifié ce bit, le programme ne pourra pas se poursuivre
normalement.

Nous voyons également que l’instruction xxx termine son exécution avant de se brancher sur la
routine d’interruption. Une instruction commencée n’est donc jamais interrompue.

e-Mécanisme d’interruptions dans un PIC :

Bien entendu, les PICs répondent au fonctionnement général ci-dessus, mais elles ont également
leurs particularités. Voyons maintenant le principe des interruptions sur les PICs

- 33 -
PFE : POINTEUSE

 Tout d’abord, l’adresse de début de toute interruption est fixe. Il s’agit toujours de l’adresse
0x04. Toute interruption provoquera le saut du programme vers cette adresse.

 Toutes les sources d’interruption arrivant à cette adresse, si le programmeur utilise plusieurs
sources d’interruptions, il lui faudra déterminer lui-même laquelle il est en train de traiter.

 Les PICs en se connectant à cette adresse, ne sauvent rien automatiquement, hormis le


contenu du PC, qui servira à connaître l’adresse du retour de l’interruption. C’est donc à
l’utilisateur de se charger des sauvegardes.

 Le contenu du PC est sauvé sur la pile interne (8 niveaux). Donc, si vous utilisez des
interruptions, vous ne disposez plus que de 7 niveaux d’imbrication pour vos sous-
programmes. Moins si vous utilisez des sous-programmes dans vos interruption.

 Le temps de réaction d’une interruption est calculé de la manière suivante : le cycle courant
de l'instruction est terminé, le flag d'interruption est lu au début du cycle suivant. Celui-ci est
achevé, puis le processeur s'arrête un cycle pour charger l'adresse 0x04 dans PC. Le
processeur se connecte alors à l'adresse 0x04 où il lui faudra un cycle supplémentaire pour
charger l'instruction à exécuter. Le temps mort total sera donc compris entre 3 et 4 cycles.

 Une interruption ne peut pas être interrompue par une autre interruption. Les interruptions
sont donc invalidées automatiquement lors du saut à l’adresse 0x04 par l’effacement du bit
GIE (que nous allons voir).

 Les interruptions sont remises en service automatiquement lors du retour de l’interruption.


L’instruction RETFIE agit donc exactement comme l’instruction RETURN, mais elle
repositionne en même temps le bit GIE.

2.12 Conclusion :

Partant d’une présentation générale sur les microcontrôleurs, nous avons ensuite défini la
famille des PICs et plus particulièrement le 16F877.
En conclusion dans cette partie nous pouvons dire que le microcontrôleur 16F877 peut bien jouer le
rôle d'une unité de contrôle pour notre système.

- 34 -
PFE : POINTEUSE

3. Afficheur LCD :
3.1 Présentation :
Dans notre carte on a besoin d’un afficheur LCD, autrement appelé un afficheur à
cristaux liquide. Il consomme relativement de 1 à 5 mA et constitué de deux lames de verre, distante
de 20 µm environ, sur lesquelles sont dessinées les mers nantisses formant les caractères.
L’application entre les deux faces d’une tension alternative basse fréquence de quelques volts (3à
5V) le rend absorbant .Un afficheur à cristaux liquide ne peut être utilisé qu’avec un bon éclairage
ambiant .Sa lisibilité augmente avec l’éclairage.
Principe de fonctionnement :
Dans notre projet on va utiliser le mode 4 bits de l’afficheur LCD. Dans ce mode, seuls les 4
bits de poids fort (D4 à D7) de l’afficheur sont utilisés pour transmettre les données et les lire. Les
bits de poids faible (D0 à D3) sont alors connectés à la masse, on a donc besoin hors alimentation
de sept fils pour commander l’afficheur. Les données sont écrites séquentiellement les quatre bits de
poids fort suivis des quatre bits de poids faible. Une impulsion positive d’au moins 450ns doit être
envoyée sur la ligne E pour valider chaque demi -octet. On peut après chaque action sur l’afficheur
vérifier que celui-ci est en mesure de traiter l’information suivante .Pour cela, il faut demander une
lecture en mode commande et tester le flag Busy BT. Lorsque BF=0, l’afficheur est prêt à recevoir
une nouvelle commande ou donnée.
Présentation physique d’un LCD :
Qu’il soit à une ou deux lignes, un afficheur LCD se présente sous la forme suivante :

Fig.22- Afficheur LCD


Au-dessus de l’écran à cristaux liquides, on trouve une série de 14 broches ayant les rôles Suivants :
 Broche 1 : masse ;
 Broche 2 : Vcc ;

- 35 -
PFE : POINTEUSE

 Broche 3 : luminosité ;
 Broche 5, R/W : sélection du mode lecture ou écriture :

0 écriture

1 lecture

 Broche 6, E : Commande des opérations d’écriture ou de lecture ;


 Broche 7 à 14 : utilisées pour le transfert des données ou des instructions. Le transfert peut
se faire sur 8 bits, toutes les broches sont alors utilisées, ou sur 4 bits, dans ce cas, seules les
broches 11 à 14 sont utilisées.

Fig.23- Présentation d’un afficheur LCD

Principales instructions :

 Effacement de l’écran en utilisant caractère « espace » :

D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 0 0 0 1

 Retour en début de première ligne :

D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 0 0 1 *

- 36 -
PFE : POINTEUSE

 Aller en début de seconde ligne :

D7 D6 D5 D4 D3 D2 D1 D0
1 1 0 0 0 0 0 0

 Mode d’affichage :

D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 0 1 I/D S

 Si I\D = 1 : déplacement du curseur vers la droite ;


 Si I\D = 0 : déplacement vers la gauche.
 Si S = 1 : déplacement du texte affiché vers la droite
 Si I\D = 1 vers la gauche.
 Si I\D=0
 Si S=0 : aucun déplacement du texte.

 Contrôle d’affichage :

D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 1 D C B

 Si D = 1 : affichage visible.
 Si C = 1 : curseur visible.
 Si B = 1 : inversion.

 Déplacement affichage et curseur, sans opération d’écriture :

D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 1 S\C R\L * *

- 37 -
PFE : POINTEUSE

S\L R\L ACTIONS


0 0 Déplacement du curseur vers la droite
0 1 Déplacement du curseur vers la gauche
1 0 Déplacement de l’affichage vers la droite

1 1 Déplacement de l’affichage vers la gauche

 Fonction :

D7 D D5 D4 D3 D2 D1 D0
6
0 0 1 DL N F * *

 Si DL = 1 : donnée sur 8 bits, sur 4 bits si DL = 0.


 Si N = 0 : affichage sur 1 ligne, sur 2 ligne si N = 1.
 Si F = 0 : taille des caractères 5x 8,5 x 10 si F= 1.

4. Le MAX 232 :
4.1 Présentation :
Le MAX232 est un standard depuis longtemps, il permet de réaliser des liaisons RS232 et des
interfaces de communication, il amplifie et met en forme deux entrées et deux sorties TTL/CMOS
vers deux entrées et deux sorties RS232, la connexion est réalisée avec un DB9. Le pic 16F877

- 38 -
PFE : POINTEUSE

utilise les niveaux 0v et 5v pour définir respectivement les bits : 0 et 1. La norme RS 232 définit des
niveaux de +12v et –12v pour établir ces mêmes niveaux Nous avons donc besoin d’un circuit
(driver de bus) chargé de convertir les niveaux des signaux entre PIC et PC, donc la solution est le
circuit MAX232.

Fig.24-
Montage
du MAX 232

Ce circuit dispose de :
 Deux blocs nommés T1 (T1IN et T1OUT) et T2 (T2IN et T2OUT) qui convertissent les
signaux d’entrées 0v et 5v en signaux de sorties +12v et -12v.
 Deux blocs nommés R1 (R1IN et R1OUT) et R2 (R2IN et R2OUT) qui convertissent les
signaux d’entrées +12v et -12v en signaux de sorties 0v et 5v.

- 39 -
PFE : POINTEUSE

Fig.25- Structure interne du MAX 232

5. Module Horloge Temps Réel :


5.1 Présentation :
Le PCF8583 fonctionne en véritable horloge calendrier c'est-à-dire en mode de 24 heures et
sur une période de vingt quatre ans. Il possède une sortie d’interruption et de la RAM qui possède
232 octets disponibles en plus de ceux de sa propre fonction.

Fig.26- PCF 8583

5.2 Caractéristiques :
- consommation faible de courant.
- garantie de la fonction d’horloge et de rétention de mémoire sous 1v (et 2µA) ce qui
permet de le secourir facilement par une batterie.

- 40 -
PFE : POINTEUSE

Fig.27- Structure interne du PCF 8583


6. La carte à puce :
6.1 Présentation de la carte Silver :
Etant donné qu’on va utiliser une carte à puce dans notre projet on a choisi d’utiliser celle
appartenant à la famille Silver car elle a une structure interne très adaptée à notre Pic 16F877.

Fig.28- carte Silver

- 41 -
PFE : POINTEUSE

Comme vous pouvez le constater, le schéma utilise d’office une mémoire EEPROM de 8
Koctets. Je ne vous rappellerai pas ici toutes les ressources internes du 16F876, extrêmement bien
pourvu.

Notez cependant que le 16F876 dispose d’une mémoire de programme de 8 K octets contre
seulement 1 K octets dans le "petit" 16F84 de la carte Gold. Il propose en outre une RAM interne de
368 octets contre 68 pour le 16F84 et une EEPROM interne de 256 octets contre 64 toujours pour le
16F84.

6.2 Architecture des contacts d’une carte à puce :

Une carte à puce possède 8 contacts dont 2 sont Réservés à de futurs usages. La puce
dispose d'un contact masse et d'un contact Vcc par lequel l'alimentation de la puce se fait .la puce
fonctionne sur une tension comprise entre 4,75 et 5,25 V et à une intensité de 200mA. Le contact
Reset permet de définir les protocoles de communications et de remettre à 0 le compteur mémoire.
Le contact I/O permet de lire et d'écrire des données en série et en mode half-duplex cadencé par
l'horloge qui est le contact CLK. Le contact Vpp permet de fournir l'alimentation nécessaire à
l'écriture en EEPROM. Si la technologie utilisée est l'EPROM alors l'un des contacts devient FUSE
et ce contact permet de vérifier, à l'aide d'un ohmmètre que l'on place entre la masse et FUSE, si le
fusible permettant l'accès à l'EPROM a été détruit.

Fig.29- Architecture interne d’une carte à puce

- 42 -
PFE : POINTEUSE

6.3 À l'intérieur de la carte :


• Un système d'exploitation de carte (COS) gère l'accès aux différentes ressources:
– RAM, EEPROM, I/O, coprocesseurs
• Dans les premières cartes à puce, le COS et l'application était fusionnés pour gagner de
l'espace.
– Les contraintes d'espace étaient sévères:
• 4K pour le code en ROM
• 128 bytes de RAM pour les indicateurs et les calculs
• 1K d'EEPROM pour les données permanentes
• Aujourd'hui, on peut séparer le SE de l'application:
– 2K de RAM
– 64K de ROM
– 64K d'EEPROM (ou FLASH)
 Le Masque (“Hard Mask”) est le système d’exploitation de la carte.
Il est généralement écrit en C ou en langage d’assemblage.
Il est stocké en ROM et ne peut donc être modifié durant la vie de la carte
 Que fait le masque ?
• Gère les communications avec le monde extérieur
• Exécute les commandes reçues via l’interface I/O
• Supervise l’exécution des programmes exécutables stockés dans la carte
• Gère le SGF et assure un accès sécurisé à l’ensemble des fichiers
• Assure les fonctions de cryptographie (DES, RSA, SHA, ECC,…)
• Sur les cartes les plus modernes, intègre une JVM (Java Virtual Machine) pour exécuter
des applets
 Les « Softmasks »
Un “Soft Mask” est une extension du masque.
Il est écrit en général en C, compilé, et lié aux librairies du Masque.
Il peut être chargé en EEPROM tant que la carte n’est pas bloquée.
 Quand a-t-on besoin d’un “Soft Mask” ?
• Quand une nouvelle fonctionnalité doit être ajoutée à une carte pour une application
spécifique
• Pour les besoins de “bug fixing” au niveau du masque (cela arrive!)
• Quand l’exécution d’une commande du masque ne satisfait pas les besoins d’un client
particulier

- 43 -
PFE : POINTEUSE

• Quand certaines spécifications de clients ne peuvent pas être implémentées en Java


• Quand une applet est trop lente => réécriture!
6.4 Les normes ISO :
• 7816-1: Format de la carte
• 7816-2: Position des contacts
• 7816-3: Réponse au démarrage (ATR) et protocoles de communication (T=0, T=1)
• 7816-4: Commandes inter-industrie
• 7816-5: Système d'enregistrement des applications
• 7816-6: Éléments de données inter-industrie
• 7816-7: Commandes inter-industrie pour SCQL
• 7816-8: Architecture de sécurité et commandes inter-industrie pertinentes
6.5 Communication:
• La communication avec une carte se fait via un lecteur.
• Lorsque la carte est mise sous tension, elle émet une réponse au démarrage (Anwer-To-
Reset).
• Cette réponse indique au lecteur les capacités de la carte à puce concernant les protocoles
de communications:
– Type de protocole (T=0, T=1, ...)
– Vitesse de transmission (9600 bauds, 38400 bauds)
– Extension du délai permis d'exécution d'une commande
• L'ATR contient aussi des informations dites historiques, dont le format est aussi normalisé
par ISO.
- On retrouve dans ces informations l'identification du produit, sa version, le type de puce
utilisé, l'état de la carte.
7. Conclusion :
Cette partie du rapport nous a permis de définir les principaux éléments constituants. Les
questions qu’on peut se poser maintenant sont :
- Comment on va implémenter réellement ces composants?
- Comment on va réaliser la programmation de notre carte électronique ?
- Quels sont les outils et logiciels utilisés pour réaliser les taches citées
précédemment ?

- 44 -
PFE : POINTEUSE

Chapitre3
Réalisation de la carte

- 45 -
PFE : POINTEUSE

1. Introduction :
Après une étude générale des différents éléments constituants notre carte électronique on
passe maintenant à la réalisation physique de notre projet. Dans cette partie on touchera aux
différents logiciels et outils utilisés pour la création de notre carte.
2. Réalisation du schéma de la carte :
2.1 Logiciel adopté :
Pour la création du schéma de la carte on utilisé le logiciel ISIS de la société LABCENTER
ELECTRONICS.
2.2 Généralités sur ISIS PROTEUS :
Isis est un éditeur de schémas qui intègre un simulateur analogique, logique ou mixte. Toutes les
opérations se passent dans cet environnement, aussi bien la configuration des différentes
sources que le placement des sondes et le tracé des courbes.
2.3 La simulation numérique :
Il faut bien évidemment commencer par la saisie du schéma de la carte qu’on souhaite
réaliser : Pour saisir le schéma, il faut créer un nouveau projet puis placer les composants qui
doivent être sélectionné à partir de la bibliothèque des composants :

- 46 -
PFE : POINTEUSE

Listes des
composants

Boutons pour lancer et arrêter


la simulation composants

Fig.30- Saisie d’un schéma sous ISIS

En second lieu, on doit associer le programme de simulation au PIC.


Dans le menu « source », sélectionnez la commande « Ajout/suppression fichiers source » puis
sélectionnez le fichier ASM du programme à utiliser dans la simulation.
Puis choisissez « Outil de génération de code» pour générer un fichier HEX
Editez le PIC16F877 et ajoutez le fichier HEX dans le champ « programme file »
Appuyez sur le bouton jouer du « magnétoscope ». La barre des messages doit indiquer le temps
écoulé depuis le lancement de l’animation
Afficher les fenêtres « Registers » « Source Code » « Data memory » par l’intermédiaire du menu
« Debug » pour contrôler le fonctionnement du programme, détecter et corriger les erreurs.
2.4 Connexion des différents composants de la carte :
a- Connexion de l’afficheur LCD :

- 47 -
PFE : POINTEUSE

Fig.31- Connexion du LCD


Comme vous l’avez remarqué on a choisi de programmer notre afficheur en mode 4 bits.
Toutes les connexions nécessaires du LCD sont liées au PIC 16F877 à travers le port B afin de
faciliter la programmation de notre écran.

b- Connexion du MAX 232 :

Fig.32- Connexion du MAX 232


La connexion du MAX 232 au PIC se fait via les pins RX (RC7) et TX (TX), pour assurer
une communication en série.

- 48 -
PFE : POINTEUSE

c- Connexion du PCF 8583 :

Fig.33- Connexion du PCF8583


Comme on l’avait dit précédemment le PCF 8583 permet d’associer l’horloge temps réel à
notre système. La connexion se fait via le bus I2C (RC3 et RC4).

d- Connexion du lecteur de carte à puce :

Fig.34- Connexion de lecteur de carte

- 49 -
PFE : POINTEUSE

La communication entre le PIC et le lecteur est une en série. C’est pour cela qu’on a
connecté le pin 7 du lecteur au pin RC7 du pic. Il faut aussi remarquer qu’une carte à puce possède
son propre horloge. C’et pourquoi on a connecté le pin 3 du lecteur à l’horloge du pic. Il ne faut
jamais oublier de réaliser la connexion entre le pic et la carte afin de détecter la présence d’une carte
dans le lecteur. Cela se fait à travers le pin RC1 du pic.
2.5 Schéma de la carte :

Fig.35- Schéma final de la carte

2.6 Conclusion :
A la fin de cette partie on peut dire qu’on a réalisé l’une des taches les importantes de notre
projet. On passera par la suite à la conception du typon qui sera imprimé sur notre carte.
3. Réalisation du schéma de routage :
3.1 Logiciel utilisé :
Pour le schéma de routage on a choisi d’utiliser le logiciel ARES de la même compagnie
LABCENTER ELECTRONICS. C’est un logiciel très pratique à manipuler.
a- Ecran d’accueil :
En exécutant notre logiciel on obtient l’affichage suivant :

- 50 -
PFE : POINTEUSE

Fig.36- Ecran d’accueil sous ARES


b- Insertion des composantes :
Pour insérer les composantes de notre carte il suffit de sélectionner l’élément voulu et de
cliquer sur l’écran noir par le bouton droit de la souris, on choisi la commande « PLACE » puis
« Component » et ainsi de suite.

c- Routage
Pour faire le routage il faut cliquer sur le rectangle bleu à gauche puis sélectionner « Board
Edge » (rectangle jaune en bas). Par la suite il faut sélectionner la partie sur laquelle on va exercer
le routage. Enfin on clique sur « Tools », puis « auto router » et on choisi selon nos besoins et nos
résultats estimés les options de routage. Vous voyez ici un schéma de routage d’une maquette de TP
se trouvant à l’ISET de Nabeul.

- 51 -
PFE : POINTEUSE

Fig.37- Maquette de TP (ISET de Nabeul)

3.2 Routage final :


Il s’agit bien évidemment du schéma de routage de notre projet. Il est présenté sous une face
simple (face unique).

- 52 -
PFE : POINTEUSE

Fig.38- schéma de routage du projet


3.3 Conclusion :
On peut dire que notre schéma est électroniquement prêt, il faut penser maintenant à la phase de
programmation qui est une phase primordiale et décisive dans la réalisation de notre projet.
Quels seront alors les outils et logiciels qu’on utilisera pour la partie programmation ?

4. Programmation de la carte :
4.1 Description générale :

- 53 -
PFE : POINTEUSE

Dans cette partie on va essayer de donner les méthodes et solutions adoptées afin de trouver
un programme adéquat pour notre système de pointage. Le principe de fonctionnement de notre
carte est assez simple : Après initialisation de notre afficheur, de notre connexion série et de notre
horloge temps réel, on doit en premier temps afficher la date et l’heure sur notre écran. Par la suite
on met notre système en attente de l’insertion de la carte à puce. Si la carte est présente on doit la
tester, si elle comporte des informations valides on réalise le pointage et on stocke les nouveaux
enregistrements sur une base de données ou directement sur la mémoire externe du système. Mais si
les informations contenues sur la carte à puce sont invalides le système doit afficher à travers notre
afficheur un message d’erreur. L’organigramme suivant présente le fonctionnement général de notre
système. Il est réalisé avec ALGO DRAW qui est un logiciel libre et gratuit de dessin
d’algorigramme.

Fig.39- organigramme principal du système


4.2 Logiciel utilisé :
a- choix et raisons :

- 54 -
PFE : POINTEUSE

Le choix du langage de programmation n’était pas facile. Pour une meilleure solution il faut penser
à utiliser le langage le plus simple et le plus efficace possible. En tout cas notre choix s’est fait sur
le compilateur C de la compagnie CCS. Ce choix est dû aux critères suivants :
- Le langage C est un langage dont on est assez familiarisé, il suffit d’y en
ajouter quelques notions de base pour la programmation de PIC.
- PCW est un logiciel qui nous permet de générer des fichiers sous un format
HEX qui sera enregistré sur le PIC.
- PCW intègre une large bibliothèque de pilotes et de programmes de test pour
nos applications.
- On peut simuler directement notre programme avec ISIS.
b- Démarche à suivre lors de la création d’un nouveau projet :
Pour lancer l'EDI, cliquez sur l'icône « PIC C Compiler » qui se trouve sur le bureau de Windows.
Au lancement, vous obtenez la fenêtre suivante :

Cliquez sur la première icône qui représente un dossier ouvert. Puis choisissez « New » puis «
Source File ». Vous obtiendrez une fenêtre qui vous demande d'enregistrer un nouveau fichier.
Vérifiez que vous êtes bien dans votre répertoire personnel puis tapez le nom de votre programme
dans la zone « Nom du fichier » (par ex: test.c) puis validez avec le bouton « Enregistrer ».
Vous obtenez alors la fenêtre suivante :

- 55 -
PFE : POINTEUSE

Vérifiez que le nom de votre fichier source apparaît bien (ici : test.c).
Vous pouvez alors commencer à taper votre code source C dans la zone d'édition. Remarquez que
les lignes sont numérotées automatiquement.
Quand vous avez fini votre saisie, sauvegardez votre fichier en cliquant sur « Save ».
Il faut ensuite compiler votre programme, c'est à dire convertir le fichier texte en langage C en une
suite d'instructions compréhensible par le mC PIC :

Vous cliquez alors sur l'onglet « Compile » puis :


1. Vous vérifiez que vous compilez votre code source pour un PIC 16F (PCM 14 bit),
2. Vous lancez la compilation en cliquant sur l'icône « Compile »,

- 56 -
PFE : POINTEUSE

3. Si la compilation s'est déroulée correctement (sans erreur donc), vous pouvez programmer votre
PIC en cliquant sur l'icône « Program Chip ». et en sélectionnant « ICD ».
Si la compilation de votre code source se passe correctement vous obtiendrez alors la fenêtre ci
dessous :
1. Ce rectangle rappelle le nom de votre fichier et son emplacement.
2. Ce rectangle indique le nombre d'erreurs (errors) et d'avertissements (warnings)

Dans le cas contraire vous obtiendrez la fenêtre ci dessous avec un message d'erreur qui apparaitra
en bas de la fenêtre (flèche 1), la ligne contenant l'erreur apparaitra d'elle-même (flèche 2):

Lorsque vous lancez la programmation de votre PIC, vous obtenez successivement les écrans
suivants (attention ces écrans peuvent défiler très rapidement) :

- 57 -
PFE : POINTEUSE

Connexion vers l'ICD. Programmation du PIC.

Vérification de la programmation. Exécution du programme.

c- Déverminage du programme :
Grâce au module ICDU40, vous pouvez exécuter votre programme dans un mode spécial appelé
mode« pas à pas ». Ce mode permet d'examiner à n'importe quel instant l'état des registres internes
du PIC, d'avoir la valeur d'une variable, de lire le contenu de l'eeprom, etc...
Ce mode sert à analyser le fonctionnement d'un programme et suivre son déroulement lorsque celui-
ci ne fonctionne pas de la manière attendu. Pour activer ce mode, suivez la procédure suivante :
1. La ligne suivante doit apparaitre dans votre code source en langage C : #DEVICE ICD=TRUE
sinon le logiciel vous proposera de le rajouter automatiquement.
2. Cliquez sur l'onglet « Debug » puis sur l'icône « Enable Debbugger ». Patientez jusqu'à ce que
tous les icônes soient actives.
3. Cliquez alors sur l'icône « Debug Window » puis sur l'option « Show All ». Vous devriez alors
obtenir la capture ci dessous:

- 58 -
PFE : POINTEUSE

Cette fenêtre permet de suivre l'évolution des différentes variables en cliquant sur les différents
onglets disponibles. L'icône « Run » permet d'exécuter le programme de manière « normale ».
Recliquez sur ce même icône pour arrêter le programme. L'icône « Single Step » vous permet
d'exécuter votre programme en mode pas à pas. Chaque ligne du programme en langage C est
exécutée puis le programme s'arrête jusqu'à ce que vous recliquiez sur cet icône.
Cette petite flèche verte vous indique la ligne qui va être exécuté lorsque vous êtes en mode pas à
pas. Cette flèche change donc de ligne à chaque fois que vous cliquez sur l'icône « Single Step ».En
cas de problème, vous pouvez réinitialiser le PIC en cliquant sur l'icône « Reset ».Enfin il faut
toujours quitter le mode de déverminage en cliquant sur l'icône « Disable ».
d-Simulation avec ISIS :
Lorsque vous avez compilé votre code source en langage C, vous pouvez le tester avec Isis 7 Pour
cela, il faut saisir dans Isis votre schéma (prendre un PIC16F87X pour tester). Ensuite faites
apparaître les caractéristiques du PIC, vous obtiendrez la fenêtre suivante :

- 59 -
PFE : POINTEUSE

Suivez la procédure suivante :


1. Appuyez sur le bouton « ? » pour récupérer votre programme en code hexadécimal (ici
essai2.hex),
2. Précisez la fréquence du quartz du PIC (pas besoin de quartz sur le schéma Isis) (ici 4MHz).
3. Enfin vérifiez que le mot de programmation vaut 0x3D31. Validez vos choix en cliquant sur le
bouton « OK ».
Vous pouvez alors lancer une simulation active et tester votre programme. Etant donné que le
volume du programme est assez important vous le trouverez disponible comme annexe de ce
rapport.
4.3 Conclusion :
On peut dire enfin que la phase de programmation est l’étape la plus difficile et la plus critique de
notre projet car elle a mis en valeur toutes nos compétences en matière de programmation. Comme
tout le monde le sait déjà, on ne peut parler d’un vrai informaticien que s’il est assez performant en
matière de programmation.

- 60 -
PFE : POINTEUSE

Chapitre4
Finalisation du projet

- 61 -
PFE : POINTEUSE

1. Introduction :
Cette phase est une étape récapitulative des moments forts de notre projet. On en parlera des
difficultés qu’on a rencontrées et la façon dont on a réussi à les affronter.
2. Problèmes et solutions :
Comme tout nouveau projet, on peut rencontrer plusieurs types de problèmes. Pendant ce
paragraphe je vais parler des principaux problèmes affrontés :
- Le premier problème est bien évidemment la phase de schématisation de la
plaque électronique de notre système. Il faut d’abord penser à faire le
meilleur choix du PIC. En effet, notre choix s’est fixé sur le PIC 16F877 qui
est caractérisé principalement par un nombre de pins assez important qui va
nous permettre d’y connecter divers composants électroniques, une mémoire
de données assez importante et des sources d’interruptions faciles à intégrer.
Ensuite, il faut penser à la communication entre notre système et l’ordinateur.
On a choisi d’utiliser une liaison série RS232. Cela est due au fait qu’on a
déjà vu quelques notions de base pour la liaison série au cours de notre
formation à l’ISET. Par la suite on a rencontré le problème de connexion de
l’horloge temps réel PCF8583 et de la mémoire I2c externe 24C32A. La
nature de ce problème est que ces deux éléments utilisent en même temps les
mêmes lignes I2c SDA et SCL. La solution est de définir différemment les
adresses des lignes d’écriture et de lecture du PCF8583 (#define
PCF8583_WRITE_ADDRESS 0xA2 (à la place de 0xA1) #define
PCF8583_READ_ADDRESS 0xA3 (à la place de 0xA2)), et de lier A0 du
PCF8583 à la masse et A0 de la 24C32 à la VCC. Enfin, le plus grand
problème était comment schématiser le lecteur de carte étant donné qu’on n’a
pas un schéma simulable sur ISIS. La solution était d’intégrer un connecteur
à huit pins (en se basant sur le fait qu’une carte à puce dispose de huit pins de
contact) et d’en ajouter un interrupteur qui a pour rôle de détecter la présence
de la carte dans le lecteur.
- Le second problème était au niveau du choix des composantes électroniques
de notre système, surtout en ce qui concerne les résistances, les diodes et les
condensateurs. Ce choix doit se baser essentiellement sur deux critères de
base : le prix et la disponibilité sur le marché (au moins tunisien).Voici la
liste complète des éléments constituants notre système :

- 62 -
PFE : POINTEUSE

6 Resistances
Quantité: Références Valeur
4 R1-R3, R5 10k
1 R4 1k
1 R17 270K

10 Capacités
Quantité: Références Valeur
2 C1, C2 10nF
4 C3-C6 47uF
3 C7, C21, C22 100nF
1 C20 2200uF

5 Circuits intégrés
Quantité: Références Valeur
1 U1 PIC16F877
1 U2 MAX232
1 U3 PCF8583
1 U4 7805
1 U6 24C32

2 Diodes
Quantité: Références Valeur
2 D1, D2 1N4148

9Autres
Quantité: Références Valeur
1 B1 BORNIER2
1 BAT10 Batterie 3V
1 CRT1 Lecteur de carte à puce
1 J1 DB9HF
1 LCD1 LM016L
1 LED3 LED-rouge
1 P1 Résistance variable
2 X1, X2 CRYSTAL

- Le problème de suivant était est ce qu’on peut lier le pin 7 du lecteur de


carte et le pin R2 out du MAX 232 au pin RC7 (RX) du Pic sans causer
de problèmes ? La réponse était oui car grâce à la liaison du fil de présence

- 63 -
PFE : POINTEUSE

carte au pin RC 1 du Pic on peut gérer la communication série entre le PC, le


Pic et le lecteur de carte à puce.
- Le conflit venant de suite était d’ordre technique. Il s’agit de la méthode
d’intégration du schéma de routage de la carte de notre système. Afin de
nous faciliter la tache on a choisi d’intégrer le schéma de routage sur une
simple phase. Pour cela il faut placer intelligemment les différents
composants électroniques du système.
- Par la suite on s’est trouvé face au monstre de la programmation de notre
système. La traduction d’organigramme en programme était assez difficile.
C’est grâce à monsieur Hatem Abidi et à monsieur Tarek Jellad que j’ai réussi
à faire un pas gigantesque dans la partie programmation.

Pour conclure, on peut dire un seul mot : un projet sans difficultés n’a aucun gout.

3. Points forts et sources de faiblesse :


Il est facile de parler des points forts de notre projet, mais le plus difficile est le fait de critiquer le
travail qu’on a fait pendant un semestre. C’est pourquoi on va commencer par citer quelques points
positifs de ce système :
- D’abord, notre système dispose d’une mémoire externe ayant une capacité
assez importante afin de répondre services attendus de notre pointeuse.
- Ensuite, toutes les faces de réalisation de ce projet ont été vérifié et validé par
plusieurs personnes compétents allant de mon encadreur à l’ISET et passant
par mes supports externes en Tunisie et même à l’étranger et finissant par
mon encadreur à la TELECOM10.
- Aussi, notre système peut être adapté pour n’importe quelle entreprise grâce
à une programmation assez forte et à une communication série facile à
configurer.
- Enfin, notre système dispose d’une batterie de sécurité qui permet de garder
les informations de la date et heure même en cas de coupure du courant.
Passons à la phase de critique de notre système :
- D’abord, ce système a due être équipé d’une interface graphique assez riche
afin de bien manipuler les performances de notre système. Vous savez, ce
projet est assez compliqué, alors ce n’est pas assez évident qu’un seul
étudiant puisse réaliser tout seul ce projet pendant une période assez courte.

- 64 -
PFE : POINTEUSE

- Ensuite, on a pu penser à utiliser plus de nouvelles technologies dans la


conception de notre système tel que le pointage par les empreintes digitales et
la communication réseau via une prise RJ45.
- Enfin, on peut encore augmenter notre mémoire externe pour donner plus de
vie à notre système. Sinon on peut même utiliser la mémoire du PC avec
lequel sera connectée la pointeuse.
En tout cas, tout système a des points forts et des points faibles. Le plus important est qu’on observe
les choses par le coté positif et que le projet soit réellement exploitable.
4. Conclusion générale :
Mon projet consiste à réaliser un système de pointage qui assure le contrôle de présence des
employés d’une entreprise. Ce projet m’a été une source de découverte de plusieurs
domaines rattachés à ma formation de base et une occasion précieuse pour approfondir nos
connaissances. De plus, il m’a donné une idée sur la complémentarité entre la théorie et la pratique.
En fait, ces résultats ont nécessité en premier lieu la spécification des différentes tâches de mon
sujet. En second lieu la conception de la partie matérielle et logicielle ainsi la recherche des
solutions algorithmiques et en troisième lieu la réalisation de la carte finissant par la programmation
du système.
Ce projet a été intéressant et récapitulatif de la majorité des sciences étudiées et m’a permis de:
• Connaître plus ISIS et ARES de PROTEUS, la programmation de pic à travers PCW de CCS et la
réalisation physique d’une carte électronique.
• Accueillir de nouvelles idées concernant les autres projets de mes collègues.

Malgré les difficultés que j’ai rencontrées tout au long de ce travail, j’espère que j’ai
préparé les champs nécessaires et l'intégration de mon système.

Bibliographie

- Cours : système temps réel : II4.1 ISET de Mahdia A.U : 2006/2007.

- 65 -
PFE : POINTEUSE

- Cours : la programmation des pics par Bigonoff.


- Cours: Languages C pour pic: Olivier Dartois/Jaques Duprat.
- Cours : Pic 16F877 : Olivier Dartois/Jaques Duprat.
- Datasheet: PCF8583, PIC 16F877, MAX232, 24C32A.
- Exposé : les cartes à puces à contact : ISET de Mahdia A.U : 2006/2007 (II4.1 : mini projet).
- Rapport de projet de fin d’étude (PFE) : réalisation d’un système de contrôle d’accès : ISET de
Nabeul A.U : 2005/2006.
- Rapport PFE : système de contrôle d’accès par PC : ISET de Sfax A.U : 2003/2004.
- Rapport PFE : cartes de commandes d’un ascenseur : ISET de Radès A.U : 2003/2004.
- Rapport PFE : conception et réalisation d’une maquette didactique de TP à base de pic 16F877 :
ISET de Nabeul A.U : 2005/2006.

Webographie : WWW.
- Afficheur.free.fr
- Atexa.fr.st
- A6ze.free.fr
- Atexa-electronique.com
- Brodeurelectronique.com
- Cartadis.com
- Cartesapuce.fr
- Ccs-info.com
- Codes-sources.com
- Developpez.net
- Datasheet.com
- Electroschema.info
- Electromatic.be
- futura-sciences.com
- Fribotte.free.fr
- Jmb-electronique.com
- Kudelko.fr
- Labcenter.co.uk
- Leakystirling.free.fr
- Montefiore.ulg.ac.be
- Technologuepro.com

- 66 -
PFE : POINTEUSE

- 67 -
PFE : POINTEUSE

- 68 -

Vous aimerez peut-être aussi