Académique Documents
Professionnel Documents
Culture Documents
C O U R S D E P R O G R A M M A T I O N
• CHAPITRE V •
La pr
programmation
ogrammation
des PIC16F876
de la thé
théorie à la pratique
Chaque instruction basic pourrait donc être expliquée dans Le véritable programme commence alors. Il est constitué
ces termes, mais le but de notre cours est de vous faire d’une boucle qui, à par tir de l’étiquette START (dépar t),
ELECTRONIQUE 74 magazine - n° 22
CMJK ELM 22 - page 75
BASIC_03.BAS
Ce programme montre comment vous pouvez générer une
onde carrée, à une certaine fréquence, sur une patte du ;******************************************************
microcontrôleur. ;*** ELM COURS PIC 16C876 ***
;*** BASIC_03.BAS ***
;*** GENERATION D’UN SON A 5 KHZ ***
Si cette patte est reliée à un buzzer, comme sur la carte de
;******************************************************
test, cela vous permettra d’entendre ce dernier émettre un
son d’une certaine tonalité. ADCON1 = %00000110
OUTPUT PORTA.3
Le programme est très simple : après avoir défini la patte
à utiliser comme sortie (dans notre cas il s’agit de la patte START:
“PORTA.3”, à laquelle est relié, au moyen d’un transistor, PORTA.3 = 1
PAUSEUS 100
un petit buzzer), le programme se limite à imposer alterna- PORTA.3 = 0
tivement un niveau logique haut (“PORTA.3 = 1”) et un niveau PAUSEUS 100
logique bas (“PORTA.3 = 0”) espacés d’un inter valle de GOTO START
temps défini par l’instruction “PAUSEUS 100”. Cette ins-
truction se différencie de “PAUSE” puisque le temps n’est
ELECTRONIQUE 75 magazine - n° 22
CMJK ELM 22 - page 76
plus exprimé en millisecondes, mais en microsecondes (U Même si nous avons parlé “d’instructions”, nous tenons
pour µ et S pour secondes), ou encore, en millionièmes de à préciser que ce que le microcontrôleur exécute ne sont
seconde. pas vraiment des instructions. Ce sont des informations
que le compilateur utilisera pour piloter correctement l’af-
Dans notre programme, nous avons le niveau haut et le ficheur.
niveau bas de l’onde carrée qui durent 100 µs chacun. La
période de l’onde sera au total de 200 µs, et, donc, la fré- L’instruction “LCDOUT $FE,1” sert à effacer complètement
quence du signal sera de 5 kHz, étant donné qu’elle est l’afficheur et à mettre le curseur au début de la première
l’inverse de la période. ligne.
Avec l’instruction : “DEFINE LCD_DREG PORTB” vous infor- Une fois ces deux registres configurés, vous pouvez lire la
mez le compilateur que les lignes de données de l’afficheur valeur de la conversion dans un ou deux registres, selon la
(les pattes DB0 à DB7 du LCD) sont reliées au port B. résolution que vous avez choisie pour le convertisseur.
Les définitions suivantes informent le compilateur que la Puisque, dans notre cas, le convertisseur travaille à 8 bits,
patte RS de l’afficheur est reliée à la patte RA2 du micro- la donnée est prélevée dans le registre “ADRESH”. Il devient
contrôleur, que la patte E de l’afficheur est reliée à la patte alors très simple de réaliser un programme qui lise la valeur
RA1 et que la communication entre le microcontrôleur et de tension présente sur la patte RA0 et la visualise sur l’af-
l’afficheur se produit en utilisant toutes les 8 lignes DB0 à ficheur.
DB7.
ELECTRONIQUE 76 magazine - n° 22
CMJK ELM 22 - page 77
Une fois que l’af ficheur et les registres “ADCON0” et Après avoir configuré les lignes du microcontrôleur que vous
“ADCON1” sont configurés, il suffit, en effet, d’avoir recours voulez utiliser, avec, comme d’habitude, les instructions
à l’instruction “LCDOUT”, en utilisant comme argument à “OUTPUT” et “INPUT”, la variable “DATA” est initialisée à
visualiser, non plus une série de caractères entre guille- 0. Puis la sous-routine “VISU” est rappelée à travers l’ins-
mets, mais le registre “ADRESH”. truction “GOSUB”.
Il convient cependant de préciser que “ADRESH” est un Cette routine sert à piloter correctement l’afficheur 7 seg-
nombre binaire, alors que nous voulons visualiser sur l’af- ments, c’est-à-dire qu’elle fait correspondre à chaque valeur
ficheur les chiffres qui composent ce nombre pour pouvoir de “DATA” l’allumage correct des segments en mesure de
le lire. Admettons, par exemple, que “ADRESH” vaille former ce chiffre déterminé.
10011010, nous devrons lire sur l’afficheur le nombre 154,
c’est-à-dire l’équivalent décimal de 10011010. Ceci veut Le programme commence à l’étiquette “START”.
dire que le microcontrôleur doit envoyer à l’afficheur les
chiffres 1, 5 et 4 successivement. Heureusement, le com- On teste d’abord si le bouton P2 est pressé, en utilisant
pilateur basic fait cette opération pour nous en écrivant l’ins- l’instruction : “IF PORT.4 = 0 THEN…”. Si la condition est
truction : “LCDOUT #ADRESH”, c’est-à-dire en mettant le vérifiée, c’est-à-dire si le bouton est pressé, on va véri-
symbole dièse (#) devant la variable à visualiser. fier la valeur de la variable “DATA”. Si “DATA” est infé-
rieure à 9 (“IF DATA < 9 THEN…”), on peut l’incrémenter
Chaque chiffre qui compose le nombre décimal est envoyé (“DATA = DATA +1”). Et vice-versa si la condition n’est
à l’afficheur, simplifiant, ainsi, énormément l’écriture du pas vérifiée (c’est-à-dire si “DATA” vaut 9), on ne l’incré-
programme. mente pas.
ELECTRONIQUE 77 magazine - n° 22
CMJK ELM 22 - page 78
ELECTRONIQUE 78 magazine - n° 22
CMJK ELM 22 - page 79
UE
duit en tournant ledit trimmer.
ELECTRONIQ
En fait, la durée des niveaux logiques hauts et bas, déter-
minée par l’instruction “PAUSEUS”, n’est plus un nombre
fixe, mais une variable, dénommée “SOUND” dont la valeur
e
est déterminée par le registre “ADRESH” qui, comme nous
nd
l’avons vu précédemment, est lié au résultat de la conver-
a
115F
m
sion A/D effectuée par le microcontrôleur.
on de com
Dans la sous-routine “TRIMMER”, la valeur de “SOUND” est
obtenue en multipliant la valeur de “ADRESH” par 4 et en + port 20 F
Utilisez le b
ajoutant 50. Quand “ADRESH” vaut 0, “SOUND” vaudra 50,
déterminant une fréquence générée de 10 kHz. Quand
“ADRESH” vaut 255, “SOUND” vaudra 50 + 255 x 4 = 1070,
déterminant la génération d’un son d’une fréquence d’en- Réf.:
viron 460 Hz. CD052
Compilation de nom-
Pour conclure breux logiciels shareware, freeware ou de
démonstration récupérés, pour la plupart, sur Internet, ce
Voici un bref tour d’horizon de ce que l’on peut faire avec
le PicBasic Compiler. Vous pourrez vous essayer à la pro-
CD-ROM permet aux électroniciens de tester ces différents
grammation sur la carte de test décrite dans le numéro 18 produits sans perdre de temps (et d’argent) à les téléchar-
Un compilateur sérieux est enfin disponible (en Basic par rapport au langage assembleur sont
deux versions) pour la famille des microcontrôleurs COMPILATEUR BASIC POUR PIC évidents : l'apprentissage des commandes est
8 bits. Avec ces softwares il est possible "d'écrire" un quelconque immédiat ; le temps de développement est considérablement réduit ; on
programme en utilisant des instructions Basic que le compilateur peut réaliser des programmes complexes avec peu de lignes
transformera en codes machine, ou en instructions prêtes pour être d'instructions ; on peut immédiatement réaliser des fonctions que seul
simulées par MPLAB ou en instructions transférables directement dans un expert programmateur pourrait réaliser en assembleur. (pour la liste
la mémoire du micro. Les avantages de l'utilisation d'un compilateur complète des instructions basic : www.melabs.com)
PIC BASIC COMPILATEUR : Permet d'utiliser des fonctions de PIC BASIC PRO COMPILATEUR : Ajoute de nombreuses autres
programmation avancées, commandes de saut (GOTO, GOSUB), de fonctions à la version standard, comme la gestion des interruptions, la possibilité
boucle (FOR… NEXT), de condition (IF… THEN…), d'écriture et de lecture d’utiliser un tableau, la possibilité d’allouer une zone mémoire pour les variables,
SRC pub 02 99 42 52 73 02/2001
d'une mémoire (POKE, PEEK) de gestion du bus I2E (I2CIN, I2COUT), la gestion plus souple des routines et sauts conditionnels (IF… THEN…
de contrôle des liaisons séries (SERIN, SEROUT) et naturellement de ELSE…). La compilation et la rapidité d’exécution du programme compilé sont
toutes les commandes classiques du BASIC. La compilation se fait très bien meilleures que dans la version standard. Ce compilateur est adapté aux
rapidement, sans se préoccuper du langage machine. utilisateurs qui souhaitent profiter au maximum de la puissance des PIC.
PBC (Pic Basic Compiler) ...................... 932,00 F PBC PRO ............................................ 2 070,00 F
DEMANDEZ NOTRE NOUVEAU CATALOGUE 32 PAGES ILLUSTRÉES AVEC LES CARACTÉRISTIQUES DE TOUS LES KITS NUOVA ELETTRONICA ET COMELEC
Expéditions dans toute la France. Moins de 5 kg : Port 55 F. Règlement à la commande par chèque, mandat ou carte bancaire. Bons administratifs acceptés.
Le port est en supplément. De nombreux kits sont disponibles, envoyez votre adresse et cinq timbres, nous vous ferons parvenir notre catalogue général.
ELECTRONIQUE 79 magazine - n° 22