Le 14 septembre 2017, nous avons publié une version actualisée de notre Politique de confidentialité. En utilisant video2brain.com vous vous engagez à respecter ces documents mis à jour. Veuillez donc prendre quelques minutes pour les consulter.

L'essentiel d'Assembleur

Créer son premier programme

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Apprenez à configurer les broches en entrées ou en sortie et utilisez vos premières instructions. Passez également au datasheet concernant les instructions.
07:42

Transcription

Nous voici donc dans le LAB II que j’ai ouvert de la même façon que précédemment. Donc j’ai créé un Template qui va venir s’étoffer au fur et à mesure de la formation, puisque nous allons avancer sur des programmes de plus en plus complexes, avec des microcontrôleurs aussi qui sauront faire des choses de plus en plus complexes. Et à partir de là, vous trouverez souvent un petit fichier texte qui est le fichier objectif. Alors on va l’ouvrir tout de suite. Mais juste avant, j'attire votre attention sur ces deux lignes. Elles sont totalement indispensables et en fait, elles permettent de faire quoi ? De déclarer en fait au compilateur qu’il a l'assembleur pour 8 bits, qu’il s’agit bien d’une cible de type 17 200, parce que sinon il va être incapable de reconnaitre le nom des registres. Nous irons voir à l’intérieur de ce fichier et nous pourrons l’analyser très rapidement, mais pour l’instant nous n’avons pas encore les connaissances nécessaires pour pouvoir l’analyser sainement. Donc nous avons nos bits de configuration, que nous n'avons pas bougé de place, nous les avons laissés tels quels, et puis nous avons notre code qui commence donc à l’adresse 00. Et puis à partir de là, je mets un GoTO START avec une étiquette START. Ici, voilà, mon code commence ici. Et puis, il faut mettre le mot CODE qui est un mot destiné au compilateur pour qu’il sache que le code qui suit est bien du code. Alors justement dans les objectifs, qu’est-ce qu’on veut utiliser ? On veut utiliser ces quelques instructions. Alors MOVE_LW, qu’est-ce que cela veut dire ? C’est-à-dire que je vais charger directement avec une valeur, que je vais donner, quelle que soit la base, Décimal Binaire Hexadécimal. La valeur, je vais la mettre directement dans le registre de travail, donc « W » comme « Work ». Après MOVE_WF, ça veut dire simplement je vais transférer le contenu du registre de travail dans le registre de destination, dont je préciserai le nom derrière. Tris, qui est en fait une instruction qui va très vite disparaitre en fait quand on va monter en gamme puisque, plutôt que d’être une instruction, Tris va devenir un registre. Il va permettre de configurer en entrée et en sortie les différentes broches de notre microcontrôleur, et puis nous avons bit 7f. C’est-à-dire que je mets à 1 le bit de quel registre, donc, de notre variable, on le verra, et puis on précisera le numéro du bit dans notre registre de 8 bits, lequel est affecté et va être mis à 1. Donc dans un premier temps il va falloir calibrer l’oscillateur, configurer les ports en entrée-sortie et puis nous allons allumer une LED, celle qui sera sur la broche GPIO 0, et nous allons faire l’assimilation rapidement sur PROTÉUS pour valider le tout. Donc notre programme commence ici par le choix, en fait, du calibrage de l’oscillateur. Nous sommes dans une vie virtuelle, c'est-à-dire que là, nous allons faire de la simulation et que normalement dans la simulation, je n’ai même pas besoin de calibrer mon oscillateur (ici il s’agira d’un oscillateur externe), simplement parce que dans la simulation je vais lui mettre la vitesse de cadencement et tout va se faire dans le meilleur des mondes. Donc je vais charger la valeur du registre de travail avec 0. J’aurais pu mettre D/0 pour être en décimal, mais là j'ai mis en hexadécimal pourquoi pas, et je vais mettre dans le registre OSCAL. Alors, il vient d’où ce registre OSCAL ? Eh bien, si on va le chercher dans le datasheet à la section 4.6, on voit qu'il sert en fait à calibrer l’oscillateur interne. Nous, l’oscillateur interne, on ne va pas en avoir besoin. Du coup tout cela va être mis à zéro, et puis ici on dit : si vous voulez un oscillateur externe, mettez la broche GP 2 à zéro. Voilà, ça nous fait zéro. Donc nous mettons notre oscillateur OSCAL donc le registre OSCAL à zéro. Puis nous allons charger de façon littérale, cette fois-ci en binaire. Pourquoi en binaire ? Parce qu' à chaque fois que vous avez un 1, c’est une entrée, et à chaque fois que vous avez un zéro, c’est une sortie. Donc ça permet de voir des broches en fait de façon plus visuelle. Vous allez me dire : oui, mais ici c’est un mot de 8 bits. C’est normal, puisque l’architecture que nous utilisons pour ce pic est une architecture de 8 bits, et il attend comme paramètre un mot de 8 bits. Et vous allez me dire : oui mais on n’a pas 8 broches. Exact, puisqu’il y en a deux qui disparaissent pour l’alimentation et puis 1 que je vais mettre à 1 pour le MASTER_CLEAR. En réalité, en fait, il ne reste plus que 4 broches : GP0, GP1 GP2 et GP3. Seulement, vous ne pouvez pas faire autrement. Vous mettez 0 ou 1, cela ne changera strictement rien. Cette valeur de W va être transmise à TRIS, qui va le mettre dans le registre GPIO. GPIO c’est quoi ? C’est celui qui permet de maîtriser les entrées et les sorties concernant l’état des broches, si je puis dire. Donc, voilà un peu comment ça se passe pour l’instant pour nous. Et maintenant que voulons-nous faire ? Eh bien mettre à 1 la broche 0 du registre GPIO. C'est-à-dire mettre la broche donc 0 simplement à 1 bit 7F. Je mets à 1 la broche 0 du registre GPIO. Donc en fait vers le monde extérieur je vais mettre tout ça à 1. Donc évidement, je compile et puis tout de suite on va aller vérifier le résultat. Donc, ici pour ma résistance, j’ai mis une résistance de 220 Ohms, simplement parce que pour allumer une LED, il faut compter à peu près 15 mA, il y a une chute de tension de 0,7 V. Et puis la différence de potentiel entre la sortie qui va être donnée ici et la chute de tension que je vais avoir à 0,7 V. Cela fait (5 – 0,7)/ (15 mA) néssessaire, ça donne une valeur de 286. Sachant qu’on peut monter un petit peu, donc la valeur normée sera de 220 Ohms. Alors maintenant, pour la simulation, voilà on n’a pas mis de quartz, donc c’est ça qui est un petit peu déroutant, mais ça reste de la simulation. C’est pour ça qu'ici je mets directement ma fréquence de cadencement du microcontrôleur, ici 4 Mhz, donc voilà, je n’ai même pas besoin de mettre vraiment d’oscillateurs. Mais si vous aviez à designer la carte par le biais de PROTEUS, il faudrait absolument le mettre, parce que sinon au moment du routage de la partie CIO, chose qui n’est absolument pas abordée ici, ça ne fonctionnerait pas. Donc à partir de là, je vais chercher mon fichier .HEX. Alors vous me dites : comment je fais ? Alors allez dans les programmes d’exercice, et puis à partir de là vous faites LAB2X /DISTRIBUTION/ PAR_DEFAUT/PRODUCTION et puis on va prendre le .HEX. Le .COF fera l’objet d’une autre étude un peu plus tard, et puis là je fais OK, et là j’appuie sur PLAY. Et là vous voyez que j’ai ma LED qui s’allume.

L'essentiel d'Assembleur

Plongez-vous dans le langage bas niveau, nommé Assembleur. Abordez les notions de jeu d'instructions, de pipeline, de registres, de mode d’adressage, de compteur de programme, etc.

4h52 (57 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :26 sept. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !