C'est un microcontrôleur de la société Microchip qui offre un très bon rapport qualité/prix.
Ses principales caractéristiques:
Le tout sur un pavé de 18 pins.

Vous pouvez télécharger le datasheet complet (environ 120 pages) ainsi que des notes d'applications chez Microchip.
Pour écrire un programme PIC il vous faut :
Tout cela est mis gracieusement à votre disposition par Microchip. Cela s'appelle MPLAB, téléchargez-le et installez-le sur votre micro.
MPASM fait partie de MPLAB, c'est l'assembleur qui permet d'écrire le programme PIC.
Le meilleur moyen d'apprendre est d'analyser un programme simple, tel que clignotement d'une LED. Je vous conseille de télécharger le guide de MPASM de chez Microchip et de l'imprimer.
Pour vous donner un aperçu voici un petit bout de programme qui allume une LED lorsqu'on appui sur le bouton poussoir. La LED est connectée à la voie 0 et le B.P. à la voie 1 du port B.
toto btfss PORTB,1
b toto
bsf PORTB,0
toto est une étiquette
btfss est une instruction de test de bit (bit test file skip if set), elle test le bit 1 du registre PORTB, si ce bit est à 1 (Bouton poussoir appuyé) elle saute l'instruction suivante, c'est à dire qu'elle arrive à l'instruction bsf, si le bit est à 0 elle exécute l'instruction suivante
b toto branchement à l'étiquette toto, le programme boucle
bsf PORTB,0 bit set file, c'est à dire qu'elle positionne à 1 la voie 0 du PORTB (ce qui allume la LED)
Télécharger le programme complet (la LED change d'état à chaque appui sur le BP) : bp_led.zip
Auteur : Bigonoff
C'est un excellent cours sur la programmation du PIC16F84. Bigonoff vous apprend à programmer en assembleur. Il y décrit clairement toutes les fonctionnalités du PIC16F84. Toutes les instructions du Pic sont détaillées avec des exemples à l'appui. Je conseille vivement ce cours à tout ceux qui veulent se lancer dans la programmation des PIC. C'est un document Word en français de 188 pages.
En voici le Sommaire:
Un grand merci à Bigonoff pour cet excellent cours.
Téléchargez Bigocours révision 5
Une fois le programme compilé, il faut le transférer dans la mémoire du microcontrôleur. Pour cela il vous faut :

Ci-dessus, l'interface de programmation par le port série du PC. C'est une des meilleures interfaces de programmation, ne nécessite pas d'alimentation externe.
Ses caractéristiques :
Le kit comprend :
Un logiciel qui assure le transfert des données entre le PC et le microcontrôleur (il est fourni avec le programmateur) ou bien il se trouve sur le Web.
Je vous conseille de loin ICPROG , c'est le meilleur logiciel de programmation de PIC à l'heure actuelle, et il a l'avantage d'être disponible en freeware.
Eh oui, il faut commencer petit pour terminer grand.
2 approches différentes :
Dans le programme principal, on change l'état du PORTB (sur lequel est connectée une LED) lorsque TIME=0, et on recommence le cycle.
Pour tester de nouveaux montages à base de PIC, il peut s'avérer utile de disposer d'une platine de développement. Pour ma part j'utilise la carte d'expérimentation pour PIC16F84 ci-dessus. Ce système permet de tester rapidement un PIC que vous avez réussi à programmer.
La platine dispose de sa propre tension d'alimentation 5V, d'un oscillateur quartz 4, 10 ou 20 Mhz, d'une zone pastillée permettant d'implanter des composants d'E/S, de 4 LED et un bouton poussoir pouvant être reliés aux E/S par des straps.
Cette rubrique s'adresse à tout ceux qui veulent arriver rapidement à un résultat et qui n'ont pas envie de se mettre à l'assembleur .
Il est désormais tout à fait possible de programmer les PIC en d'autres langages, tel que le Basic, le C, le Pascal. Des produits très intéressants sont maintenant disponibles à des prix très doux.
Les modules PICBASIC
Un produit très intéressant est la gamme des modules PICBASIC. Ce sont des
modules facilement programmables en BASIC, d'un rapport qualité / prix
sans équivalent sur le marché des microcontrôleurs. Ils révolutionnent
l'usage des microcontrôleurs en les rendant accessible à tous. En plus, tout
une gamme d'accessoires sont disponibles, écran LCD, télécommande IR ou
radio, commande de moteurs, carte d'expérimentation ....
Voir aussi le Forum section PICBASIC
Autres liens
Ci-dessous une sélection de liens vers des sites proposant des compilateurs gratuit ou non .
Il s'agit d'une horloge à mise à l'heure automatique par les signaux horaires DCF77 émis par l'émetteur de Francfort (Allemagne).
Ci-dessous la roue du temps.
On constate que dans l'espace de 60 sec sont transmis les informations des minutes, heures, jour, jour de la semaine, mois et année. Le programme de l'horloge DCF77 n'exploite que les informations des minutes et heures.
Image extraite du site DCF77

Un module de réception DCF77 de chez Conrad capte et démodule les signaux horaires. En sortie du module, un 0 logique correspond à une impulsion de 100ms, alors qu'un 1 logique correspond à une impulsion de 200ms. Le microcontrôleur mesure la durée des impulsions et décode le signal horaire. L'affichage de l'heure se fait sur un module série 4 x 7 segments de chez Sélectronic. Le traitement du signal horaire a lieu dans une routine d'interruption. Il reste 70% de mémoire disponible pour écrire le programme principal.
Télécharger le schéma,le programme, les organigrammes et la doc de l'horloge DCF77. (dcf77.zip)
Il s'agit d'un programmateur de chauffage électrique qui pilote les radiateurs de 5 zones en fonction de l'heure et de la présence des personnes. Pour alléger votre facture EDF, c'est le système idéal.
Il se compose de 2 modules
Le chauffage par détection de présence fonctionne selon le principe suivant : tant qu'il y a une personne dans la pièce et que l'on est dans la plage horaire de fonctionnement, le chauffage fonctionne. Si la personne quitte la pièce, après une tempo de 30' le chauffage se met en veille. Quand une personne revient, le chauffage se rallume instantanément. En dehors des plages horaires le chauffage est en veille.
Téléchargez chauff.zip
The propeller clock, d'après une idée ingénieuse de Bob Blick.
Un PIC16C84 tournoie à 1800 tr/mn en bout d'arbre moteur !!!
Sept LEDs en rotation donnent l'illusion de l'heure affichée dans l'espace.

Principe
Un moteur entraine une hélice (le circuit imprimé avec les LED), et le microcontrôleur (PIC16C84 ou F84) génère l'heure et change l'état d'une rangée de 7 LEDs afin de simuler l'affichage sur une matrice de 7x30 points. L'alimentation électrique est prise sur le bobinnage du moteur.
C'est une illusion mais l'effet obtenu est remarquable.
Vous trouverez toutes les informations (plan, schéma, logiciel, circuit imprimé, photos) relatives à sa construction sur la page Propeller Clock de Bob Blick.
Pour ma part, j'ai utilisé un moteur plat d'un lecteur de cartouche avec le circuit imprimé décris dans la page de Bob Blick. Le résultat est concluant.
Il s'agit d'une télécommande du système d'alarme (dans mon cas personnel) via le téléphone avec accusé de réception sous la forme d'un message vocal. L'accès est sécurisé par un mot de passe de 4 chiffres.
Après s'être identifié, le menu suivant est diffusé :
Pour modifier (l'état du système d'alarme) tapez le 1
Pour interroger (l'état du système d'alarme) tapez le 2
Après avoir effectué un choix, un message "Actif" ou "Arrêt" est diffusé en terme de réponse.
Le processus est dirigé par un PIC16F84, les messages vocaux sont mémorisés dans le circuit ISD1016A (ou 1416).
ISD1016A est un circuit de 28pins qui permet d'enregistrer et de rejouer un message vocal d'une durée de 16s, il peut être fractionné en plusieurs messages.
Télécharger le datasheet série 1000 d'ISD
Pour mémoriser les messages vocaux, il est nécessaire de réaliser un petit montage avec un micro de bonne qualité, un HP et des switchs pour sélectionner les adresses (cela est expliqué dans le datasheet).
Téléchargez com_tel.zip
Ce système a été conçu pour une application professionnelle, mais peut être utilisé pour un usage personnel.
Il s'agit d'un boîtier capable de générer une alarme visuelle (affichage 7 segments du n° de l'alarme), sonore et matérielle (contact d'un relais). Le déclenchement de l'alarme se fait par le port série RS232 (à partir d'un modem, micro) par réception d'un mot de commande.
Le boîtier reconnaît 8 types d'alarme et gère également les fins d'alarme.
Ex: le boîtier est relié à un micro
pour déclencher l'alarme 1, il faut lui envoyer la chaîne " med1 " sur le port série
pour arrêter l'alarme, envoyez " $fin "
Télécharger boitier.zip
RS232 est le protocole de transmission de données en série. Il est notamment utilisé sur le port série des micros.
Il s'agit de la note d'application AN555 de Microchip que j'ai adaptée au PIC16F84. Des schémas d'interfaces avec le MAX232 sont proposés dans la note AN555.
Peut-être un peu compliquée, mais fiable.
Ses caractéristiques
Télécharger rs232.zip
Il peut s'avérer interessant de raccorder un module d'affichage LCD au microcontrôleur pour plusieurs raisons. Pour faciliter le débogage, pour donner un aspect plus professionnel à votre montage, pour afficher des informations utiles ...
Voici quelques liens interressants sur le principe de pilotage des modules LCD
Il existe plusieurs solutions de cablage pour piloter un module d'affichage LCD.
Solution 1 (Cablage complet en mode 8bits, 11fils )
Routine d'affichage (contrôle par 8bits) de caractères sur un module LCD de 2 lignes à partir d'un PIC16F84.
Téléchargez le schéma et la routine lcd.zip
Solution 2 (Cablage complet en mode 4 bits , 7fils)
Une autre routine LCD (contrôle par 4 bits) adaptée de la note d'application de Microchip par Norm Cramer : cramer.zip
Solution 3 (Cablage série en mode 4bits, 2fils)
Encore mieux, pilotage d'un module LCD à l'aide de 2 fils en utilisant un 74LS174 (Sextuple bascule de type D) cablé en registre à décalage. Les données sont transmises en série vers le registre à décalage et les sorties de celui-ci adressent le module d'affichage.
Voir la page LCD (fin de page) de Mike Pretko
Solution 4 (Utilisation d'un 2ème microcontrôleur piloté par liaison RS232)
Ce projet permet de visualiser les codes RC5 des télécommandes infrarouge Philips sur un afficheur LDC 2 x 20 caractères.
Je vous invite à aller visiter une autre page qui traite des télécommandes IR.
Télécharger ReadRC5.zip
Auteur : Pavel Baranov
Ce logiciel, nommé Posit1, est un système d'exploitation multitâches simplifié pour microcontrôleur PIC. Il permet d'écrire un programme complexe d'une manière très structurée.
Il se compose d'un programme principal os.asm qui exécute les différents sous-programmes ou tâches (t0.asm, t1.asm ...) à tour de role.
Chaque fichier tâche est découpé en 3 parties:
- la partie initialisation
- la partie programme principal
- le partie interruption
Il suffit de compiler os.asm, les autres fichiers y sont inclus.
En exemple d'application de Posit1, je vous invite à regarder le logiciel du robot de Pavel.
Télécharger Posit1 sur le site de Pavel Baranov
|
|
Il s'agit de la note d'application AN689 (Engineer's Assistant Using a PIC16F84A) de Microchip. C'est un projet remarquable qui utilise toutes les ressources du PIC16F84. C'est une sonde logique multifonction qui se compose :
Le tout dans un instrument (une pointe de touche) mono circuit. Toutes les fonctions sont supportées par le logiciel. Affichage sur un module LCD (Hitachi) avec 2 lignes de 20 colonnes.
|
Télécharger la note d'application AN689 de Microchip.
Visiter la page d' Erik qui donne des informations interressantes pour la réalisation.
J'ai réussi à me procurer le logiciel en assembleur MPASM (non inclu dans la note), et le circuit imprimé double face aux formats .pcb (Protel), .bmp et .pdf.
Télécharger probe.zip

Ce dispositif permet de commander une serrure électrique par l'intermédiaire d'une ou de plusieurs cartes à puce de type PROM F256 ( carte téléphonique France Télécom usagée ou non ).
Seule la partie commande est étudiée, en effet la partie 'actionneur' peut être réalisée très simplement par l'intermédiaire d'un photo-triac ou d'un relais.
La commande de la serrure est composée d'un connecteur de carte à puce (pour la lecture d'une carte), d'une sélection d'un retard de 0 à 15 secondes (durée supplémentaire d'ouverture de la porte après le retrait d'une carte valide), d'un haut-parleur (générant une tonalité en cas de carte non reconnue ou invalide) et de deux voyants (signalant l'un l'ouverture de la porte et l'autre une alarme en cas de carte non reconnue ou invalide). Une alimentation de 3 à 5Volts est suffisante.
La sécurité du dispositif est assurée par l'utilisation de carte à puce possédant un numéro infalsifiable propre à chaque carte et indiqué en clair au dos de celle-ci.
Télécharger la documentation (Word97), les typons (Eagle 2.6), le programme : serrure.zip
Circuit de reconnaisance vocale
Reconnaissance vocale avec VoiceDirect, kit d'expérimentation pour applications intégrées.

Le kit de reconnaissance vocale (VoiceDirect 364 Speech Recognition Kit) en provenance de chez Sensory (USA) permet d'intégrer facilement une fonction de reconnaissance vocale dans n'importe quelle application.
Caractéristiques:
Télécharger les datasheet de Voice Direct à partir du site de Sensory.
Yvan.Heilig@wanadoo.fr
Date de dernière mise à jour : 17/09//2004