31
DÉBUT Tantque 1 Appel d'une m acro Etape_0 divergence OU Si trans1 =1 ? O ui N on 1 -> A4 M onter Appel d'une m acro Etape_1 Exécutionétape 1 1-> A5 D escendre Appel d'une m acro Etape_2 Exécutionétape 2 Condition 0 -> PO RT A Arrêt Boucle Boucle FIN Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI<255) Alors MLI =MLI + 51 Fin Si Si (Bpmoins=0 ET MLI>50) Alors MLI =MLI - 51 Fin Si Si MLI = 0 Alors jakubowicz Marc Lycée Loritz Fin Si Attendre 2s Fin Si Fin Tant Que Fin

Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

Embed Size (px)

Citation preview

Page 1: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

DÉBUT

Tant que1

Appel d'une macroEtape_0

divergence OU

Sitrans1 =1

?

Oui

Non

1 -> A4

Monter

Appel d'une macroEtape_1

Exécution étape 1

1-> A5

Descendre

Appel d'une macroEtape_2

Exécutionétape 2

Condition

0 -> PORT A

Arrêt

Boucle

Boucle

FIN

DébutPortB =0MLI = 0Tant Que « vrai » Répéter

Si (Bplus =0 OU Bpmoins = 0) AlorsSi (Bpplus=0 ET MLI<255)

Alors MLI =MLI + 51Fin SiSi (Bpmoins=0 ET MLI>50)

Alors MLI =MLI - 51Fin SiSi MLI = 0

Alors jakubowicz MarcLycée Loritz

Fin SiAttendre 2s

Fin SiFin Tant Que

Fin

Page 2: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

Étapes de programmation

•Définition d’un cahier des charges fonctionnel (ce que doit faire le programme…)

•Définition de l’environnement (A quelle broche brancher telles ou telles commandes …)

•Ecriture du programme :A partir du cahier charge fonctionnel (CdCf), le programmeur écrit le programme. Le langage utilisé est l’algorithme ou l’algorigramme.

•Le codage :A partir de l’algorithme le codeur va transcoder l’algorithme ou algorigramme en un langage de haut niveau : C C++ Basic, ou en un langage de bas niveau : assembleurA ce stade le programme peut-être simulé afin de vérifier que son exécution est conforme.

•La Compilation :La compilation consiste à transformer le langage de haut ou bas niveau en code machine directement exécutable par le microcontrôleur.

Page 3: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

Étapes de programmation

•Programmation des composants.Le code machine et les variables de fonctionnement vont être introduits dans les différentes mémoires du microcontrôleur. La programmation peut s'effectuer :Sur site, le microcontrôleur est dans son environnement, le technicien le place dans un mode "maintenance" ce qui permet de modifier n'importe quelle mémoire.Hors site, le microcontrôleur est placé sur un programmateur externe, ce qui permet de modifier la mémoire ROM et EEPROM.

•Vérification.Elle se fait directement sur le système.

Points blancs = broche 1

Câble port COM1 (ne pas visser sur le PC SVP)

Alimentation 9V

Support ZIF

Points blancs = broche 1

A1

A0 A2

A3

B0

B7

Page 4: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

Un algorithme est une règle.

Processus défini par une succession finie, ordonnée dans le temps, d’opérations d’un acteur unique appliquées à un nombre fini de données conduisant en un nombre fini d’étapes à un résultat défini quelles que soient les valeurs des données dans leurs domaines de définition.

Algorigramme Représentation graphique conventionnelle d’un algorithme

Règle 0

L’algorithmique est faite pour décrire l’aspect temporel des processus.

Un algorithme sans fin ne peut représenter qu’un programme mal fait et planté.

Deux événements représentés sur deux lignes (cellules graphiques) consécutivesse succèdent strictement dans le temps.

Page 5: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

Règle 1

Deux événements simultanés doivent être mentionnés dans la même ligned’algorithme, ou dans le même rectangle d’algorigramme.

Règle 2

Les mots clés de l’algorithmique (il n’y en n’a même pas 20, un minimum de 12suffisent) s’emploient toujours soulignés.

Règle 3

Les couples suivants fonctionnent comme des parenthèses algébriques (à uneouverture correspond une et une seule fermeture sans enchevêtrement) et sont toujours reliés par des traits verticaux de validation :

Début

Fin

Tant que

Fin tant que (ftq)

Répéter

Jusqu’à

Page 6: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

Règle 4

Le signe « = » a toujours une valeur de test booléen (une question à laquelle la réponse ne peut être que oui ou non, un affirmation qui ne peut être que vraie ou fausse) , l’affectation est toujours représentée par son signe « prend pour valeur » :

Règle 5

Tout algorithme a un début et une fin. Un processus « permanent » a toujours une boucle principale qui n’atteint sa fin que sur rupture des conditions normales de fonctionnement.

Règle 6

Tout algorithme peut se représenter en algorigramme et réciproquement.

Règle 7

L’algorigramme n’est pas un outil d’analyse des systèmes, c’est un outil devalidation et de présentation des solutions élaborées en mode algorithme (texte).

Page 7: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

Règle 8

Les deux formes de boucle légitimes ne sont pas équivalentes.Les événements de la boucle répéter sont toujours exécutés au moins une fois alors que la boucle tant que peut très bien ne jamais avoir lieu.

Règle 9

Un « si » ne contrôle jamais une boucle ! ! !Ce sont les structures « tant que » et « répéter ...jusqu’à » qui contrôlent les boucles légitimes

Règle 10

La description en langage libre ne doit jamais contenir de structures decontrôle implicites.

Cela interdit donc les synonymes plus ou moins avoués de nos mots clés :“continuer”, “reprendre”, “arrêter”, “passer à”, “attendre”, “stop”, “sauter en”, “selon”, “en fonction de”, “exécuter”, “attendre”, “choisir”, “recommencer”, “soit que...soit que”, “quand”, “dès que”, “après que”, “vérifier”, “au cas où”, etc...

Page 8: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

Règle 11

Une boucle algorithmique est toujours exécutée un nombre entier de fois.

Règle 12

Une boucle GOTO peut apparaître en première analyse de constatation d’unobjet existant mais elle peut et doit toujours être éliminée de la version finale.

Règle 14

Deux boucles peuvent être successives ou imbriquées, jamais enchevêtrées.

Règle 13

LE GOTO s’élimine en réécrivant une boucle tant que ou répéter

Successives Imbriquées Enchevêtrées

Page 9: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

Règle 15

La hiérarchie matérielle d’un système doit se traduire par la hiérarchie del’algorithme : l’algorithme liée à une structure matériellement subordonnée à une autre ne peut être qu’un sous- algorithme de l’algorithme de la structure prioritaire

Règle 16

Tout état physique mémoire (bascule, charge de condensateur, état d’uncommutateur...) se représente par une variable

Règle 17

La hiérarchie algorithmique doit respecter la hiérarchie matérielle.

Règle 18

Le sous-algorithme d’une structure qui fonctionne sous le contrôle matérielpermanent d’une autre ne peut contenir de boucle « durable ».

Page 10: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

Séquence

Ensemble d'opérations, d'instructions, comprises entre deux délimiteurs qui seront exécutées successivement dans le temps.

DébutInstruction 1Instruction 2Opération 1…

Fin

Page 11: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

Condition est une variable booléenne.

Structure algorithmique correspondante :

Si (condition vraie) alors faire Séquence 1sinon faire Séquence 2.

Fin si

Alternative ou choix

Condition vraie

Séquence 1

Condition fausse

Séquence 2

Alternative multiple

Cas [variable_clé][condition_booléenne_1 sur variable_clé] [action_1][condition_booléenne_2 sur variable_clé] [action_2]...[condition_booléenne_n sur variable_clé] [action_n]sinon [action_autre]

Fin cas

Page 12: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

Itération (répétition)Répétition d’une séquence un nombre de fois déterminé ou non.

n peut être connu ou inconnu

Séquence(s)

Répéter n fois

Page 13: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

Pour Variable1 de début à finPour Variable de [début] à [fin]

Séquence 1Séquence 2

Répéter

Remarque : les variables [Début] et [fin] doivent être déterminée avant l’itération.

Faire… jusqu’àFaire

Séquence 1Séquence 2 …

jusqu’à (condition = vraie)

Remarque : les séquences sont réalisées au moins une fois.

Structures algorithmiques possibles :

Tant que … faireTant que (condition = vraie) Répéter Séquence 1 Séquence 2…Fin tant que

Remarque : les séquences peuvent ne pas être réalisées. Le Fin tant que n’est pas obligatoire.

Page 14: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

Représentation sous forme d’algorigramme

Début

Instruction...

Sous programme

test Test d'une condition

1 Renvoi

Début, fin, interruption

Traitement, Instruction, opération...

Sous programme

oui

non

2 Renvoi

Page 15: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

Représentation sous forme d’algorigramme

Sortie

Opérations sur des entrées/sorties avec ou sans

Commentaire

test

Entrée

Fin

DEL

Bp

Instruction...

non

oui

1

Renvoi

Test d'une condition

2 Renvoi

xxx

Page 16: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

Début

Sous programme

Instruction 2

Fin

Instruction 1

Test ?

Sous programme Instruction

oui

non

Sous programme

test

Algorithme Algorigramme Q Basic

Séquence linéaire

Début :Instruction 1Instruction 2Séquence

Fin :

Exemple de programme

Y=Y+1X=X*3+2CALL trace

Choix ou Alternative

SI (condition vraie) Alors faire Séquence Sinon faire InstructionFin SI

Exemple de programme

IF touche = 1 THEN CALL clavier ELSE tmp=tmp+1END IF

Itération Faire…jusqu’à

Faire SéquenceJusqu’à (condition=vraie)

Exemple de programme

DO CALL encodageLOOP UNTIL res=1

Page 17: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

Algorithme Algorigramme Q Basic

test

Instruction

Sous programme

oui

non

ItérationTant que…faire

Tant que (condition=vraie) Répéter Instruction SéquenceFin Tant que

Exemple de programme

WHILE test=1 X=X+1 CALL tempoWEND

ItérationPour variable de début à fin

Pour variable CNT de [début] à [fin] instruction

…Répéter

Exemple de programme

FOR CNT=0 TO 100 Y=CNT*12+3NEXT CNT

Incrémenter CNT

CNT ç début

Y ç CNT*12+3

CNT > fin ?

non

oui

Page 18: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

•Réaliser le programme suivant : Initialisez une variable « compteur » à 0. Sortir la variable « compteur » sur le port B Incrémenter la variable « compteur » Attendre 200ms. Recommencer à l’infini.

DébutTant que 1 Répéter

Compteur = 0Pour boucle de 0 à 255

Sortir compteur sur port BIncrémenter CompteurAttendre 200 ms

RépéterFin Tant Que

Fin

Début

Fin

Incrémenter boucle

boucle >255 ?

non

oui

1

Compteur ← 0

oui

non

Compteur

boucle ← 0

Incrémenter compteur

Attendre 200ms

Port B

Page 19: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

•Réaliser le programme suivant : Initialisez une variable « compteur » à 0. Sortir la variable « compteur » sur le port B Incrémenter la variable « compteur » Attendre 200ms. Recommencer à l’infini.

DÉBUT

compteur= 0

Calcul

Boucle255 fois

compteur-> PORT B

Sortie

compteur = compteur + 1

Calcul

200 ms

Pause

Boucle

Boucle

Tant que1

Boucle

Boucle

FIN

Algorigramme type Flowcode

DébutTant que 1 Répéter

Compteur = 0Pour boucle de 0 à 255

Sortir compteur sur port BIncrémenter CompteurAttendre 200 ms

RépéterFin Tant Que

Fin

Page 20: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

void main(){

COMPTEUR = 0 ;while( 1 ){for (LOOP1=0; LOOP1<255; LOOP1++)

{trisb = 0x00;portb = COMPTEUR;COMPTEUR = COMPTEUR + 1 ;delay_ms(200);}

}mainendloop: goto mainendloop;

}

DÉBUT

compteur= 0

Calcul

Boucle255 fois

compteur-> PORT B

Sortie

compteur = compteur + 1

Calcul

200 ms

Pause

Boucle

Boucle

Tant que1

Boucle

Boucle

FIN

Page 21: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

program compteurdim compteur as bytedim boucle as byte

main:

trisb = $00 'Le port B est en sortie

While true compteur = $0 For boucle = 0 to 255 PortB = compteur compteur = compteur + 1 Delay_ms(200) Next boucle Wendend. 'Fin de programme

DÉBUT

compteur= 0

Calcul

Boucle255 fois

compteur-> PORT B

Sortie

compteur = compteur + 1

Calcul

200 ms

Pause

Boucle

Boucle

Tant que1

Boucle

Boucle

FIN

Page 22: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

label2BCF STATUS, RP0CLRF gbl_COMPTEURCLRF gbl_LOOP1

label6MOVLW 0xFFSUBWF gbl_LOOP1, WBTFSC STATUS,CGOTO label2BSF STATUS, RP0CLRF gbl_trisbBCF STATUS, RP0MOVF gbl_COMPTEUR, WMOVWF gbl_portbINCF gbl_COMPTEUR, WMOVWF gbl_COMPTEURMOVLW 0xC8MOVWF delay_ms_00000_arg_delCALL delay_ms_00000INCF gbl_LOOP1, FGOTO labe6

; } main function end

DÉBUT

compteur= 0

Calcul

Boucle255 fois

compteur-> PORT B

Sortie

compteur = compteur + 1

Calcul

200 ms

Pause

Boucle

Boucle

Tant que1

Boucle

Boucle

FIN

Page 23: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

Alimentation 9V

Support ZIF

Points blancs = broche 1

A1

A0 A2

A3

B0

B7RA7/OSC1/CLKIN16

RB0/INT6

RB1/RX/DT7

RB2/TX/CK8

RB3/CCP19

RB410

RB511

RB6/T1OSO/T1CKI12

RB7/T1OSI13

RA0/AN017

RA1/AN118

RA2/AN2/VREF1

RA3/AN3/CMP12

RA4/T0CKI/CMP23

RA6/OSC2/CLKOUT15

RA5/MCLR4

PIC16F628A

PROGRAM=Exemple_1.hex

CLOCK=4MHz

CFGWORD=0x3F10

OFF ON 12

43

I2_I3DIPSW_2

D7

I0

I1

2 3 4 5 6 7 8 91

RP2 47k

D0LED-RED

12345678

161514131211109

RN

127

0

Page 24: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

main: CMCON=7 'Configure le portA en entrées/sorties numériques

trisa = $FF 'le port A est en entrée

trisb = $00 'Le port B est en sortie

portb = $00 'Met les sortie du port B à 0

  While (bp=1 'Tant que bp non appuyé faire la boucle

Wend del=1 'Sortie b0 à 1 Del allumée

Delay_ms(2000) 'Attendre 2s

del=0 'Sortie b0 à 0 Del éteinte

end. 'Fin de programme

Programme 0Eteindre toutes les DEL.Attendre que BP soit à 1Allumer la DEL 0 durant 200ms.Eteindre la DEL 0.Terminé.

Début

Port A en numériquePort A en entréePort B en sortie

BP=1 ?

0

Tempo 200ms

Fin

Port B

Port B.0

Port B.00

1

Page 25: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

main: CMCON=7 'Configure je portA en entrées/sorties numériques

trisa = $FF 'le port A est en entrée

trisb = $00 'Le port B est en sortie

portb = $0 'Met les sortie du port B à 0

PortB = $FF 'Sortie b0 à 1 Del allumée

Delay_ms(1000) 'Attendre 1s

PortB = 0 'Sortie b0 à 0 Del éteinte

Delay_ms(1000) 'Attendre 1s

end.

Programme 1

Allumer toutes les DEL.Attendre 1s.Eteindre toutes les DEL.Attendre 1s.Terminé.

Début

Port A en numériquePort A en entréePort B en sortie

Tempo 200ms

Fin

Tempo 200ms

Tempo 200ms

0 Port B

$FF Port B

0 Port B

Page 26: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

main: CMCON=7 'Configure je portA en entrées/sorties numériques

trisa = $FF 'le port A est en entrée

trisb = $00 'Le port B est en sortie

portb = $0 'Met les sortie du port B à 0

while true PortB = $FF 'Sortie b0 à 1 Del allumée

Delay_ms(1000) 'Attendre 1s

PortB = 0 'Sortie b0 à 0 Del éteinte

Delay_ms(1000) 'Attendre 1s

Wendend.

Programme 2

Allumer toutes les DEL.Attendre 1s.Eteindre toutes les DEL.Attendre 1s.Le programme se répète à l’infini.

Début

Port A en numériquePort A en entréePort B en sortie

Tempo 200ms

Tempo 200ms

1

OUI

NON

Fin

0 Port B

0 Port B

$FF Port B

Page 27: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

dim compteur as byte ‘Définition de la variable compteur comme un octet

main:… compteur = $0 While true ‘Faire tant que’

do ‘Faire

PortB = compteur Delay_ms(200) compteur = compteur +1 loop until compteur = $FF ‘Jusqu’à

Wend ‘Répéter

end.

Programme 3On va compter … :Initialisez une variable « compteur » à 0.Sortir la variable « compteur » sur le port BIncrémenter la variable « compteur » compteur = compteur +1Attendre 200ms.Et recommencer à l’infini.

Début

Tempo 200ms

1

OUI

NON

Fin

Compteur ç 0

Incrémenter compteur

Compteur = 255 ?

OUI

NON

initialisation PIC

compteur Port B

Page 28: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

dim port as byte

main:… While true Port = portA port= NOT Port PortB = port Wendend.

Programme 5

Lire le port A en entrée, le stocker dans une variable « port » on veut sur le port de sortie, l’inverse de portSortir sur le port B la variable « /port ».Et recommencer à l’infini.

Début

1

OUI

NON

Fin

Port ç NOT port

Port Port B

PortPort A

initialisation PIC

Page 29: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

main:While true chenille = $01 for compteur = 0 to 6 PortB = chenille delay_ms(200) chenille = chenille << 1 Next compteur for compteur = 0 to 6 PortB = chenille delay_ms(200) chenille = chenille >> 1 Next compteurWendend

Programme 6 – 7 Un petit chenillard …Initialiser une variable « chenille » à 01Sortir sur le port B la variable « chenille ».Attendre 200ms.Décaler à gauche d’un bit la variable « chenille »Recommencer 7 fois.on veut que la DEL fasse un allez retour perpétuel

Début

initialisation PIC

1

OUI

NON

Fin

Chenille ç 1Compteur ç 0

OUI

Tempo 200ms

Compteur ç 0

Décaler chenille de 1 bit à droite

Compteur > 6

Incrémenter compteur

NON

OUI

Chenille Port B

Tempo 200ms

Décaler chenille de 1 bit à gauche

Compteur > 6

Incrémenter compteur

NON

OUI

Chenille Port B

Page 30: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

main: … While true port = portA.0 IF port = 1 then chenille = $01 for compteur = 0 to 7 PortB = chenille delay_ms(200) chenille = chenille << 1 Next compteur else chenille = $80 for compteur = 0 to 7 PortB = chenille delay_ms(200) chenille = chenille >> 1 Next compteur End IF Wendend.

Programme 8Variante du programme 6, on veut que la DEL fasse un allez ou retour dans le sens de l’interrupteur A0.

Début

initialisation PIC

Tempo 200ms

1

OUI

NON

Fin

Chenille ç 1Compteur ç 0

Décaler chenille de 1 bit à gauche

Compteur > 7OUI

NON

Chenille ç $80Compteur ç 0

Incrémenter compteur

Port = 1 NONOUI

PortPort A.0

Chenille Port B

Tempo 200ms

Décaler chenille de 1 bit à droite

Compteur > 7OUI

NON

Incrémenter compteur

Chenille Port B

Page 31: Début PortB =0 MLI = 0 Tant Que « vrai » Répéter Si (Bplus =0 OU Bpmoins = 0) Alors Si (Bpplus=0 ET MLI

Début

Initialiser l'écran en mode graphique 640x480 16 couleurs

Tracer l'axe des tensions à 10 pts du bord gauche

Tracer l'axe de temps à mi-hauteur

Générer la fonction sinus à partir de NB (sinus en radian, sortie comprise

entre 0 et 480)

Variable x ç 10

Fin

Incrémenter NB

Oui

NON

Afficher le point de coordonné (x, sin)

x = 640

Réalisez le programme en Qbasic permettant de dessiner une courbe sinusoïdale.

0,0 640,0

0,480 640,480

0 π 2π

10,240 315,240 640,240

...,10

...,470

210

210