48
Calculatrice RPN
Combinez le clavier et l'afficheur LCD pour créer
votre propre version de la calcue latricde poche
classique. Le projet de calculatrice RPN de
LabVIEW vous permet de partir de la structure de
base d'une calculatrice RPN (reverse Polish
notation, notation polonaise inversée). Ce projet
illustre le concept de l'« automate fini » – la
calculatrice
attend
numérique soit appuyée (état de « veille »), passe
ensuite à un état de calcul parmi plusieurs selon la
touche actionnée, puis revient à l'état de veille en
attendant que la prochaine touche soit appuyée.
Une calculatrice RPN vous demande de saisir deux
valeurs, puis de sélectionner l'opération. Par
exemple, faites la somme de deux valeurs en
appuyant d'abord sur les touches numériques de la
première valeur, puis sur « E » pour saisir la valeur
dans la pile, appuyez ensuite sur les touches
numériques de la deuxième valeur, puis sur « A »
pour faire la somme des valeurs. Reportez-vous au
diagramme de
pour la disposition du clavier.
Main.vi
Le
projet
de
calculatrice
plusieurs VI pour servir d'interface API (Application
Program Interface) de haut niveau pour le clavier.
Le projet de démonstration Keypad demo de
LabVIEW
présenté
explique
comment
déterminer quels touches sont actionnées à un
moment donné. Cette opération d'analyse constitue
la base du VI Scan Keypad inclus avec le projet de
calculatrice ; le VI analyse le clavier une fois, et
renvoie un code d'analyse entier qui représente la
ou les touches actionnées. Les VI Open Keypad et
Close Keypad associés simplifient le processus
d'ouverture des E/S numériques pour les lignes et
les colonnes du clavier.
Le VI Read Keypad simplifie encore davantage
l'interface avec le clavier en combinant deux
instances d'analyse du clavier à l'intérieur de
boucles, l'une qui attend le relâchement de toutes
qu'une
touche
du
RPN
comprend
au
chapitre 25,
page 113
analyser
le
clavier
les touches et l'autre qui attend l'actionnement
d'une touche. Le VI bloque toute autre exécution
jusqu'à ce qu'il détecte une pression de touche ou
une expiration du délai (la valeur d'expiration peut
être sélectionnée avec le VI Open Keypad). Avec
ce VI, l'application principale attend simplement que
le clavier renvoie un code de scan valide qui à son
clavier
tour peut être converti en valeur numérique grâce
au VI Scancode to Number ; ce dernier VI élimine
par filtrage les pressions de touches multiples. En
résumé,
ces
énormément
accélérer le développement de toute application qui
nécessite une saisie utilisateur sur le clavier.
Commencez par ajouter le code d'interface de
l'afficheur LCD à l'état de veille. Vous disposez de
deux lignes d'affichage ; envisagez d'afficher la
pile 0 et la pile 1 ou éventuellement une chaîne de
caractères pour indiquer l'opération la plus récente.
Ajoutez ensuite des opérations supplémentaires à
la calculatrice (pour le moment, la calculatrice ne
prend en charge que l'addition, le changement de
signe, la multiplication, le carré et la racine carré) ;
du fait du nombre limité de touches, des fonctions
supplémentaires doivent être ajoutées sous forme
de « touches de fonction ». Ainsi l'opération racine
pour
carrée est invoquée en appuyant d'abord sur « F »
pour sélectionner une touche de fonction, puis en
appuyant sur « 2 » pour appliquer la racine carrée.
Vous pouvez aussi être amené à modifier le type de
données de pile d'entier à double, puis à ajouter du
code pour gérer les décimales :
• Afficheur local : Afficheur LCD (26, 27, 28)
• Clavier (25)
VI
API
de
clavier
l'interface
avec
le
simplifient
clavier
pour