Académique Documents
Professionnel Documents
Culture Documents
INTRODUCTION
-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
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
Principe de fonctionnement :
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
- 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.
TYPE 481
À partir de 1948
-5-
PFE : POINTEUSE
TYPE 615
À 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.
TYPE 783
À partir de 1978
-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.
Exemple : Horaire de l'entreprise 8H00 12H00 13H30 17H30 dans ce cas la programmation sera la
suivante :
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.
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.
1978-1985
TYPE MEMOR
1980-2003
Principe de fonctionnement
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.
TYPE ER 1500
À partir de 2003
Principe de fonctionnement :
-9-
PFE : POINTEUSE
TYPE H 71
À partir de 1971
TYPE ES900
- 10 -
PFE : POINTEUSE
À partir de 2005
Principe de fonctionnement :
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.
SÉRIE 1
À partir de 1976
- 11 -
PFE : POINTEUSE
SÉRIE PAYSAGE
À 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 :
- Touche d’interrogation
- Led de contrôle
- 12 -
PFE : POINTEUSE
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.
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
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
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
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
- 19 -
PFE : POINTEUSE
Repos
<M>
Modification des
<Résultats> stockages
<A/I> afficher
l’interface
Affichage
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
- 24 -
PFE : POINTEUSE
MCLR
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.
- 25 -
PFE : POINTEUSE
- 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
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.
- 28 -
PFE : POINTEUSE
- 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
- 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…).
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
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.
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.
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).
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 :
- 35 -
PFE : POINTEUSE
Broche 3 : luminosité ;
Broche 5, R/W : sélection du mode lecture ou écriture :
0 écriture
1 lecture
Principales instructions :
D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 0 0 0 1
D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 0 0 1 *
- 36 -
PFE : POINTEUSE
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
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.
D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 1 S\C R\L * *
- 37 -
PFE : POINTEUSE
Fonction :
D7 D D5 D4 D3 D2 D1 D0
6
0 0 1 DL N F * *
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
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
- 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.
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.
- 42 -
PFE : POINTEUSE
- 43 -
PFE : POINTEUSE
- 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
- 47 -
PFE : POINTEUSE
- 48 -
PFE : POINTEUSE
- 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 :
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
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
- 52 -
PFE : POINTEUSE
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.
- 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 :
- 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
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
- 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
- 63 -
PFE : POINTEUSE
Pour conclure, on peut dire un seul mot : un projet sans difficultés n’a aucun gout.
- 64 -
PFE : POINTEUSE
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
- 65 -
PFE : POINTEUSE
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 -