Cours de Programmation - Chap 04 - Carte de Test PIC16F876
Cours de Programmation - Chap 04 - Carte de Test PIC16F876
Cours de Programmation - Chap 04 - Carte de Test PIC16F876
C O U R S D E P R O G R A M M A T I O N
• CHAPITRE IV •
La pr
programmation
ogrammation
des PIC16F876
de la thé
théorie à la pratique
ans cette leçon, nous sion peut être prélevée sur le cur-
allons continuer ce que seur d’un potentiomètre ou pro-
nous avons commencé venir d’un signal extérieur, selon
dans la précédente, la position de JP1 sur la carte test.
c’est-à-dire décrire des
programmes qui vous permettront Etudions en détail la fonction du
de comprendre comment utiliser registre ADCON0 qui gère juste-
divers accessoires. La car te de ment le convertisseur A/D.
test décrite dans ELM numéro 18,
page 76 et suivantes vous sera Il s’agit d’un registre constitué de
bien utile pour vos essais. 8 bits :
ELECTRONIQUE 80 magazine - n° 21
CMJK ELM 21 - page 81
ELECTRONIQUE 81 magazine - n° 21
CMJK ELM 21 - page 82
- Les bits 6 et 7, dénommés respecti- tats de la conversion, dénommés senté de deux façons différentes :
vement ADCS0 et ADCS1, servent à ADRESH et ADRESL. Vous pouvez, à Alignement à droite (ADFM = 1) :
choisir la vitesse de conversion, obte- travers le bit 7 du registre ADCON1, ADRESH : 00000011
nue par la division de la fréquence à dénommé ADFM, définir le format de ADRESL : 00101001
laquelle le microcontrôleur est en train sor tie du conver tisseur, avec aligne-
de travailler. ment à droite ou à gauche. Alignement à gauche (ADFM = 0) :
ADRESH : 11001010
Rappelez-vous que le convertisseur du Supposons par exemple que le résul- ADRESL : 01000000
microcontrôleur travaille sur 10 bits. tat de la conversion soit le numéro
C’est la raison pour laquelle il existe binaire à 10 bits suivant : Au cas où vous voudriez utiliser le
deux registres qui contiennent les résul- 1100101001. Ceci peut être repré- convertisseur avec les 10 bits, il sera
ELECTRONIQUE 82 magazine - n° 21
CMJK ELM 21 - page 83
nécessaire de sélectionner le format était de 8 bits, de façon à avoir le résul- Dans les programmes que nous avons
avec alignement à droite, puisque nous tat sur un seul byte, plus facile à exploi- réalisés, nous avons utilisé le conver-
aurons en ADRESH et ADRESL les deux ter. Dans ce deuxième cas, vous devrez tisseur exactement de cette façon.
bytes de la conversion. utiliser l’alignement à gauche et lire le
résultat de la conversion directement Voyons maintenant le programme qui
Il est cependant très souvent suffisant en ADRESH, en laissant de côté le effectue la conversion et en visualise
d’utiliser le conver tisseur comme s’il contenu de ADRESL. le résultat sur l’afficheur LCD.
ELECTRONIQUE 83 magazine - n° 21
CMJK ELM 21 - page 84
Rappelez-vous que le nombre que vous verrez écrit sur l’af- ABONNEZ-VOUS A
ficheur n’est pas la valeur de tension, mais le résultat sur
8 bits de la conversion.
Une fois cette durée écoulée, vous pouvez prélever le résul- Pour vérifier la pression d’un bouton, on utilise l’instruction
tat de la conversion en ADRESH. L’afficheur est effacé et BTFSS (Bit Test File Skip If Set, soit, en bon français : teste
le curseur est reporté au début de la ligne, à travers les ins- le bit du fichier et saute s’il est égal à 1 - ouf !).
tructions appropriées envoyées au LCD.
Dans notre cas, sont testés les bits du port correspondant
Avant de pouvoir visualiser les résultats, vous devez d’abord aux deux boutons.
convertir les données binaires du registre ADRESH en trois
chiffres BCD correspondants pour les envoyer sur l’afficheur. Si ceux-ci ne sont pas pressés, la patte correspondante du
microcontrôleur se trouve au niveau logique haut par l’ef-
Pour ce faire, vous allez utiliser une routine mathématique, fet des résistances de tirage (pull-up), et donc les instruc-
dénommée BINBCD. Sans entrer dans les détails de la tech- tions BTFSS font sauter les instructions qui suivent immé-
nique de conversion binaire-BCD, nous pouvons dire que diatement, c’est-à-dire les CALLUP et CALLDOWN.
cette routine prend en entrée deux bytes, dénommés LBYTE
et HBYTE, et rend en sortie, dans les trois registres R0, R1 Si un bouton est pressé, l’instruction qui appelle la sous-
et R2, les six chiffres qui constituent le nombre binaire reçu routine sera alors exécutée. Les routines UP et DOWN atten-
en entrée. dent 100 ms et incrémentent (UP) ou décrémentent (DOWN)
le chiffre seulement après avoir contrôlé que celui-ci n’est
Comme dans votre cas vous ne devez convertir qu’un seul pas dehors de l’échelle prévue (0 à 9). Puis la routine
byte, vous utiliserez seulement le registre LBYTE, mettant BIN7SEG est appelée afin de visualiser la valeur de SOR-
donc le registre HBYTE à 0. Vous aurez comme résultat en TIE sur l’afficheur. Le programme attend tant que le bouton
R1 et en R2 les chiffres BCD de la conversion. Ces chiffres pressé n’a pas été relâché et, seulement alors, revient au
sont envoyés à l’afficheur à travers la routine CARATT qui programme principal.
s’occupe de les visualiser. ◆ R. N.
ELECTRONIQUE 84 magazine - n° 21