Aller au contenu

Utiliser les PIC 16F et 18F/Exercices/Les structures de contrôle et l'Arithmétique

Leçons de niveau 15
Une page de Wikiversité, la communauté pédagogique libre.
Les structures de contrôle et l'Arithmétique
Image logo représentative de la faculté
Exercices no3
Leçon : Utiliser les PIC 16F et 18F
Chapitre du cours : Les structures de contrôle et l'Arithmétique en assembleur

Exercices de niveau 15.

Exo préc. :Arithmétique et assembleur
Exo suiv. :Les sous-programmes en assembleur
En raison de limitations techniques, la typographie souhaitable du titre, « Exercice : Les structures de contrôle et l'Arithmétique
Utiliser les PIC 16F et 18F/Exercices/Les structures de contrôle et l'Arithmétique
 », n'a pu être restituée correctement ci-dessus.




1°) Sur combien de bits est l'adresse de destination du GOTO ? À comparer avec les 1k d'adresse mémoire du 16F84.

2°) Le PIC 16F877 possède 8k de mémoire programme et la même architecture que le 16F84 (mêmes instructions). Comment peut-on réaliser un saut de la première adresse vers la dernière ?

3°) Assembler le programme du TD 2 utilisant un GOTO.

1°) On cherche à additionner deux valeurs 8 bits égales à 255 (0xFF). Quel est le résultat de la somme? Ce résultat tient-il dans une variable 8 bits ?

2°) Écrire un programme qui additionne quatre valeurs valeurs 8 bits pour mettre le résultat dans deux variables 8 bits("somme_pdsfort" et "somme_pdsfaible"). On vous donne la structure de données associée :

	CBLOCK 0x00C ; début de la zone variables
		somme_pdsfort :1     ; Zone de 1 byte 
		somme_pdsfaible : 1 	; zone de 1 bytes 
		val1 :1  ; zone de 1 byte 1ere valeur
		val2 :1  ; zone de 1 byte 2eme valeur
		val3 :1  ; zone de 1 byte 3eme valeur
		val4 :1  ; zone de 1 byte 4eme valeur
	ENDC ; Fin de la zone

Utiliser les opérations de décalage pour ajouter un calcul de la moyenne pour l'exercice 2.

(extraits de l'exercice 2 du Devoir Surveillé de 2010)

Structure for ... (rappel de cours)

[modifier | modifier le wikicode]

Si l’on sait combien de fois on exécute une boucle on peut utiliser la technique suivante :

Début d’un principe
Fin du principe

Réaliser un programme qui vient chercher six fois des valeurs (8 bits) sur le PORTB et les additionne dans une variable "Somme" (8 bits). On vous demande de gérer la somme sur 8 bits seulement sans gérer la retenue.

	movf PORTB,W		; PORTB -> W

L'instruction ci-dessus lit un registre qui s’appelle PORTB pour mettre sa valeur dans l’accumulateur W.