Professional Documents
Culture Documents
SYSTEMES
PROGRAMMES
ENFOUIS:
La Dactylette.
Prof. BOIGELOT
`
TABLE DES MATIERES
DU PROJET.
1 PRESENTATION
2 SCHEMA
DU CIRCUIT.
3 CONTRAINTES TEMPS-REEL.
4 PROGRAMMATION DU PIC.
4.1 Phase I: Entree des donnees . . . . . . . . . . . . . . . . . . . . .
4.2 Phase II: Calculs . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Phase III: Affichage des resultats . . . . . . . . . . . . . . . . . .
8
9
10
10
5 CONCLUSIONS.
10
Schema du circuit. . . . . . . . . . . . . . . . . . . . . . . . . . .
Schema de linterface clavier-Pic. . . . . . . . . . . . . . . . . . .
Schema de la commande dun afficheur 7 segments `a cathode
commune. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Timing du scanning du clavier et de selection dun afficheur. . . .
Schema general du programme. . . . . . . . . . . . . . . . . . . .
5
6
7
7
8
PRESENTATION
DU PROJET.
PRESENTATION
DU PROJET.
brut
[f rappes/f aute]
f tes
Pour obtenir la cote finale, nous avons effectue une interpolation lineraire
des deux tableaux joints en annexe. Nous avons renomme le seuil de tolerance
en niveau de difficulte, sur une echelle de 1 `a 8, 1 etant le niveau le plus difficile.
Nous avons observe quune cote de 10/10 sobtient quand on fait 0 fautes, et
quune cote de 0/10 sobtient quand on fait deux fois plus de fautes que le
nombre de fautes permises par le seuil de tolerance (celui etant le nombre de
frappes divise par 100 pour le niveau 4). On obtient donc la formule:
score =
10
brut
100
score = 10
niv
4
f tes + 10
2000 f tes
[./10]
brut niv
SCHEMA
DU CIRCUIT.
SCHEMA
DU CIRCUIT.
Nous avons concu une interface entre le microcontroleur PIC16F877 de microchip, cadence par une horloge externe de 20Mhz et
4 afficheurs LED 7 segments `a cathode commune permettant de visualiser
les donnees entrees au clavier et les resultats.
4 transistors npn pour la commande des 4 afficheurs
un clavier organise en matrice 3x4 qui nous permet de rentrer les donnees,
passer `
a letape suivante avec la touche carre, ou recommencer le processus
au debut avec la touche etoile.
7 LED de sortie. Quand il faut rentrer une donnee ou lire un resultat, la
LED correspondante sallume.
SCHEMA
DU CIRCUIT.
Nous utilisons les 8 pins du PORTB pour gerer laffichage et le clavier par
un balayage sur chaque afficheur et sur chaque colonne du clavier. Notre PIC
nous permet en effet de changer dynamiquement le statut du PORTB. Pendant
les phases daffichage, les 8 bit sont configures en sortie, et pendant les phases
de lecture clavier les bits 0, 1, 2 en sortie et 4, 5, 6, 7 en entree
Les sorties sont pour envoyer 5V en permanence, sauf quand on effectue
un balayage sur une colonne, signifiant quon envoye une tension 0V sur cette
colonne. Quand on appuie pas sur une touche on a 5V sur les entrees (naturellement hautes `
a cause des resistances Pull-Up). On lira donc un 0 (0.5V par
division potentiometrique 100k/10k) sur une des pins dentrees seulement
quand on appuie sur une touche et quon envoie un 0 sur la sortie correspondante.
CONTRAINTES TEMPS-REEL.
CONTRAINTES TEMPS-REEL.
PROGRAMMATION DU PIC.
PROGRAMMATION DU PIC.
PROGRAMMATION DU PIC.
4.1
Phase I: Entr
ee des donn
ees
Pour chacune des 4 etapes, on rep`ete la meme methodologie dentree, affichage et enregistrement de donnees.
Algorithme: Etapes
1-1 `
a 1-4
Effacer f lagT ouche]
Af f ich4 = Af f ich3 = Af f ich2 = Af f ich1 =0 0011111110
chif f reM = chif f reC = chif f reD = chif f reU = 0
Allumer la LED de sortie adequate
etape1x
configurer PORTB en entree/sortie
ScanCol1
ScanCol2
ScanCol3
configurer PORTB en sortie
Afficheur1 et tempo5ms
Afficheur2 et tempo5ms
Afficheur3 et tempo5ms
Afficheur4 et tempo5ms
Si f lagT ouche] = 0
goto etape1x
Retenir 1000chif f reM + 100chif f reC + 10chif f reD + chif f reU
Passer `
a letape suivante
Lorsque quon detecte un appui sur une touche lors dun ScanCol, on retient
la valeur de cette touche dans la variable chiffreU et les segments `a allumer
dans Affich1 et on effectue une rotation des variables (lancien chiffreU devient
le nouveau chiffreD, et ainsi de suite). La touche ] provoque toujours un passage
a letape suivante et la touche un retour `a letape 1-1.
`
AfficheurX commande lallumage de lafficheur X avec la valeur contenue
dans la variable affichX. On reste ensuite 5ms dans cette etat par lintermediaire
dune boucle de 25 255 4 instructions (une instruction dure 0.2sec).
CONCLUSIONS.
4.2
10
brut 6 f tes
[mots/min]
6 temps
brut
[f rappes/f aute]
f tes
2000 f tes
[./10]
brut niv
Pour cela nous avons utilise les routines de multiplication, division, addition,
soustraction 16 bits fournies par microchip. En effet, la variable brut (le nombre
de frappes) peut monter jusque 6000, donc nous lavons stockee comme deux
variables de 8bits: brutH et brutL.
score = 10
Une fois quon obtient nos reponses finales vpond, pctge et score, on les
transforme en une representation Milliers,Centaines,Dizaines,Unites, pour les
afficher `a la phase suivante. Par exemple, on effectue la division enti`ere de vpond
par 1000, puis on regarde dans la table de reference pour obtenir la forme utile
pour les afficheurs 7 segments et on la stocke dans la variable Mvpond.
4.3
La methodologie est exactement la meme que pour la phase I: on effectue alternativement un allumage de chaque afficheur et un scanning de chaque touche
du clavier dans lattente de la touche ] pour passer `a letape suivante.
La seule difference est que les valeurs affichees sont toujours Mvpond - Cvpond
- Dvpond - Uvpond, Mpctge - Cpctge - Dpctge - Upctge, Mscore - Cscore - Dscore
- Uscore selon letape.
CONCLUSIONS.
ERENCES
REF
11
R
ef
erences
ENFOUIS, Notes de
[1] Bernard BOIGELOT: SYSTEMES PROGRAMMES
cours.
[2] Microchip: PIC16F87x DATASHEET.
[3] Bigonoff: LA PROGRAMMATION DES PICs : Demarrer avec le 16F84.
[4] Bigonoff: LA PROGRAMMATION DES PICs : La gamme mid-range par
letude des 16F87x.
[5] Microchip: Multiplexing LED drive and a 4x4 keypad sampling AN529.