EdSim51 - Guide de l'utilisateur

Telechargé par Stanley MOUDOUHI
EdSim51 - Guide de l'utilisateur
Guide de l'utilisateur
Maison Vous
préférez
l'
Original
?
Nouveau
EdSim51SH
À propos
du
simulateur
Guide de
l'utilisateur
Instructions
d'installation
Exemples Contactez
-nous Les
simulations
fondamentales
Guide de l'utilisateur
Le panneau du microcontrôleur
Le champ de bits
Mémoire de données et de codes
Le panneau de code d'assemblage
Déverrouillage du volet source
Charger et enregistrer
Copier et coller
Quelques notes sur l'assembleur
Débogage
Points d'arrêt
Les périphériques
Le diagramme logique
La banque de LED, le DAC et les affichages à 7 segments
Le module LCD
La Switch Bank et l'ADC
Le comparateur et le DAC
Le moteur
L'UART
Le clavier
Nouvelles fonctionnalités!
Obtenez la dernière version d'EdSim51
L'interface dynamique
L'utilisateur peut maintenant basculer les périphériques vers d'autres
broches de port. Obtenez plus d'informations .
Déverrouiller l'UART externe
Cliquer sur le bouton marqué U en haut à gauche de l'UART externe place l'UART dans
un cadre séparé, comme illustré ci-dessous. Cette trame a des fenêtres de texte beaucoup
plus grandes pour le texte transmis et reçu. Fermez simplement ce cadre pour verrouiller
l'UART dans la fenêtre principale.
Mise en surbrillance syntaxique
Désormais, le code assembleur écrit en EdSim51 est automatiquement mis en surbrillance
syntaxique. Les instructions sont colorées en bleu, les directives assembleur (telles que ORG,
USING, etc.) sont colorées en violet, les alias (par exemple, l'assembleur remplace TMOD
par l'adresse de TMOD) sont colorés en orange et les commentaires sont colorés en vert.
Désactivation de la coloration syntaxique :
si vous souhaitez désactiver la coloration syntaxique, faites simplement un clic droit
n'importe où dans la fenêtre de code d'assemblage et répondez à l'invite.
Modifier la fréquence de l'horloge système
À l'origine, le simulateur fonctionnait avec une fréquence d'horloge système de 12 MHz.
L'utilisateur peut maintenant entrer une valeur pour la fréquence d'horloge du système en
MHz.
UART transmettant des données HEX
Jusqu'à présent, l'UART externe ne transmettait que du texte - tout ce que l'utilisateur tapait dans le
champ Tx était transmis au 8051. Désormais, une liste de nombres 8 bits (écrits en HEX) peut être
transmise. Pour ce faire, l'utilisateur entoure la liste d'accolades, chaque numéro étant séparé par une
virgule, comme le montre l'image ci-contre. Lorsque le texte est transmis, il se termine par 0DH. Ce
n'est pas le cas avec une liste de nombres. Dans l'exemple ci-contre, les quatre nombres 56, 3a, 23 et
e7 sont transmis, rien de plus.
Si l'utilisateur souhaite envoyer {56, 3a, 23, e7} sous forme de texte plutôt qu'une liste de nombres de 8 bits, le
texte est échappé à l'aide du caractère \. Par conséquent, \{56, 3a, 23, e7} dans le champ Tx entraînerait la
transmission de {56, 3a, 23, e7} suivi de 0DH au 8051.
Module ACL
Une simulation du populaire module LCD Hitachi HD44780 a été implémentée pour le
simulateur EdSim51. Et maintenant, CGRAM a également été implémenté. En savoir
plus .
Zoom
Pour les moniteurs haute résolution, cliquez sur le bouton de zoom. Le bouton de zoom est situé
sous le bouton rouge Quitter .
Modes du clavier
Désormais, l'utilisateur peut choisir parmi trois modes de fonctionnement :
Standard - n'importe quel nombre de clés peut être fermé en même temps.
Impulsion - une fois le bouton de la souris relâché, la touche se rouvre.
Radio - en mode radio, une seule clé à la fois peut être fermée.
Clavier et 1 interruption externe
Jusqu'à présent, le clavier ne pouvait être implémenté qu'à l'aide de l'attente d'occupation.
Il peut toujours être implémenté de cette manière, mais il peut également être utilisé avec la
broche d'interruption externe 1 8051, P3.3.
Remarque : cette broche, P3.3, est également utilisée par le décodeur de sélection
d'affichage. Par conséquent, le multiplexage des affichages à 7 segments ne peut pas être
mis en œuvre avec l'interruption du clavier. Pour multiplexer les affichages et utiliser le
clavier en même temps, le clavier doit être implémenté en attente d'occupation.
Plus d'informations sur les modes clavier et l'interruption clavier
Lecteur/graveur Intel HEX
Vous pouvez maintenant enregistrer votre code source au format Intel HEX. Ou
vous pouvez écrire du code C pour le 8051 en utilisant l'un des nombreux
compilateurs C 8051 disponibles, puis importer le code HEX dans le simulateur
EdSim51. En savoir plus .
Mise à jour de la fenêtre du simulateur
Comme avec de nombreux simulateurs de microcontrôleurs, EdSim51 permet à l'utilisateur de parcourir un
programme, en exécutant une seule instruction par étape, ou d'exécuter le programme en continu. Dans la conception
originale d'EdSim51, lors de l'exécution d'un programme, le simulateur exécutait une instruction, mettait à jour
l'écran, faisait une pause d'un quart de seconde, puis passait à l'instruction suivante, etc. Cela a permis au
programmeur d'observer les changements dans le matériel et les registres pour chaque instruction exécutée.
Cependant, bien que cela soit très utile pour le débogage, cela signifiait que l'utilisateur devait attendre longtemps
pour que les choses se produisent (exemples : des données transmises sur le port série pour apparaître sur l'UART,
une LED clignotant à intervalles d'une demi-seconde, etc.) .
Le meilleur des deux : désormais, l'utilisateur a le choix. Utilisation de la fréquence de mise à jour.
menu déroulant (ci-contre) le programmeur peut choisir la fréquence de mise à jour de l'écran. Les
choix sont : mettre à jour l'écran après chaque exécution d'instruction (valeur par défaut), après 100,
1000, 10 000 ou 50 000 instructions exécutées.
Saisissez une valeur :
les options disponibles dans le menu peuvent ne pas être appropriées. Par conséquent, l'utilisateur
peut désormais entrer un nombre plutôt que de sélectionner une valeur dans la liste. Pour que le
numéro saisi prenne effet, l'utilisateur doit appuyer sur Entrée sur le clavier de l'ordinateur.
En savoir plus .
Le panneau du microcontrôleur
Une capture d'écran du panneau du microcontrôleur. Cela permet à l'utilisateur
d'accéder à tous les registres et à la mémoire de données du 8051.
Les cases blanches peuvent être modifiées directement. Ceux qui sont gris ne le peuvent
pas. Par exemple, les bits de verrouillage de port peuvent être modifiés directement par
l'utilisateur, mais les broches de port sont contrôlées par les périphériques externes et les
verrous de port et ne peuvent pas être modifiées.
Lorsque le pointeur de la souris survole l'une des étiquettes de registre,
l'adresse du registre apparaît, comme illustré ci-contre pour le registre
PCON.
Le champ de bits Dans l'image ci-dessus, les bits individuels de l'accumulateur sont affichés (
ACC
). L'utilisateur peut entrer n'importe quelle adresse ou nom SFR dans la case bleue (en
remplacement de ACC ) et les bits de cette adresse donnée seront alors affichés. De plus, si vous
laissez momentanément le pointeur de la souris survoler l'un des bits, la description du bit
s'affiche, comme illustré ci-dessous :
Le champ de bits pour le TMOD SFR est affiché. Notez que le bit 2 est le bit du
compteur/temporisateur . Notez également que le fond est gris. En effet, le registre TMOD n'est pas
adressable par bit - l'utilisateur ne peut pas modifier ces bits directement.
Le PSW est adressable par bit, donc l'arrière-plan de chaque bit est blanc et l'utilisateur peut modifier
directement n'importe lequel des bits.
Le champ de bits peut être utilisé pour voir le modèle de bits de n'importe quelle adresse dans la RAM
(0 à 7FH) en tapant l'adresse dans la case bleue. Si l'emplacement est adressable par bits, les arrière-
plans des bits sont blancs et l'utilisateur peut modifier n'importe lequel des huit bits.
Comme pour les SFR, si l'emplacement n'est pas adressable par bit, les arrière-plans sont gris.
Mémoire de données et de codes Par défaut, la mémoire de données est affichée. Toute
adresse dans la RAM (00H à 7FH) peut être modifiée en saisissant l'adresse dans la case bleue
(nommée addr ) puis en saisissant la valeur souhaitée dans la case à droite (nommée value ).
Affichage de la mémoire de code
La mémoire de code peut également être examinée et
modifiée, comme indiqué dans l'image ci-dessus.
Pour basculer entre la mémoire de données et la
mémoire de code, l'utilisateur clique sur le bouton intitulé
Data Memory lorsque la mémoire de
données est affichée et Code Memory lorsque la mémoire de code est affichée. Les 127 premiers
octets de la mémoire de code sont affichés. Pour afficher une autre zone de mémoire de code,
entrez l'adresse de départ dans la case bleue. Les 127 octets à partir de l'adresse de départ seront
alors affichés. Encore une fois, comme pour la mémoire de données, l'adresse spécifiée dans la
zone d'adresse bleue peut être modifiée en entrant une valeur dans la zone de valeur .
Cependant, il convient de noter que cela entraînera une différence entre le code machine et le
programme d'assemblage. Dans l'image ci-dessus, le code d'assemblage qui a généré le code
machine (tel qu'affiché dans la mémoire de code) peut être vu sur la droite. Fréq. L'utilisateur
peut choisir de parcourir un programme (en exécutant une seule instruction par étape) ou
d'exécuter le programme en continu. Lors de l'exécution d'un programme, la vitesse à laquelle
l'écran se met à jour est déterminée par le réglage dans
Update Freq. menu.
Utilisation de la fréquence de mise à jour. menu déroulant, l'utilisateur peut choisir la fréquence de
mise à jour de l'écran. Les choix sont : mettre à jour l'écran après chaque instruction exécutée, après
100, 1000, 10 000 ou 50 000 instructions exécutées.
Ou, si aucune de ces options n'est appropriée, l'utilisateur peut saisir un nombre, puis appuyer sur
Entrée .
La fréquence de mise à jour peut être modifiée pendant l'exécution du programme d'un utilisateur.
Le panneau de code d'assemblage
Un programme d'assemblage simple est affiché dans le panneau de code
d'assemblage à gauche. Ce programme s'exécute en boucle continue, affichant
les chiffres de 0 à 9 et retour à 0 sur le premier affichage à 7 segments. Un
instantané de son exécution est affiché à droite.
Lorsque l'arrière-plan de la zone de texte du code d'assemblage est blanc, il est modifiable. Le
programmeur peut écrire du code directement ici, ou peut charger un programme à partir d'un
fichier en utilisant le bouton Charger (traité dans la section suivante).
Lorsque le programme est prêt à être testé, l'utilisateur peut soit cliquer sur le bouton Assm pour
exécuter les instructions une par une, soit sur le bouton Exécuter pour exécuter le programme en
continu. Dans tous les cas, le programme sera d'abord assemblé. Si une erreur dans le code est
découverte, un message s'affiche dans la boîte de message au-dessus du code d'assemblage (avec
un fond rouge) et la ligne avec l'erreur est mise en surbrillance dans le code en rouge.
Si le code s'assemble sans erreur, Assm est remplacé par Step , le fond de la zone de texte devient
gris clair. Le code ne peut pas être modifié à ce stade.
Si vous souhaitez revenir à l'édition de votre code, cliquez simplement sur le bouton Réinitialiser
. La fenêtre du code source est un peu petite ? Lisez à propos du débloqueur du volet source ci-
dessous.
Déverrouillage du volet source Le simulateur a été conçu pour que tout soit visible à l'écran en
même temps - les registres internes, le code source, les périphériques, etc. Cependant, cela signifie
que le volet de code est assez petit. Mais il peut être étendu. En savoir plus .
Charger et enregistrer L'utilisateur peut écrire du code directement dans la zone de texte
l'aide du
bouton Charger . De même, le code dans la zone de texte peut être enregistré dans un
fichier à l'aide du bouton
Enregistrer .
Deux types de fichiers sont gérés. Le premier est en texte brut . Les programmes d'assemblage
sont enregistrés sous forme de fichiers en texte brut (souvent appelés texte uniquement) et
généralement avec l'extension de fichier
.a ou .asm . Par défaut, c'est le format utilisé lors de
l'enregistrement de votre code source dans le simulateur EdSim51.
L'autre type de fichier est Intel HEX. L'utilisateur peut choisir
d'enregistrer un fichier au format HEX en choisissant Intel HEX Files
dans le menu
Files of Type: de la boîte de dialogue Save. En savoir plus sur le
chargement et l'enregistrement des fichiers Intel HEX .
Pour rendre le simulateur plus convivial, le dernier répertoire accédé (soit en chargeant un
fichier, soit en enregistrant un fichier) sera mémorisé.
Par conséquent, la prochaine fois que
l'utilisateur ouvrira une boîte de dialogue de fichier en cliquant sur les boutons
Charger ou
Enregistrer , la boîte de dialogue s'ouvrira automatiquement dans le dernier répertoire visité.
Copier et coller Vous pouvez sélectionner du code dans la zone de texte de l'assemblage et le
copier dans le presse-papiers du système à l'aide du bouton Copier , comme vous le feriez dans
votre package de traitement de texte.
Celui-ci peut ensuite être collé ailleurs dans la zone de texte
de l'assemblage, à l'aide du bouton Coller (si la zone de texte est modifiable - fond blanc - si ce
n'est pas le cas, cliquez sur Réinitialiser ). Ou vous pouvez coller le texte sélectionné dans une
autre application (telle que votre traitement de texte). De même, vous pouvez copier du texte à
partir d'une autre application et le coller dans la zone de texte de l'assemblage.
Quelques notes
sur l'assembleur L'assembleur en 2 passes avec le simulateur EdSim51 n'est pas un assembleur
à part entière. Il ne lie pas plusieurs fichiers et seules certaines des directives auxquelles vous
pourriez vous attendre sont implémentées.
Cependant, je pense qu'il est suffisant pour le débutant.
Vous trouverez ci-dessous une liste de ses fonctionnalités :
Toutes les instructions 8051 sont implémentées, à l'exception des instructions
MOVX , car le
simulateur ne gère pas la mémoire externe.
JMP rel
équivaut à SJMP rel ou AJMP rel . LJMP rel doit être programmé explicitement.
De même, CALL équivaut à ACALL . LCALL doit être programmé explicitement.
Les directives SET et EQU sont implémentées.
ORG est implémenté.
La directive USING (indique quelle banque de registres est utilisée) est implémentée.
ARn
correspond à l'adresse du registre, comme spécifié par USING (si la banque de registres n'est
pas spécifiée avant l'utilisation de ARn , la banque de registres 0 est supposée).
Les noms SFR et les noms de bit SFR correspondent à l'adresse appropriée.
HIGH suivi d'un opérande entre parenthèses correspond à l'octet de poids fort de l'opérande.
LOW suivi d'un opérande entre parenthèses correspond à l'octet de poids faible de l'opérande.
Les étiquettes sont suivies de deux-points.
La valeur par défaut pour les valeurs numériques est décimale. Les valeurs hexadécimales peuvent
être saisies en ajoutant H après le nombre ou en plaçant 0x devant. Si H est utilisé, le numéro ne
peut pas commencer par une lettre (exemple : F5H doit s'écrire 0F5H ). Les valeurs binaires sont
saisies en ajoutant B après le nombre (comme indiqué dans l'image ci-dessous).
L'assembleur n'est pas sensible à la casse.
Débogage
Que le code soit en cours d'exécution ou pas à pas, une fois que le code s'assemble sans erreur,
l'adresse de chaque instruction s'affiche à gauche. Lorsque vous parcourez le code, l'instruction
qui vient d'être exécutée s'affiche dans la case grise en haut, ainsi que l'adresse de l'instruction
(exemple affiché : Executed 0x2A : MOV 90H, A ). La prochaine instruction à exécuter, son
adresse est mise en surbrillance. ( 002CH ).
Points d'arrêt Un point d'arrêt peut être défini en double-cliquant sur l'adresse de l'instruction,
comme illustré dans les images ci-dessous.
Définition d'un point d'arrêt : lorsque vous parcourez le code, déplacez la
souris sur l'adresse de l'instruction et double-cliquez.
Lorsque le point d'arrêt est défini, la barre verticale ( | ) immédiatement à droite
de l'adresse est remplacée par une étoile ( * ), comme indiqué dans l'image de
droite.
Suppression d'un point d'arrêt : Un point d'arrêt est indiqué par une étoile (
* ). Pour supprimer le point d'arrêt, déplacez la souris sur l'adresse de
l'instruction et double-cliquez. Le * est remplacé par | .
Alternativement, vous pouvez supprimer tous les points d'arrêt en un clic de :
Lorsque le programme est en cours d'exécution et qu'un point d'arrêt est rencontré, l'exécution
s'arrête juste avant cette instruction. En d'autres termes, la prochaine instruction à exécuter sera
l'instruction de point d'arrêt.
Le programmeur peut alors parcourir le code ou exécuter le
programme à partir de ce point.
Les périphériques
Remarque : Les schémas logiques de cette section ont été dessinés pour l'interface périphérique
par défaut. Vous pouvez modifier cette interface, ce que vous pouvez faire en cliquant sur le bouton
DI (voir l'image ci-dessous). Vous pouvez également visualiser le schéma logique de la nouvelle
interface en cliquant sur le bouton
LD (à nouveau, voir l'image ci-dessous). En outre, il existe des
cas dans la section suivante où le partage des broches de port est souligné. Par exemple, le moteur
et l'UART partagent les mêmes broches de port. Bien sûr, cela peut ne pas être vrai dans votre cas,
si, par exemple, vous déplacez le moteur vers d'autres broches.
Le panneau périphérique
Le panneau d'interface dynamique - remapper les périphériques | image pleine
grandeur
1 / 12 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!