Examen final microprocésseur - informatique industrielle - t

Informatique Industrielle : Examen final Microprocésseur

Télécharger PDF

Université Sidi Mohammed Ben Abdellah

GSEII - Examen Final

Module : Informatique Industrielle I

Élément de Module : Microprocesseur 6809

Exercice 1

1) Écrire un seul programme assembleur 6809 qui réalise les tâches suivantes :

  • Copier le contenu de la case mémoire [3050h] vers la case mémoire [3150h] en mode d’adressage direct.
  • Multiplier le contenu de la case mémoire pointée par l’adresse [0060h] par la valeur décimale 40 en mode d’adressage indexé indirect.
  • Additionner le contenu de l’accumulateur D avec le contenu des cases mémoires [0030h] (MSB) et [3050h] (LSB).
  • Faire le complément à deux de l’accumulateur B.
  • Additionner le contenu de l’accumulateur B avec la valeur décimale 50.

Questions supplémentaires

2) Quelle est la valeur finale des accumulateurs A, B et D après l’exécution du code ? (On suppose que A = 1Eh, B = 07h, [3050h] = 60h, [3150h] = 20h, [0060h] = 10h, et [0030h] = 0Ah avant l’exécution du code.)

3) Modifier le code précédent de sorte qu’après l’exécution du code, la valeur finale de l’accumulateur A et B contienne le résultat de la première tâche.

Exercice 2

1) Réaliser l’organigramme puis le programme source en langage assembleur du 6809 qui permet d’effectuer la soustraction signée entre les données suivantes :

  • (21, -30, -45, 66, -19, -42, 87) et (44, -30, -45, 56, -10, -52, -20).

2) Réaliser l’organigramme et le programme assembleur qui multiplie par 5 les 10 données (codées sur un octet) contenues dans les cases mémoires commençant à l’adresse 4000h en utilisant les instructions de décalage. (Les données sont représentées en complément à deux.)

Exercice 3

1) Réaliser l’organigramme puis le programme source en langage assembleur qui calcule la fonction de Fibonacci F(n), où n est le seul argument du programme.

On rappelle que : F(0) = 1, F(1) = 1, et F(n) = F(n-1) + F(n-2) pour n ≥ 2.

2) Réaliser l’organigramme puis le programme source en langage assembleur de la question précédente en mode interruption.

Si pendant le déroulement du programme, on active la touche IRQ, le programme sera dérouté vers une routine SERV-IRQ qui modifie la valeur de n et qui prend le contenu de la case mémoire [0040] et continue le calcul sur le programme principal.

Problème : Commande d’un Système de Niveaux de Liquide

Le niveau H du liquide est converti en une tension V grâce au système : Flotteur-Potentiomètre.

La tension V est donc l’image de H. Cette tension V est convertie en un nombre N binaire codé sur 8 bits.

Le nombre N est appliqué au port A du PIA.

  • Le bit 0 du port B permet d’ajuster la parité paire des données reçues à l’entrée et de les stocker à l’adresse $0030.
  • Le bit 1 du port B commande l’électrovanne R1 :
    • Pour ouvrir R1, il faut mettre le bit 1 du port B à l’état 1.
    • Pour fermer R1, il faut mettre le bit 1 du port B à l’état 0.
  • Le bit 2 du port B commande le tube R2 :
    • Pour ouvrir R2, il faut mettre le bit 2 du port B à l’état 1.
    • Pour fermer R2, il faut mettre le bit 2 du port B à l’état 0.

Les niveaux de liquide sont définis comme suit :

  • Niveau 0 : nombre binaire N = 00000000 = 00h.
  • Niveau H1 : nombre binaire N = 00001111 = 0Fh.
  • Niveau H2 : nombre binaire N = 00000111 = 07h.

Si le niveau du liquide est égal à H2, l’électrovanne R1 doit s’ouvrir et rester ouverte tant que le niveau n’atteint pas H1. Par contre, le tube R2 doit se fermer entre ces deux niveaux.

Si le niveau du liquide atteint H1, le tube R2 doit s’ouvrir et rester ouvert tant que le niveau n’atteint pas H2. L’électrovanne R1 doit se fermer.

On suppose initialement que l’électrovanne R1 est fermée et le tube R2 est ouvert.

Établir l’organigramme convenablement.

Réaliser le programme Assembleur 6809 permettant de commander le système.

FAQ

1. Qu’est-ce que la parité paire en traitement des données ?

La parité paire est un système de vérification qui ajoute un bit supplémentaire aux données pour garantir que le nombre total de bits à 1 dans la transmission est pair.

2. Comment fonctionne l’adressage direct en assembleur 6809 ?

L’adressage direct permet d’accéder directement à une adresse mémoire en spécifiant son emplacement dans l’instruction, par exemple LDD [3050h].

3. Quelles sont les différences entre les accumulateurs A, B et D du 6809 ?

L’accumulateur A et B sont des registres de 8 bits utilisés pour des opérations simples. L’accumulateur D est une combinaison de A et B (16 bits) pour des opérations plus complexes comme la multiplication ou l’addition de grands nombres.

Cela peut vous intéresser :

Partagez vos remarques, questions , propositions d'amélioration ou d'autres cours à ajouter dans notre site

Enregistrer un commentaire (0)
Plus récente Plus ancienne