3:sequenceur_675
Troisième test : émulation en Basic
d´un séquenceur genre 4017 avec un PIC 12F675

But Principe Pratique Matériel Photos
Cette page est la troisième d´une série nouvelle (mais pas destinée à remplacer les autres), que nous vous présentions il y a quelques jours. Le but, pour ce troisième test, est de simuler, avec le plus petit des microcontrôleurs de la famille des PIC de Microchip, un montage que nous avons déjà effectué il y a au moins six ans : un séquenceur autour d´un compteur CMOS 4017. Les ptitrainistes ont recopié et aménagé à plus soif ce montage ! Jusqu´à motoriser un camion-grue forestier avec des fils à mémoire !
Pourquoi alors le simuler ? En fait, à titre d´entraînement pour l´utilisation des PIC en Basic  ! Seul, sans environnement et si on ne lui prévoyait pas des développements prodigieux, le montage d´aujourd´hui ne serait pas “compétitif”...

But Principe Pratique Matériel Photos
Un schéma de principe est inutile quand on parle de PIC, puisque tout est “à l´intérieur”. Pour notre première page, néanmoins, voici d´abord à titre de rappel le schéma à base de 4017 et d´une horloge à 555  :
Et maintenant (pas besoin d´ouvrir un logiciel de dessin pour si peu) la même chose (à peu près, il y a une led de plus ; les résistances sont de 470 Ω puisque la tension d´alimentation est plus faible (5 volts au lieu de 12) :

But Principe Pratique Matériel Photos
Ceci
n´est pas
une initiation
aux PIC !
Nous insistons encore une fois sur le fait que nous sommes dans une série d´initiation au Basic et pas dans un espace d´initiation aux PIC ; pour cela le lecteur devra consulter et comprendre autant que possible (sans quand même s´abrutir) les pages d´initiation à l´assembleur de PicTrain et de Psi, qui est à l´origine de cette présente page. C´est ici que ça a commencé, et il faut y aller voir.
Voici le programme qui fait de notre PIC un séquenceur comme le cpt4017b  :


Nous prenons l´habitude de bien documenter nos programmes afin qu´ils soient le plus autonomes possibles (en un mot imprimer et archiver le code plutôt que quatre pages du baratin l´accompagnant (le programme tout entier sera bien sûr téléchargeable).
  Vous avez remarqué que l´allumage des leds se fait encore grâce au registre de sortie GPIO (il n´y a d´ailleurs pas d´autre moyen possible !) mais les commentaires nous indiquent le caractère imprévisible du 675 au sujet de son GPIO (voir la note 3 dans le programme ) ; nous avons donc découpé en plusieurs étapes l´utilisation de GPIO :
Premier temps : préparation (dim) d´une variable octet (byte = 8 bits) nommée IO_Reg (ligne 3) et remplissage de cette variable avec un zéro (ligne 10).
Deuxième temps : nous décidons du schéma de bits. Par exemple %00000001 : le bit tout à fait à droite est le bit numéro zéro (on compte toujours à partir de zéro en informatique) ; de sa mise à un dépendra l´état de la led numéro zéro.
Troisième temps : on saisit ce nombre binaire (le signe % nous avertit que c´est du binaire) à l´intérieur d´un registre provisoire nommé IO_Reg : IO_Reg = %00000001 (ligne 14).
Quatrième temps : on recopie d´un bloc (ligne 15) ce nombre dans GPIO, ce qui ne pose jamais de problème : GPIO = IO_Reg. La led numéro zéro s´allume.
Ainsi est évité le souci potentiel d´une modification directe bit à bit de GPIO (voir la liste Ptitrainmatique, messages n° 8810 par Raymond Charlet et 8816-8817 ; ainsi que d´innombrables complaintes sur le web).

But Principe Pratique Matériel Photos
Le même que page précédente : un PIC 675, trois leds, trois résistances et votre quincaillerie de développement préférée, si vous n´avez pas encore une carte EasyPic

Si vous trouvez une erreur ou une chose pas claire dans cette page, faites-le-nous savoir par mail, au plus vite, merci !
Les mots marqués d´un astérisque (*) sont ou seront expliqués dans le “P´tit dictionnaire du Meccano électronique”.
Bibl. : PicTrain, divers. — Descr. : 555, PIC, séquenceur, 4017, MikroBasic
 

Jidé
août 2008

Rev 3/11/08
Ptitrain, l´e-magazine du train éclectique. — Directeur de la publication : Christophe Franchini.
Rédacteur en chef : Jean-Denis Rondinet