Dernière mise à jour le 25/09/16
Présentation
Ce présent article permet de programmer les entrées ainsi que les sorties d’un PIC24FJ64GA004. le programme qui va suivre permet lorsque nous appuyons sur un bouton poussoir, d’allumer une à une des leds par l’intermédiaire d’un bargraph. Chaque fois qu’une pression sur le bouton poussoir sera effectuée, les leds vont s’allumées les unes après les autres.
ATTENTION!!! Quartz non représenté sur le schéma électronique bien entendu celui-ci n’est pas optionnel 8Mhz ou 10Mhz fera largement l’affaire
Schéma
Le PIC24FJ64GA004 comporte deux PORTs (PORTA et PORTB). Le PORTA comporte uniquement 5 broches (RA0/RA1/../RA4), ces broches peuvent être utilisées pour différentes façon (analogique/numériques/tension de références/…) mais utilisons uniquement la broches RA0 pour l’exemple. En ce qui concerne le PORTB celui-ci comporte aux total 16 broches (RB0/RB1/.. /RB15). ont remarque très vite que la capacité d’un tel microcontrôleur sont plus importantes, et il en est de même pour le nombre d’entrées et sorties.
Config broches TRISA
La datasheet du PIC24FJ64GA004 nous informe que il y’a bien 16 bits (RA0/RA1/.. /RA15) à configurer mais attention la datasheet précise que les bits RA7/../R10 ne sont pas valides et que pour les autres bits formés par un “-” doivent être mis à l’état “0” logique. Il en résulte que tous les bits seront à l’état logique “0” sauf le bit RA0 qui sera à l’état logique “1” pour préciser qu’il s’agit d’une entrée. Le programme qui va suivre permet d’initialiser uniquement les entrées et les sorties du PIC24FJ64GA004
procedure init; begin TRISA:=$0001; // les broches RA0 et RA4 est à l’état 1 TRISB:=$0000; // les broches sont configurées en sorties LATA:=$0000; LATB:=$0000;// à l’état logique “0” AD1PCFG := $FFFF; // permet d’activer toutes les entrées en numérique end; |
Le code complet le voici…
program Entrees_Sorties; var bStateBp1 : boolean; i : byte; procedure init; begin TRISA:=$0001; // les broches RA0 et RA4 est à l’état 1 TRISB:=$0000; // les broches sont configurées en sorties LATA:=$0000; LATB:=$0000;// à l’état logique “0” AD1PCFG := $FFFF; // permet d’activer toutes les entrées en numérique end; procedure Bp1(i:byte); procedure ReadButton; begin // remise à zéro de la variable “i”… begin |