Ateliers de programmation en PicBasic avec Ronald VE2ESX

Ateliers printemps 2013  

Ronald nous invite à écrire quelques programmes
Exercice 1-1   Réponse 1-1

                                                                                                                                          Delayms , Delayus , Goto , End , Symbol

 

 

High , Low

 

 

Exercice 1-1 :

- Faire clignoter le DEL1 infiniment en utilisant  les instructions High et Low. Faire l'ordinogramme avant de coder.

 

Exercice 1-2    Réponse 1-2

                                                                                                                                          SetBit , ClearBit

 

 

Exercice 1-2 :

- Faire clignoter le DEL4 infiniment en utilisant  les instructions SetBit et

ClearBit .

 

Exercice 1-3    Réponse 1-3

                                                                                                                                       Hrsout

- Les déclarations (Declare) doivent apparaître en tête de programme.

- Sortie vers le PC à travers le EUSART du PIC.

- Utilisation d'un programme Terminal sur le PC

- paramétrisation , connexion et déconnexion.

-Syntaxe

- Utilisation du texte, des variables, des modificateurs (Proton) et du contle de l'écran.

 

 

Exercice 1-3 :

- Faire un programme pour envoyer «  Bonjour »  sur la première ligne et

« Comment ça va? »  sur la ligne suivante.

 

Exercice 1-4    Réponse 1-4
 

                                                                                                                                            Dim

- types de variables Byte , Word , Dword , Bit , Float , <Array> , String

- réservation d'octets en mémoire SRAM pour la variable.

 

 

INC et DEC , Clear , Set

 

 

IF Then  Else Endif

- compréhension des opérateurs : « = , < , > , <= , >= , <> »

- utilisation de la logique de Boole : Not , And , Or , Xor

- Format ligne ou bloc

- Imbrication des instructions (nécessite souvent un ordinogramme)

 

 

Exercice 1-4 :

- Créez 2 variables appelées « Compte » et « Decompte » de type 1 octet.

-Sur le terminal on veut voir : Compte :  000

Decompte :  255 ( saut de ligne )

Compte :  001

Decompte :  254

 

…... ainsi de suite jusqu'à ce que Compte = 255 sur l'écran

**** Faire préalablement l'ordinogramme*******

 

Exercice 1-5    Réponse 1-5

  

Exercice 1-5 :

- Même exercice  qu'en 4 sauf que les valeurs de Compte et Decompte doivent être représentées en Hexadécimal et Binaire tel que l'exemple ci-dessous pour 256 valeurs:

Compte : $ 00  (% 00000000) Decompte : $ FF (% 11111111)

Exercice 1-6    Réponse 1-6

                                                                                                                                             For (Step) Next  ,      ( Break , Goto ) pour couper court

- L'une des instructions les plus populaires en Basic

- Imbrication des instructions ( nécessite souvent un ordinogramme)

- Sortir prématurément avec un Goto ou un Break

 

 

Exercice 1-6 :

- Même exercice qu'en 4 avec les changements suivants : Il faut compter et décompter jusqu'à 300 au lieu de 255 et utiliser l'instruction For Next.

 

Exercice 1-7    Réponse 1-7

                                                                                                                                     LoadBit

 

 

Exercice 1-7 :

Allumez et éteindre à tour de rôle, les 4 DELs du PortB, en utilisant les instructions

LoadBit et For Next et indiquer à l'écran DEL # ( no de DEL) à chaque ligne.

 

Exercice 1-8    Réponse 1-8  Spécial : Réponse 1.8 avec toutes les explications

                                                                                                                                       Opérateurs : ( + , - , / , >> , << )

 

 

Algèbre de Boole :  et (&) , ou ( | ) , ou exclusif xor ( ^ )

- tables de vérité

- notions de masque, inversion , forcer dans un état 0 ou 1

 

 

Execice 1-8 :

Déclarez une variable (8 bits) nommé Var1 . Initialiser la Var1 à 1.

Afficher sur l'écran du PC :

Var1 = <valeur dec.> , $<valeur hex> , %<valeur binaire>

Faites apparaître le DEL correspondant sur le port B (Ne faites ça que pour les valeurs <9)

Les DELs doivent être manipulés à l'aide de l'Algèbre de Boole. Arrangez vous pour ne pas affecter les 4 bits du haut du port B.

Faites un déplacement à gauche ( shift à gauche) et recommencer jusqu'à ce que les 8 bits soient exécutés.

Quand c'est fait , faites le déplacement dans l'autre sens .

Inrer un délai seulement lorsque les DELs sont en période d'affichage. Recommencer le tout indéfiniment.

(Faire l'ordinogramme avant.)

 

Exercice 1-9    Réponse 1-9

 

Exercice 1-9 :

En utilisant la logique de Boole seulement , déclarez une variable Var1 de un octet. Charger la valeur 5 dans Var1 et l'afficher sur les DELs

Avec un délai de  ¾ de seconde pour faire les changements au niveau des DELs, inversez l'état de tous les DELs ( attention ne jamais déranger les 4 bits du haut du PortB.

Faites l'inversion 10 fois. Ensuite :

Forcer les 4 DELs à 0 , après un délai de ¾ de seconde, inverser les 4 DELs et recommencer 10 fois.

Recommencer indéfiniment.

 

Exercice 1-10    Réponse 1-10

                                                                                                                                        GetBit

 

 

Exercice 1-10 :

Déclarer les variables suivants de chacun 1 octet : Var1 et Compte

Pour des valeurs de 1 à 255 ( Var1) , affichez à l'écran :

les titres suivants :  Décimal          Binaire              Nombre de <1>

en dessous listez <dec Var1>  <Bin Var1>     <nombre de 1 de Var1

ainsi de suite ...

Note : Utilisez GetBit pour extraire la valeur du bit de Var1 dans une boucle For Next

 

 

Include

- l'extension du fichier inclus peut-être      <* .BAS>     ou    <* .INC>

- le fichier include doit être à proximité du programme qui l'appelle.

- dans le fichier maître le programme du « include » sera pseudo installé là ou vous aurez écrit l'instruction « Include »

 

Exercice 1-11    Réponse 1-11

                                                                                                                                        Include

- l'extension du fichier inclus peut-être      <* .BAS>     ou    <* .INC>

- le fichier include doit être à proximité du programme qui l'appelle.

- dans le fichier maître le programme du « include » sera pseudo installé là ou vous aurez écrit l'instruction « Include »

 

 

Execice 1-11 :

- Créez un nouveau fichier avec la fonction New dans Proton que vous appellerez :    Config Olimex version 0.bas

- à partir de votre programme courant mettre en surbrillance toute la partie comprise entre après la déclaration de Xtal et la fin de l'instruction TRIS

- Faites Copier ou <CNTL C>

- Faites Coller en dessous de l'entête après avoir lectionner le nouveau fichier Config …..

- Enregistrer en faisant   Save as avec le même nom mas en s'assurant qu'il est dans votre répertoire de travail.

- Fermez le Config  cad Close page

- Retournez dans Exercice 11 et supprimez la partie en surbrillance.

- Après inscrire après la déclaration du Xtal :

Include "Config Olimex version 0.bas"   ne faites aucune erreur dans le nom du fichier.

Note : il est utile de conserver les déclarations  du micro et du cristal dans le programme de base.

 

 

Dans l'exercice 1.11 vous avez écrit un fichier Config Olimex version 0.BAS

à partir de l'exercice 1.12 vous devrez utiliser la nouvelle version :

Config_Olimex_version_1.BAS

 

                                                                                                                                                                                    

Config_Olimex_version_1.BAS

Exercice 1-12    Réponse 1-12 partie 1 de 2    Réponse 1-12 partie 2 de 2

                                                                                                                                                                                     Toggle

 

 

Exercice 1-12 partie 1 de 2

 

Plusieurs fois, il n'est pas désirable d'utiliser les délais préprogrammés pour exécuter un délai car on perd tout contrôle sur le temps pendant l'exécution d'un délai comme Delayms et Delayus.

Jusqu'à quelle valeur doit-on compter ou quelle valeur doit-on mettre dans une variable pour créer un délai qui est perceptible par un humain (1 seconde ou ½ seconde)?

 

Avec le bouton BP1 , écrire un programme pour visualiser sur le PC la valeur d'un compte d'une variable pendant que vous pesez sur le bouton. Bien sûr la valeur s'affiche lorsque vous relâcher le bouton. Les valeurs sont séparées par une virgule en continu.

 

Exercice 1-12 partie 2 de 2

À l'aide de cette information, mettez votre programme de test de côté en le mettant en «  Comment  » commentaires et écrivez un nouveau programme pour faire clignoter un DEL en utilisant l'instruction Toggle et une variable en compte pour le délai. ( pas de Delayms ni de Delayus).

Exercice 1-13    Réponse 1-13

                                                                                                                                          While Wend

 

 

Exercice 1-13 :

Modifiez l'exercice 12 pour y inclure que le clignotement ne commence que lorsque vous aurez pesé sur le bouton PB1 en utilisant la commande While ...Wend.

 

Exercice 1-14    Réponse 1-14

                                                                                                                                        Repeat … Until

 

 

Exercice 1-14 :

Modifiez l'exercice 13 de façon à ce que le clignotement soit à l'intérieur d'une boucle Repeat … Until et que le clignotement s'arrête lorsque PB1 est pesé et recommence à l'aide de While ...Wend . Ceci signifie que le clignotement débute et arrête à l'aide de l'enfoncement de l'interrupteur PB1.