AIDE
A LA PROGRAMMATION DES PICS
Le
but de cette page
n'est pas de proposer un cours de plus sur les pics pour cela je vous
recommande l'excellente présentation des 16F84 et
16F87X de
Bigonoff que vous trouverez à cette
adresse : http://www.abcelectronique.com/bigonoff/
. Mon but est de vous proposer des routines et des feuilles
maquette
Les feuilles maquette sont des documents qui permettent de commencer un programme, les différents registres de configuration sont plus faciles à écrire car l’aide pour chaque bit est présente, donc pas de data-sheet à consulter, des macros sont déjà écrites, certains détails qui m’ont posés des problèmes sont précisés. J’ai pris modèle sur les feuilles de Bigonoff car je les ai trouvées très pratique à l'usage, une chose importante que j’ai appris grâce à lui c’est d’écrire des programmes clairs et suffisamment commentés, que je peux reprendre 6 mois après et comprendre ce que je voulais faire.
Un détail sur les macros de lecture et d'écriture en eeprom ,il y a une ligne écrite de deux façons car il existe deux méthodes pour passer une valeur
1° soit en litteral ex: REEPROM D'5' ou le 5 est l'adresse mémoire à lire
2° soit par une variable ex: REEPROM ma_variable ou ma_variable contient l'adresse mémoire à lire
donc à chacun de ces deux cas correspond une seule ligne pour que la macro récupère la valeur,
soit: movlw adeeprom ; charger adresse eeprom (passage de la valeur en littéral)
soit: movf adeeprom,w ; charger adresse eeprom (passage de la valeur par une variable)
Ce détail est aussi valable dans les macros écrites par Bigonoff pour les 16F87X
Liste des feuilles maquette :
16F676 C'est le plus petit des 16F, 14 pattes, un peut particulier parmi les 16F, mais plein de ressources.
La
seule chose que je
vous demande c’est de m’informer si vous trouver des erreurs, toujours
possible, ou si vous les améliorées en me contactant à cette adresse
vous pouvez aussi m’envoyer un message pour que je
puisse vous
communiquer une correction.
Une routine soft
pour utiliser
le port RS232 avec
n’importe quel pic
qui a un oscillateur à 4MHz.
La transmission s’effectue à 9600 bauds, pas de parité, 8 bits, 2 bits de stop .
Elle est ici: Routine RS232
Attention
de ne pas utiliser
une sortie à drain ouvert (RA4 pour les 16F628 et 16F84 par exemple)
pour
le TX sur le pic.
Il
faut utiliser un adaptateur
de niveau pour faire correspondre le +12V -12V du RS232 avec
respectivement le 0V et le +5V du
niveau
TTL du pic
Pour transmettre un octet il suffit de charger l'octet dans la variable caract et ensuite d'appeler la routine avec call send .
Pour recevoir un octet il suffit d'appeler le routine avec call receive l'octet sera dans caract.
Une seconde routine RS232 soft plus souple ou l'on peut ajuster la fréquence de transmission en fonction de la fréquence du quartz:
Une routine RS232 hard qui calcul automatiquement les reglages en fonction de la frequence du quartz et du baudrate desiré il manque un peut de finition au niveau des messages d'alerte et au niveau du traitement de la parité, je la propose à titre indicatif.
Une routine I2C software pour un pic 16F avec quartz de 4MHz, ce qui donne une vitesse d'environ 100 KHz, je l'ai adaptée d'une routine de Pierre Col, par la mise en haute impedance des lignes à 1, elle supporte le mode multi-maître en testant les lignes au préalable.
Pour plus de renseignements, n'hesitez pas à me contacter: