Contacts

Programmation de MCS 51 SI. MCS-51 microcontrôleurs. Schéma structurel, Alu, mémoire de données. Registres de fonctions spéciales

L'architecture de la famille MCS-51 est largement prédéterminée par son rendez-vous - bâtiment compact et peu coûteux Dispositifs numériques. Toutes les fonctions Microevm sont implémentées à l'aide d'une seule puce. La famille MCS-51 comprend un certain nombre de microcirculits des microcontrôleurs les plus simples à des plus compliqués. Les microcontrôleurs familiaux MCS-51 vous permettent d'effectuer les deux tâches de contrôle de divers appareils et d'implémenter des nœuds de circuit analogiques individuels. Toutes les chips de cette famille travaillent avec le même système de commande MCS-51 , la plupart d'entre eux sont effectués dans le même corps avec cocolevka coïncident (Numéroter les jambes pour le cas). Cela vous permet d'utiliser pour les périphériques de microcircuit développés de différentes entreprises - Maxim, Atmel, NXP, etc. (Catalogue..php? Page \u003d Composants_List & ID \u003d 39 "\u003e S.M. Recherche par paramètres) sans retravailler le concept de dispositif et de programme.

Figure 1. Diagramme structural du contrôleur I8751

Le diagramme de bloc du contrôleur est présenté à la figure 1. et comprend les nœuds fonctionnels de base suivants: une unité de commande, un dispositif logique arithmétique, un bloc de minuteries / compteurs, un bloc d'interface série et un compteur de programme, une mémoire de données et Mémoire du programme. L'échange bilatéral est effectué à l'aide d'une ligne de données interne à 8 bits.

Considérez une lecture plus en lecture sur chaque bloc. Selon un tel système, presque tous les représentants de la famille MCS-51 sont construits. Les différentes copeaux de cette famille ne diffèrent que dans des registres spéciaux (y compris le nombre de ports). Système de commandes de tous les contrôleurs de famille MCS-51 Contient 111 commandes de base avec un format 1, 2 ou 3 octets et ne change pas lorsque vous passez d'une puce à une autre. Il fournit une excellente portabilité des programmes d'une puce à une autre.

Unité de contrôle et de synchronisation

L'unité de contrôle et de synchronisation (chronométrage et contrôle) est conçue pour générer des signaux de synchronisation et de commande garantissant la coordination du fonctionnement articulaire des blocs de l'OEHM dans tous les modes admissibles de son fonctionnement. Dans la composition de l'unité de commande comprend:

  • - Dispositif pour former des intervalles de temps,
  • - Logique d'E / S,
  • - registre de commandement,
  • - Registre de la consommation d'électricité
  • - Décodeur d'équipe, logique de gestion de l'ordinateur.

Dispositif de formation d'intervalle d'équipe Il est destiné à la formation et à la délivrance de signaux de synchronisation internes de phases, d'horloges et de cycles. Le nombre de cycles de la machine détermine le temps d'exécution des commandes. Presque toutes les commandes de l'OEEHM sont effectuées pour une ou deux cycles de la machine, à l'exception des commandes de multiplication et de division, dont la durée est quatre cycles de moteur. Notez la fréquence du générateur de spécification via F G. Ensuite, la durée du cycle de la machine est de 12 / F G ou est de 12 périodes du signal du générateur de spécification. La logique d'E / S est destinée à recevoir et à émettre des signaux fournissant l'échange d'informations avec des périphériques externes via les ports de sortie de la sortie P0-P3.

Inscrivez-vous des équipes Conçu pour l'enregistrement et la conservation du code exécutable du code 8 bits. Le code de fonctionnement, à l'aide du décodeur de commande et de la logique de contrôle de l'ordinateur, est converti en microprogramme de l'exécution de la commande.

Registre de contrôle de la consommation (pccon) Vous permet d'arrêter le fonctionnement du microcontrôleur pour réduire la consommation d'électricité et réduire le niveau d'interférence du microcontrôleur. Une réduction encore plus importante de la consommation d'électricité et de la réduction des interférences peut être obtenue en arrêtant le générateur principal du microcontrôleur. Ceci peut être réalisé en commutant un système de contrôle de la consommation de pacs. Pour la possibilité de fabrication à l'aide de N-MOP (série 1816 ou microcircuits étrangers, dans le nom qui, au milieu, il n'y a pas de lettre "C") Le registre de contrôle de la consommation pacs ne contient qu'un seul bit qui contrôle le taux de transmission du port série SMOD et Il n'y a pas de bits de contrôle de la consommation d'électricité.

Dispositif logique arithmétique (Alu) Il s'agit d'un dispositif parallèle huit bits qui assure l'exécution d'opérations arithmétiques et logiques. Alu se compose de:

  • - registres de batterie, registres de stockage temporal TMP1 et TMP2,
  • - ROM constante,
  • - additionneur,
  • - registre supplémentaire (enregistrement c),
  • - batterie (ACC),
  • - Registre de l'État du programme (PSW).

S'inscrire la batterie et registres de stockage temporaires - Les registres huit bits destinés à recevoir et à stocker des opérandes au moment des opérations. Ces registres ne sont pas accessibles par programmation.

Rom constante Fournit un code correctif pour générer une vue de données décimales binaires, un code de masque pour les opérations de bits et un code constant.

Additionneur parallèle huit bits Il s'agit d'un circuit combinant avec un transfert séquentiel, destiné à effectuer des opérations arithmétiques d'addition, de soustraction et d'opérations logiques d'addition, de multiplication, de manipulation et d'identité.

Inscrivez-vous B. - Le registre huit bits utilisée lors des opérations de multiplication et de division. Pour d'autres instructions, il peut être considéré comme un registre ultra-exploitif supplémentaire.

La batterie - Registre huit bits conçu pour recevoir et stocker le résultat obtenu lors de l'exécution des opérations arithmétiques et logiques ou des opérations de changement de vitesse

Bloc d'interface consécutif et interruptions (PIP) Conçu pour organiser une E / S, des flux d'informations séquentielles et des systèmes d'interruption d'organisation. Le bloc comprend:

  1. - tampon pip,
  2. - Logique de contrôle,
  3. - registre de contrôle,
  4. - tampon émetteur,
  5. - tampon de récepteur,
  6. - émetteur-récepteur de port série,
  7. - interrompre le registre des priorités,
  8. - interrompre le registre de la résolution,
  9. - Interrompre le traitement du drapeau et le schéma de génération de vecteur.

Compteur de commande (compteur de programme) Conçu pour former l'adresse 16 bits actuelle de la mémoire interne des programmes et une adresse 8/16 bits de la mémoire externe des programmes. Le compteur d'équipe comprend un tampon PC 16 bits, un registre PC et un schéma d'incrément (augmentation du contenu de 1).

Mémoire de données (RAM) Conçu pour le stockage temporaire d'informations utilisées dans le processus d'exécution du programme.

Ports P0, P1, P2, P3 Ce sont un port d'entrée quasi documentaire et sont destinés à assurer l'échange d'informations de l'OES avec des périphériques externes, formant 32 lignes d'entrée.

Périphérique de minuterie Dans les modèles de base de la famille, il existe deux minuteries / comptoirs à 16 bits programmables (T / C0 et T / C1), qui peuvent être utilisés à la fois en tant que minuterie et en tant que compteurs d'événements externes.

Registre de l'État du programme (PSW) Conçu pour stocker des informations sur l'état de l'ALU lors de l'exécution du programme.

Mémoire logicielle (EPROM) Il est destiné à stocker des programmes et est un périphérique de stockage constant (ROM). Dans différents microcirces appliquent le masque, lavé avec un rayonnement ultraviolet ou Éclat. ROM.

Registre du pointeur de données (DPTR) Conçu pour stocker l'adresse 16 bits de la mémoire de données externe ou de la mémoire de programme.

Pointeur de pile (SP) Il s'agit d'un registre huit bits conçu pour organiser une mémoire de données spéciale (pile), dans laquelle vous pouvez enregistrer temporairement une vérification de la mémoire.



Les microcontrôleurs de la famille MSS-51 sont construits sur l'architecture de Harvard, dans laquelle la mémoire des programmes et de la mémoire de ces sections, ont leurs propres espaces ciblés et des moyens d'y accéder.

Programme de mémoire


La quantité maximale de mémoire est de 64k octets, dont 4K, 8K, 16k ou 32k de l'octet de mémoire (tableau 7.3.1) sont situés sur un cristal, le volume restant est à l'extérieur du cristal.
À une tension à la sortie de ea \u003d V cc. il est utilisé à la fois de la mémoire interne et externe, à EA \u003d V CC \u003d 0 - Seule uniquement PA-MIG externe.
Tableau 7.3.1 sont donnés adresses d'adresses Accès à des programmespour des cas spécifiés.
La zone de mémoire inférieure des programmes est renvoyée pour démarrer le moteur à rouleau microcont (l'adresse de départ 0000H après la sortie) et sous le traitement des interruptions (la commande d'interruption est située avec un intervalle de 8 octets: 0003h, 000bh, 0013H, etc.).


Les programmes de mémoire sont en lecture seule et lors de la manipulation:

● K. mémoire externeles programmes sont générés ¯sen et forment toujours une adresse 16 bits.
L'octet d'adresse plus jeune est transmis via le port P0 dans la première moitié du cycle de la machine et est fixé par la tranche de porte ALE dans le registre.
Dans la seconde moitié du cycle, le port P0 est utilisé pour entrer des données de la mémoire externe de l'octet MK.
L'octet senior de l'adresse est transmis via le port P2 pour tout le temps des appels de la mémoire (Fig. 7.1.11);

● K. mémoire internele signal de lecture n'est pas formé et les cycles de l'échange dans le pneu intérieur du microcontrôleur sont utilisés.

Mémoire de données

Mémoire interneles données peuvent être divisées en trois blocs (tableau 7.3.2).

La mémoire interne est toujours adressée par l'octet, qui fournit des adresses seulement de 256 cellules de mémoire.
Par conséquent, comme on peut le voir à partir du tableau 7.3.2, pour les adresses aux cellules supérieures de 8 bits de la RAM interne et des registres de fonctions spéciales de SFR, qui occupe le même espace d'adresses, les équipes sont utilisées différentes façons de traiter: indirect et droit.

Caractéristiques de l'organisation de la région inférieure de la RAM internereflété dans le tableau. 7.3.3.

Les plus jeunes 32 octets de la RAM interne avec adresses 00h.
1fh est regroupé dans la triche de la banque pour huit registres (R0.R7).
Les 16 octets suivants de RAM avec adresses 20h.
2fh est une zone de mémoire de 8 × 16 \u003d 128 bits qui permet à chaque bit séparé de faire appel.
Pour sélectionner l'adresse du registre de la banque, son nom R0 est utilisé.
R7, pour sélectionner une banque - BITS RS0, registre d'état de statut de PSW RSS.

Adresses bits

Adresses bitslED dans le tableau. 7.3.3.

L'adressage est effectué directchemin.

La liste de toutes les fonctions spéciales SFR enregistre avec leurs adresses dans le tableau 7.2.2.
Pour plus de clarté dans le tableau 7.3.

4 est donné ré-Histrow Carte d'adresseSfr.les microcirculits de la famille MCS-51.
L'adresse SFR est déterminée par l'ensemble du nombre de colonnes et de lignes dans un système numérique hexadécimal.

Par exemple, le registre CMOD a l'adresse D9H.

Pour les registres SFR, dont les adresses se termineront par 0h ou 8h (elles sont surlignées en gras), en plus de baitovapermis battuadressage.

Dans le même temps, le nom du bit occupant dans le registre N-ème décharge est défini comme xxh + 0nh, où XXH est l'adresse du registre SFR, n \u003d 0,7.
Les adresses de bits dans cette région ont des valeurs de 80h à la FFH.
Par exemple, les adresses de la batterie bits Cul Le-Zate dans l'E0H-E7H.

Mémoire externeles données (jusqu'à 64 Ko) sont créées par des puces de mémoire supplémentaires connectées à MK.
Les commandes spéciales sont utilisées pour fonctionner avec la mémoire de données externe, donc adresser ainsi des espaces de mémoire interne externe et interne ne se croisent pas et, par conséquent, les deux types de mone de mémoire peuvent être utilisés simultanément.

Pour accéder aux cellules par la mémoire de données externe (fig.7.1.8):
● commandes avec l'adressage indirect;
● lire des signaux ¯RD et enregistrer le ¯wr;
● Port P0 pour le transfert de l'adresse d'octets plus jeunes et de la réception / la transmission de l'octet de données;
● PORT P2 pour envoyer un octet d'adresse plus âgé.
Méthodes d'adressage.
Le système de commande utilise:
● Direct, indirects, enregistrez-vous, enregistrez-vous indirectement, adressage direct et index (adressage indirect sur la quantité de registres de base et indiciels) opérandes source;
● Direct, inscrivez-vous et inscrivez-vous indirectement Adresse opérations de rendez-vous.
La combinaison de ces méthodes (adressage) fournit 21 mode d'adressage.
Dans cela et dans les tableaux ci-dessous, les symboles suivants sont utilisés:

Adresse directe.

Dans ce cas de la méthode d'adressage, l'emplacement de l'octet ou du bit de données est déterminé par l'adresse 8 bits de la deuxième (et de la troisième) commande BAJA.
L'adressage direct est utilisé uniquement pour accéder à la mémoire de données interne (bas de 128 octets de RAM) et aux registres de fonctions spéciales.

Enregistrer l'adressage.


Cette méthode d'adressage fournit un accès aux données stockées dans l'un des huit registres R0.
R7 Enregistrement de la Banque de travail actuelle.
Il peut également être utilisé pour faire appel à des registres A, B, AB (Dual Register), du DPR de l'enregistrement et du drapeau de transfert.
L'adresse des registres spécifiés est posée dans le code de fonctionnement, ce qui réduit le nombre d'octets de commande.

Enregistrer indirectement l'adressage.


Dans ce cas, l'adresse des données est conservée dans le registre de l'index, dont l'emplacement est déterminé par le code de fonctionnement.
Cette méthode d'adressage est utilisée pour faire appel à la RAM externe et la moitié supérieure de la RAM interne.
Les registres de l'annonce de 8 bits peuvent servir de registres R0, R1 de la banque sélectionnée des registres de travail ou du pointeur SR Stack, pour une adressage 16 bits, seul le registre DPTR Dela Delay est utilisé.

Adresse directe.


Avec cette méthode d'adressage, les données sont directement indiquées dans la commande et sont dans la seconde (ou dans les deuxième et troisième) d'octets, c'est-à-dire
Pas obligé de s'adresser à la mémoire.
Par exemple, par CO-Manda MOV A, # 50 dans la batterie A est chargé Numéro 50.

Adresse d'indexation.


Cette méthode est une adressage du régime indirectement dans lequel l'adresse d'octet de données est définie comme la somme du contenu de la base (DPTR ou PC) et des registres d'index (s).
Méthode est-utiliser uniquement pour accéder à la mémoire de programme et uniquement en mode lecture;il simplifie la visualisation des tables cousues en mémoire.

Structure de l'équipe.

La longueur de la commande est une (49 commandes), deux (45 ko-mand) ou trois (17 commandes) octet.
Le premier octet de la commande contient toujours le code d'opérabilité (KO), un deuxième et troisième octets - les adresses des opérandes ou des valeurs de données directes.

Les bits séparés, les tétrades, les octets et les mots à double octet peuvent être utilisés comme opérandes.
Vous pouvez sélectionner 13 types de commandes affichées dans le tableau. 7.3.5:

● A, PC, SP, DPTR, RN (N \u003d 0, 7) - Batterie, compteur de commande, pointeur de pile, registre de pointeur de données et registre bancaire actuel;
● rm (m \u003d 0, 1) - le registre de la banque actuelle utilisée par une adroisement indirecte;
● adresse directe - adresse 8 bits directement adressée à l'opérande;
● Adresse bit - bit directement adressé;
● relative à l'adresse relative de la transition;
● AddrR11, Addr16 - Adresse de transition absolue 11- et 16 bits;
● # DATA8, # DATA16 - Données directes (opérandes) de la longueur de 8 et 16 bits;
● A10, A9, A0 - Décharges séparées de l'adresse 11 bits;
● (.) - Le contenu de la cellule de mémoire à l'adresse indiquée entre parenthèses;
● SAT, MB - octets seniors et jeunes de l'opérande 16 bits.

Système d'information général.

Le système de commande fournit d'excellentes options de traitement de données sous forme de bits, de tétrad, d'octets, de mots de deux octets et de contrôle en temps réel.
Pour décrire les commandes, la langue macroassampler ASM51 est utilisée. La syntaxe de la plupart des commandes consiste en une désignation mnémonique (abréviation) de l'opération effectuée, suivie d'opérandes.
L'utilisation des opérandes, diverses manières d'adressage et de types de données sont indiquées.

En particulier, l'ABBREVI-ATURA MOV comporte 18 commandes différentes destinées à traiter trois types de données (bits, octets, adresses) dans divers espaces d'adresse.
L'ensemble des commandes comporte 42 notations mnémoniques de 111 types de types de commandes pour un procure de 33 des fonctions MK.

À partir de 111 commandes 64 sont effectuées en un cycle de la machine, 45 - pour deux cycles et seulement deux commandes (multiplication MUL-MULTIPLICATION et DIV), vous êtes rempli dans 4 cycles. À une fréquence de générateur d'horloge de 12 MHz, la durée du cycle de la machine (12 horloges) est de 1 μs. Par signe fonctionnelles commandes peuvent être divisées en cinq groupes. Vous trouverez ci-dessous une description des commandes de chaque groupe représenté sous forme de tables. Pour la compacité des tables, sélectionnez le groupe d'équipe (tableau 7.3.6), l'exécution de laquelle influence(marqué de +) sur l'état des drapeauxinscrivez-vous sur le statut d'état PSW.

Commandes de transfert de données

Les commandes d'envoi peuvent être divisées en sous-groupes individuels.
Commandes d'expédition et échange de données entre les cellules dans la mémoire des cellules (Tableau 7.3.7).

Commandes 1-16, avoir Mnemonics Mov Dest, SRC, sont destinés à expéditionoctets ou deux octets (commandement 16) des données de la source SRC au récepteur Dest, tandis que:
● Pour indiquer la source(SRC) Quatre méthodes d'adressage sont utilisées: Regist-Ry (Commandes 2-4, 6, 8), direct (commandes 1, 7, 9, 11), indirectes (commandes 5, 10) et directes (commandes 12-16) ;
● Pour indiquer destinataire(DEST) trois méthodes sont utilisées: registre (équipes 1, 3 ... 5, 9, 12, 14, 16), droite (équipes 2, 7, 8, 10, 13), indirecte (commandes 6, 11, 15).

Les équipes 17-20 fournissent échangeinformations entre les deux cellules de la mémoire de données interne (ou une expédition recto verso).
Lors de l'exécution de Ko-Mand CHCN, l'échange d'octets a lieu et la commande XCHD est les plus jeunes opérandes d'octets Tetrad.

L'une des cellules est toujours une batterie A. En une autre cellule, lors de l'échange d'octets, l'un des registres RN de la banque actuelle est utilisé, ainsi que directement ou indirectement à la cellule de mémoire interne; Lorsque vous utilisez des cahiers - seule une cellule adressable indirectement adressée de la mémoire interne.

Comme dans toute la pile MK est placé dans la RAM interne, dans le même sous-groupe incluant Équipes(20, 21) appel à la pilePush Src, Pop Dest.
Ces commandes n'utilisent que la méthode directe d'adressage, enregistrant des octets sur la pile ou le renforçant de la pile.
Il convient de garder à l'esprit que, dans ces MK, qui, dans la RAM, il n'y a pas de 128 octets supérieurs, une augmentation de la pile en dehors des 128 octets conduit à une perte de données.

Commandes de transfert de données entre les pales internes et externes (Tableau 7.3.8).

Ces commandes n'utilisent que l'adroisement indirecte, tandis qu'une adresse à octet peut être située dans P0 ou R1 de la banque actuelle des registres, une adresse à deux octets dans le registre Indice de données de la DRTR.
Avec tout accès à la mémoire externe, le rôle du récepteur ou de la source d'opérandes dans la mémoire interne est joué par la batterie A.

Commandes de transfert de données de la mémoire du programme (Tableau 7.3.9).

Ces commandes sont conçues pour lire des tables à partir de la mémoire logicielle.

MOVC A, @ A + DPTR commande est utilisé pour faire appel à la table avec le nombre d'entrées de 0 à 255.

Le numéro de connexion requis dans la table est chargé dans la batterie et le registre DPTR est installé sur le point de départ de la table. Une caractéristique distinctive d'une autre commande est qu'en tant que pointeur de base, un compteur de compteur PRO-GRAM est utilisé et l'accès à la table est fabriqué à partir du sous-programme. Initialement, le nombre du point d'entrée requis est chargé dans la batterie, puis le sous-programme avec la commande MOVC A, @ A + PC est appelé. La table peut avoir 255 PAM avec des nombres de 1 à 255, car 0 est utilisé pour adresser la commande RET du sous-programme.

Commandes de traitement de données arithmétiques. Toutes les commandes arithmétiques sont effectuées sur des entiers non salariés. Opérations sur deux opérandes (Tableau 7.3.10). Dans les opérations arracheAjouter ajouts soumis au transfertAddc i. sous-section en tenant compte du prêtSubb:

● La source d'un opérande de 8 bits et du récepteur de résultats sert AK-Cumulator;
● La source d'un autre opérande est l'un des registres bancaires RN (N \u003d 0-7) ou directement. direct. ou indirectement @RM (m \u003d 0, 1) adressé à la cellule de mémoire RAM ou aux données directes #DATA.

Exploitation multiplicationMul I. divisionLa DIV est effectuée sur le contenu de l'enregistreur REG A et V. Lors de la multiplication, les 8 plus anciens résultats sont enregistrés dans une ré-gystr dans, les plus jeunes 8 décharges - dans le registre A.
Si le produit est supérieur à 255, le drapeau de débordement OV est défini; Le drapeau de transfert avec est toujours réinitialisé. La commande div effectue la division de l'opérande de batterie à 8 bits A sur l'opérande 8 bits du registre V.
Lors de la division privée (des décharges plus anciens) est enregistrée dans une ré-gystr dans A, le résidu (décharges plus jeunes) - dans B. Les drapeaux de transfert des débordements C et OV sont réinitialisés.
Lorsque vous essayez de diviser 0, le drapeau de débordement OV est défini. L'opération de division est plus souvent utilisée pour les changements et les transformations de nombres.

Lors de la division d'un nombre binaire par 2 N, il se déplace sur n bits à gauche.
Des bits supplémentaires sont transférés pour enregistrer V.

Opérations individuelles(Tableau. 7.3.11).

La commande DA est utilisée pour effectuer des opérations décimales binaires. Les commandes INC, DEC vous permettent d'augmenter ou de diminuer le contenu de la cellule de mémoire sur une.
Ils sont applicables au contenu de la batterie-RA A, l'un des registres de travail RN ou des cellules de mémoire adressables directement et indirectement.
Une augmentation de l'opération par unité s'applique également au contenu d'un enregistrement de pointeur DPTR de 16 bits.

Commandes d'opérations logiques.

Double opérations

(Tableau 7.3.12).

Commandes AML, Orl, XRL vous permet d'effectuer trois opérations logiques bidimensionnelles sur des opérandes de 8 bits: ANL - Multiplication logique (et), orl-lo-hyphenation (ou), XRL - à l'exclusion ou (xor).
Les opérations sont effectuées au-dessus des bits d'opérandes individuels. La source de l'un des opérandes et de la simultanément du récepteur de résultats est une batterie (a) ou adressant directement la cellule de mémoire (Direct).
Pour la source d'un autre opérande, une méthode de régie, directe, indirecte ou directe est utilisée.

Exploitation unique

(Tableau 7.3.13).
Le groupe comprend un certain nombre d'opérations simples sur le contenu de la batterie A: les opérations de nettoyage (CLR), l'addition logique ou l'inversion (CPL), les décalages cycliques cycliques et cycliques à 1 bits à droite (RL, RLC) et à gauche (RR , RRC), échange de tétrad ou de décalage byte cyclique par 4 décharge (swap) et une opération vide (NOP), à la suite de laquelle l'état de tous les registres MK (à l'exception d'un compteur de programme) reste inchangé.

Commandes de gestion

Équipes de transition inconditionnelles

(Tableau 7.3.14).

Les commandes 1-3 ne diffèrent que sur le format de l'adresse de destination.

La Co-Mand de LJMP (L - LONG) effectue une transition inconditionnelle "longue" à l'adresse spécifiée de l'Addr16, en téléchargeant le compteur PC avec les deuxième et troisième octets d'octets.
La commande fournit une transition à n'importe quel point d'espace d'adresses d'octets 64k.

CO-Manda AJMP (A - Absolute) fournit une transition "absolue" à l'adresse à l'intérieur de la page d'octet 2k, dont l'adresse initiale est spécifiée par cinq anciennes décharges-DS du compteur de programme PC (premier contenu de PC augmenter par 2).

La commande SJMP (S-Short) vous permet de mettre en place une transition inconditionnelle "courte" à l'adresse calculée par l'addition du décalage relié avec un signe dans les secondes commandes de Pate avec le contenu du compteur PC, agrandi précédemment par 2.

L'adresse de transition se situe à -128 + 127 octets par rapport à l'équipe AdReth.
Pour passer à tout autre point d'adresse de 64 kilobytes Pro-Space, une commande 4 peut également être utilisée avec une adroisation indirecte @ A + DPTR.
Dans ce cas, le contenu A est interprété comme un signe entier.

Une opération vide (NOP), à la suite de laquelle l'état de tous les registres du microprocesseur (à l'exception du compteur de programme) reste inchangé.

Équipes de transition conditionnelle

(Tableau 7.3.15).

À l'aide des commandes JZ et JNZ, la transition est effectuée si le contenu de la batterie est respectivement ou non de zéro.
L'adresse de transition est calculée par addition du déplacement iconique relatif du relact avec le contenu du compteur de commande PC après l'ajout au numéro 2 (les longueurs de commande en octets).

Le contenu de la batterie reste non modifié.
Les équipes sur les drapeaux n'affectent pas.

Les commandes CJNE (3-6) sont utilisées pour mettre en œuvre une transition conditionnelle basée sur le résultat d'une comparaison de deux opérandes à 8 bits, dont l'emplacement est indiqué dans la commande.
Si leurs valeurs ne sont pas égales, la transition est effectuée.

L'adresse de transition est calculée par l'ajout du décalage Rel avec le contenu du compteur PC, pré-serré par 3.
Sinon, la commande suivante est effectuée.

Le graphique de l'algorithme montre l'effet des valeurs des opérandes de 8 bits comparés sur le drapeau de transfert de C.
DJNZ (7, conçu pour organiser des cycles logiciels.

La cellule adressable du registre RN ou directement (direct) est un compteur de cycle secondaire, A relative (dans les deuxième et troisième octets) est l'adresse relative de la transition au début du cycle.
Lors de l'exécution des commandes, le contenu du compteur diminue par unité et est vérifié à zéro.
Si le nombre de contenu n'est pas nul, la transition au début du cycle est effectuée.
Dans une personne, la prochaine équipe est effectuée.

L'adresse de transition est calculée par addition de compensation avec le contenu du compteur, augmentée précédemment pour la longueur de la co-mandat (2 ou 3).
Les drapeaux de commande n'affectent pas.

Commandes d'appel aux sous-routines et retour des programmes

(Tableau 7.3.16).
LCALL COMMANDES "Appel long" et Acall "Absolute Call" effectue un appel inconditionnel du sous-programme affiché à l'adresse spécifiée.

La différence entre ces commandes des commandes de transition inconditionnelles décrites ci-dessus est qu'ils conservent l'adresse de retour (contre-contenu) au programme principal.
La commande de retour du sous-programme RET rétablit le contenu du compteur de commande de la pile et la commande RETI en plus de ces autorisations du niveau de maintenance.

Les commandes de contrôle sont largement utilisées par les adresses relatives, qui prend en charge les modules logiciels en mouvement.
En tant qu'adresse relative, un déplacement relatif 8 bits litané avec un signe est fourni, fournissant une ramification de la position actuelle du compteur PC dans les deux directions de ± 127 octets.

Pour accéder à tout autre point d'espace d'adressage 64k-octet, l'adresse directe de l'Addr16 peut être utilisée, soit une adresse indirecte @ A + DPTR.
Dans ce dernier cas, le contenu est interprété dans son ensemble sans signe.

Var-ANT par la courte adressage directe de l'Addr11 à l'intérieur de la page Courante de 2K-Byte de Wen-Den pour la compatibilité avec l'architecture MK48.

Tous ces types d'adressage ne peuvent être appliqués qu'à l'opération de transition, A pour l'opération d'appel est autorisée uniquement sur les méthodes d'adressage Direct Addr16 et Addr11.
Dans toutes les opérations conditionnelles, seule une adressage relative peut être utilisée.

Lorsque MK51 identifie la demande d'interruption, elle génère l'une des commandes de type LCALL Addr16, qui garantit automatiquement l'adresse de l'adresse de retour dans la pile.
Cependant, contrairement à MK48 dans MK51, il n'existe aucune formation automatiquement enregistrée sur le statut.

Dans ce cas, la logique des interruptions cesse de travailler sur des demandes du niveau accepté pour la maintenance.
Pour réduire le niveau d'interruption, la commande de retour de l'interruption RETI est servie, ce qui, outre l'opéra, équivalent à RET, comprend une opération d'autorisation d'interruption de ce niveau.
Les opérations conditionnelles typiques de MK51 comprennent également des opérations JZ, JNZ.
On-NaO est apparu une nouvelle opération "Comparer et go" CJNE.

Selon cette commande, l'opérande est d'abord comparé par les règles de soustraction d'entiers avec la constante et conformément au résultat de la comparaison, le drapeau CY est ensuite affiché. Ensuite, en cas d'incompréhension avec la ramification constante, la ramification est effectuée. En comparant la batterie, la ré-gastro ou la cellule de mémoire avec une consistance de la constante, nous obtenons un moyen pratique de rechercher des coïncidences, par exemple, afin d'identifier des occasions spéciales.

En fait, la commande CJNE est un élément de l'opérateur du type de cas de haut niveau.

Développement ultérieur a reçu l'équipe DJNZ.
Maintenant, un programmeur peut utiliser non seulement l'un des registres de travail RN, mais également une cellule de mémoire DSEG.

Commandes d'opérations de bits.

Le groupe est composé de 12 commandes qui vous permettent de terminer les opérations sur un ou deux bits (réinitialisation, installation, inversion de bits et logique et ou ou ou ou) et 5 commandes conçues pour mettre en œuvre des transitions conditionnelles (tableau 7.3.17).

Les commandes fournissent une adressage directe de 128 bits situés dans les cellules de six tissus de la RAM interne avec des adresses 20h.
2fh (Tableau 7.3.3) et 128 bits situés dans des registres spéciaux, dont les adresses sont multiples huit (surlignées dans le tableau 7.3.4 par des organismes).

Lorsque vous effectuez des opérateurs sur deux opérandes à un seul chiffre en tant qu'accumulateur logique, la gâchette du registre PSW stockant le drapeau de transfert C (tableau 7.1.2) est utilisée.

Les commandes MOV (1,2) sont effectuées expéditionbit d'une cellule binaire directement adressable de la RAM interne dans la gâchette C ou dans la direction opposée.
CRL (3, 4), SETB (5, 6), SETB (5, 6), respectivement réinitialiserà zéro ou set-Vitune unité de drapeau de transfert C ou un bit spécifié.
Avec l'aide de commandes CPL, ANL, ORL (7-12), les opérations logiques d'inversion, d'addition et de multiplication sont effectuées.

Le groupe comprend également des équipes (13-17) pour mettre en œuvre des opérations de transition conventionnelles avec un déplacement relative 8 bits relativement.
Les transitions peuvent être implémentées à la fois avec un bit ou un drapeau monté du transfert (commandes 13, 16) et à la décharge (commande 14, 17).

La commande JBC en plus de la transition vers l'adresse de calcul lors de l'exécution de la condition (bit) \u003d 1, réinitialisez ce bit dans l'état zéro.
Lors de la réalisation de commandes de transition conditionnelle, la transition d'adresse est calculée après avoir ajouté le contenu du compteur numéro 3 ou 2 (reflétant le nombre d'octets dans la commande).

Le système de commande Omeim fournit de grandes capacités de traitement de données, garantit la mise en œuvre d'opérations logiques et arithmétiques, ainsi que de la gestion en mode temps réel. Il est mis en œuvre par les produits battus, volés (4 bits), lumineux (8 bits) et 16 bits de traitement de données. La famille BIS de MCS-51 est un omevm 8 bits: ROM, RAM, des registres spéciaux, des pneus Alu et des pneus externes ont une organisation d'octets. Les données Dual-Byte sont utilisées uniquement par un compteur de pointeur (DPTR) et de commande (PC). Il convient de noter que le registre des données peut être utilisé en tant que registre DPTR à double octet ou sous forme de registre DPH et DPL à un seul décalage. Le compteur de commande est toujours utilisé comme registre de deux octets. Un ensemble de commandes OMEEV comporte 42 symboles mnémoniques pour spécifier 33 fonctions de ce système. La syntaxe de la plupart des commandes de langage de montage consiste en une désignation mnémonique de la fonction, qui se présente par des opérandes, indiquant des méthodes d'adressage et des types de données. Divers types de données ou des modes d'adressage sont déterminés par les opérandes installés et non modifications des désignations mnémoniques. Le système de commande peut conventionnel et peut être divisé en cinq groupes:
  • Équipes arithmétiques;
  • Commandes logiques;
  • Commandes de transfert de données;
  • Commandes de processeur de mordre;
  • Direction des commandes et gestion.
Il existe les types suivants de sources d'opérande d'adressage:
  • Enregistrer Adresse
  • Adressage direct
  • Inscrivez-vous indirectement Adresse
  • Adressage direct
  • Registre indirect adressant sur la quantité de registres de base et d'index
Les équipes arithmétiques de l'ensemble de commandes sont les opérations arithmétiques suivantes: addition, ajout, compte tenant compte du drapeau de transfert, de la soustraction de prêt, d'incrément, de décrémentation, de comparaison, de correction décimale, de multiplication et de division. En Allu, des actions sont effectuées sur des nombres entiers sans signe. Dans les opérations de deux semaines: addition (ajouter), l'addition avec le transfert (addc) et la soustraction avec une batterie de prêt (sous-g) est le premier opérande et prend le résultat de l'opération. Le deuxième opérande peut être un registre de travail de la banque sélectionnée des registraires de travail, le registre de la mémoire interne avec un enregistrement indirectement et une adressage directe ou des octets de données directes. Ces opérations affectent les indicateurs: le pont, le transfert, le transfert intermédiaire et le drapeau de parité dans la condition du processeur de texte (PSW). L'utilisation de la décharge de transfert permet à plusieurs moments d'améliorer la précision des opérations (addc) et de la soustraction (Subb). Effectuer des opérations d'addition et de soustraction Avec une connexion en compte peut être effectuée à l'aide du contrôle logiciel OVW Drop Drapeau (OV). Le drapeau de transfert intermédiaire (AC) assure l'exécution d'opérations arithmétiques dans le code de décimal binaire. Les opérations d'incrément et de décrémentation des drapeaux n'affectent pas. Les opérations de comparaison n'affectent pas l'opérande de rendez-vous, ni sur l'opérande source, mais ils affectent les drapeaux de transfert. Trois opérations arithmétiques ne sont effectuées que sur la batterie: deux commandes pour vérifier le contenu de la batterie (JZ, JNZ) et une équipe de correction décimale lorsque les codes décimaux binaires sont ajoutés. Avec l'opération de multiplication, le contenu de la batterie et multiplié sur le contenu du registre dans et le résultat est situé comme suit: l'octet plus jeune dans le registre B, Senior - dans le registre A. En cas d'opération de division, Toute la division est placée dans la batterie A, la balance de la division - dans le registre V. Commandes logiques avec des variables d'octets Le système de commande vous permet de mettre en œuvre des opérations logiques: "et", "ou", "à l'exclusion ou" sur le registre de la batterie (A) et une source de pate. Le deuxième opérande (octet-source) peut être un registre de travail dans la banque sélectionnée des registres de travail; Le registre de la RAM interne, adressé à l'aide de l'adressage indirectement; Cellules convertibles de RAM internes et registres spéciaux; Valeur directe. Ces opérations logiques peuvent être implémentées sur tout registre direct de la RAM interne ou un registre spécial à l'aide du contenu de la batterie A ou des données directes comme deuxième opérande. Il existe des opérations logiques qui ne sont effectuées que sur la batterie: réinitialiser et invoquer les huit décharges A; Décalage cyclique à gauche et VVVO; décalage cyclique à gauche et à droite, en tenant compte du drapeau de transfert; Exchange en Tetrad senior et junior (NIBLS) dans les batteries. Les commandes de transmission de données de la table des symboles (codes) cousu au programme ROM peuvent être sélectionnées à l'aide des commandes de transmission de données à l'aide d'une adressage indirecte. Les constantes d'octets peuvent être transférées sur la batterie à partir de la cellule de mémoire de programmes adressée à la quantité de registre de base (PC ou DPTR) et le registre d'index (contenu A). Ceci fournit, par exemple, un moyen pratique de mettre en œuvre l'algorithme de conversion de code ASCII en code à sept segments. Toute cellule du bloc de 256 octets de RAM de données externe peut être sélectionnée à l'aide de l'adressage de registre indirectement par le biais de Registers R0 ou de points R1 (banque de registres de travail sélectionnés). La cellule à l'intérieur de l'espace d'adressage 64 Ko de la RAM externe peut également être sélectionnée à l'aide de l'adressage de registre indirectement via le registre du pointeur DPTR Data. Les commandes de transmission entre les registres renouvelables vous permettent de faire une valeur du port dans la cellule de la RAM interne sans utiliser de registres de travail ou de piles. Dans un processeur logique, tout bit répété peut être placé dans le bit de transfert et inversement. Le contenu de la batterie peut être échangé avec le contenu des registres de travail (banque sélectionnée) et avec le contenu des cellules de RAM internes adressées par l'adressage de registre indirectement, ainsi que le contenu des cellules adressées directement de la RAM interne et avec le contenu des registres spéciaux. La nibt plus jeune (décharge 3-0) du contenu de la batterie peut être échangée avec le plus jeune nibl du contenu des cellules de la RAM interne sélectionnée à l'aide de l'adressage de registre indirectement. Commandes de processeur de bits Le processeur de bits fait partie de l'architecture MK de la famille MCS51 et peut être considérée comme un processeur de perles indépendant. Le processeur de bits effectue un ensemble de commandes, son RAM adressable binaire et sa sortie d'entrée. Les commandes opérant avec des bits fournissent une adressage directe de 128 bits (0-127) dans seize cellules de la RAM interne (cellules avec des adresses de 20h-2fh) et d'une adressage à des fins binaire directement des registres spéciaux, dont les adresses sont multiples huit. Chacun des bits traités séparément peut être réglé sur "1", réinitialiser dans "0", inversé, vérifié. Les transitions peuvent être implémentées: si le bit est installé; Si le bit n'est pas installé; transition si le bit est installé, avec une décharge de ce bit; Le bit peut être réécrit (de) la décharge du transfert. Par conséquent, le drapeau de transfert, les opérations logiques "et", "ou" peuvent être produites, où le résultat est entré dans la décharge du drapeau de transfert. Les commandes de traitement amère assurent la mise en œuvre de fonctions logiques combinatoires complexes et d'optimisation de l'utilisateur. Les commandes de ramification et de transmission de l'espace d'adressage des programmes n'ont aucune organisation de page, qui vous permet de déplacer librement les fragments du programme dans l'espace d'adressage, ne nécessite pas de numéro de page récessif (modifier). Le déplacement des fragments individuels du programme offre la possibilité d'utiliser les modules logiciels variés par divers programmes. Les commandes des transitions et des appels de 16 bits aux sous-routines vous permettent de transition à n'importe quel point de l'espace d'adressage de la mémoire de 64 Ko programmes. Les commandes de transitions 11 bits et d'appels aux sous-programmes fournissent des transitions à l'intérieur du module logiciel de capacité de 2 KB. Le système de commande dispose de transitions conditionnelles et inconditionnelles relatives à l'adresse initiale du programme suivant allant de (RS) -128 à (ZS) +127. Les commandes de vérification des décharges individuelles permettent de transitions conditionnelles à partir de "0" ou de "1" et des bits asserfers. Vérifications de contenu de la batterie (pour zéro / non zéro) Autoriser les transitions conditionnelles en fonction du contenu des transitions A. Indirect-Register dans le système de commande fournissez une ramification par rapport au registre de base (DPTR ou PC Teneur) avec un déplacement dans la batterie A. Register L'adressage du registre est utilisé pour faire appel à huit registres de travail de la Banque sélectionnée des registres de travail (les mêmes registres peuvent être sélectionnés à l'aide d'une adressage directe et d'un registre indirectement de l'adressage comme des cellules classiques de la RAM de données interne). L'adressage des registres est utilisé pour faire appel aux registres A, B, AB (Déd Register), DPTR et au drapeau de transposition de C. L'utilisation de l'adressage de registre vous permet de recevoir un équivalent de deux octets de commandes d'adresses directes à trois billets. Adressage direct Direct Otte Contact L'adressage est utilisé pour accéder aux cellules de mémoire internes (RAM) des données (0-127) et à des registres spéciaux. L'adressage amer direct est utilisé pour faire appel à des 128 bits adressables séparément sur des cellules avec des adresses de 20H-2FH et des bits de registres spéciaux séparément. Le code ADREM direct Senior Bit Bitt Sélectionne un des deux groupes de bits traités séparément situés dans la RAM ou les registres spéciaux. Les bits directement adressés avec adresses 0-127 (00h-7fh) sont situés dans le bloc de 16 cellules de la RAM interne, ayant des adresses de 20h-2fh. Ces cellules sont systématiquement numérotées à partir des plus jeunes bits de l'octet plus jeune aux bits plus anciens de l'octet plus ancien. Les bits traités séparément dans des registres spéciaux sont numérotés comme suit: cinq décharges d'adresse senior coïncident avec cinq décharges plus anciennes du registre lui-même et trois plus jeunes - déterminent l'emplacement d'une IBTA distincte dans le registre. Le registre indirect adressant l'adressage de registre indirect est utilisé pour faire appel aux données internes RAS. En tant que registres-pointeurs, les registres R10, R1 de la banque de registres sélectionnés sont utilisés. Les commandes PUSH et POP utilisent le contenu du pointeur de pile (SP). L'adressage de registre indirect est également utilisé pour accéder à la mémoire de données externe. Dans ce cas, en utilisant les registres de pointeur R0 et R1 (la banque sélectionnée des registres de travail), une cellule est choisie dans le bloc dans 256 octets de la mémoire de données externe. Le numéro de bloc est prédéfini le contenu du port P2. Le pointeur de données de 16 bits (DPTR) peut être utilisé pour accéder à toute cellule de l'espace d'adressage de la mémoire externe des données à 64 Ko. Addiction directe Adressage direct Vous permet de sélectionner un programme constant à partir de l'espace d'adressage de l'espace mémoire explicitement spécifié dans la commande. Inscrivez-vous indirectement s'adressant à la quantité de registres de base et d'index. Adresse de registre indirecte dans le montant: le registre de base et le registre d'index (le contenu de la batterie A) simplifie la visualisation des tableaux cousus dans la mémoire du programme. Tout octet de la table peut être sélectionné par l'adresse qui a déterminé la somme du contenu de DPTR ou PC et le contenu de A. La table de désignation et les symboles utilisés dans le système de commande.
Désignation, symbole Objectif
MAIS La batterie
Rn. Registres de la banque d'enregistrement sélectionnée en cours
R Le nombre de registre téléchargé, spécifié dans l'équipe
Direct. Adresse interne discrète directement à 8 bits d'une cellule de données, qui peut être la cellule de la RAM de données interne (0-127) ou de SFR (128-255)
@Rr. Cellule 8 bits indirectement adressable de la RAM de données interne
Data8. 8 bits dirige-moi, marche dans un flic
Datah Senior Bits (15-8) de données immédiates de 16 bits
Datal Bits plus jeunes (7-0) de données immédiates de 16 bits
Addr11 Adresse de destination 11 bits
Addrl Adresses de destination junior
DISP8. Octet de décalage 8 bits avec un signe M
Bit. Bit avec une adressage directe, l'adresse dont contient un flic étant dans la RAM de données interne ou SFR
A15, A14 ... A0 Adresse de destination BITS
(X) Le contenu de l'élément x.
((X)) Contenu à l'adresse stockée dans l'élément X
(X) [m] Décharge m élément x
+ - * / et ou xor / x Opérations: ajout à soustraire la multiplication de la division de la multiplication logique (fonctionnement et) de l'ajout logique (fonctionnement ou) addition de module 2 (hors ou) inversion d'élément x

Les désignations mnémoniques des fonctions sont uniquement liées à des combinaisons spécifiques de méthodes d'adressage et de types de données. Au total, 111 combinaisons de ces combinaisons sont possibles dans le système de commande. Le tableau indique la liste des commandes commandées par ordre alphabétique.

Mnémotechnique Une fonction Drapeaux
Commandement de l'acall Appel absolu du sous-programme
L'équipe ajoute a,<байт-источник> Une addition AC, C, OV
Addc une équipe<байт-источник> Ajout avec transfert AC, C, OV
Commande AJMP Transition absolue
Équipe ANL<байт-назначения>, <байт-источникa> Logique "et"
Commande ANL C,<байт-источникa> Logique "et" pour les variables-bits
Commande cjne<байт-назначения>, <байт-источник>, <смещение> Comparaison et transition, sinon égale C.
Équipe CLR A. Réinitialisation de la batterie
Équipe CLR Réinitialisation du bit C, bit.
Cpl A. Équipe Inversion ak uma ura
Commande cpl Inversion de bits C, bit.
Équipe da A. Correction de la batterie décimale pour false AC, C.
Dec de l'équipe<байт> Décrément
Div AB Team Division C, ov.
Team Djnz.<байт>, <смещение> Décrément et transition, sinon zéro
Commandement inc.<байт> Incrément
Team Inc dptr Incrément du pointeur de données
Équipe JB , Transition si le bit est installé
Équipe JBC. , Transition si le bit est installé et réinitialiser ce bit
Équipe JC Transition si le transfert est défini
JMP @ A + DPTR Team Transition indirecte
Team Jnb. , Transition si le bit n'est pas installé
Équipe JNC Transition si le transfert n'est pas installé
Team Jnz. Transition si le contenu de la batterie n'est pas zéro
Équipe jz. Transition si le contenu de la batterie est 0
Commandement de lcall Petit défi
Équipe LJMP Transition longue
Équipe mov.<байт-назначения>, <байт-источника> Envoyer un octet variable
Équipe mov.<бит-назначения>, <бит-источника> Envoyer des bits de données C.
Team Mover DPTR, # Data16 Télécharger le pointeur de données 16 bits constante
MOVC A, @ A + ( ) Envoyer des octets de la mémoire du programme
Commande Movx<байт приемника>, <байт источника> Envoyer à la mémoire externe (à partir de la mémoire externe)
Team Mul AB. Multiplication C, ov.
Commande nop. Pas d'opération Pc.
Équipe d'orl<байт-назначения>, <байт-источникa> Logique "ou" pour des octets variables
Commande c<бит источникa> Logique "ou" pour les variables-bits C.
Équipe pop Lire de la pile
Équipe de poussée Record en pile
RET. Retour du sous-programme
Équipe de reti Retour de l'interruption
Rl A. équipe Contenu de la batterie décalage à gauche
Rlc une commande Contenu de la batterie Changez à gauche via Drapeau de la transpiration
RR une commande Décalage de la batterie à droite
RRC une commande Le contenu de la batterie passe à droite via le drapeau de transfert C.
Commande SetB Mettre des bits C.
Équipe SJMP.<метка> Transition courte
Subb A,<байт источника> Soustraction avec emprunt AC, C, OV
Swap A. Échange d'ordinateurs portables à l'intérieur de la batterie
Xch une équipe<байт> Stage de la batterie de la batterie
Équipe XCHD A, @ R1 TETRAJA ÉCHANGE
Équipe XRL<байт-назначения>, <байт-источникa> Logique "à l'exclusion ou" pour des octets variables

Planifiez des conférences

1. Introduction

2. Instructions arithmétiques et logiques

3. Commandes de transfert de données

4. Opérations booléennes

5. Instructions de traduction

1. Introduction

Système d'équipe MCS-51. Prend en charge un ensemble d'instructions unique, conçu pour effectuer des algorithmes de gestion de périphériques de direction 8 bits. Il est possible d'utiliser des méthodes d'adressage rapides pour la RAM interne, la mise en œuvre des opérations de bits sur de petites structures de données. Il existe un système détaillé pour adresser des variables mono-bits en tant que type de données indépendant qui vous permet d'utiliser des bits individuels dans des commandes logiques et de contrôle de l'algèbre booléenne.

Adresse des modes : Ensemble de commandes MCS-51. Prend en charge les modes d'adressage suivants. Adressage direct: L'opérande est défini par une adresse 8 bits dans les instructions. L'adressage direct est utilisé uniquement pour la plus jeune moitié de la mémoire interne des données et des registres. Sfr.. Adressage indirect: L'instruction aborde le registre contenant l'adresse de l'opérande. Ce type d'adressage est utilisé pour la RAM externe et interne. Les registres peuvent être utilisés pour spécifier des adresses 8 bits R0. et R1 Banque de registre sélectionné ou pointeur de pile Sp.. Pour l'adressage 16 bits, seul le registre de pointeur de données est utilisé. Dptr.

Instructions d'enregistrement : Registres R0-R7 La banque de registres actuelle peut être adressée dans des instructions spécifiques contenant un champ 3 bits indiquant le numéro de registre dans les instructions elles-mêmes. Dans ce cas, le champ d'adresse correspondant est manquant. Opérations utilisant des registres spéciaux: Certaines instructions utilisent des registres individuels (par exemple, les opérations de la batterie, Dptr, etc.). Dans ce cas, l'adresse de l'opérande n'est généralement pas spécifiée dans la commande. Il est prédéterminé par le code d'opération.

Constantes directes : La constante peut être directement dans la commande lorsque le code de fonctionnement.

Indice : L'adressage de l'index ne peut être utilisé que pour accéder à la mémoire du programme et uniquement en mode lecture. Dans ce mode, les tables sont visualisées dans la mémoire du programme. Registre 16 bits ( Dptr Ou le compteur de programme) indique l'adresse de base de la table requise et la batterie indique le point d'entrée.

Ensemble de commandes Il a 42 symboles mnémoniques pour spécifier 33 fonctions de ce système. La syntaxe de la plupart des commandes de langage de montage consiste en une désignation mnémonique de la fonction, suivie des opérandes indiquant les méthodes d'adressage et les types de données. Divers types de données ou des modes d'adressage sont déterminés par les opérandes installés et non modifications des désignations mnémoniques.

Le système de commande peut être localisé classiquement pour cinq groupes: commandes arithmétiques; commandes logiques; Commandes de transfert de données; commandes de processeur de mordre; Direction des commandes et gestion. Les désignations et les symboles utilisés dans le système de commande sont donnés ci-dessous.

Tableau. Désignations et symboles utilisés dans le système de commande

Désignation, symbole

Objectif

La batterie

Registres de la banque d'enregistrement sélectionnée en cours

Le numéro du registre chargé spécifié dans la commande

direct.

Adresse interne discrète directement à 8 bits de la cellule de données, qui peut être la cellule de la RAM de données interne (0-127) ou du registre des fonctions spéciales SFR (128-255)

Cellule 8 bits indirectement adressable de la RAM de données interne

8 bits direct Ceci, qui est inclus dans le code de fonctionnement (CPA)

datah

Senior Bits (15-8) de données immédiates de 16 bits

datal

Bits plus jeunes (7-0) de données immédiates de 16 bits

Adresse de destination 11 bits

addrl

Adresses de destination junior

Octet de travail à 8 bits avec signe

Bit avec une adressage directe, l'adresse contient un flic dans la RAM de données interne ou le registre des fonctions spéciales SFR

a15, A14 ... A0

Adresse de destination BITS

Le contenu de l'élément x.

Contenu à l'adresse stockée dans l'élément X

Décharge m élément x


+

*
Et.
Ou alors.
Xor.
/ X.

Opérations:
Addition
Soustraire
Multiplication
division
Multiplication logique (opération et)
Addition logique (opération ou)
Addition MODULO 2 (à l'exclusion ou)
Inversion de l'élément x.

Les désignations mnémoniques des fonctions sont uniquement liées à des combinaisons spécifiques de méthodes d'adressage et de types de données. Au total, 111 combinaisons de ces combinaisons sont possibles dans le système de commande.

2. Instructions arithmétiques et logiques

Comme P. riemer Équipe arithmétiqueL'opération d'addition peut être exécutée par l'une des commandes suivantes.

Ajouter.UNE.,7 F. 16 - Ajouter au contenu des registres et numéro 7F 16. et le résultat est maintenu dans le registre A;

Ajouter.UNE.,@ R0 - Ajouter au contenu du registre et le numéro dont l'adresse (@ – commercial À. ) Stocké dans le registreR 0 (adressage indirect) et le résultat est maintenu dans le registre A;

Ajouter A, r7 - Ajouter au contenu du registre et le contenu du registreR 7 et le résultat est maintenu dans le registre A;

Ajouter un, # 127 - Ajouter au contenu du registre et le numéro, l'adresse de la cellule de stockage dont 127 ( # - Symbole de numéro), et le résultat est enregistré sur regis t.- retir

Toutes les instructions arithmétiques sont effectuées en un cycle de la machine, à l'exception de la commande. Inc. DPTR. (changement de pointeur de données Dptr L'octet suivant) nécessitant deux cycles de machine, ainsi que des opérations de multiplication et de division effectuées pour 4 cycles de machine. Tout octet dans la mémoire de données interne peut être incrémenté et décrémenté sans utiliser la batterie.

Instruction Mul ab Multiplication (multiplication - multiplication) des données dans la batterie sur les données du registre B, placant un produit dans des registres A (plus jeune) et B (la moitié plus âgée).

Instruction Div Division (Division - Division) Le contenu de la batterie à la valeur dans le registre B laissant le résidu en B et que le privé est dans la batterie.

Instruction Da A. Conçu pour les opérations arithmétiques décimales binaires (opérations arithmétiques sur les nombres présentés en code de décimal binaire). Elle ne transforme pas de nombres binaires dans décimal binaireMais ne fournit que le résultat correct lors de l'ajout de deux nombres décimaux binaires.

Exemple équipe logique: Fonctionnement de logique et peut être effectué par l'une des commandes suivantes:

AnlUNE.,7 F. 16 - multiplication logique du contenu du registre et numéro 7F 16. et le résultat est préservé dans le registre A;

AnlUNE.,@ R1 - multiplication logique du contenu du registre et du numéro, dont l'adresse est stockée dans le registreR 1 (adressage indirect), et le résultat est maintenu dans le registre A;

Anl A, R6 - Multiplication logique du contenu du registre A sur le contenu du registreR 6, et le résultat est maintenu dans le registre A;

Anl A, # 53 - multiplication logique du contenu du registre et le numéro, l'adresse de la cellule de stockage dont 53 16 et le résultat est maintenu dans le registre A.

Toutes les opérations logiques sur le contenu de la batterie sont effectuées en un cycle de la machine, le reste - pour deux. Les opérations logiques peuvent être apportées au-dessus de l'un des 128 octets inférieurs de la mémoire de données interne ou sur tout registre. Sfr. (Registres de fonctions spéciales) en mode d'adressage direct sans utiliser de la batterie.

Opérations du décalage cyclique RL A, RLC A, etc. Déplacez le contenu de la batterie sur un bit à droite ou à gauche. Dans le cas du décalage cyclique gauche, le plus jeune bit se déplace à la position la plus ancienne. Dans le cas du décalage cyclique droit, le contraire se produit.

Opération Swap A. Exercez l'échange de tétrad plus jeune et senior dans la batterie.

3. Commandes de transfert de données

Équipe MOV DEST, SRC Vous permet d'envoyer des données entre les cellules de la RAM interne ou de la zone de registre des fonctions spéciales Sfr. Sans utiliser de la batterie. Dans le même temps, les travaux avec la moitié supérieure de la RAM interne ne peuvent être effectués que dans le mode d'adressage indirect, et l'appel à des registres Sfr. - uniquement en mode d'adressage direct.

Dans tous les microcirces MCS-51. La pile est située directement dans la résidence de données et augmente vers le haut. Instruction Pousser. Au départ augmente la valeur dans le registre du pointeur de pile Sp.puis écrit à la pile d'octets de données. Équipes Pousser. et Pop Utilisé uniquement en mode d'adressage direct (enregistrement ou restauration des octets), mais la pile est toujours disponible à l'adressage indirect via le registre Sp.. Ainsi, la pile peut également utiliser l'octet de données supérieur de 128 des données. Ces considérations éliminent la possibilité d'utiliser des commandes de STALL pour résoudre les registres Sfr..

Les instructions de données incluent une opération d'envoi 16 bits. MOV DPTR, # DATA16utilisé pour initialiser le registre du pointeur de données Dptr Lorsque vous visualisez des tables dans la mémoire logicielle ou l'accès à la mémoire de données externe.

Opération Xch a, octet Il est utilisé pour échanger des données entre la batterie et l'octet adressable. Équipe Xchd a, @ ri Semblable au précédent, mais n'est effectuée que pour le tétrad junior impliqué dans l'échange d'opérandes.

Pour accéder à la mémoire de données externe, seule l'adressage indirect est utilisé. Dans le cas des adresses monte-octet, des registres sont utilisés R0. ou alors R1 Banque de registre actuelle et pour le registre du pointeur de données 16 bits Dptr. Avec tout accès à la mémoire de données externe, la batterie joue le rôle des informations source ou de récepteur.

Pour accéder aux tables publiées dans la mémoire logicielle, les commandes sont utilisées:

MOVC A, @ A + Dptr ;

MOVC A, @ A + Pc. .

Comme l'adresse de base du tableau utilise le contenu du registre des indicateurs de données Dptr ou alors Pc. (compteur de programme) et le décalage est tiré de UNE.. Ces commandes sont utilisées exclusivement pour lire les données de la mémoire de programme, mais ne pas y écrire.

4. Opérations booléennes

Microcirculits MCS-51. Contenir dans sa composition "Boolean" processeur. La RAM interne a 128 bits directement adressés. Registres de registre de l'espace Sfr. Peut également prendre en charge jusqu'à 128 champs de morsure. Les instructions de bits effectuent des transitions conditionnelles, des envois, des réinitialisations, des inversions, des opérations "et" ou "ou". Tous les bits spécifiés sont disponibles en mode d'adressage direct.

Bit de transfert Cf. Dans le registre des fonctions spéciales ", le mot statut du programme PSW."Utilisé comme une seule batterie d'un processeur booléen.

5. Instructions de traduction

Les adresses des opérations de transition sont indiquées dans la langue d'assembleur avec une étiquette ou une valeur réelle dans l'espace mémoire du programme. Les adresses de transition conditionnelle sont assemblées dans un déplacement relatif - un octet de signe ajouté au compteur de programme Pc. Dans le cas de la condition de transition. Les limites de telles transitions se situent entre moins de 128 et 127 par rapport au premier octet suivant les instructions. Dans le registre des fonctions spéciales ", le mot statut du programme PSW.»Il n'y a pas de drapeau zéro, alors instructions Jz. et Jnz. Vérifiez la condition «égale à zéro» comme des données de test dans la batterie.

Il existe trois types d'équipe de transition inconditionnelle: SJMP, LJMP et AJMP - Format d'adresse de destination distinguée. Instruction SJMP Codes L'adresse comme un déplacement relatif et prend deux octets. La gamme de transition est limitée par la gamme de moins 128 à 127 octets par rapport à l'instruction suivante SJMP.

Dans les instructions LJMP Utilisez l'adresse de destination sous la forme d'une constante 16 bits. La longueur de la commande est de trois octets. L'adresse de destination peut être située n'importe où dans la mémoire du programme.

Équipe AJMP Utilise une constante d'adresse 11 bits. La commande consiste en deux octets. Lorsque ce manuel est exécuté, les 11 bits Yenger 11 du compteur d'adresses sont remplacés par une adresse 11 bits de la commande. Cinq bits de compteur de programme senior Pc. restent inchangés. Ainsi, la transition peut être faite à l'intérieur du bloc 2K-octet dans lequel l'instruction est située après la commande. AJMP.

Il existe deux types d'appels de commande du sous-programme: Lcall et Un appel. Instruction Lcall Utilise l'adresse 16 bits du sous-programme appelé. Dans ce cas, le sous-programme peut être situé n'importe où dans la mémoire des programmes. Instruction Un appel Utilise l'adresse 11 bits du sous-programme. Dans ce cas, le sous-programme appelé doit être situé dans un bloc 2K-octet avec l'instruction suivante Un appel. Les deux variantes de la commande posent l'adresse de commande suivante et téléchargez sur le compteur de logiciels. Pc. nouveau signification correspondant.

Le sous-programme est complété par l'instruction RET.vous permettant de revenir à la commande suivante de l'instruction Appel. Cette instruction supprime l'adresse de retour de la pile et le charge dans le compteur de programme. Pc. . Instruction Reti. Utilisé pour revenir des routines de traitement d'interruption. La seule différence Reti. de RET. est-ce Reti. Informe le système que le traitement d'interruption est terminé. Si au moment de l'exécution Reti. Aucune autre interruption, alors c'est identique RET..

Instruction Djnz. Conçu pour contrôler les cycles. Exécuter des cycles N. Une fois qu'il est nécessaire de télécharger dans le comptoir d'octet avec la valeur N. et fermer l'équipe de cycle du corps Djnz.pointant au début du cycle.

Équipe Cjne Compose les deux de son opérande comme des entiers et des transitions non signés à l'adresse indiquée si les opérandes compatibles ne sont pas égaux. Si le premier opérande est inférieur à la seconde, alors le bit de transfert Cf. Installé dans "1".

Toutes les commandes du formulaire assemblé occupent 1, 2 ou 3 octets.

Microcontrôleurs d'architecture

Comprendre l'architecture du microcontrôleur est la clé lors de l'apprentissage des langages de programmation de type Assembleur. Structure des assembleurs, format de ses commandes, des opérandes adressées, etc. Entièrement déterminé par l'architecture. Le but d'étudier l'architecture est:

· Détection des ensembles disponibles pour les registres de programmation, fonctionnels et structure;

· Comprendre l'organisation de la RAM et la procédure pour son utilisation;

· Connaissance des types de données;

· Étude du format des commandes de la machine;

· Trouver l'organisation du traitement des interruptions.

L'architecture de la famille MCS-51 est largement prédéterminée par son objectif - Construire des appareils numériques compacts et bon marché. Toutes les fonctions MK sont implémentées à l'aide d'une seule puce. La famille MCS-51 comprend un certain nombre de microcirculits des microcontrôleurs les plus simples à des plus compliqués. Les microcontrôleurs familiaux MCS-51 vous permettent d'effectuer les deux tâches de contrôle de divers appareils et d'implémenter des nœuds de circuit analogiques individuels. Toutes les copeaux de cette famille travaillent avec le même système de commandement, la plupart d'entre elles sont effectuées dans les mêmes enceintes avec le sous-sol coïncidant (numérotation des terminaux pour le cas). Cela vous permet d'utiliser pour les dispositifs de microcircuit développés de différents fabricants (tels que ASItel, Dallas, Atmel, Philips, etc.) sans altération du concept de l'appareil et du programme.

MCS-51 est fabriqué par Harvard Architecture, où les espaces d'adresse de la mémoire et des données sont séparés.

Le schéma fonctionnel du contrôleur est présenté à la Fig. 2.3 et se compose des principaux nœuds fonctionnels suivants: une unité de commande, un dispositif logique arithmétique, un bloc de minuterie / comptoirs, une interface série et des interruptions, un compteur de logiciels (compteur de commande). Mémoire et mémoire de programme.

L'échange bilatéral est effectué à l'aide d'une ligne de données interne à 8 bits. Considérez une lecture plus en lecture sur chaque bloc. Selon un tel système, presque tous les représentants de la famille MCS-51 sont construits. Les différentes copeaux de cette famille ne diffèrent que dans des registres spéciaux (y compris le nombre de ports). Le système de commandes de tous les contrôleurs de la famille MCS-51 contient 111 commandes de base avec un format 1, 2 ou 3 octets et ne change pas pendant la transition d'une puce à l'autre. Il fournit une excellente portabilité des programmes d'une puce à une autre.

Unité de contrôle et de synchronisation (Timing and Control) est conçu pour générer des signaux de synchronisation et de contrôle garantissant la coordination des travaux conjoints des blocs d'OEEHM dans tous les modes autorisés de son fonctionnement. L'unité de contrôle comprend:


  • dispositif de formation d'intervalle temporaire,
  • circuit de combinaison d'E / S
  • s'agissance de l'équipe,
  • Équipes Decifranger.

Entrée et week-end signaux du bloc de contrôle et de synchronisation:

1 Psen. - résolution de la mémoire logicielle;

2 Ale. - le signal de sortie de l'autorisation de la fixation de l'adresse;

3 Programme - signal de programmation;

4 EA. - Blocage des travaux avec la mémoire interne;

5 VPP. - tension de programmation;

6 Premier - Signal de réinitialisation commun.

Le dispositif de génération d'intervalle de temps est nécessaire pour synchroniser la séquence des états de la CPU formant le cycle de la machine, ainsi que pour le bon fonctionnement de tous les détecteurs internes et tampons de sortie des ports. Le cycle de la machine est composé de six séquences (états) de S1 à S6, chacune desquelles, à son tour, est divisée en deux phases:

phase 1 (phase 1 - P1) et phase 2 (phase 2 - P2). Ainsi, le cycle de la machine peut être défini comme une séquence d'intervalles de temps S1P1, S1P2, S2P1, ...., S6P2. La durée de la phase est égale à la période de l'impulsion d'horloge, de sorte que le cycle de la machine prend 12 périodes d'horloge.

Le nombre de cycles de la machine détermine le temps d'exécution des commandes. Presque toutes les commandes sont effectuées pour une ou deux cycles de la machine, à l'exception des commandes de multiplication et de division, dont la durée est quatre cycles de moteur. La logique d'E / S est destinée à recevoir et à émettre des signaux fournissant l'échange d'informations avec des périphériques externes via les ports de sortie de la sortie P0-P3.

Inscrivez-vous des équipes Conçu pour l'enregistrement et la conservation du code exécutable du code 8 bits. Le code de fonctionnement, à l'aide du décodeur de commande et de la logique de contrôle de l'ordinateur, est converti en microprogramme de l'exécution de la commande.

Figure 2.3. Diagramme structurel d'un microcontrôleur Intel 8051

(Famille MCS-51)

Dispositif logique arithmétique (ALU) est un dispositif parallèle huit bits qui assure l'exécution d'opérations arithmétiques et logiques. Alu se compose de:

  • registres de stockage temporaires - TMP1 et TMP2,
  • Rom constante,
  • additionneur
  • registre supplémentaire - Inscrivez-vous dans,
  • batterie - ACC,
  • enregistrer le registre d'état (registre du drapeau) - PSW.

Registres de stockage temporaire TMP1, TMP2 - Les registres huit bits destinés à recevoir et à stocker des opérandes au moment des opérations. Ces registres ne sont pas accessibles par programmation.

Rom constante Fournit un code correctif pour générer une vue de données décimales binaires, un code de masque pour les opérations de bits et un code constant.

Additionneur parallèle huit bits Il s'agit d'un schéma d'un type de combinaison avec un transfert séquentiel, destiné à effectuer des opérations arithmétiques d'addition, de soustraction et d'opérations logiques d'addition, de multiplication, de sans équivoque et d'identité.

Inscrivez-vous B. - Le registre huit bits utilisée lors des opérations de multiplication et de division. Pour d'autres instructions, il peut être considéré comme un registre ultra-exploitif supplémentaire.

La batterie- Registre huit bits conçu pour recevoir et stocker le résultat obtenu lors de l'exécution des opérations arithmétiques et logiques ou des opérations de décalage.

Registre d'état du programme PSW (mot d'état du programme)conçu pour stocker l'état des commandes effectuées. Lors de l'exécution de nombreuses équipes d'ALU, un certain nombre de fonctionnalités de fonctionnement (drapeaux) sont formées, qui sont enregistrées dans le registre d'état du programme (PSW). Dans l'onglet. 1 montre une liste des drapeaux PSW, leurs noms symboliques sont donnés et les conditions de leur formation sont décrites.

Bloc d'interface interruption et d'interface série - UART (récepteur asynchrone universel / émetteur) Conçu pour organiser une entrée - retrait de flux d'informations cohérents et d'organisation du système d'interruption de programme.

Par définition, l'interruption signifie la résiliation temporaire du processus principal de calcul pour effectuer des actions planifiées ou non planifiées causées par le travail d'équipement ou de programmes.

Ces actions peuvent porter un caractère de service, être des demandes du programme utilisateur pour effectuer le service ou être une réaction à des situations anormales.



Avez-vous aimé l'article? Partagez-le