initiation au microcontrôleursti2dvox.patgue.com/tsin/pdf/sti2d sin debuter avec...p.g lycée...

13
P.G Lycée Vaucanson 17 novembre 2014 STI2D SIN Debuter avec CodeVision.docx STI2D SIN Page 1 Mise en oeuvre des microcontrôleurs ATMega 1 Pour préparer la session de travail Pour préparer la session de travail il faut recopier sur son poste dans son dossier c:\Travail_eleves\[REPERTOIRE A MON NOM le dossier Prog_CodeVision_depart_eleve disponible sur le serveur. 2 Le schéma de départ INIT_CodeVision.DSN Ce schéma très simple nous montre l’interconnexion des entrées sorties à savoir quatre leds, un afficheur LCD de 4 lignes de 20 caractères et quatre interrupteurs. Une version en mode paysage est à la fin du document. D7 14 D6 13 D5 12 D4 11 D3 10 D2 9 D1 8 D0 7 E 6 RW 5 RS 4 VSS 1 VDD 2 VEE 3 LCD1 LM044L PB0/ICP1/CLKO/PCINT0 14 PB1/OC1A/PCINT1 15 PB3/MOSI/OC2A/PCINT3 17 PB2/SS/OC1B/PCINT2 16 PD6/AIN0/OC0A/PCINT22 12 PD5/T1/OC0B/PCINT21 11 PD4/T0/XCK/PCINT20 6 PD3/INT1/OC2B/PCINT19 5 PD2/INT0/PCINT18 4 PD1/TXD/PCINT17 3 PD0/RXD/PCINT16 2 PB4/MISO/PCINT4 18 PB5/SCK/PCINT5 19 PB7/TOSC2/XTAL2/PCINT7 10 PB6/TOSC1/XTAL1/PCINT6 9 PC6/RESET/PCINT14 1 PC5/ADC5/SCL/PCINT13 28 PC4/ADC4/SDA/PCINT12 27 PC3/ADC3/PCINT11 26 PC2/ADC2/PCINT10 25 PC1/ADC1/PCINT9 24 PC0/ADC0/PCINT8 23 AVCC 20 AREF 21 PD7/AIN1/PCINT23 13 ATMEGA88 BP1 Initiation au microcontrôleur INIT_CodeVision.DSN pour simuler en continu D1 LED-BLUE D2 LED-GREEN D3 LED-RED D4 LED-YELLOW Mise en oeuvre de départ BP2 BP3 BP4

Upload: others

Post on 18-Nov-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Initiation au microcontrôleursti2dvox.patgue.com/TSIN/pdf/STI2D SIN Debuter avec...P.G Lycée Vaucanson17 novembre 2014 STI2D SIN Debuter avec CodeVision.docx STI2D SIN Page 3 Configuration

P.G Lycée Vaucanson

17 novembre 2014

STI2D SIN Debuter avec CodeVision.docx STI2D SIN Page 1

Mise en oeuvre des microcontrôleurs

ATMega

1 Pour préparer la session de travail

Pour préparer la session de travail il faut recopier sur son poste dans son

dossier c:\Travail_eleves\[REPERTOIRE A MON NOM le dossier Prog_CodeVision_depart_eleve

disponible sur le serveur.

2 Le schéma de départ

INIT_CodeVision.DSN

Ce schéma très simple nous montre l’interconnexion des entrées sorties à savoir quatre leds, un

afficheur LCD de 4 lignes de 20 caractères et quatre interrupteurs.

Une version en mode paysage est à la fin du document.

D7

14

D6

13

D5

12

D4

11

D3

10

D2

9D

18

D0

7

E6

RW

5R

S4

VS

S1

VD

D2

VE

E3

LCD1

LM044L

PB0/ICP1/CLKO/PCINT014

PB1/OC1A/PCINT115

PB3/MOSI/OC2A/PCINT317

PB2/SS/OC1B/PCINT216

PD6/AIN0/OC0A/PCINT2212

PD5/T1/OC0B/PCINT2111

PD4/T0/XCK/PCINT206

PD3/INT1/OC2B/PCINT195

PD2/INT0/PCINT184

PD1/TXD/PCINT173

PD0/RXD/PCINT162

PB4/MISO/PCINT418

PB5/SCK/PCINT519

PB7/TOSC2/XTAL2/PCINT710

PB6/TOSC1/XTAL1/PCINT69

PC6/RESET/PCINT141

PC5/ADC5/SCL/PCINT1328

PC4/ADC4/SDA/PCINT1227

PC3/ADC3/PCINT1126

PC2/ADC2/PCINT1025

PC1/ADC1/PCINT924

PC0/ADC0/PCINT823

AVCC20

AREF21

PD7/AIN1/PCINT2313

ATMEGA88

BP1

Initiation au microcontrôleur

INIT_CodeVision.DSN

pour simuler en continu

D1LED-BLUE

D2LED-GREEN

D3LED-RED

D4LED-YELLOW

Mise en oeuvre de départ

BP2

BP3

BP4

Page 2: Initiation au microcontrôleursti2dvox.patgue.com/TSIN/pdf/STI2D SIN Debuter avec...P.G Lycée Vaucanson17 novembre 2014 STI2D SIN Debuter avec CodeVision.docx STI2D SIN Page 3 Configuration

P.G Lycée Vaucanson

17 novembre 2014

STI2D SIN Debuter avec CodeVision.docx STI2D SIN Page 2

3 Le premier projet utilisation du CodeWizard de CodeVision

Le logiciel Codevision est un EDI qui permet de programmer en langage c les microcontrôleurs Atmel. Il

est beaucoup moins performant que des outils comme AVRco que nous verrons plus tard. La version

utilisée ici est une version d’évaluation disponible sur le site en téléchargement.

Lancer le logiciel CodeVision version 2.04.4a

Création d’un nouveau projet : New \ Project

Choix du microcontrôleur :

Page 3: Initiation au microcontrôleursti2dvox.patgue.com/TSIN/pdf/STI2D SIN Debuter avec...P.G Lycée Vaucanson17 novembre 2014 STI2D SIN Debuter avec CodeVision.docx STI2D SIN Page 3 Configuration

P.G Lycée Vaucanson

17 novembre 2014

STI2D SIN Debuter avec CodeVision.docx STI2D SIN Page 3

Configuration des ports du microcontrôleur : il y a trois ports à configurer, nous ne configurons que

les ports pour les entrées sorties sur une broche individuelle :

Le port B est connecté sur l’afficheur LCD il est géré par un onglet

particulier donc il n’y a rien à configurer pour les bits de manière

individuelle.

Le port C est configuré pour les deux entrées PC2 et PC3 qui

reçoivent chacune un bouton poussoir.

PB0/ICP1/CLKO/PCINT014

PB1/OC1A/PCINT115

PB3/MOSI/OC2A/PCINT317

PB2/SS/OC1B/PCINT216

PD6/AIN0/OC0A/PCINT2212

PD5/T1/OC0B/PCINT2111

PD4/T0/XCK/PCINT206

PD3/INT1/OC2B/PCINT195

PD2/INT0/PCINT184

PD1/TXD/PCINT173

PD0/RXD/PCINT162

PB4/MISO/PCINT418

PB5/SCK/PCINT519

PB7/TOSC2/XTAL2/PCINT710

PB6/TOSC1/XTAL1/PCINT69

PC6/RESET/PCINT141

PC5/ADC5/SCL/PCINT1328

PC4/ADC4/SDA/PCINT1227

PC3/ADC3/PCINT1126

PC2/ADC2/PCINT1025

PC1/ADC1/PCINT924

PC0/ADC0/PCINT823

AVCC20

AREF21

PD7/AIN1/PCINT2313

ATMEGA88

BP1

BP2

P : PullUp pour fixer le potentiel haut de l’entrée quand l’interrupteur est ouvert.

in : la broche fonctionne en entrée logique

T : la broche fonctionne en entrée logique elle reçoit les deux niveaux logiques 0 et 1.

Page 4: Initiation au microcontrôleursti2dvox.patgue.com/TSIN/pdf/STI2D SIN Debuter avec...P.G Lycée Vaucanson17 novembre 2014 STI2D SIN Debuter avec CodeVision.docx STI2D SIN Page 3 Configuration

P.G Lycée Vaucanson

17 novembre 2014

STI2D SIN Debuter avec CodeVision.docx STI2D SIN Page 4

Le Port B est connecté aux leds et à deux entrées de type bouton poussoir :

PB0/ICP1/CLKO/PCINT014

PB1/OC1A/PCINT115

PB3/MOSI/OC2A/PCINT317

PB2/SS/OC1B/PCINT216

PD6/AIN0/OC0A/PCINT2212

PD5/T1/OC0B/PCINT2111

PD4/T0/XCK/PCINT206

PD3/INT1/OC2B/PCINT195

PD2/INT0/PCINT184

PD1/TXD/PCINT173

PD0/RXD/PCINT162

PB4/MISO/PCINT418

PB5/SCK/PCINT519

PB7/TOSC2/XTAL2/PCINT710

PB6/TOSC1/XTAL1/PCINT69

PC6/RESET/PCINT141

PC5/ADC5/SCL/PCINT1328

PC4/ADC4/SDA/PCINT1227

PC3/ADC3/PCINT1126

PC2/ADC2/PCINT1025

PC1/ADC1/PCINT924

PC0/ADC0/PCINT823

AVCC20

AREF21

PD7/AIN1/PCINT2313

ATMEGA88

D1LED-BLUE

D2LED-GREEN

D3LED-RED

D4LED-YELLOW

BP3

BP4

out : la broche fonctionne en sortie logique

out : valeur initiale de la sortie

Page 5: Initiation au microcontrôleursti2dvox.patgue.com/TSIN/pdf/STI2D SIN Debuter avec...P.G Lycée Vaucanson17 novembre 2014 STI2D SIN Debuter avec CodeVision.docx STI2D SIN Page 3 Configuration

P.G Lycée Vaucanson

17 novembre 2014

STI2D SIN Debuter avec CodeVision.docx STI2D SIN Page 5

Configuration de l’afficheur LCD :

Sauvegarde du projet attention à vérifier que vous êtes dans le bon répertoire.

choix du Port

choix du nombre de caractères par lignes

Nom générique du projet utilisé trois fois avec des types de fichiers différents.

Page 6: Initiation au microcontrôleursti2dvox.patgue.com/TSIN/pdf/STI2D SIN Debuter avec...P.G Lycée Vaucanson17 novembre 2014 STI2D SIN Debuter avec CodeVision.docx STI2D SIN Page 3 Configuration

P.G Lycée Vaucanson

17 novembre 2014

STI2D SIN Debuter avec CodeVision.docx STI2D SIN Page 6

Voilà le résultat de la génération automatique du châssis du programme de votre application quelques

ajouts ont été effectués après en utilisant l’éditeur de code :

/***************************************************** This program was produced by the CodeWizardAVR V2.04.4a Evaluation Automatic Program Generator © Copyright 1998-2009 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project : Version : Date : 10/10/2013 Author : Freeware, for evaluation and non-commercial use only Company : Comments: Chip type : ATmega88 Program type : Application AVR Core Clock frequency: 10,000000 MHz Memory model : Small External RAM size : 0 Data Stack size : 256 *****************************************************/ #include <mega88.h> #include <delay.h> #define Led_Rouge PORTB.1 #define ALLUME 0 #define ETEINT 1 // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x0B ;PORTD #endasm #include <lcd.h>

!! Insertion des procédures personnelles ici !!

Ajout de l’appel de la

bibliothèque des délais en mS et

µS

Les directives #define permettent de

rendre le programme plus lisible elles

se situent au début du programme.

Page 7: Initiation au microcontrôleursti2dvox.patgue.com/TSIN/pdf/STI2D SIN Debuter avec...P.G Lycée Vaucanson17 novembre 2014 STI2D SIN Debuter avec CodeVision.docx STI2D SIN Page 3 Configuration

P.G Lycée Vaucanson

17 novembre 2014

STI2D SIN Debuter avec CodeVision.docx STI2D SIN Page 7

// Declare your global variables here void main(void) { // Declare your local variables here // Crystal Oscillator division factor: 1 #pragma optsize- CLKPR=0x80; CLKPR=0x00; #ifdef _OPTIMIZE_SIZE_ #pragma optsize+ #endif // Input/Output Ports initialization // Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=Out Func0=Out // State7=T State6=T State5=P State4=P State3=1 State2=1 State1=1 State0=1 PORTB=0x3F; DDRB=0x0F; // Port C initialization // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State6=T State5=T State4=T State3=P State2=P State1=T State0=T PORTC=0x0C; DDRC=0x00; // Port D initialization // Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=0 State2=T State1=T State0=T PORTD=0x00; DDRD=0x08; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh // OC0A output: Disconnected // OC0B output: Disconnected TCCR0A=0x00; TCCR0B=0x00; TCNT0=0x00; OCR0A=0x00;

Les choix de configurations des ports ont

été pris en compte.

Les instructions d’initialisation du

microcontrôleurs sont générées

automatiquement.

Page 8: Initiation au microcontrôleursti2dvox.patgue.com/TSIN/pdf/STI2D SIN Debuter avec...P.G Lycée Vaucanson17 novembre 2014 STI2D SIN Debuter avec CodeVision.docx STI2D SIN Page 3 Configuration

P.G Lycée Vaucanson

17 novembre 2014

STI2D SIN Debuter avec CodeVision.docx STI2D SIN Page 8

OCR0B=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer1 Stopped // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer2 Stopped // Mode: Normal top=FFh // OC2A output: Disconnected // OC2B output: Disconnected ASSR=0x00; TCCR2A=0x00; TCCR2B=0x00; TCNT2=0x00; OCR2A=0x00; OCR2B=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off // Interrupt on any change on pins PCINT0-7: Off // Interrupt on any change on pins PCINT8-14: Off // Interrupt on any change on pins PCINT16-23: Off EICRA=0x00; EIMSK=0x00;

Page 9: Initiation au microcontrôleursti2dvox.patgue.com/TSIN/pdf/STI2D SIN Debuter avec...P.G Lycée Vaucanson17 novembre 2014 STI2D SIN Debuter avec CodeVision.docx STI2D SIN Page 3 Configuration

P.G Lycée Vaucanson

17 novembre 2014

STI2D SIN Debuter avec CodeVision.docx STI2D SIN Page 9

PCICR=0x00; // Timer/Counter 0 Interrupt(s) initialization TIMSK0=0x00; // Timer/Counter 1 Interrupt(s) initialization TIMSK1=0x00; // Timer/Counter 2 Interrupt(s) initialization TIMSK2=0x00; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; ADCSRB=0x00; // LCD module initialization lcd_init(20); L’initialisation est terminée zoom sur la partie fonctionnelle de notre code :

lcd_putsf("BIENVENUE"); lcd_gotoxy(0,1); lcd_putsf("EN STI2D SIN"); delay_ms(500); lcd_clear(); while (1) { // Place your code here // Clignotement de la LED ROUGE Led_Rouge=ALLUME; delay_ms(200); Led_Rouge=ETEINT; delay_ms(200); }; }

Ajoutez le

commentaire

de ces lignes

de codes !

Page 10: Initiation au microcontrôleursti2dvox.patgue.com/TSIN/pdf/STI2D SIN Debuter avec...P.G Lycée Vaucanson17 novembre 2014 STI2D SIN Debuter avec CodeVision.docx STI2D SIN Page 3 Configuration

P.G Lycée Vaucanson

17 novembre 2014

STI2D SIN Debuter avec CodeVision.docx STI2D SIN Page 10

Pour compiler et construire l’exécutable il faut cliquer sur le bouton :

Complément prise en compte des trois autres leds.

En recopiant le principe de la prise en compte de la Led rouge ajouter la gestion des trois autres leds.

Définir les équivalences pour les boutons poussoirs, voilà le modèle pour BP1 :

// définitions d'équivalences

// pour la meilleure

// gestion du programme :

#define BP1 PINC.3

#define BP2 ?

#define BP3 ?

#define BP4 ?

#define APPUYE 0

#define REPOS 1

#define ALLUME 0

#define ETEINT 1

On peut ajouter un test et un affichage de l’état de l’interrupteur :

// Test BP numéro 1

lcd_gotoxy(0,0);

lcd_putsf("PORT PC");

ConverHexa(3);

lcd_putchar(LSB);

if (BP1==APPUYE)

lcd_putsf(" APPUI ");

else

lcd_putsf(" REPOS ");

Tester ce code puis faites de même pour les trois autres boutons poussoirs.

Page 11: Initiation au microcontrôleursti2dvox.patgue.com/TSIN/pdf/STI2D SIN Debuter avec...P.G Lycée Vaucanson17 novembre 2014 STI2D SIN Debuter avec CodeVision.docx STI2D SIN Page 3 Configuration

P.G Lycée Vaucanson

17 novembre 2014

STI2D SIN Debuter avec CodeVision.docx STI2D SIN Page 11

Ecriture en hexadécimale sur l’afficheur LCD

Pour écrire en hexadécimal sur l’afficheur cette procédure reçoit un octet data et renvoie les deux

caractères ASCII de l’hexadécimal correspondant dans les variables globales MSB et LSB. Ce code est

à recopier avant la procédure main.

unsigned char MSB ='0';

unsigned char LSB ='0';

ConverHexa(unsigned char data) // D'après D.L

{

LSB = data & 0x0F ;

if (LSB > 9) LSB = (LSB + 'A' - 10);

else LSB = (LSB + '0');

MSB = data & 0xF0 ;

MSB = (MSB >> 4) ;

if (MSB > 9) MSB = (MSB + 'A' - 10);

else MSB = (MSB + '0');

}

Page 12: Initiation au microcontrôleursti2dvox.patgue.com/TSIN/pdf/STI2D SIN Debuter avec...P.G Lycée Vaucanson17 novembre 2014 STI2D SIN Debuter avec CodeVision.docx STI2D SIN Page 3 Configuration

P.G Lycée Vaucanson

17 novembre 2014

STI2D SIN Debuter avec CodeVision.docx STI2D SIN Page 12

Indique un document ressource

Retour au sommaire

Retour à la page courante

Page 13: Initiation au microcontrôleursti2dvox.patgue.com/TSIN/pdf/STI2D SIN Debuter avec...P.G Lycée Vaucanson17 novembre 2014 STI2D SIN Debuter avec CodeVision.docx STI2D SIN Page 3 Configuration

D7

14

D6

13

D5

12

D4

11

D3

10

D2

9D

18

D0

7

E6

RW

5R

S4

VS

S1

VD

D2

VE

E3

LCD1

LM044L

PB0/ICP1/CLKO/PCINT014

PB1/OC1A/PCINT115

PB3/MOSI/OC2A/PCINT317

PB2/SS/OC1B/PCINT216

PD6/AIN0/OC0A/PCINT2212

PD5/T1/OC0B/PCINT2111

PD4/T0/XCK/PCINT206

PD3/INT1/OC2B/PCINT195

PD2/INT0/PCINT184

PD1/TXD/PCINT173

PD0/RXD/PCINT162

PB4/MISO/PCINT418

PB5/SCK/PCINT519

PB7/TOSC2/XTAL2/PCINT710

PB6/TOSC1/XTAL1/PCINT69

PC6/RESET/PCINT141

PC5/ADC5/SCL/PCINT1328

PC4/ADC4/SDA/PCINT1227

PC3/ADC3/PCINT1126

PC2/ADC2/PCINT1025

PC1/ADC1/PCINT924

PC0/ADC0/PCINT823

AVCC20

AREF21

PD7/AIN1/PCINT2313

ATMEGA88

BP1

Initiation au microcontrôleur

INIT_CodeVision.DSN

pour simuler en continu

D1LED-BLUE

D2LED-GREEN

D3LED-RED

D4LED-YELLOW

Mise en oeuvre de départ

BP2

BP3

BP4