|
||||
|
Sommaire
|
C'est un microcontrôleur de la société Microchip (URL) qui offre un très bon rapport qualité/prix.
Ses principales caractéristiques:
Vous pouvez télécharger le datasheet (URL) complet (environ 120 pages) ainsi que des notes d'applications chez Microchip.(URL)
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 (URL) de chez Microchip (URL) 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 totototo est une étiquettebsf PORTB,0
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
![]() |
C'est le programmateur de PIC. Il en existe 2
versions, une version pour port série, une pour le port parallèle
(c'est celle que j'utilise).
Vous en trouverez dans le commerce à petit prix. Vous pouvez également en monter une vous-même ,c'est ce que j'ai fait (AN589 de Microchip ).
|
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
le circuit "Système
de développement à faible coût pour PIC" décris
dans le n° 7-8/98 d'Elektor. Ce système permet de tester
un PIC que vous avez réussi à programmer.
La platine dispose de sa propre tension d'alimentation 5V, d'un oscillateur quartz ou RC réglable (sélectionnable par inter DIP) et d'une zone pastillée permettant d'implanter des composants d'E/S tel que BP, LED ...
|
Vous trouverez l'équivalent sur le Web ,par exemple PicTec ou TOPIC (très bien documenté, typon fourni) qui combinent carte d'expérimentation et programmeur. (à tester)
Il est tout à fait possible de programmer les PIC en d'autres langages, tel que le Basic, le C, le Pascal.
Mais il faut savoir que si vous voulez tirer le maximum de votre PIC le seul vrai langage à utiliser est l'assembleur.
Ci-dessous une sélection de liens vers des sites proposant des compilateurs gratuit .
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 se compose de 2 modules
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.
Après s'être identifié, le menu suivant est diffusé :
Pour modifier (l'état du système d'alarme) tapez le 1Après avoir effectué un choix, un message "Actif" ou "Arrêt" est diffusé en terme de réponse.Pour interroger (l'état du système d'alarme) tapez le 2
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
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érieTélécharger boitier.zippour arrêter l'alarme, envoyez " $fin "
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
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)
Je vous invite à aller visiter une autre page qui traite des télécommandes IR.
Télécharger
ReadRC5.zip
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 :
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
Auteur :Jean Louis JONDOT
Une application simple, pratique et surtout très pédagogique.
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:
Yves.Heilig@wanadoo.fr
Date de dernière mise à jour : 02/04/2000