Dernière mise à jour :
02/11/2014
Livre PIC pour les débutants avec MikroPascal
Exemples de codes
Exemples pour PIC +
MikroPascal
- Configuration minimale, interruptions, lecture d'entrées, activation
de sorties, utilisation de composants I2C tels que 24C02, PCF8583,
PCF8574, PCF8591, etc.
Uniquement
pour le langage MikroPascal !
Présentation
Quand je
me suis décidé à attaquer le monde des PICs, j'ai aimé trouver
des
exemples de code qui permettaient d'entrer rapidement en mode pratique.
Des bouts de codes dans lesquels j'arrivais à extraire quelques
informations utiles, mais sans bien trop comprendre la finalité de
certaines fonctions, je dois l'avouer. On trouve sur le net, plein de
pages sur les bases de la programmation des PICs, et
les formidables cours de
BigOnOff,
ainsi que les nombreux
exemples
de Dany, ne peuvent pas être passés sous silence. Fantastique
travail de pédagogie et de clarté pour ces deux là ! Oui mais
voilà, on hésite un peu à se lancer dans du code
machine (cas des cours de BigOnOff), et on aimerait bien utiliser un
compilateur dont le langage de
base est le Pascal, le Basic ou le C. C'était mon cas, moi qui
développais déjà des applications Windows avec
Delphi (langage Pascal). Je me suis donc lancé dans la programmation
des PIC avec le
langage Pascal de l'éditeur / compilateur
MikroPascal,
et ai fouiné à gauche et à droite sur la toile
pour trouver divers exemples de code, en y allant par petits bouts. Ma
platine de développement EasyPic 4 et le logiciel
MikroPascal m'ont bien aidé, les exemples fournis avec le
logiciel
étaient dans le langage que j'avais choisi d'utiliser. A ce jour, mes
besoins en logiciel PIC ne sont pas critiques, surtout en ce qui
concerne les temps d'exécution. Il m'importe peu, pour le
moment tout du moins, de disposer d'un code parfaitement optimisé et
les
résultats que j'obtiens pour mes applications me suffisent. Je suis un
amateur, mes activités sont diverses (électronique, informatique,
musique, occupations avec les enfants), je n'ai pas le temps de me
spécialiser dans la programmation.
Avertissement
Les pages d'exemples que j'ai écrites sont destinées aux
débutants, et j'espère qu'elles leur seront utiles. Elles
ne constituent pas une bibliothèque "professionnelle", mais
juste quelques idées, quelques façons de faire des choses
simples, pour s'initier avec les PICs sous l'environnement de
développement MikroPascal. N'espérez pas trouver ici des exemples de
code
hautement optimisés, et encore moins du langage assembleur, car
je n'y connais rien. Tous les exemples de codes sont fournis en langage
MikroPascal. Ne connaissant le Basic et le C que de très loin,
je ne peux pas vous
"traduire" mes lignes de code dans ces autres langages. Mais je pense
que dans certains cas,
vous pourrez faire une analogie entre les différents langages, le cas
échéant.
Organisation des exemples
Quand on sait d'avance que les exemples vont être nombreux et
parfois un peu volumineux, on hésite forcement à tout
mettre sur une page unique. C'est pourquoi j'ai décidé de
créer une page différente par
type
d'exemple
de code. Ainsi, vous trouverez une page décrivant les
configurations de base à spécifier pour obtenir tel
comportement de tel ou tel pic. Une autre page donnant des exemples
d'utilisation avec des boutons poussoir, en mode parallèle ou en
mode multiplexé, une autre page dédiée à la
lecture / écriture de données en EEProm, etc. Afin
d'établir un lien rapide entre
le matériel (le PIC lui-même avec ses composants autours)
et le logiciel (MikroPascal), mes
exemples comportent la plupart du temps un schéma
électronique et le
code logiciel qui exploite ce qui est montré sur le
schéma. Par exemple, si un exemple porte sur l'analyse d'un
bouton poussoir cablé sur la ligne 1 du port A d'un
microcontroleur (pour savoir s'il est enfoncé ou
relaché), vous trouverez un exemple de code mettant en oeuvre le
port RA1, et le schéma électronique correspondant
montrera la connexion du poussoir sur la borne RA1 dudit
microcontroleur.
Conventions schémas
Les schémas électroniques associés aux exemples de
codes fonctionnent principalement avec des signaux électriques
de nature "logique", qui peuvent prendre trois états
différents : état logique bas, état logique haut
et état logique indéterminé. Afin de faciliter le
repérage de ces états logiques, des petits carrés
de couleur sont placés sur chaque liaison du schéma, ce
qui permet en un coup d'oeil de voir ce qui s'y trouve. Dans chaque
schéma, les mêmes couleurs représentent les
mêmes états :
- carré bleu = état logique bas (0 V ou masse)
- carré rouge = état logique haut (+5 V la plupart du temps)
- carré gris = état logique indéterminé
Astuce visuelle à retenir
Dans mes schémas, une patte d'un PIC qui n'est raccordée
à rien peut se voir attribuer une des trois couleurs, selon la
façon dont elle a été configurée :
- carré bleu = patte configurée en sortie et à l'état logique
bas
- carré rouge = patte configurée en sortie et à
l'état logique haut, ou patte configurée en entrée
avec résistance pullup interne activée
- carré gris = patte configurée en entrée sans
résistance pullup interne activée, état logique
indéterminé.
Dans le schéma exemple ci-avant :
- RA0 est configurée en entrée et est à
l'état logique haut (raccordée au +5 V, qu'on ne voit pas
sur le schéma)
- RA3 est configurée en entrée mais n'est
raccordée à rien, état logique
indéterminé
- RB1 est configurée en sortie et son état logique a
été forcé par logiciel à l'état bas
(0 V)
Cas des tensions analogiques
Certains PICs intègrent un convertisseur analogique et certaines
entrées peuvent être configurées en entrées
analogiques, capables de lire une tension quelconque (par exemple
comprise entre 0 V et +5 V). La représentation de ces tensions
sur le schéma ne peut pas être assurée de la
même façon que pour les niveaux logiques, mais elle reste
cependant "lisible" :
- carré bleu = tension proche de 0 V
- carré rouge = tension proche de la borne positive
d'alimentation (+5 V la plupart du temps)
- carré gris = tension intermédiaire, par exemple entre +1,5
V et +3,5 V