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

Appliquer au déclenchement la tâche principale

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Voyez comment lancer votre tâche principal K2000 soit par une logique d'inversion (RB3), soit par une logique direct (RB2).
06:42

Transcription

Dans cette vidéo, donc, je vais vous parler de l'état logique et de l'état électrique. Donc la mise en oeuvre des résistances de pull-up et de pull-down, et donc des instructions qu'il faut mettre pour pouvoir les associer, pour avoir des états logiques qui soient cohérents avec les états électriques. Alors tout d'abord, faisons un petit tour pour voir la tête de notre microcontrôleur. Donc vous voyez, là, nous sommes à 64 broches, il commence à y avoir un petit peu de monde. Et puis sur chaque broche, vous avez de plus en plus de fonctionnalités, donc ça fait que vous avez un datasheet qui commence à devenir un petit peu conséquent. Alors au niveau des bits de configuration, je ne peux pas tout vous expliquer, ça m'est totalement impossible en si peu de temps. Donc là, je suis obligé de vous renvoyer directement au niveau du datasheet. Alors, sachant que vous avez déjà des explications qui vous sont données ici par le générateur de bits de configuration. Alors, les objectifs : nous allons faire, donc, la différence entre l'état logique et l'état électrique. Donc la configuration et la temporisation, et l'initialisation des ports et des variables va être faite. Nous allons donc écrire une routine principale, qui s'appelle K2000, en fait qui fait un aller-retour sur 16 led en clignotant à raison de 0,4 secondes. On utilise les instructions, donc, RLNCF pour faire des rotations de bits, cette fois-ci dans le registre à gauche, et son pendant à droite, avec RRNCF. Alors l'état logique est l'inverse de l'état électrique. Oui, si nous configurons, donc, le port D avec la résistance de pull-up et si nous utilisons, donc, l'instruction bit test if skip is set. Mais si nous utilisons bit test if skip is clear, dans ce cas-là, l'état logique sera égal à l'état électrique. Par contre, là, si vous n'utilisez pas de résistance de pull-up, mais juste, donc, une résistance de pull-down en externe, vous utiliserez bit test if skip is set. Alors regardons un petit peu notre programme source. Donc ici, nous avons fait des déclarations d'équivalence pour se connecter à RB2 et à RB3, et puis nous avons fait aussi la déclaration, donc, en access ram, pour que ce soit visible de n'importe où, de notre variable qui nous permette d'effectuer des temporisations. Alors, temporisations de 0,4 secondes. Donc nous allons, justement, les initialiser à zéro. Et puis ici, tout ce que nous allons faire, c'est mettre notre TRISB, en fait, de façon à avoir RB2 et RB3 en input, comme le 1 qui est mis ici. Le reste, j'ai tout laissé, en fait, à 0. Et attention, alors là, j'insiste, une fois de plus : par défaut, toutes les broches qui comportent un convertisseur analogique numérique sont actives dès la mise sous tension. Donc pour ça, il faut faire un Clear F de chaque registre qui sont ici, pour pouvoir, en fait, passer en mode digital. Parce que, vous voyez, là il y a quand même un paquet de convertisseurs analogiques numériques, à savoir, là, jusqu'à 24. Donc, dans un premier temps, nous allons faire quoi ? Eh bien, initialiser, en fait, notre première broche. Et puis nous allons faire un debonds. Alors pour ça, je fais un call delay, je fais un bit test if skip is set, donc pour savoir si mon bouton-poussoir est appuyé, sauf qu'il est pas appuyé. Eh bien je fais mon call. Et puis voilà, je reste bloqué. Et puis si c'est vrai, eh bien, je viens allumer ma première led, en RD0, je fais un RCALL, parce qu'en fait, ma sous-routine de délai n'est pas très très loin, donc un relatif call suffit, et puis nous allons faire notre décalage. Alors pour le coup, ce décalage se fait à gauche. Alors il se fait à gauche une fois, donc en fait, il faut voir que mon bit, ici, va translater. Et puis il va translater, voilà, comme ça, à chaque fois, sur le port D. Donc il va voyager jusque RD7, et puis après, je réinitialise, en fait, mon port E pour arriver sur les huit autres led, et puis c'est pareil, donc là, je fais toujours ma rotation, de façon à obtenir l'image de RE0, RE1, RE2, RE3, ainsi de suite... enfin, vous m'avez compris. Et puis arrivé au sens retour, cette fois-ci, j'utilise l'autre instruction l'instruction, donc, qui va me faire un décalage à droite, cette fois-ci. Et puis je vais repartir dans le même sens, avec le EDD. Voilà, donc, qui est là, cette fois-ci, sur le deuxième port. Et c'est fini. Et après, nous avons donc notre programme de temporisation qui est ici. Alors voyons un peu ce que ça donne au niveau de la simulation. Donc ici, je vais appuyer sur Play. J'appuie sur mon bouton-poussoir, et puis, vous voyez, c'est parti. Donc après, je vais réappuyer voilà. comme ceci, ça va s'arrêter, voilà, parce que je l'ai désencoché, et puis maintenant nous allons vérifier autre chose. Donc je vais arrêter la simulation. Je reprends mon programme, et puis on va utiliser cette fois-ci les résistances de pull-up. Donc je vais décommenter ici, je vais commenter ici, et puis je vais activer mes résistances de pull-up par le biais ici de intcon2. Donc voilà, ceci étant fait, là, cette fois-ci, j'utilise l'instruction bit test if skip is clear. Donc voyons ici si ça fonctionne. Donc je compile. Et là, je vais chercher, donc, mon Proteus et j'appuie sur Play. Et là, vous voyez, ça va fonctionner aussi. Dernière remarque : maintenant, évidemment, si vous faites un bit test if skip is set, ce sont des choses, donc, qui peuvent arriver si vous désirez un fonctionnement inverse, c'est-à-dire que je ne touche à rien et je veux que ça fonctionne ; dans ce cas-là, je vais chercher ici et j'appuie sur Play, et vous voyez, tout de suite, elle se met en route, et il faut attendre qu'elle soit à 1 pour que ça puisse s'arrêter.

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 !