1. Sur la plaque de programmation
La première étape pour allumer une diode est de programmer un PIC. Nous avons donc choisi le 16F628 fournit par M. Lescroart, et nous l'avons programmé avec le programmateur MPLAB ICD 2. Afin de ne pas brûler les étapes et de ne pas avoir à gérer trop de problèmes en même temps, nous n'avons pas effectué ces tests avec le système Hyperterminal, RS232, Plaque d'essais. En effet, la carte de programmation offre diverses fonctionnalités de tests grâce à ses diodes et interrupteurs. L'objectif était donc de programmer le 16F628 et d'allumer les diodes présentes sur la carte.
Cette étape a été longue et nous a posé beaucoup de problèmes. En effet, nous avions trouvé les semaines précédentes divers codes d'allumage de diodes, mais aucun pour un 16F628. Par exemple, les codes proposés par Bigonof sont prévus pour le 16F84, PIC obsolète qui n'est plus commercialisé.
Nous pensions tout d'abord qu'il suffisait de changer le nom dans la déclaration du PIC et l'appel de sa bibliothèque, mais même lorsque les compilations fonctionnaient, la programmation ne donnait aucun résultat sur les diodes de la carte qui restaient éteintes.
En consultant des exemples d'initialisation en assembleur sur le site de Microchip, nous avons remarqué que chaque PIC se déclare différemment, et pas seulement au niveau de son nom. En effet, les adresses mémoire et les registres ont des valeurs spécifiques, dépendant des capacités du PIC.
En se basant sur les exemples d'initialisation du 16F628, et en écrivant nous-même un code simple pour agir sur les diodes, nous sommes parvenus à les allumer. Notre programme paramètre les ports B du PIC en mode sortie (out), car ce sont les sorties sur lesquelles sont branchées les diodes. Il suffit ensuite de spécifier le numéro du port avec l'instruction bsf pour allumer une led ou bcf l'éteindre.
Ce premier test réussi nous a servi de base pour élaborer plusieurs petits programmes, de plus en plus évolués :
- Allumage des 4 diodes
- Extinction des 4 diodes
- Allumage des diodes en chaine
- Clignotement des diodes
- Chenillard des diodes
Pour le clignotement des diodes, le premier essai nous donnait un allumage continu. Pourtant le programme allume puis éteint toutes les diodes, en boucle. Ce problème est dû à la fréquence : en effet, nous utilisons le quartz interne au PIC à 4 Mhz. Or cette fréquence est trop élevée pour l'oeil humain qui n'a pas le temps de voir l'extinction des diodes entre deux allumages. Il a donc fallu ajouter une temporisation entre chaque action, ce qui a nécessité également de longues recherches.
Le résultat le plus visuel et le plus complet est le chenillard, dont voici le code :
Chenillard1
La seconde étape consiste en l'allumage d'une diode par simple appui sur un interrupteur. Nous avons donc utilisé dans un premier temps l'interrupteur intégré sur la plaque de programmation pour réaliser ce test. Après divers tests au niveau du code assembleur, nous sommes parvenus à un résultat satisfaisant, dont voici le code :
Interrupteur1
Allumage d'une diode à l'aide d'un interrupteur sur la plaque de programmation
2. Sur une plaque d'essais
Nous avons récupéré auprès de l'école une plaque d'essais à trous ainsi qu'un ensemble de fils et ponts adaptés, une LED, un interrupteur, une alimentation stabilisée et un oscilloscope. Nous avons effectué un premier test avec le PIC programmé précédemment avec le chenillard. Ne disposant que d'une diode, le résultat doit produire un clignotement régulier de celle-ci. Ce premier test est réussi.
Tests sur plaque d'essais