TP Uc EasyPIC
TP Uc EasyPIC
TP Uc EasyPIC
A. Oumnad
page 1
TP Microcontrleurs
Ce document doit absolument tre tudi avant l'arriv en TP
Ce document contient : Un rsum qui illustre les diffrences majeures entre le PIC16F877 tudi pendant le cours et le PIC16F887 implant sur les cartes EasyPIC5 sur lesquelles on va faire les TP Une prsentation des lments essentiels de la carte EasyPIC5 Un petit tutoriel pour savoir crer et compiler un projet sur le compilateur MikroC qui permet de programmer les PICs en langage C Les noncs des TP
Durant ces TPs, on va mettre en pratique ce qu'on apprit sur la programmation des PIC en langage assembleur Nous allons aussi apprendre programmer les PIC en langage C Les tudiants doivent absolument prparer les TP avant d'arriver en classe. Un pourcentage important de la note de TP et affect la prparation. Attention, les PC sont quips du logiciel DeepFreese. A la fin de chaque sance, chaque tudiant est tenu de sauvegarder son travail sur une clef USB. Chaque tudiant sera interrog ultrieurement sur les travaux raliss Il est strictement interdit de sauvegarder des fichiers sur le bureau
TP microcontrleurs
A. Oumnad
page 2
Sommaire
I Migration PIC16F877 vers PIC16F887 ................................................................................................... 3 I.1 I.2 I.3 I.4 I.5 I.6 I.7 II II.1 II.2 II.3 II.4 II.5 II.6 III III.1 III.2 III.3 III.4 III.5 III.6 IV V Les registres Spciaux FSR .......................................................................................................................4 L'Oscillateur Interne (Horloge) ................................................................................................................5 Les switchs de configuration ...................................................................................................................6 Les ports d'E/S .........................................................................................................................................7 L'interruption IOC (Interrupt on change) .................................................................................................7 Le convertisseur Analogique Numrique ............................................................................................. 10 L'USART ................................................................................................................................................. 11 L'alimentation ....................................................................................................................................... 12 La programmation de la carte .............................................................................................................. 12 Les LEDs ................................................................................................................................................ 13 Les boutons poussoir et les rsistances de Pull-up/down.................................................................... 14 Les entres pour tests analogiques ...................................................................................................... 15 L'afficheur LCD ...................................................................................................................................... 15 Les types de variables ........................................................................................................................... 16 Les oprateurs logiques ........................................................................................................................ 16 Les oprateurs logiques orient bits .................................................................................................... 16 Comment modifier un registre ou un bit.............................................................................................. 16 Crer un projet Mikroc ......................................................................................................................... 17 Quelques fonctions utiles ..................................................................................................................... 17
TP microcontrleurs
A. Oumnad
page 3
TP microcontrleurs
A. Oumnad
page 4
I.1
TP microcontrleurs
A. Oumnad
page 5
I.2
On peut choisir soit les modes LP,XT, HS, RC, RCIO, EC qui utilisent l'oscillateur classique du PIC soit le nouveau oscillateur intgr. Le chois se fait l'aide des bits de configuration FOSC2,FOSC1,FOSC0 du registre de configuration 1 (2007h) et du registre SFR OSCCON OSCCON
SCS : Choix de l'horloge systme 0 : Oscillateur classique. Mode dfinit par les switchs de configuration 1 : Oscillateur interne. Le choix des frquences se fait par les bits IRCF IRCF2,IRCF1,IRCF0 : Choix de la frquence de l'oscillateur interne 111 = 8MHz 110 = 4MHz (default) 101 = 2MHz 100 = 1MHz 011 = 500kHz 010 = 250kHz 001 = 125kHz 000 = 31kHz (LFINTOSC)
OSCCON = 0 Oscillateur quartz OSCCON = 71h Oscillateur interne de 8 Mhz OSCCON = 61h Oscillateur interne de 4 Mhz
TP microcontrleurs
A. Oumnad
page 6
I.3
Il ya maintenant deux registres pour les switchs de configuration : CONFIG1( 2007h) et CONFIG2 (2008h). La configuration se fait toujours l'aide de la directive __CONFIG, mais il faut prciser l'adresse du registre : CONFIG1 : 2007
DEBUG LVP FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE PWRTE WDTE FOSC2 FOSC1 FOSC0
DEBUG: In-Circuit Debugger Mode bit 1 = In-Circuit Debugger disabled, RB6/ICSPCLK and RB7/ICSPDAT are general purpose I/O pins 0 = In-Circuit Debugger enabled, RB6/ICSPCLK and RB7/ICSPDAT are dedicated to the debugger LVP: Low Voltage Programming Enable bit 1 =RB3/PGM pin has PGM function, low voltage programming enabled 0 =RB3 pin is digital I/O, HV on MCLR must be used for programming FCMEN: Fail-Safe Clock Monitor Enabled bit 1 = Fail-Safe Clock Monitor is enabled 0 = Fail-Safe Clock Monitor is disabled IESO: Internal External Switchover bit 1 = Internal/External Switchover mode is enabled 0 = Internal/External Switchover mode is disabled BOREN<1:0>: Brown-out Reset Selection bits(1) 11 = BOR enabled 10 = BOR enabled during operation and disabled in Sleep 01 = BOR controlled by SBOREN bit of the PCON register 00 = BOR disabled CPD: Data Code Protection bit 1 = Data memory code protection is disabled 0 = Data memory code protection is enabled CP: Code Protection bit 1 = Program memory code protection is disabled 0 = Program memory code protection is enabled MCLRE: RE3/MCLR pin function select bit 1 = RE3/MCLR pin function is MCLR 0 = RE3/MCLR pin function is digital input, MCLR internally tied to VDD PWRTE: Power-up Timer Enable bit 1 = PWRT disabled 0 = PWRT enabled WDTE: Watchdog Timer Enable bit 1 = WDT enabled 0 = WDT disabled and can be enabled by SWDTEN bit of the WDTCON register FOSC<2:0>: Oscillator Selection bits 111 =RC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, RC on RA7/OSC1/CLKIN 110 =RCIO oscillator: I/O function on RA6/OSC2/CLKOUT pin, RC on RA7/OSC1/CLKIN 101 =INTOSC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN 100 =INTOSCIO oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN 011 =EC: I/O function on RA6/OSC2/CLKOUT pin, CLKIN on RA7/OSC1/CLKIN 010 =HS oscillator: High-speed crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN 001 =XT oscillator: Crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN 000 =LP oscillator: Low-power crystal on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN Config2 : 2008 WRT1 WRT0 BOR4V WRT<1:0>: Flash Program Memory Self Write Enable bits 11 =Write protection off BOR4V: Brown-out Reset Selection bit 0 =Brown-out Reset set to 2.1V 1 =Brown-out Reset set to 4.0V
TP microcontrleurs Oscillateur quartz (XT) __CONFIG 0x2007 , 0x23E1 __CONFIG 0x2008 , 0x3FFF OSCCON = 0
A. Oumnad Oscillateur interne - 8Hz __CONFIG 0x2007 , 0x23E4 __CONFIG 0x2008 , 0x3FFF OSCCON = 0x71 Oscillateur interne - 4Hz __CONFIG 0x2007 , 0x23E4 __CONFIG 0x2008 , 0x3FFF OSCCON = 0x61
page 7
I.4
PORTA : Ce port a maintenant 8 bits. Les pins RA6 et RA7 servent connecter le quartz. Si on veut les utiliser en E/S numrique il faut utiliser l'oscillateur interne mode INTOSCIO. La configuration se fait par les Switchs FOSC<2:0>= et le registre OSCON. Voir paragraphe sur l'Oscillateur. OSCCON = 0 , RA6 et RA7 sont affectes au gnrateur d'horloge. OSCCON = 61h, FOSC<2:0>=100 Oscillateur interne 4MHz, RA6 et RA7 = E/S numriques OSCCON = 71h, FOSC<2:0>=100 Oscillateur interne 8MHz, RA6 et RA7 = E/S numriques Les pins RA0, RA1, RA2, RA3 et RA5 analogique numrique
PORTB : Ce port comporte maintenant 6 broches pouvant tre configure en analogique. Voir paragraphe sur les registres ANSEL et ANSELH
PORTD : Ce port de 8 bits n'a rien de spcial. Le mode PSP a disparu. 3 bits peuvent tre utiliss en mode PWM PORTE : Ce port comporte maintenant 4 bits. Les 3 bits RE0, RE1 et RE2 peuvent tre configur en analogique ou numrique. Le bit RE3 fonctionne seulement en entre. Il peut tre soit une entre numrique normale soit une entre de RESET (MCLR). Sa configuration se fait l'aide du switch MCLRE de CONFIG1(2007) : MCLRE = 0 RE3 est une entre numrique normale. MCLR est connect intrieurement Vdd MCLRE =1 RE3 sert de MCLR
I.5
L'interruption RBI que nous appellerons dsormais IOC est dclenche par n'importe quel changement sur un bit de PORTB. Le bit INTCON.RBIE valide l'interruption globalement alors que chaque bit du registre IOCB la valide pour une entre spcifique de PORTB. A titre d'exemple, pour valider l'interruption IOC sur la pate RB3, il faut positionner les 3 bits de validation : INTCON.GIE, INTCON.RBIE et IOCB.IOCB3 IOCB (bank1) IOCB7 IOCB6 IOCB5 IOCB4 IOCB3 IOCB2 IOCB1 IOCB0
TP microcontrleurs
A. Oumnad
page 8
TP microcontrleurs
A. Oumnad
page 9
TP microcontrleurs
A. Oumnad
page 10
I.6
Le convertisseur Analogique numrique a subit quelques modifications: Le 16F887 dispose de 14 E/S Analogique/Numrique (AN0 AN1). Leur configuration en Analogique ou en numrique se fait plus l'aide de ADCON1 mais l'aide des deux registres ANSEL et ANSELH (bank 3) AN0 AN1 AN2 AN3 AN4 AN5 AN6 AN7 AN8 AN9 AN10 AN11 AN12 AN13 RA0 RA1 RA2 RA3 RA5 RE0 RE1 RE2 RB2 RB3 RB1 RB4 RB0 RB5 ANS0 ANS1 ANS2 ANS3 ANS4 ANS5 ANS6 ANS7 ANS8 ANS9 ANS10 ANS11 ANS12 ANS13 -
page 11
ADCS1:ADCS0 : Choix de l'horloge de conversion. Tad = TOSC x div 00 : div = 2 01 : div = 8 10 : div = 32 11 : Oscillateur RC ddi au CAN, Tad est de l'ordre de 4 s <CHS3:CHS0> : choix du canal analogique convertir ADCON1 ADFM VCFG1 VCFG0 -
ADFM : justification droite ou gauche du rsultat dans les registre ADRESH et ADRESL ADRESH ADRESL 1 : justifi droite 000000XX XXXXXXXX 0 : justifi gauche XXXXXXXX XX000000 VCFG1 : Choix de Vr0 : Vr- = Vss 1 : Vr- = AN2 = RA2 VCFG+ : Choix de Vr+ 0 : Vr+ = Vdd 1 : Vr+ = AN3 = RA3
I.7
L'USART
L'USART a t amliore et porte le nom EUSART (Enhanced USART) la vitesse est maintenant contrle par deux registres SBBRGH et SPBRG en plus d'un registre de control BAUDCTL. Pour que l'EUSART fonctionne comme L'USART classique, il faut faire : - SPBRGH = 0 - BAUDCTL = 0
TP microcontrleurs
A. Oumnad
page 12
II La carte de TP EasyPIC5
II.1 L'alimentation
L'alimentation de la carte peut se faire soit travers le cble USB de programmation, soit par une alimentation externe. Le choix se fait l'aide du jumper J6. L'interrupteur ON/OFF permet d'allumer teindre la carte
TP microcontrleurs
A. Oumnad
page 13
SW6
1 2 3 4 5 6 7 8
PORTB
PORTC PORTD
TP microcontrleurs
A. Oumnad
page 14
J2
SW1
SW2
SW3
SW4
SW5
PORTA
PORTB
PORTC
PORTD
PORTE
Toutes les E/S du PIC sont relies des boutons poussoir comme indiqu sur la figure ci-dessous RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0
PORTB/C/D/E
J17
Avec ces dispositions, chaque E/S peut tre configure comme montr sur les deux figures ci-dessous : Vcc Vcc
TP microcontrleurs
A. Oumnad
page 15
Attention : sur le 16F887 comme sur le 16F877, RA4 n'est pas une entre analogique Une entre connecte un potentiomtre doit tre dconnecte de sa rsistance de pull up l'aide du Switch SW1 ou du jumper J1
LCD
RS
D7
D6
D5
D4 D3 D2 D1 D0
PIC16F887
TP microcontrleurs
A. Oumnad
page 16
TP microcontrleurs
A. Oumnad
page 17
Lcd_cmd(commande) : envoie une commande au LCD ex: Lcd_Cmd(LCD_CURSOR_OFF); Consulter le help de MikroC pour plus d'information
TP microcontrleurs
A. Oumnad
page 18
IV TP no 1
L'objectif de ce TP est de prendre en main la carte EASYPIC5 et d'crire un programme sous MPLAP qui utilise les LEDs et les boutons poussoirs, d'implanter ce programme sur la carte l'aide du programme PicFlash et de faire des investigations pertinentes.
1) Observer la carte et localiser : a) Le Microcontrleur 16F887 b) Le connecteur USB de programmation/alimentation c) Le connecteur Jack d'alimentation d) Le jumper J6 qui permet de choisir entre alimentation USB ou alimentation Jack e) Le bouton marche arrt ON/OF f) Le switchSW6 qui permet de connecter les ports sur les LED g) Le jumper J17 qui permet de connecter les boutons poussoirs sur la masse ou sur Vdd h) Le jumper J13 qui permet de connecter/dconnecter le broche RA6 et RA& au quartz 2) Dterminer les configurations CONFIG1 (2007), CONFIG2 (2008) et OSCCON pour avoir a) Configuration A : Horloge Oscillateur interne 8 MHz, WDT_OFF, CodeProtection_OFF, tempo_dmarrage_ON, BrownOut_Reset_ON_4Volts, Write_Protect_OFF b) Configuration B Horloge Oscillateur Quartz XT, WDT_OFF, CodeProtection_OFF, tempo_dmarrage_ON, BrownOut_Reset_ON_4Volts, Write_Protect_OFF 3) Ecrire le programme TP1-1.asm sous MPLAB qui : a) Configure Le PIC avec la Configuration A dfinie ci-dessus b) Configure tous les ports en sorties numriques c) Fait clignoter tous les ports avec une temporisation de s obtenue l'aide de tempo3 4) Brancher la carte EasyPic5 sur votre PC l'aide du cble USB. Vrifier que le jumper J6 est sur position USB. Vrifier sur le switch SW6 que tous les ports sont connects aux LEDs Allumer la carte l'aide de bouton ON/OFF. Dmarrer le programme PicFlash, charger le fichier TP1-1.hex, vrifier que les switchs sont corrects Flasher le PIC, bouton write Observer les rsultats. Pourquoi le bit RE3 ne clignote pas. Si RA6 et RA7 ne clignotent pas expliquer pourquoi 5) Modifier le programme en utilisant la configuration B dfinie plus haut. sauvegardez-le sous TP1-2.asm. 6) Compiler le programme et charger TP2-2.hex dans PicFlash. Vrifier les switchs de configuration 7) Flasher le PIC, Observer et commenter les rsultats
TP microcontrleurs
A. Oumnad
page 19
V TP no 2
L'objectif de ce TP est d'apprendre utiliser l'afficheur LCD