|
|
|
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 indéfiniment
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 indéfiniment
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 contrôle
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
.
Insérer
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
sé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.
|
|
|
|
|
|