documentation EasyPic7 V1.3

Download Report

Transcript documentation EasyPic7 V1.3

Lycée Eugène IONESCO
STI2D - SIN
EasyPIC V7
Outil de développement de projet
EasyPic 7
Page n°1/14
Lycée Eugène IONESCO
1
STI2D - SIN
PRESENTATION
La carte de développement EasyPIC v7 de la société
Mikroelektronica permet de développer des projets utilisant les
microcontrôleurs Microchip de la famille PIC 12/16/18.
A l’achat elle est équipée du PIC 18F45K22 dont nous verrons les
caractéristiques par la suite.
EasyPIC v7 intègre un grand nombre de fonctionnalités :
•
•
•
•
•
•
•
•
•
•
•
• Leds et boutons poussoirs connectables aux différents
ports.
• Switches et cavaliers de configurations afin de s’adapter
aux microcontrôleurs et à leurs caractéristiques.
Des connecteurs E/S au format HE10 reliés aux différents ports des microcontrôleurs.
Programmateur sur la carte permettant la programmation in situ (sans avoir à enlever le
microcontrôleur).
Module ICD permettant le débogage du programme en simulation et en temps réel sur la carte.
Des connecteurs afin de relier des capteurs ( DS18S20 …) directement sur la carte.
Un afficheur LCD et un afficheur GLCD tactile.
4 afficheurs 7 segments.
Module de communication RS232, USB.
Connecteur d’extension mikroBUS sockets permettant l’ajout de « click Boards » Bluetooth,
MP3, CAN SPI etc…
Potentiomètres reliés aux entrées des convertisseurs analogique/numérique.
Une mémoire E²PROM I²C.
Un buzzer.
L’édition du programme en langage C ainsi que la compilation est effectué par l’intermédiaire du logiciel
mikroC PRO®. La programmation est effectuée par le logiciel
mikroProg Suite™ for PIC® à travers une liaison USB.
EasyPic 7
Page n°2/14
Lycée Eugène IONESCO
2
STI2D - SIN
LA CARTE EASYPIC V7
Liaison avec
l’ordinateur
EasyPic 7
Page n°3/14
Lycée Eugène IONESCO
3
STI2D - SIN
LEDS
Un ensemble d’interrupteurs ( switches , SW3) permettent de relier indépendamment chaque sortie de
chaque port à une LED. Ainsi l’état logique de chaque ligne de port est visible.
4
BOUTONS POUSSOIRS RELIE AUX PORTS
L’état logique de toutes les entrées numériques du
microcontrôleur
peuvent
être
modifiées
par
3
l’intermédiaire
de
boutons
poussoirs. le cavalier J17 sert à
définir l’état logique qui doit être
appliqué
à
la
broche
du
microcontrôleur lorsque le bouton associé est pressé.
Les interrupteurs associés aux ports permettent de rajouter un résistor de pull-up ou pull-down.Ces
resistors permettent de fixer le niveau logique de chaque entrée lorsque le BP est
relâché.
EasyPic 7
Page n°4/14
Lycée Eugène IONESCO
STI2D - SIN
Sur la figure ci-dessous est représenté la barrette d’interrupteurs SW7 du portC.
• En position milieu, le resistor est déconnecté de la ligne de port.
• En position haute (UP), un resitor de pull-up est relié à la ligne du port
C correspondante.
• En position basse (DOWN), un resitor de pull-down est relié à la ligne du port
C correspondante.
( cf p22 de la documention fournie par mikroelectronika)
5
MICROCONTROLEUR 18F45K22
Le microcontrôleur livré avec la carte est le
18F45K22. Il s’agit d’un microcontrôleur 8 bits
dont les principales caractéristiques sont les
suivantes :
•
•
•
•
•
•
•
•
•
32Ko de mémoire flash de programme.
Oscillateur
quartz/interne/externe
jusqu’à 64MHz.
16MIPS.
Alimentation : 2,3v à 5,5v.
Debugger ICD.
Module ADC, comparateur analogique,
DAC, support écran et touches tactiles.
Communication I²C, SPI, RS232, RS485,
LIN.
Timers.
5 ports I/O parallèles numériques.
EasyPic 7
Page n°5/14
Lycée Eugène IONESCO
6
STI2D - SIN
PORTS D’ENTREES / SORTIES
Chaque port parallèle est contrôlé par 3 registres :
•
•
•
Un registre appelé PORTx, ou registre de données, fonctionnant en entrée et en sortie.
Un registre appelé LATx ou registre tampon ( latch en anglais) , ne fonctionnant qu’en sortie.
Un registre appelé TRISx, ou registre de sens de fonctionnement du port, servant à définir
individuellement le sens de fonctionnement ( entrée ou sortie) de chaque ligne de port.
• Un registre appelé ANSELx, ou registre de mode de fonctionnement du port ( lorsque le port est
en entrée), servant à définir individuellement le mode de fonctionnement (analogique ou
numérique) de chaque ligne de port quand cela est possible. En effet, toutes les lignes ne
peuvent être utilisées comme entrées analogiques.
Dans le cas du 18F45K22, x peut être remplacé par les lettres de A à E.
Les registres PORTx peuvent être lus et écrits selon que le port correspondant est utilisé en entrée ou
en sortie.
Les registres LATx peuvent aussi être lus ou écrits mais ils n’agissent sur les lignes qu’en sortie. C'est-àdire que l’état des lignes de port est sans effet sur le contenu de LATx.
Par ailleurs, chaque ligne de chaque port peut être programmée individuellement en entrée ou en
sortie grâce aux registres TRISx.
Lors d’un RESET, et pour d’évidentes raisons de sécurité, tous les ports sont placés en entrée suite à
l’initialisation de tous les registres TRISx correspondants.
Particularité des ports
•
•
•
Les ports A,B,C et D sont des ports 8 bits. Le Port E est un port 4 bits.
Chaque ligne de chaque port peut avoir plusieurs fonctions ce qui peut réduire la taille du port
parallèle. Par exemple dans le cas de l’utilisation d’un oscillateur externe à quartz, les lignes RA6
et RA7 ne sont plus libres et sont reliées au quartz.
Le sens des lignes de port (entrée ou sortie) est déterminé par l’état des bits correspondants du
registre TRISx.
Exemple :
Si le bit 0 de TRISA est à 1, alors RA0 est en entrée.
Si le bit 0 de TRISA est à 0, alors RA0 est en sortie.
Moyen mnémotechnique : 1 = I = Input = entrée
•
0 =O = Output = Sortie.
En entrée, le mode de fonctionnement de chaque ligne de port (analogique ou numérique) est
déterminé par l’état des bits correspondants du registre ANSELx.
Exemple :
Si le bit 0 de ANSELA est à 1, alors RA0 est une entrée analogique.
Si le bit 0 de ANSELA est à 0, alors RA0 est une entrée numérique.
EasyPic 7
Page n°6/14
Lycée Eugène IONESCO
7
STI2D - SIN
AFFICHEUR LCD 2 X 16
L’afficheur LCD est en mode 4 bits : les octets de données et de commandes sont envoyés en 2 temps
quartet par quartet sur les bits RB0 à RB3 du port B.
Les lignes de contrôle RS, E sont reliés sur les bits RB4 et RB5.
Pour utiliser cet afficheur avec la bibliothèque LCD fournie, il faut placer les lignes suivante en début de
programme :
// Attribution de noms aux broches sur lesquelles l'afficheur est connecté
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D4 at RB0_bit;
// configuration des broches d'entrée/sortie
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D7_Direction at TRISB3_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB0_bit;
8
UTILISATION DU CONVERTISSEUR ANALOGIQUE / NUMERIQUE
Le PIC 18F45K22 dispose d’un CAN 10 bits relié aux entrées analogiques par l’intermédiaire d’un
multiplexeur ( il permet de sélectionner une entrée analogique à la fois).
PORT A :
RA0 à RA5
Sur la carte Easypic, il est possible de relier un potentiomètre P1 ou P2 afin de faire varier une tension
entre 0 et 5v et relier cette ddp sur l’une des entrée analogiques AN0 à AN4, AN8 à AN12.
Pour ce faire il suffit de placer les cavalier J15 et J16 comme indiqué sur la sérigraphie.
EasyPic 7
Page n°7/14
Lycée Eugène IONESCO
STI2D - SIN
La bibliothèque ADC permet d’utiliser simplement le convertisseur analogique / numérique. ( cf l’aide
disponible dans MikroC ).
9
EXEMPLE DE PROGRAMME
Cahier des charges
Ce programme permet de tester la lecture de l'état d'un bouton poussoir du port B et de commander
les sorties du port C.
Si l'un des BP du port B est appuyé, la moitié droite du PORTC est à 1 ( led correspondantes allumées).
Sinon, la moitié gauche est à 1 ( led correspondantes allumées).
void main() {
anselb=0; // PORTB en mode numérique
anselc=0; // PORTC en mode numérique
trisb=0xFF;
// PORTB en entrée : 0xFF = %1111 1111, soit toutes les lignes de ce port en
entrée. ( 1 = i = input)
trisc=0x00; // PORTC en sortie : 0x00 = %0000 0000, soit toutes les lignes de ce port en
sortie.( 0 = o = output)
while(1){
while(portb==0){ //lecture et test des BP reliés au port B
portc=0xf0;
// Leds RC7 à RC4 allumées.
}
portc=0x0f;
//Leds RC3 à RC0 allumées.
}
}
EasyPic 7
Page n°8/14
Lycée Eugène IONESCO
STI2D - SIN
10 ORIENTATION ET AFFECTATION D’UNE SEULE LIGNE DE PORT
A travers les exemples qui suivent nous allons passer en revue la syntaxe utilisée pour manipuler une
seule ligne de port.
Exemples :
TRISC0_bit = 0 ; // bit 0 du port C en sortie.
RA3_bit = 1 ; //mise à 1 du bit 3 du port A
TRISC1_bit = 1 ; // bit 1 du port C en entrée.
RA4_bit = 0; //mise à 0 du bit 4 du port A
EasyPic 7
Page n°9/14
Lycée Eugène IONESCO
STI2D - SIN
11 LE LOGICIEL MIKROC PRO
Le logiciel MikroC pro permet l’édition des programmes. Son fonctionnement est comparable à celui de MpLAB, le logiciel fourni par
Microchip.
Compilation et
Réglages du
programmation
projet : choix
de l’oscillateur,
etc…
Gestionnaire
de projet
Fenêtre
D’édition du
programme
EasyPic 7
Gestionnaire
de
bibliothèques
de fonctions
Page n°10/14
Lycée Eugène IONESCO
STI2D - SIN
Un certain nombre d’onglets sont présents sur les bords de L’IDE (integrated development
environment : environnement de développement). Ils permettent d’accéder à différentes fonctions de
l’IDE.
Project manager : le gestionnaire de projet.
Avec un certain nombre d’IDE, un projet est un ensemble
de fichiers sources( extension .c ), de fichier d’entête (
extension .h), de fichier de programmation ( extension
.hex) etc…
Il est important de toujours vérifier que votre fichier
source en langage C est bien dans le projet que vous avez
créé. Si ça n’est pas le cas, le programme ne sera pas
compilé .
Library manager : gestionnaire de bibliothèques de fonctions.
Une bibliothèque est un ensemble de fonctions utilitaires permettant une utilisation aisée des modules
intégrés aux microcontroleurs pic ou de circuits électroniques ( capteurs, interfaces etc…) .
Grace à ces fonctions, l’utilisation d’un afficheur LCD se résume à
l’utilisation de quelques fonctions prédéfinie et dont une aide
complète est fournie en cliquant sur la fonction dans le gestionnaire
de bibliothèque.
Ensemble
des
fonctions
permettant la commande d’un
afficheur LCD.
Lcd_Init permet par exemple
d’initialiser l’afficheur.
EasyPic 7
Page n°11/14
Lycée Eugène IONESCO
STI2D - SIN
Project settings : paramètres du projet
C’est ici que le choix du microcontrôleur se fait. On peut y
choisir aussi sa fréquence de fonctionnement ainsi que le mode
de fonctionnement du programme :
• Le mode release permettant une exécution normale et
automatique du programme.
• Le mode ICD debug permettant l’exécution du
programme en mode pas à pas, au gré de l’avancement
souhaité par le développeur.
Il est possible de configurer plus en détail le fonctionnement du
microcontrôleur dans un autre menu de l’IDE.
12 FONCTIONS DE TEMPORISATION
Dans un programme on est souvent amené à utiliser des temporisations (cas d’un clignotement de LED
par exemple).
Voici les 2 principales fonctions disponibles dans MikroC.
Temporisation en microseconde
Déclaration de la fonction
Description
Exemple
void Delay_us(const unsigned long time_in_us);
Cette fonction crée une temporisation multiple d’1µs.
Delay_us(100);
/* 100µs de pause */
Temporisation en milliseconde
Déclaration de la fonction
Description
Exemple
EasyPic 7
void Delay_ms(const unsigned long time_in_ms);
Cette fonction crée une temporisation multiple d’1ms.
Delay_ms(10);
/* 10ms de pause */
Page n°12/14
Lycée Eugène IONESCO
STI2D - SIN
13 FONCTIONS UTILES
Déclaration de la fonction
Description
Paramètres
void IntToStr(int input, char *output);
Converts input signed integer number to a string. The output string
has fixed width of 7 characters including null character at the end
(string termination). The output string is right justified and the
remaining positions on the left (if any) are filled with blanks.
•
•
input: nombre signé à convertir en chaine de caractères
output: chaine de caractères correspondant à l’entier
Exemple
int tension = 224;
char texte[6];
IntToStr(tension, texte);
// texte est la chaine"224"
(il y a 3 caractères non alphanumériques devant 224)
Code hexa
de l’espace
texte[] = 0x20 ; 0x20 ; 0x20 ; 0x32 ; 0x32 ; 0x34
Codes hexa de 2 ; 2 ; 4
EasyPic 7
Page n°13/14
Lycée Eugène IONESCO
STI2D - SIN
14 D’AUTRES EXEMPLES DE PROGRAMMES
Clignotement des led du portC à la fréquence de 0,5Hz.
void main() {
ANSELC = 0;
PORTC = 0; // Init PORTC
TRISC = 0; // PORTC as output
while(1) {
PORTC = ~PORTC; // toggle PORTC
Delay_ms (1000); // 1s delay
}
}
Affichage d’une donnée sur l’afficheur LCD ( relié au port B)
// configuration des broches d'entrée/sortie
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D7_Direction at TRISB3_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB0_bit;
void main() {
ANSELB=0x00;
Lcd_Init();
while(1) {
Lcd_Out(1, 3, "terminale");
Lcd_Out(2, 4, "STI2D SIN");
Delay_ms(1000);
}
}
EasyPic 7
Page n°14/14