Vous êtes sur la page 1sur 16

Systmes squentiels

Comprendre les Microcontrleurs


Jean-Daniel NICOUD et Pierre-Yves ROCHAT

Systmes squentiels

Systmes squentiels
Description par un graphe d'tat
Conception d'une machine d'tat
Solution avec un microcontrleur !

Comprendre les Microcontrleurs | Systmes squentiels | 2013

Systmes logiques

Entres

Sorties
Systme
logique

Entre A

Entre B

Entre C

Sortie 1

Sortie 2

Table de vrit
3

Comprendre les Microcontrleurs | Systmes squentiels | 2013

Un exemple: commande du mouvement d'une perceuse

Comprendre les Microcontrleurs | Systmes squentiels | 2013

Identifier les entres et les sorties: quizz


Quizz
Le systme qui commande le moteur
vertical doit avoir :
1 entre et 1 sortie
1 entre et 2 sorties
2 entres et 1 sortie
3 entres et 1 sorties
3 entres et 2 sorties
5

Comprendre les Microcontrleurs | Systmes squentiels | 2013

Identifier les entres et les sorties

Entres

Sorties
Commande
du moteur

Comprendre les Microcontrleurs | Systmes squentiels | 2013

Systmes logiques combinatoires?

Entres

Sorties

Start
Bas
Haut

Avance
Commande
du moteur

Recule

Start

Haut

Bas

Avance Recule

Table de vrit ?
7

Comprendre les Microcontrleurs | Systmes squentiels | 2013

Graphe d'tat

Arrt
0 0
Haut

Monte
1 0

Start

Bas

Descente
0 1

Comprendre les Microcontrleurs | Systmes squentiels | 2013

Machine d'tat

Start
Bas

D0 Q0

Avance

D1 Q1

Recule

Systme
combinatoire

Haut

Horloge
9

Comprendre les Microcontrleurs | Systmes squentiels | 2013

Machine d'tat
D0 Q0

Avance

D1 Q1

Recule

Systme
combinatoire

Start
Bas
Haut

Horloge

Start

Bas

Haut

Recule Avance Recule+ Avance+

Arret
0 0
Haut

Monte
1 0

10

Start

Bas

Descente
0 1

Comprendre les Microcontrleurs | Systmes squentiels | 2013

Machine d'tat
Start
0
1
x
x
x
x
x

D0 Q0

Start
Bas

D1 Q1

Haut
x
x
x
x
0
1
x

Recule Avance Recule+ Avance+


0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0

Avance

Systme
combinatoire

Haut

Bas
x
x
0
1
x
x
x

Recule

Recule+ = ( Bas . Recule . Avance ) + ( Haut . Recule . Avance )


Avance+ = ( Start . Recule . Avance ) + ( Bas . Recule . Avance )

Horloge

11

Comprendre les Microcontrleurs | Systmes squentiels | 2013

Schma logique
Bas
Recule
Avance
Recule +

Haut
Recule
Avance
Start
Recule
Avance
Avance +

Bas
Recule
Avance
12

Comprendre les Microcontrleurs | Systmes squentiels | 2013

Ralisation avec des circuits intgrs logiques

Start
Bas

D0 Q0

Avance

D1 Q1

Recule

Systme
combinatoire

Haut
Bas
Recule
Avance
Recule +
Haut

Horloge

Recule
Avance

Start
Recule
Avance
Avance +
Bas
Recule
Avance

13

Comprendre les Microcontrleurs | Systmes squentiels | 2013

Avec un microcontrleur: schma

14

Comprendre les Microcontrleurs | Systmes squentiels | 2013

Un programme

Start
Bas

Avance

D1 Q1

Recule

Systme
combinatoire

Haut

Horloge

15

D0 Q0

voidloop(){
//Litlesvaleursdesentres:
Start=digitalRead(StartPin);
Bas=digitalRead(BasPin);
Haut=digitalRead(HautPin);

//Calculelenouveltat:
AvancePlus=(Start&&!Recule&&!Avance)||
(!Bas&&!Recule&&Avance);
ReculePlus=(Bas&&!Recule&&Avance)||
(!Haut&&Recule&&!Avance);

//Enregistrelenouveltat:
Avance=AvancePlus;
Recule=ReculePlus;

//Activelessorties:
digitalWrite(AvancePin,Avance);
digitalWrite(ReculePin,Recule);
}
Comprendre les Microcontrleurs | Systmes squentiels | 2013

Comprendre les Microcontrleurs

Systmes squentiels
Description par un graphe d'tat
Conception d'une machine d'tat
Solution avec un microcontrleur !

16

Comprendre les Microcontrleurs | Systmes squentiels | 2013