Programmation des ports MK en langage C 51. Microcontrôleurs MCS–51 : modèle de programme, structure, commandes. Mode de lecture des ports

Version de base MCS–51 Information brève. Les microcontrôleurs (MC) 8 bits modernes disposent de telles ressources de contrôle en temps réel, pour lesquelles des configurations multipuces auparavant coûteuses sous la forme de cartes de micro-ordinateur séparées étaient utilisées, à savoir :

● avoir une capacité mémoire suffisante, sa division physique et logique en mémoire programme et mémoire de données(architecture Harvard) et un système de commande axé sur l'exécution d'algorithmes de contrôle ;

● inclure tous les dispositifs (processeur, ROM, RAM, ports d'entrée/sortie, système d'interruption, moyens de traitement des informations binaires, etc.) nécessaires à la mise en œuvre d'un système de contrôle à microprocesseur à configuration minimale. Dans les années 70 du siècle dernier, l'entreprise Intel une famille de microcontrôleurs 8 bits MCS-48, unis par un certain nombre de caractéristiques communes (capacité en bits, système de commande, ensemble de blocs fonctionnels principaux, etc.), a été développée et lancée en production industrielle. La version de base de cette famille comprend :

● Processeur 8 bits ;

● mémoire de programme interne (1/2/4 Ko) ;

● mémoire de données interne (64/128/256 octets) ;

● jusqu'à 27 lignes d'E/S internes et 16 lignes d'E/S externes ;

● un compteur-minuterie 8 bits ;

● système d'interruption à un seul niveau avec deux sources de requêtes. En 1980, la même société a développé une nouvelle famille de microcontrôleurs à huit bits, MCS-51, compatible avec l'architecture de la famille MCS-48, mais dotée de capacités supérieures.

L'architecture de la famille MCS-51 s'est avérée si réussie qu'elle fait toujours partie des standards pour les MK 8 bits. Par conséquent, l'objet d'étude a été choisi comme étant les microcontrôleurs de cette famille, largement utilisés dans des systèmes de contrôle relativement simples.

Divers outils de préparation de programmes ont été développés pour la famille MCS-51 (compilateurs, émulateurs matériel-logiciel, etc.) et il existe un grand nombre de bibliothèques de routines standards. La famille comprend diverses modifications de microcircuits (versions puces) de microcontrôleurs. Les articles de cette section traitent en détail de la version de base des microcontrôleurs de la famille MCS-51 (le microcircuit 8051 correspond à l'analogue domestique KP1816BE51), le plus simple en termes structurels et fonctionnels et du point de vue de la compréhension.

Les séries ultérieures de microcircuits, tout en conservant la compatibilité avec la version de base, en diffèrent par une technologie de fabrication améliorée, paramètres électriques, du matériel supplémentaire et Fonctionnalité. Les articles suivants sont consacrés aux caractéristiques structurelles et fonctionnelles des modifications ultérieures de la famille de microcircuits MCS-51.
Schéma fonctionnel généralisé du MCS-51. La composition du MC, dont un schéma fonctionnel généralisé est présenté à la Fig. 7.1.1, comprend :

● 8 bits CPU CPU composé de ALU, appareils de controle UU et générateur d'adresses F;

● masque ROM d'une capacité de 4 Ko pour le stockage des programmes ;

● RAM d'une capacité de 128 octets pour le stockage des données ;

● quatre ports programmables P0–P3 pour l'entrée– sortie d'informations;

● bloquer interface série BPI pour échanger des informations avec des appareils externes via une ligne bifilaire ;

● bloc de minuteries/compteurs BT/C pour maintenir le mode temps réel ;

● Bloc d'interruption BP pour organiser les interruptions des programmes exécutables. Ces fonds forment résident partie du microcontrôleur située directement sur la puce. Le MK comprend un grand nombre de registres, qui sont affectés à des blocs fonctionnels distincts et ne sont pas représentés dans le diagramme.

Le diagramme ne montre pas non plus les circuits de commande. L'échange bidirectionnel d'informations entre les blocs s'effectue via 8 bits internes bus de données SHД-8.

Par 16 bits interne bus d'adressesША-16 L'adresse générée dans la CPU est sortie vers la ROM (12 bits d'adresse) et vers la RAM (8 bits de poids faible).

Lors de l'utilisation d'une mémoire externe, les 8 bits de poids faible de l'adresse sont sortis sur le port P0 et les 3 ou 8 bits de poids fort sur le port P2.

Pour étendre logiquement l'interface, la combinaison des fonctions des lignes portuaires est utilisée. A titre d'exemple sur la Fig. 7.1.1 la ligne pointillée montre les lignes du port P3 qui effectuent alternative fonctions de transmission de signaux de commande, dont le but sera discuté ci-dessous. Pour créer un générateur d'horloge interne, un résonateur à quartz et deux condensateurs sont connectés aux bornes du microcircuit MK (Fig. 7.1.1). Au lieu d'un générateur d'horloge interne, une source d'oscillation externe peut être utilisée pour la synchronisation. Conditionnel désignation graphique Les microcircuits MK sont illustrés à la Fig. 7.1.2, désignation et fonction des broches - dans le tableau. 7.1.1. Considérons les blocs fonctionnels du MK et le principe de leur fonctionnement. Dispositif arithmétique et logique. Le dispositif arithmétique et logique est conçu pour effectuer des opérations arithmétiques (y compris la multiplication et la division) et logiques sur des opérandes de huit bits, ainsi que des opérations de décalage logique, de remise à zéro, de mise à l'état initial, etc. Le schéma fonctionnel de l'ALU est illustré à la Fig. 7.1.3.

L'ALU comprend

● huit bits parallèles additionneur SM de type combinatoire avec report séquentiel, effectuant des opérations arithmétiques (addition et soustraction) et logiques (addition, multiplication, disparité et identité) ;

batterie A, assurer les fonctions du registre arithmétique principal ;

registre B, utilisé pour mettre en œuvre des opérations de multiplication et de division ou comme registre super-opérationnel supplémentaire dont les fonctions sont déterminées par l'utilisateur ;

registres(logiciel non disponible) stockage temporaireРВХ1, РВХ2, destinés à recevoir et stocker les opérandes pendant la durée de l'opération ;

● ROM constantes ROM, qui stocke le code de correction pour la représentation décimale binaire des données, le code de masque pour les opérations sur bits et le code pour les constantes ;

registre des mots d'état du programme PSW, qui enregistre l'état de l'ALU après une opération terminée. Dans le tableau 7.1.2 fournit des informations sur l'affectation des bits des bits individuels du registre PSW. Dispositif de contrôle. Unité de contrôle (CU) du processeur central destiné pour la coordination collaboration tous les nœuds MK en utilisant les impulsions d'horloge et les signaux de contrôle générés. Il se compose (Fig. 7.1.4) :

unité de synchronisation et de contrôle Le système de contrôle, qui génère des impulsions d'horloge qui définissent les cycles de la machine et leurs états individuels (S) et phases (P), et, en fonction du mode de fonctionnement du microcontrôleur, génère l'ensemble nécessaire de signaux de commande. Il faut un, deux ou quatre cycles machine pour exécuter une commande.

Chaque cycle de la machine a six états S1–S6, A chaque état comprend deux phases P1, P2 dont la durée est la période d'oscillation du générateur d'horloge T 0SC.

La durée du cycle machine est de 12T 0SC. Tous les cycles machine sont identiques, commençant par la phase S1P1 et se terminant par la phase S6P2.

En plus des impulsions d'horloge, le dispositif de synchronisation génère deux (parfois un) signaux de déclenchement pour l'octet de poids faible de l'adresse ALE à chaque cycle machine sous la forme d'une impulsion positive dans les phases S1P2-S2P1 et S4P2-S5P1. Les chronogrammes de la Fig. 7.1.5 illustrer l'organisation des cycles de la machine;

● registre de commande RK, décodeur de commandes DC et PLM, permettant à chaque cycle machine de générer un ensemble de micro-opérations conformément au microprogramme de la commande exécutée ;

● Logique d'entrée/sortie LVV pour recevoir et émettre des signaux qui assurent l'échange d'informations du MK avec des dispositifs externes via les ports P0–P3 ;

● Registre PCON, qui possède un seul bit SMOD activé en position PCON.7 pour doubler le débit de données du port série. Les bits restants sont réservés pour une utilisation ultérieure.
Générateur d'adresses. Générateur d'adresses (FA), ou compteur de commandes PC, destiné pour former l'adresse actuelle de 16 bits de la mémoire de programme et l'adresse de 8/16 bits de la mémoire de données externe. Il se compose (Fig. 7.1.6) :

● 16 bits tampon B, qui communique entre le bus de données SD 8 bits et le bus interne (IB) 16 bits du formateur d'adresses ;

● Circuit d'incrémentation SI pour augmenter la valeur de l'adresse actuelle mémoire de programme par unité;

● registre pour stocker l'adresse actuelle des commandes PTA provenant du SI ;

● registre de pointeur de données DPTR , composé de deux registres de 8 bits DPH et DPL. Il sert à stocker une adresse de 16 bits de mémoire de données externe et peut être utilisé comme deux RON indépendants accessibles par logiciel ;

● registre du générateur d'adresse XRF pour stocker l'adresse exécutive 16 bits de la mémoire programme ou l'adresse 8/16 bits de la mémoire de données externe. Ce registre est également utilisé pour transmettre des données via le port P0 vers appareils externes lors de l'exécution des commandes MOVX @Rm, A et MOVX @DPRT, A.

Mémoire de données. Mémoire de données destiné pour recevoir, stocker et émettre des informations utilisées pendant l'exécution du programme. La mémoire de données interne (résidente) (Fig. 7.1.7) se compose de RAM d'une capacité de 128 octets, pointeur de pile S.P. registre d'adresses RAM RA et décodeur Dsh. Le pointeur de pile SP est un registre de 8 bits conçu pour recevoir et stocker l'adresse de la cellule de pile à laquelle on a accédé en dernier. Après la réinitialisation, le pointeur de pile est positionné à l'adresse 07H, ce qui correspond au début de la pile d'adresse 08H. Le registre d'adresses PA ainsi que le décodeur Dsh permettent d'accéder à la cellule mémoire requise contenant un octet ou un bit d'information.

Le MK offre la possibilité d'augmenter la capacité de mémoire de données jusqu'à 64 Ko en connectant périphériques de stockage externes. A titre d'exemple sur la Fig. 7.1.8 montre l'organisation des pages de la mémoire de données VPD externe d'une capacité de 2 Ko à l'aide de commandes de type MOVX @ Rm(m = 0 ; 1). Dans ce cas, le port P0 fonctionne comme un bus d'adresses/données multiplexé, trois lignes du port P2 sont utilisées pour adresser une page de RAM externe, et les cinq lignes restantes peuvent être utilisées comme lignes d'entrée/sortie.
En figue. 7.1.9 montre les chronogrammes des cycles de lecture et d'écriture lorsque le MK fonctionne avec une RAM externe. Les schémas indiquent :

● RSN - octet de poids fort du compteur de commandes du PC ;

● DPL, DPH - octets bas et haut du registre de pointeur de données DPTR, utilisé comme registre pour l'adressage indirect dans les commandes MOVX @DPTR,A et MOVX A,@DPTR ;

● P2 SFR - Verrous de port P2 ;

● Rm (m = 0, 1) - registres utilisés dans les instructions MOVX @Rm, A et MOVX A, @Rm comme registres d'adresses indirectes ;

● Z - état à haute résistance ;

● D - la période pendant laquelle les données du port P0 sont saisies dans le microcontrôleur. Mémoire de programme. La mémoire de programme est conçue pour stocker des programmes, possède son propre espace d'adressage (séparé de la mémoire de données) et est en lecture seule. Il comprend un décodeur Dsh et une ROM (Fig. 7.1.10). Un compteur PC 16 bits est utilisé pour adresser la mémoire programme, sa capacité maximale est donc de 64 Ko. La mémoire de programme interne se compose d'une ROM de 4 Ko et d'un décodeur de 12 bits. La mémoire externe est connectée selon le schéma de la Fig. 7.1.11. Si 0 V est fourni à la broche ¯EA du MK (comme indiqué sur la Fig. 7.1.11), mémoire intérieure les programmes sont désactivés. Tous les accès à la mémoire commencent à l'adresse 0000h. Lorsque la broche ¯EA est connectée à une source d'alimentation, l'accès à la mémoire de programme interne aux adresses 0000h à FFFFh et à la mémoire de programme externe aux adresses 0FFFh à FFFFh se produit automatiquement.

Pour lire la mémoire externe des programmes MK, le signal ¯PSEN est généré. Lorsque vous travaillez avec la mémoire interne, le signal de lecture n'est pas utilisé. Lors de l'accès à la mémoire de programme externe, une adresse de 16 bits est toujours formée. L'octet de poids faible de l'adresse est transmis via le port P0 dans la première moitié du cycle machine et est fixé par la coupure du stroboscope ALE dans le registre. Dans la seconde moitié du cycle, le port P0 est utilisé pour saisir un octet de données de la mémoire externe dans le MK.

L'octet de poids fort de l'adresse est transmis via le port P2 pendant tout le temps d'accès à la mémoire.

Les chronogrammes des cycles de lecture et d'écriture lorsque le MK fonctionne avec une RAM externe sont présentés dans la Fig. 7.1.12.
Les schémas indiquent :

● PCL OUT - sortie de l'octet de poids faible du compteur de programme PC ;

● RSN OUT - sortie de l'octet de poids fort du compteur de commandes du PC ;

● DPH - octet de poids fort du registre de pointeur de données DPTR, utilisé comme registre pour l'adressage indirect dans les instructions MOVX @DPTR,A et MOVX A,@DPTR ;

● P2 SFR - Verrous de port P2 ;

● INS IN - entrée de l'octet d'instruction (commande) à partir de la mémoire du programme ;

● ADDR OUT - émission de l'octet faible de l'adresse de la mémoire de données externe à partir des registres Rm (m = 0, 1) ou du registre DPL (registre bas DPTR). Ports d'E/S. Affectation des ports. Ports P0, P1, P2, P3 destiné pour échanger des informations entre le MK et les appareils externes, et également pour exécuter les fonctions suivantes :

● l'octet de poids faible de l'adresse A7…A0 est émis via le port P0 ; un octet de données est sorti du MK et entré dans le MK lorsque vous travaillez avec une mémoire de programme externe et une mémoire de données externe (séparées dans le temps) ;

● via le port P2, l'octet de poids fort de l'adresse A15...A8 est émis lors du travail avec une mémoire de programme externe et une mémoire de données externe (uniquement lors de l'utilisation des commandes MOVX A,@DPTR et MOVX @DPTR,A) ;

● Les lignes du port P3 peuvent être utilisées pour exécuter des fonctions alternatives si 1 est entré dans le verrou de cette ligne, sinon 0 est fixé à la sortie de ligne. Les fonctions alternatives des broches du port P3 sont données dans le tableau. 7.1.3.

Caractéristiques des circuits des ports

En figue. 7.1.13 montre des schémas pour un canal de chacun des ports MK, notamment :

● verrou pour fixer le bit de données reçu ;

● amplificateur de sortie Cascade(conducteur);

● nœud connexion avecétage de sortie (sauf P2) ;

● un circuit de transmission d'un bit de données depuis le côté sortie du port, constitué des tampons B2 et B3 (pour le port P4). Le verrou est une bascule D, cadencée par le signal interne « Écriture sur verrou ». Le bit de données de la sortie directe de la bascule D peut être lu par programme via le tampon B1 en utilisant le signal « Read Latch » vers la ligne du bus de données interne (ID) du MK.

Étage de sortie le port P0 est un inverseur dont les caractéristiques se manifestent par le fait que le transistor de charge VT2 ne s'ouvre que lors de l'accès à la mémoire externe (lors de la transmission d'adresses et de données via le port). Dans tous les autres modes, le transistor de charge est fermé. Par conséquent, pour utiliser P0 (Fig. 7.1.13, a) comme port de sortie à usage général, il est nécessaire de connecter des résistances de charge externes à ses bornes. Lors de l'écriture de 1 sur le verrou du port, le transistor inverseur VT1 est verrouillé et la broche externe du port P0.X est commutée dans un état à haute résistance. Dans ce mode, la sortie du port P0.X peut servir d'entrée. Si le port P0 est utilisé comme port d'E/S à usage général, chacune de ses broches P0.X peut fonctionner indépendamment comme entrée ou sortie. Étages de sortie ports P1, P2, P3 (Fig. 7.1.13, b, c, d) réalisé selon des circuits inverseurs avec une résistance de charge interne, qui est utilisée comme transistor VT2.

Pour réduire le temps de commutation lorsque les broches du port passent de l'état 0 à l'état 1, un transistor supplémentaire VT3 a été introduit en parallèle avec le transistor de charge VT2. Le transistor VT3, utilisant des éléments du circuit de grille, est déverrouillé pendant un temps égal à deux périodes d'oscillation de l'oscillateur à quartz maître (pendant les phases S1P1, S2P2 du cycle machine). Étages de sortie les ports P0, P2 (Fig. 7.1.13, A, c) utilisant le multiplexeur MX peuvent être connectés soit à des verrous, soit aux bus internes « Adresse/données » et « Adresse ». L'étage de sortie du port P1 (Fig. 7.1.13, 6) est connecté en permanence au verrou.

Si la broche du port P3 est une sortie et que son verrou contient 1, alors son étage de sortie est contrôlé par le matériel. signal interne"Fonction de sortie alternative" assurant l'exécution de la fonction alternative correspondante, c'est-à-dire l'un des signaux ¯WR, ¯RD ou RxD est généré au niveau de la broche externe. Si la sortie du port est utilisée comme entrée, alors le signal alternatif qui y arrive (TxD, ¯INT0, ¯INT1, T0, T1) est transmis à la ligne interne « Fonction d'entrée alternative ».

Mode d'enregistrement des ports.

Lorsqu'une commande d'écriture de port est exécutée, la nouvelle valeur est écrite sur le verrou en phase S6P2 et sortie directement sur la broche de sortie du port en phase S1P1 du cycle machine suivant.

Mode de lecture des ports

Les commandes de lecture de port lisent les informations directement à partir des broches externes d'un port ou à partir des sorties de verrouillage. Dans le premier cas, le bit de données de la broche du port est lu par programme via le tampon B2 en utilisant le signal « Read Pins » vers la ligne du bus de données interne (SD) du MK. A noter que les signaux « Write to latch », « Read latch », « Read pins » sont générés matériellement lorsque les commandes correspondantes sont exécutées.

Dans le second cas, on met en œuvre le mode dit « Lecture-Modification-Ecriture », dans lequel la commande lit le signal d'état du verrou, le modifie si nécessaire, puis le réécrit dans le verrou. Le mode « Lecture-Modification-Écriture » est implémenté lors de l'exécution des commandes suivantes : ANL, ORL, XRL, JBC ; CPL ; INC ; DÉC; DJNC ; MOUVEMENT PX,Y ; CLR PXY.Y ; SETB PX,Y.

La lecture des informations à partir des sorties des verrous vous permet d'éliminer les erreurs lors de l'interprétation du niveau logique au niveau de la broche du port. Lisez la suite de l'article.

L'architecture de la famille MCS-51 est largement déterminée par son objectif : la construction compact Et bon marché appareils numériques. Toutes les fonctions du micro-ordinateur sont mises en œuvre à l'aide d'un seul microcircuit. La famille MCS-51 comprend toute une gamme de microcircuits depuis les microcontrôleurs les plus simples jusqu'aux plus complexes. Les microcontrôleurs de la famille MCS-51 vous permettent d'effectuer à la fois des tâches de contrôle pour divers appareils et de mettre en œuvre des composants individuels circuit analogique. Tous les microcircuits de cette famille fonctionnent avec le même système de commande, la plupart d'entre elles sont réalisées dans des cas identiques avec brochage correspondant(numérotation des pattes pour le corps). Cela vous permet d'utiliser des microcircuits de différents fabricants (tels que Intel, Dallas, Atmel, Philips, etc.) pour l'appareil développé. sans retouche diagramme schématique appareils et programmes.

Figure 1. Schéma fonctionnel du contrôleur K1830BE751

Le schéma fonctionnel du contrôleur est présenté à la figure 1. et se compose des principales unités fonctionnelles suivantes : unité de contrôle, unité arithmétique-logique, unité de minuterie/compteur, interface série et unité d'interruption, compteur de programme, mémoire de données et mémoire de programme. La communication bidirectionnelle s'effectue à l'aide d'un bus de données interne de 8 bits. Examinons de plus près le but de chaque bloc. Presque tous les membres de la famille MCS-51 sont construits selon ce schéma. Les différents microcircuits de cette famille ne diffèrent que par des registres spéciaux (y compris le nombre de ports). Système de commande tous les contrôleurs la famille MCS-51 en contient 111 commandes de base avec un format de 1, 2 ou 3 octets et ne change pas lors du passage d'une puce à l'autre. Cela garantit une excellente portabilité du programme d’une puce à l’autre.

Unité de contrôle et de synchronisation

L'unité de synchronisation et de contrôle est conçue pour générer des signaux de synchronisation et de contrôle qui assurent la coordination du fonctionnement conjoint des unités de l'ordinateur central dans tous les modes de fonctionnement autorisés. L'unité de contrôle comprend :

  • dispositif pour former des intervalles de temps,
  • logique d'entrée-sortie,
  • registre de commande
  • registre de gestion de l'énergie,
  • décodeur de commande, logique de contrôle informatique.

Dispositif pour former des intervalles de temps conçu pour générer et émettre des signaux d'horloge internes de phases, d'horloges et de cycles. Le nombre de cycles machine détermine la durée des instructions. Presque toutes les commandes informatiques sont exécutées en un ou deux cycles machine, à l'exception des instructions de multiplication et de division dont la durée d'exécution est de quatre cycles machine. Notons la fréquence de l'oscillateur maître par F g. La durée du cycle machine est alors égale à 12/F g soit 12 périodes du signal de l'oscillateur maître. La logique d'E/S est conçue pour recevoir et émettre des signaux qui assurent l'échange d'informations avec des périphériques externes via les ports d'entrée/sortie P0-P3.

Registre de commandes conçu pour enregistrer et stocker le code d'opération 8 bits de la commande en cours d'exécution. Le code d'opération, à l'aide de commandes et d'une logique de contrôle informatique, est converti en microprogramme pour exécuter la commande.

Registre de contrôle de la demande (PCON) vous permet d'arrêter le microcontrôleur pour réduire la consommation d'énergie et réduire le niveau d'interférence du microcontrôleur. Une réduction encore plus importante de la consommation d'énergie et des interférences peut être obtenue en arrêtant l'oscillateur maître du microcontrôleur. Ceci peut être réalisé en basculant les bits du registre de contrôle de consommation PCON. Pour l'option de fabrication n-MOS (série 1816 ou puces étrangères qui n'ont pas de « c » au milieu de leur nom), le registre de contrôle de consommation PCON ne contient qu'un seul bit qui contrôle le débit en bauds du port série SMOD, et il n'y a pas de bits de contrôle de la consommation d'énergie.

Avec l'article "Architecture des microcontrôleurs MCS-51", lire :


http://site/MCS51/tablms.php


http://site/MCS51/SysInstr.php


http://site/MCS51/port.php

Actuellement, diverses sociétés produisent de nombreuses modifications et analogues de cette famille, tant par Intel que par d'autres fabricants, la vitesse d'horloge et la capacité de mémoire ont décuplé et continuent d'augmenter. L'ensemble des modules intégrés au LSI est également en cours d'extension : un grand nombre de modèles modernes disposent d'un CAN résident haut débit intégré avec jusqu'à 12 bits, et maintenant il peut y en avoir plus. Mais la famille MCS51 est basée sur les Intel LSI 8051, 80С51, 8751, 87С51, 8031, 80С31, dont les premiers échantillons ont été publiés en 1980.

Les microcontrôleurs de la famille MCS51 sont fabriqués à l'aide de la technologie n-MOS de haute qualité (série 8ХХХ, analogique - série 1816 en Russie et en Biélorussie) et de la technologie k-MOS (série 8ХСХХ, analogique - série 1830). Le deuxième caractère après 8 signifie : 0 – il n'y a pas d'EPROM sur la puce, 7 – une EPROM 4K avec effacement ultraviolet. Troisième caractère : 3 – ROM sur puce, 5 – s'il n'y a pas de ROM, alors il y a une ROM de masque sur la puce.

Et donc 80С51 est un LSI basé sur la technologie k-MOS avec une ROM de masque sur la puce, 8031 ​​​​est un LSI n-MOS sans mémoire programme (ROM, RPOM) sur une puce, 8751 est un LSI n-MOS avec un résident (situé sur la puce) RPOM avec effacement ultraviolet. Nous examinerons plus en détail le LSI 8751, en faisant, si nécessaire, des réserves sur les différences entre les autres circuits, en citant les paramètres publiés pour les premiers LSI série. Si nécessaire, vous pouvez trouver des informations supplémentaires sur toutes les modifications modernes dans les annuaires d'entreprise et la documentation technique.

A. Caractéristiques générales et affectation des broches

La famille MCS51 est basée sur cinq modifications du MK (ayant des caractéristiques de base identiques), dont la principale différence réside dans la mise en œuvre de la mémoire programme et de la consommation électrique (voir tableau 3.1). Le microcontrôleur est à huit bits, c'est-à-dire possède des commandes pour traiter des mots de huit bits, possède une architecture Harvard, la fréquence d'horloge des échantillons de base de la famille est de 12 MHz.

Tableau 3.1.

Microcircuits

Mémoire de programme interne, octets

Type de mémoire programme

Mémoire de données interne, octet

Fréquence d'horloge, MHz

Consommation de courant, mA

Les MK 8051 et 80C51 contiennent une mémoire programme ROM programmable par masque d'une capacité de 4 096 octets pendant la fabrication de la puce et sont conçus pour être utilisés dans la production de masse. MK 8751 contient un RPOM de 4 096 octets avec effacement ultraviolet et est pratique au stade du développement du système lors du débogage de programmes, ainsi que lors de la production en petits lots ou lors de la création de systèmes nécessitant une réécriture pendant le fonctionnement.

ajustement périodique.

Les MK 8031 ​​​​​​et 80C31 ne contiennent pas de mémoire de programme intégrée. Comme les modifications décrites précédemment, elles peuvent utiliser jusqu'à 64 Ko de mémoire de programme externe et sont efficacement utilisées dans des systèmes qui nécessitent un volume nettement plus important (que 4 Ko sur la puce) de mémoire de programme ROM.

Chaque MK de la famille contient une mémoire de données résidente d'une capacité de 128 octets avec la possibilité d'étendre la quantité totale de données RAM jusqu'à 64 Ko grâce à l'utilisation de circuits intégrés RAM externes.

    processeur central à huit bits ;

    Mémoire programme de 4 Ko (8751 et 87C51 uniquement) ;

    Mémoire de données de 128 octets ;

    quatre ports d'E/S programmables à huit bits ;

    deux minuteries/compteurs multimodes 16 bits ;

    système d'interruption auto-vecteur avec cinq vecteurs et deux niveaux de priorité contrôlés par logiciel ;

    interface série, comprenant un émetteur-récepteur duplex universel capable de fonctionner selon quatre modes ;

    générateur d'horloge.

Le système de commandes MK contient 111 commandes de base avec un format de 1, 2 ou 3 octets. Le microcontrôleur possède :

    32 registres à usage général RON, organisés en quatre banques de huit registres portant chacune des noms R0... R7, le choix d'une banque ou d'une autre est déterminé par le programme en mettant les bits correspondants dans le registre d'état du programme PSW ;

    128 indicateurs contrôlés par logiciel (processeur de bits, voir ci-dessous) ;

    un ensemble de registres de fonctions spéciales qui contrôlent les éléments MK. Il existe les modes de fonctionnement suivants du microcontrôleur :

1). Réinitialisation générale. 2). Fonctionnement normal. 3).Mode faible consommation d’énergie et mode veille. 4). Mode de programmation pour RPOM résident, si disponible.

Ici, nous nous concentrerons sur les deux premiers modes de fonctionnement ; une description détaillée de la composition et du fonctionnement du MK dans tous les modes est donnée en annexe P1.

Le RON et la zone du processeur binaire sont situés dans l'espace d'adressage de la RAM résidente avec des adresses de 0 à 80h.

Dans la zone supérieure des adresses RAM résidentielles se trouvent des registres de fonctions spéciales (SFR, Special Function Registers). Leur objectif est donné dans le tableau. 3.2.

Tableau 3.2.

Désignation

Nom

Batterie

Registre B

Registre de l'état du programme

Pointeur de pile

Pointeur de données. 2 octets :

Octet faible

Octet de poids fort

Registre des priorités d'interruption

Registre d'activation des interruptions

Registre du mode minuterie/compteur

Registre de contrôle de minuterie/compteur

Minuterie/compteur 0. Octet de poids fort

Minuterie/compteur 0. Octet faible

Minuterie/compteur 1. Octet de poids fort

Minuterie/compteur 1. Octet faible

Contrôle du port série

Tampon série

Gestion des consommations

* - les registres, en permettant au niveau du bit adressage

Examinons brièvement les fonctions des registres SFR présentées dans le tableau 3.2.

Batterie ACC - registre accumulateur. Commandes conçues pour fonctionner

vous avec la batterie, utilisez le mnémonique "A", par exemple, MOV UN, P2 . Le mnémonique ACC est utilisé, par exemple, lors de l'adressage au niveau du bit d'un accumulateur. Ainsi, le nom symbolique du cinquième bit de l'accumulateur lors de l'utilisation de l'assembleur A5M51 sera le suivant : ACC. 5. .

Registre DANS . Utilisé lors des opérations de multiplication et de division. Pour d'autres instructions, le registre B peut être traité comme un registre temps réel supplémentaire.

Registre État programmes P.S.W. contient des informations sur l'état du programme et est installé en partie automatiquement en fonction du résultat de l'opération effectuée, et en partie par l'utilisateur. La désignation et le but des bits de registre sont donnés respectivement dans les tableaux 3.3 et 3.4.

Tableau 3.3.

Désignation

Tableau 3.4.

Désignation

Affectation des bits

Accès aux bits

Portez le drapeau. Modifications lors de l'exécution d'une série d'instructions arithmétiques et logiques.

Matériel ou logiciel

Drapeau de transport supplémentaire. Activé/effacé dans le matériel pendant les instructions d'addition ou de soustraction pour indiquer un report ou un emprunt dans le bit 3 lorsque le quartet le moins significatif du résultat (D0-D3) est généré.

Matériel ou logiciel

Indicateur 0. Indicateur défini par l'utilisateur.

Par programmation

Par programmation

Index bancaire du registre de travail

Par programmation

Banque 0 avec adresses (00Н - 07Н) Banque 1 avec adresses (08Н - 0FН) Banque 2 avec adresses (10Н - 17Н) Banque 3 avec adresses (18Н - 1FН)

Drapeau de débordement. Défini ou effacé par le matériel lors de l'exécution d'instructions arithmétiques pour indiquer une condition de débordement

Matériel ou logiciel

De rechange. Contient un déclencheur inscriptible et lisible qui peut être utilisé

Bit de parité. Réinitialisation ou configuration du matériel à chaque cycle d'instruction pour indiquer un nombre pair ou impair de bits de batterie à l'état "1".

Matériel ou logiciel

Aiguille empiler PS - Un registre de 8 bits dont le contenu est incrémenté avant d'écrire des données dans la pile lorsque les instructions PUSH et CALL sont exécutées. Lors de la réinitialisation initiale, le pointeur de pile est réglé sur 07H et la zone de pile dans la RAM de données commence à l'adresse 08H. Si nécessaire, en remplaçant le pointeur de pile, la zone de pile peut être située n'importe où dans la RAM interne des données du microcontrôleur.

Aiguille données DPTR se compose d'un octet de poids fort (DPH) et d'un octet de poids faible

(MPL). Contient une adresse de 16 bits lors de l'accès à la mémoire externe. Peut être utilisé

être soit un registre de 16 bits, soit deux registres indépendants de huit bits.

Port0 - PortZ. Les bits séparés des registres des fonctions spéciales P0, P1, P2, RZ sont les bits « verrous » des ports P0, P1, P2, RZ.

Tampon cohérent port SBUF représente deux registres distincts : le tampon émetteur et le tampon récepteur. Lorsque des données sont écrites sur le SBUF, elles entrent dans le tampon de l'émetteur et l'écriture d'un octet sur le SBUF lance automatiquement la transmission via le port série. Lorsque les données sont lues à partir de SBUF, elles sont extraites du tampon du récepteur.

Registres minuteur. Les paires de registres (TH0, TL0) et (TH1, TL1) forment 16

registres de comptage de bits pour le temporisateur/compteur 0 et le temporisateur/compteur 1, respectivement.

Registres gestion. Les registres des fonctions spéciales IP, IE, TMOD, TCON, SCON et PCON contiennent des bits de contrôle et des bits d'état du système d'interruption,

compteurs/compteurs et port série. Ils seront discutés en détail ci-dessous.

RxD TxD INT0 INT1 T0 T1 WR

P1.2 P1.3 P1.4 P1.5 P1.6 P1.7

RDV BQ2 BQ 1 E.A.

P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7

P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7

Lorsqu'il fonctionne, le MC fournit :

    le temps d'exécution minimum des commandes d'ajout est de 1 μs ;

    multiplication et division matérielle avec un temps d'exécution minimum de 4 μs.

Le MK offre la possibilité de régler la fréquence de l'oscillateur interne à l'aide de quartz, d'une chaîne LC ou d'un oscillateur externe.

Le système d'instructions étendu fournit un adressage d'octets et de bits, une arithmétique décimale binaire et binaire, une indication de débordement et une détermination paire/impaire, ainsi que la possibilité de mettre en œuvre un processeur logique.

La caractéristique la plus importante et la plus distinctive de l'architecture de la famille MCS51 est que l'ALU peut manipuler des données monobit en plus d'effectuer des opérations sur des types de données 8 bits. Les bits individuels accessibles par logiciel peuvent être définis, effacés ou remplacés par leur complément, peuvent être transmis, vérifiés et

Figure 3.2. Broches externes

microcontrôleur

utilisé dans les calculs logiques. Alors que la prise en charge des types de données simples (si disponible)

Même si la tendance actuelle vers des mots plus longs peut sembler à première vue un pas en arrière, cette qualité rend la famille de microcontrôleurs MCS51 particulièrement adaptée aux applications basées sur des contrôleurs. Les algorithmes de fonctionnement de ces derniers supposent la présence de variables booléennes d'entrée et de sortie, difficiles à mettre en œuvre à l'aide de microprocesseurs standards. Toutes ces propriétés sont collectivement appelées processeur booléen de la famille MCS51. Cette puissante ALU rend la famille de microcontrôleurs MCS51 adaptée à la fois aux applications de contrôle en temps réel et aux algorithmes gourmands en données.

Le schéma de circuit du microcontrôleur est présenté sur la figure. 3.2. Dans la version de base, il est conditionné dans un boîtier DIP à 40 broches. Regardons le but des épingles.

Commençons par les broches d'alimentation «0 DANS" Et "5 DANS" , grâce à laquelle il reçoit une nutrition de base. La consommation actuelle est indiquée dans le tableau. 3.1.

Conclusion "RST" - réinitialisation du microcontrôleur. Lorsqu'un niveau haut actif est appliqué à cette broche, le mode général réinitialiser et MK effectue les actions suivantes :

Met à zéro le compteur de programme PC et tous les registres de fonctions spéciales, à l'exception des verrous de port P0-P3, du pointeur de pile SP et du registre SBUF ;

    le pointeur de pile prend la valeur égale à 07H ;

    désactive toutes les sources d'interruption, le compteur de minuterie et la série

    sélectionne BANK 0 RAM, prépare les ports P0-RZ pour recevoir des données et déterminer

partage les broches ALE et PME comme entrées pour la synchronisation externe ;

      dans les registres fonctions spéciales Les bits réservés PCON, IP et IE prennent des valeurs aléatoires et tous les autres bits sont remis à zéro ;

      le registre SBUF est réglé sur des valeurs aléatoires.

      définit les verrous des ports P0-PZ sur "1".

Les états des registres du microcontrôleur après réinitialisation sont indiqués dans le tableau 3.5.

Tableau 3.5.

Information

Incertain

0ХХХ0000V pour k-MOS 0XXXXXXXB pour n-MOS

La broche RST a également une fonction alternative. Une alimentation de secours est fournie via celui-ci pour maintenir le contenu de la RAM du microcontrôleur inchangé lorsque la principale est retirée.

conclusions BQ1, BQ2 sont destinés à connecter un résonateur à quartz qui détermine la fréquence d'horloge du MK.

Conclusion EA` (E externe UN robe externe adresse) - conçu pour activer le mode de lecture des codes de contrôle à partir de la mémoire de programme externe lorsqu'un niveau bas actif est appliqué à cette broche. La sortie a un autre objectif (fonction). Il est alimenté en tension de programmation par le RPOM en mode programmation.

Conclusion PME (P. programme M emory E capable autorisation mémoire programmes) - est conçu pour contrôler le cycle de lecture de la mémoire du programme et est automatiquement activé par le MK à chaque cycle de la machine.

Conclusion ALE (UN robe L longueur E capable autorisation junior adresses) active la sortie de la partie de poids faible de l'adresse via le port P0. La sortie est également utilisée lors de la programmation du RPOM, tandis qu'une impulsion stroboscopique lui est fournie pour le processus de programmation.

Le MK contient quatre groupes de ports : P0, P1, P2 et P3. Ce sont les 40 broches restantes du microcontrôleur. Ces ports peuvent servir à l'entrée et à la sortie d'informations bit par bit, mais en plus, chacun d'eux a sa propre spécialisation. Un schéma fonctionnel généralisé du port est présenté sur la Fig. 3.3. Le port contient des commutateurs de sortie FET connectés à la broche, un commutateur de fonction, un verrou bascule D et une logique de contrôle. Une unité ou un zéro peut être écrit sur le verrou du bus interne du MK. Ces informations sont envoyées via le commutateur de fonction aux commutateurs de sortie et à la sortie du MK. Dans le premier état, les deux transistors N et N1 sont fermés, mais N2 est ouvert. A l'état zéro N s'ouvre-

Xia, et N2 se ferme. Dès qu'un port exécute une fonction alternative pour laquelle il est spécialisé, l'état de verrouillage de sortie est effacé. Le microcontrôleur peut lire séparément l'état du verrou du port et l'état de sa sortie, définis par un signal externe. A cet effet, l'assembleur MK contient des commandes spéciales qui activent les lignes correspondantes. Pour lire l'état de la broche dans le verrou du port correspondant, le

être pré-enregistré

De l'interne

Loquet de contrôle

Commutateur de fonction

VCC

Fin de semaine

unité. Lorsque la ligne « read latch » est activée, la sortie de la cellule « AND » à laquelle cette ligne est connectée apparaît.

ses pneus MK D Q

Écrire pour verrouiller C Q

Loquet de lecture

Broche de port

L'état du verrou est transmis au bus interne du MC lorsqu'il est activé

"sortie de lecture" - l'état de la broche externe du port.

Port P0 – port bidirectionnel universel

E/S Au-delà de ce port

la fonction d'organiser des bus d'adresses externes et

Riz. 3.3. Schéma fonctionnel du port du microcontrôleur

données pour étendre la mémoire du programme et la mémoire des données

microcontrôleur. Lorsque l'on accède à la mémoire de programme externe ou qu'une commande est exécutée pour accéder à la mémoire de données externe, la partie de poids faible de l'adresse (A0...A7) est définie au niveau des broches du port, qui est fermée au niveau haut de la broche ALE. Ensuite, lors de l'écriture des données en mémoire, les informations enregistrées depuis le bus interne du MK sont envoyées aux broches du port P0. Lors des opérations de lecture, au contraire, les informations des broches du port sont envoyées au bus interne. Une caractéristique du port P0 est l'absence d'un transistor « pull-up » N2, qui alimente la sortie. Lors de l'écriture sur le verrou du port de l'unité, il est simplement transféré dans un état à haute impédance, nécessaire au fonctionnement normal du bus de données. S'il est nécessaire d'alimenter des périphériques externes via la sortie, des résistances externes doivent être fournies entre les circuits d'alimentation et la sortie du port.

Port P1 – port E/S bidirectionnel universel sans fonctions alternatives.

Port P2 – un port E/S bidirectionnel universel, qui, comme fonction alternative, délivre la partie haute de l'adresse (A8...A15) lors de l'accès à la mémoire externe.

Port P3 – un port E/S bidirectionnel universel, dont chaque bit permet la mise en œuvre de diverses fonctions alternatives. Dans ce cas, les fonctions alternatives ne sont implémentées que si elles sont écrites sur les verrous des broches du port ; sinon, l'exécution des fonctions alternatives est bloquée. Listons-les séparément pour chaque bit :

P3.0 RxD (R. ead e X interne D manger, lire des données externes) – entrée de l’émetteur-récepteur série intégré.

P3.1 TxD (T ouais e X interne D mangé, transmettre des données externes) – sortie de l’émetteur-récepteur série intégré.

P3.2 INT0` (INTéruption, interruption) – entrée d'interruption externe 0.

P3.3 INT1` – entrée d'interruption externe 1.

P3.4 C/T0 – zéro entrée de minuterie/compteur intégrée.

P3.5 C/T1 – entrée du premier temporisateur/compteur intégré.

P3.6 WR` (W rite, write) – sortie pour contrôler le cycle d’écriture dans la mémoire de données.

P3.7 RD` (R. ead, read) – contrôle la sortie du cycle de lecture à partir de la mémoire de données.

Les broches des ports P1, P2 et P3 sont capables de délivrer un courant d'environ 0,2 mA par unité et de recevoir un courant de 3 mA à zéro ; les broches du port P0 sont plus puissantes et sont capables de délivrer un courant d'environ 0,8 mA. dans une unité et recevant un courant de 5 mA à zéro. De brèves informations sur le but des broches du microcontrôleur sont données dans le tableau 3.6.

Tableau 3.6.

Désignation

Objectif de sortie

Port bidirectionnel 8 bits P1. Entrée d'adresse A0-A7 lors de la vérification de la ROM interne (RPM)

entrée sortie

Signal de réinitialisation générale. Alimentation de secours de la RAM provenant d'une source externe (pour 1816)

Port P3 bidirectionnel 8 bits avec fonctionnalités supplémentaires

entrée sortie

Données série du récepteur - RxD

Données série du transmetteur - TxD

Entrée d'interruption externe 0-INT0`

Entrée d'interruption externe 1-INT1`

Entrée minuterie/compteur 0 : - T0

Entrée minuterie/compteur 1 : - T1

Sortie du signal stroboscopique lors de l'écriture dans la mémoire de données externe : - WR`

Sortie du signal stroboscopique lors de la lecture à partir de la mémoire de données externe – RD`

Câbles pour connecter un résonateur à quartz.

quitter l'entrée

Conclusion générale

Port bidirectionnel 8 bits P2. Adresse de sortie A8-A15 en mode mémoire externe. En mode de vérification de la ROM interne, les broches P2.0 à P2.6 sont utilisées comme entrée des adresses A8-A14. Broche P2.7 - Autorisation de lecture de la ROM.

entrée sortie

Résolution de la mémoire du programme

La fixation d'adresse active le signal de sortie. Lors de la programmation du signal RPOM : PROG

entrée sortie

Blocage du travail avec la mémoire interne. Lors de la programmation du RPOM, le signal UPR est donné

entrée sortie

Port bidirectionnel 8 bits P0. Bus d'adresses/données pour travailler avec la mémoire externe. Sortie de données D7-D0 en mode test ROM interne (RPM).

entrée sortie

Puissance de sortie à partir d'une source de tension +5 V

PLAN DE CONFÉRENCE

1. Introduction

2. Instructions arithmétiques et logiques

3. Commandes de transfert de données

4. Opérations booléennes

5. Instructions de saut

1. Introduction

Système de commande MCS-51 prend en charge un seul ensemble d'instructions, conçu pour exécuter des algorithmes de contrôle d'actionneur 8 bits. Il est possible d'utiliser des méthodes rapides pour adresser la RAM interne et effectuer des opérations binaires sur de petites structures de données. Il existe un système étendu pour traiter les variables à un seul bit en tant que type de données indépendant, qui permet l'utilisation de bits individuels dans les commandes logiques et de contrôle de l'algèbre booléenne.

Modes d'adressage  : ensemble de commandes MCS-51 prend en charge les modes d’adressage suivants. Adressage direct: L'opérande est déterminé par l'adresse 8 bits dans l'instruction. L'adressage direct est utilisé uniquement pour la moitié inférieure de la mémoire de données interne et des registres SFR. Adressage indirect: L'instruction adresse un registre contenant l'adresse de l'opérande. Ce type l'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 registres sélectionnée ou pointeur de pile PS. Pour l'adressage 16 bits, seul le registre de pointeur de données est utilisé DPTR.

Instructions d'inscription : registres R0 à R7 La banque de registres actuelle peut être adressée via des instructions spécifiques contenant un champ de 3 bits indiquant le numéro de registre dans l'instruction elle-même. Dans ce cas, le champ d'adresse correspondant est absent de la commande. Opérations utilisant des registres spéciaux: certaines instructions utilisent des registres individuels (par exemple, les opérations sur accumulateur, DPTR, etc.). Dans ce cas, l'adresse de l'opérande n'est pas du tout spécifiée dans la commande. Il est prédéterminé par le code d'opération.

Constantes immédiates : la constante peut être située directement dans la commande après l'opcode.

Adressage d'index : L'adressage d'index ne peut être utilisé que pour accéder à la mémoire programme et uniquement en mode lecture. Dans ce mode, les tables de la mémoire programme sont visualisées. Registre 16 bits ( DPTR ou compteur de programme) indique l'adresse de base de la table souhaitée, et l'accumulateur indique le point d'entrée dans celle-ci.

Ensemble de commandesdispose de 42 mnémoniques de commande pour préciser les 33 fonctions de ce système. La syntaxe de la plupart des instructions du langage assembleur consiste en une fonction mnémonique suivie d'opérandes indiquant les méthodes d'adressage et les types de données. Divers types les données ou les modes d'adressage sont déterminés par les opérandes définis, et non par des changements dans les mnémoniques.

Le système de commande peut être divisé en cinq groupes : instructions arithmétiques; commandes logiques ; commandes de transfert de données ; commandes de processeur de bits ; commandes de branchement et de transfert de contrôle. Les notations et symboles utilisés dans le système de commande sont indiqués ci-dessous.

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

Désignation, symbole

But

Batterie

Registres de la banque de registres actuellement sélectionnée

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

direct

Adresse de cellule de données interne de 8 bits directement adressable, qui peut être une cellule RAM de données interne (0 à 127) ou un registre de fonctions spéciales SFR (128 à 255)

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

8 bits direct données incluses dans le code opération (OPC)

donnéesH

Bits les plus significatifs (15 à 8) des données immédiates de 16 bits

donnéesL

Bits les moins significatifs (7–0) de données immédiates de 16 bits

Adresse de destination 11 bits

adresseL

Bits les moins significatifs de l'adresse de destination

Octet de décalage signé de 8 bits

Bit directement adressable dont l'adresse contient le COP situé dans la RAM de données interne ou dans le registre de fonctions spéciales SFR

a15, a14...a0

Bits d'adresse de destination

Contenu de l'élément X

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

Bit M de l'élément X


+

*
ET
OU
XOR
/X

Opérations :
ajout
soustraction
multiplication
Divisions
multiplication logique (opération ET)
addition logique (opération OU)
addition modulo 2 (OU exclusif)
inversion de l'élément X

Les mnémoniques de fonction sont associés de manière unique à des combinaisons spécifiques de méthodes d’adressage et de types de données. Au total, il existe 111 combinaisons de ce type possibles dans le système de commande.

2. Instructions arithmétiques et logiques

Comment p exemple instruction arithmétique, l'opération d'ajout peut être effectuée par l'une des commandes suivantes.

AJOUTERUN,7 F 16 – ajouter le chiffre 7 au contenu du registre A F 16 et stocker le résultat dans le registre A ;

AJOUTERUN,@ R.0 – ajouter au contenu du registre A le numéro dont l'adresse (@ – commercial à ) est stocké dans un registre R. 0 (adressage indirect), et stocke le résultat dans le registre A ;

AJOUTER A,R7– ajouter le contenu du registre A au contenu du registre R. 7 et sauvegardez le résultat dans le registre A ;

AJOUTER UN,#127– ajouter au contenu du registre A un numéro dont l'adresse de cellule de stockage est 127 ( # – symbole numérique) et enregistrez le résultat dans le registre T- concernant A.

Toutes les instructions arithmétiques sont exécutées en un seul cycle machine à l'exception de l'instruction INC DPTR(décalage du pointeur de données DPTRà l'octet suivant), nécessitant deux cycles machine, ainsi que des opérations de multiplication et de division effectuées en 4 cycles machine. N'importe quel octet de la mémoire de données interne peut être incrémenté et décrémenté sans utiliser de pile.

Instructions MUL AB effectue la multiplication (multiplication) des données de l'accumulateur par les données du registre B, en plaçant le produit dans les registres A (moitié basse) et B (moitié haute).

Instructions DIVAB divise (division) le contenu de l'accumulateur par la valeur du registre B, laissant le reste dans B et le quotient dans l'accumulateur.

Instructions DA A est destiné aux opérations arithmétiques décimales binaires (opérations arithmétiques sur les nombres représentés en code décimal binaire). Il ne convertit pas le nombre binaire en BCD, mais ne fournit le résultat correct que lors de l'addition de deux nombres décimaux binaires.

Exemple commande logique: Une opération ET logique peut être effectuée par l'une des commandes suivantes :

ANLUN,7 F 16 – multiplication logique du contenu du registre A par le nombre 7 F 16 et le résultat est stocké dans le registre A ;

ANLUN,@ R.1 – multiplication logique du contenu du registre A par le numéro dont l'adresse est stockée dans le registre R. 1 (adressage indirect), et stocke le résultat dans le registre A ;

ANL A, R6– multiplication logique du contenu du registre A par le contenu du registre R. 6, et sauvegardez le résultat dans le registre A ;

ANL A,#53 – multiplication logique du contenu du registre A par un nombre dont l'adresse de cellule de stockage est 53 16, et le résultat est stocké dans le registre A.

Toutes les opérations logiques sur le contenu de l'accumulateur sont effectuées en un cycle machine, le reste en deux. Les opérations logiques peuvent être effectuées sur l'un des 128 octets inférieurs de la mémoire de données interne ou sur n'importe quel registre SFR (registres de fonctions spéciales) en mode d'adressage direct sans utiliser de pile.

Les opérations de décalage rotatif RL A, RLC A, etc. déplacent le contenu de l'accumulateur d'un bit vers la droite ou vers la gauche. Dans le cas d'un décalage cyclique vers la gauche, le bit de poids faible est déplacé vers la position de poids fort. Dans le cas d'un décalage cyclique vers la droite, c'est l'inverse qui se produit.

Opération ÉCHANGER UNéchange les tétrades basses et hautes de la batterie.

3. Commandes de transfert de données

Équipe MOV destination, src vous permet de transférer des données entre des cellules RAM internes ou des zones de registre de fonctions spéciales SFR sans utiliser de batterie. Dans ce cas, le travail avec la moitié supérieure de la RAM interne ne peut être effectué qu'en mode d'adressage indirect, et l'accès aux registres SFR– uniquement en mode d'adressage direct.

Dans tous les microcircuits MCS-51 La pile est placée directement dans la mémoire de données résidente et grandit vers le haut. Instructions POUSSER incrémente d'abord la valeur dans le registre du pointeur de pile PS, puis écrit un octet de données sur la pile. Équipes POUSSER Et POPULAIRE ne sont utilisés qu'en mode d'adressage direct (écriture ou restauration d'un octet), mais la pile est toujours accessible en adressant indirectement via un registre PS. Ainsi, la pile peut également utiliser les 128 premiers octets de la mémoire de données. Les mêmes considérations excluent la possibilité d'utiliser des instructions de pile pour adresser des registres SFR.

Les instructions de transfert de données incluent une opération de transfert de 16 bits MOV DPTR,#données16, qui est utilisé pour initialiser le registre du pointeur de données DPTR lors de la visualisation de tables dans la mémoire programme ou pour accéder à la mémoire de données externe.

Opération XCH A, octet utilisé pour échanger des données entre l’accumulateur et l’octet adressé. Équipe XCHD A,@Ri similaire au précédent, mais n'est effectué que pour les tétrades inférieures impliquées dans l'échange d'opérandes.

Pour accéder à la mémoire de données externe, seul l'adressage indirect est utilisé. Dans le cas d'adresses à un octet, des registres sont utilisés R0 ou R1 banque de registres actuelle et pour 16 bits – registre de pointeur de données DPTR. Quelle que soit la méthode d'accès à la mémoire de données externe, la batterie joue le rôle de source ou de récepteur d'informations.

Pour accéder aux tables situées dans la mémoire programme, utilisez les commandes suivantes :

MOVCA,@A+ DPTR ;

MOVCA,@A+ PC .

Le contenu du registre de pointeur de données est utilisé comme adresse de base de la table DPTR ou PC(compteur de programme), et le décalage est pris à partir de UN. Ces instructions sont utilisées exclusivement pour lire des données dans la mémoire du programme, mais pas pour y écrire.

4. Opérations booléennes

Microcircuits MCS-51 contiennent un processeur « booléen ». La RAM interne dispose de 128 bits directement adressables. Espace de registre de fonction spéciale SFR peut également prendre en charge des champs jusqu'à 128 bits. Les instructions binaires effectuent des branchements conditionnels, des transferts, des réinitialisations, des inversions et des opérations ET et OU. Tous les bits spécifiés sont disponibles en mode d'adressage direct.

Mors de transport FC dans le registre des fonctions spéciales « mot d'état du programme » P.S.W." est utilisé comme accumulateur d'un bit pour un processeur booléen.

5. Instructions de saut

Les adresses des opérations de saut sont indiquées en langage assembleur par une étiquette ou par une valeur réelle dans l'espace mémoire du programme. Les adresses de branchement conditionnelles sont assemblées dans un décalage relatif - un octet de signe ajouté au compteur du programme PC si la condition de transition est remplie. Les limites de ces transitions se situent entre moins 128 et 127 par rapport au premier octet suivant l'instruction. Dans le registre des fonctions spéciales "mot d'état du programme" P.S.W." il n'y a pas de drapeau zéro, donc les instructions JZ Et JNZ vérifier la condition « égal à zéro » en testant les données dans l'accumulateur.

Il existe trois types de commandes de saut inconditionnel : SJMP, LJMP Et AJMP– des adresses de destination dont le format diffère. Instructions SJMP code l'adresse sous forme de décalage relatif et prend deux octets. La distance de saut est limitée à la plage de moins 128 à 127 octets par rapport à l'instruction suivante SJMP.

Dans les instructions LJMP L'adresse de destination est utilisée comme constante de 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 de 11 bits. La commande se compose de deux octets. Lorsque cette instruction est exécutée, les 11 bits inférieurs du compteur d'adresse sont remplacés par l'adresse de 11 bits de l'instruction. Les cinq bits les plus significatifs du compteur de programme PC restent inchangés. Ainsi, la transition peut s'effectuer à l'intérieur d'un bloc de 2 Ko dans lequel se trouve l'instruction qui suit l'instruction AJMP.

Il existe deux types d'appels de commande à un sous-programme : APPEL Et UN APPEL. Instructions APPEL 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 du programme. Instructions UN APPEL utilise une adresse de sous-programme de 11 bits. Dans ce cas, la routine appelée doit être située dans un seul bloc de 2 Ko avec l'instruction suivante UN APPEL. Les deux versions de l'instruction placent l'adresse de l'instruction suivante sur la pile et la chargent dans le compteur du programme. PC nouvelle valeur correspondante.

Le sous-programme se termine par l'instruction RETRAIT, qui permet de revenir à l'instruction suite à la commande APPEL. Cette instruction extrait l'adresse de retour de la pile et la charge dans le compteur du programme. PC . Instructions RÉTI utilisé pour revenir des routines d'interruption. La seule différence RÉTI depuis RETRAIT est-ce RÉTI informe le système que le traitement de l'interruption est terminé. Si au moment de l'exécution RÉTI il n'y a pas d'autres interruptions, alors c'est identique RETRAIT.

Instructions DJNZ conçu pour contrôler les cycles. Pour exécuter une boucle N une fois que vous devez charger un octet avec une valeur dans le compteur N et fermez le corps de la boucle avec la commande DJNZ, indiquant le début du cycle.

Équipe CJNE compare ses deux opérandes sous forme d'entiers non signés et passe à l'adresse qui y est spécifiée si les opérandes comparés ne sont pas égaux. Si le premier opérande est inférieur au second, alors le bit de report FC est réglé sur "1".

Toutes les instructions sous forme assemblée occupent 1, 2 ou 3 octets.

ARCHITECTURE DE LA FAMILLE DE MICROCONTRÔLEURSMCS-51

Notes de cours pour les cours

« Microprocesseurs dans les systèmes de contrôle », « Technologie des microprocesseurs »

"Outils et systèmes à microprocesseurs"

pour les étudiants de toutes les formes de spécialités d'études

072000 – Normalisation et certification

210200 – Automatisation des processus technologiques

230104 – Systèmes de conception assistée par ordinateur

Tambov 2005

INTRODUCTION.. 3

1. STRUCTURE DU MICROCONTRÔLEUR INTEL 8051. 3

1.1. Organisation de la mémoire. 5

1.2. Dispositif arithmétique-logique. 6

1.3. Mémoire résidente pour les programmes et les données. 7

1.4. Registres d’accumulateurs et à usage général. 8

1.5. Le registre des mots d'état du programme et ses indicateurs. 9

1.6. Registres de pointeur. dix

1.7. Registres de fonctions spéciales. onze

1.8. Dispositif de contrôle et de synchronisation. onze

1.9. Ports d’entrée/sortie d’informations parallèles. 12

1.10. Minuteries/compteurs. 13

1.11. Port série. 18

1.11.1. Enregistrer SBUF.. 18

1.11.2. Modes de fonctionnement du port série. 18

1.11.3. Enregistrer SCON.. 19

1.11.4. Vitesse de réception/transmission. 21

1.12. Système d'interruption. 22

2. SYSTÈME DE COMMANDE DU MICROCONTRÔLEUR INTEL 8051. 26

2.1. informations générales. 26

2.1.1. Types de commandes. 27

2.1.2. Types d'opérandes. 28

2.1.3. Méthodes d'adressage des données. trente

2.1.4. Indicateurs de résultat. 31

2.1.5. Adressage symbolique. 32

2.2. Commandes de transfert de données. 33

2.2.1. Structure des liens d'information. 33

2.2.2. Accéder à la batterie. 33

2.2.3. Accès à la mémoire de données externe. 34

2.2.4. Accès à la mémoire programme... 34


2.2.5. Accès à la pile. 35

2.3. Opérations arithmétiques. 35

2.4. Opérations logiques. 39

2.5. Commandes de transfert de contrôle. 43

2.5.1. Longue transition. 43

2.5.2. Transition absolue. 43

2.5.3. Transition relative. 44

2.5.4. Transfert indirect. 44

2.5.5. Sauts conditionnels.. 44

2.5.6. Sous-programmes.. 47

2.6. Opérations avec des bits. 48

Questions du test... 49

LITTÉRATURE.. 50

Annexe SYSTÈME DE COMMANDE INTEL 8051. 51

INTRODUCTION

Depuis les années 80 du 20e siècle, une classe indépendante a émergé dans la technologie des microprocesseurs circuits intégrés– des microcontrôleurs monopuce conçus pour être intégrés dans des appareils à diverses fins. Ils se distinguent de la classe des microprocesseurs monopuces par la présence d'une mémoire interne et de moyens développés d'interaction avec des périphériques externes.

Les microcontrôleurs monopuce 8 bits de la famille MCS-51 sont largement utilisés. Cette famille a été constituée sur la base du microcontrôleur Intel 8051, qui a acquis une grande popularité parmi les développeurs de systèmes de contrôle à microprocesseur en raison de son architecture bien conçue. L'architecture du microcontrôleur est un ensemble de ressources matérielles et de systèmes de commande internes et externes accessibles par logiciel.

Par la suite, Intel a publié environ 50 modèles basés sur le cœur de fonctionnement du microcontrôleur Intel 8051. Dans le même temps, de nombreuses autres sociétés, telles qu'Atmel et Philips, ont commencé à produire leurs propres microcontrôleurs développés selon la norme MCS-51. Il y a aussi analogique domestique Microcontrôleur Intel 8051 - Puce K1816BE51.

2. STRUCTURE DU MICROCONTRÔLEUR INTEL 8051

Le microcontrôleur Intel 8051 est basé sur la technologie n-MOS de haut niveau. Ses principales caractéristiques sont les suivantes :

· processeur central de huit bits optimisé pour la mise en œuvre de fonctions de contrôle ;

· générateur d'horloge intégré (fréquence maximale 12 MHz) ;

· Espace d'adressage de la mémoire du programme - 64 Ko ;

· Espace d'adressage de la mémoire de données - 64 Ko ;

· Mémoire de programme interne - 4 Ko ;

· Mémoire de données interne - 128 octets ;

· capacités supplémentaires pour effectuer des opérations d'algèbre booléenne (opérations au niveau du bit) ;

· 2 minuteries/compteurs multifonctionnels de seize bits ;

· émetteur-récepteur asynchrone full-duplex (port série) ;

· système d'interruption vectorielle avec deux niveaux de priorité et cinq sources d'événements.

Figure 1 - Schéma fonctionnel du microcontrôleur Intel 8051

La base du schéma fonctionnel (Fig. 1) est constituée d'un bus interne bidirectionnel de 8 bits, qui interconnecte les principaux nœuds et dispositifs du microcontrôleur : mémoire de programme résidente (RPM), mémoire de données résidente (RDM), arithmétique-logique (ALU), fonctions spéciales de l'unité de registre, unité de contrôle (CU), ports d'E/S parallèles (P0-P3), ainsi que des minuteries programmables et un port série.

2.1. Organisation de la mémoire

Ce microcontrôleur dispose d'une mémoire intégrée (résidente) et externe de programmes et de données. La mémoire de programme résidente (RPM) a une capacité de 4 Ko et la mémoire de données résidente (RDM) a une capacité de 128 octets.


Selon la modification du microcontrôleur, RPM est implémenté sous la forme d'une ROM de masque, d'une ROM programmable une fois ou reprogrammable.

Si nécessaire, l'utilisateur peut étendre la mémoire du programme en installant une ROM externe. L'accès à la ROM interne ou externe est déterminé par la valeur du signal sur la broche EA (External Access) :

EA=VCC (tension d'alimentation) - accès à la ROM interne ;

EA=VSS (potentiel de terre) - accès à la ROM externe.

La mémoire externe des programmes et des données peut atteindre 64 Ko chacune et être adressée via les ports P0 et P2. La figure 2 montre la carte mémoire Intel 8051.

Figure 2 - Organisation de la mémoire Intel 8051

Stroboscope de lecture de ROM externe - (Program Store Enable) est généré lors de l'accès à la mémoire de programme externe et est inactif lors de l'accès à la ROM située sur la puce.

La zone des adresses mémoire de programme inférieures (Fig. 3) est utilisée par le système d'interruption. L'architecture de la puce INTEL 8051 prend en charge cinq sources d'interruption. Les adresses auxquelles le contrôle d'interruption est transféré sont appelées vecteurs d'interruption.

Figure 3 - Carte de la zone mémoire programme inférieure

2.2. Unité arithmétique et logique

L'unité arithmétique et logique (ALU) de 8 bits peut effectuer les opérations arithmétiques d'addition, de soustraction, de multiplication et de division ; opérations logiques ET, OU, OU exclusif, ainsi que les opérations de décalage cyclique, de réinitialisation, d'inversion, etc. Des registres inaccessibles par logiciel T1 et T2, destinés au stockage temporaire des opérandes, un circuit de correction décimale (DCU) et un circuit de génération de caractéristiques sont connectés aux entrées résultat de l'opération (PSW).

L'opération d'addition simple est utilisée dans l'ALU pour incrémenter le contenu des registres, faire avancer le registre de pointeur de données (RAR) et calculer automatiquement la prochaine adresse mémoire résidente du programme. L'opération de soustraction la plus simple est utilisée dans l'ALU pour décrémenter les registres et comparer les variables.

Les opérations les plus simples forment automatiquement des « tandems » pour effectuer des opérations comme par exemple incrémenter des paires de registres de 16 bits. L'ALU implémente un mécanisme d'exécution en cascade d'opérations simples pour implémenter des commandes complexes. Ainsi, par exemple, lors de l'exécution de l'une des commandes de transfert de contrôle conditionnel, sur la base du résultat de la comparaison dans l'ALU, le compteur de programme (PC) est incrémenté trois fois, le RDM est lu deux fois, une comparaison arithmétique de deux variables est effectuée, une adresse de transition de 16 bits est formée et une décision est prise quant à savoir si la transition doit ou non être effectuée conformément au programme. Toutes les opérations ci-dessus sont effectuées en seulement 2 µs.

Une caractéristique importante de l'ALU est sa capacité à exploiter non seulement des octets, mais également des bits. Les bits individuels accessibles par logiciel peuvent être définis, effacés, inversés, transmis, testés et utilisés dans des opérations logiques. Cette capacité est assez importante, car pour contrôler les objets, on utilise souvent des algorithmes contenant des opérations sur des variables booléennes d'entrée et de sortie, dont la mise en œuvre est associée à certaines difficultés avec l'utilisation de microprocesseurs conventionnels.

Ainsi, l'ALU peut fonctionner avec quatre types d'objets d'information : booléen (1 bit), numérique (4 bits), octet (8 bits) et adresse (16 bits). L'ALU effectue 51 opérations différentes pour transmettre ou transformer ces données. Puisqu'il existe 11 modes d'adressage (7 pour les données et 4 pour les adresses), en combinant le fonctionnement et le mode d'adressage, le nombre de base de 111 instructions est étendu à 255 sur 256 possibles avec un opcode à un octet.

2.3. Programme résident et mémoire de données

La mémoire de programme (RPM) résidentielle (sur puce) et la mémoire de données (RDM) sont physiquement et logiquement séparées, ont des mécanismes d'adressage différents, fonctionnent sous le contrôle de différents signaux et remplissent différentes fonctions.

La mémoire du programme RPM a une capacité de 4 Ko et est conçue pour stocker des commandes, des constantes, des mots de contrôle d'initialisation, des tables de conversion des variables d'entrée et de sortie, etc. La mémoire dispose d'un bus d'adresse de 16 bits, à travers lequel l'accès est assuré depuis le Compteur de programme PC ou à partir du pointeur de données du registre (DPTR). DPTR fonctionne comme un registre de base pour les sauts de programme indirects ou est utilisé dans les opérations de table.

La mémoire de données RDM est conçue pour stocker des variables lors de l'exécution d'un programme d'application, est adressable par un octet et a une capacité
128 octets. De plus, son espace d'adressage est adjacent aux adresses des registres de fonctions spéciales, répertoriées dans le tableau. 1.

La mémoire du programme, tout comme la mémoire des données, peut être étendue à
64 Ko en connectant des puces externes.

Tableau 1

Bloc de registre de fonctions spéciales

Nom

Batterie

Registre d'extension d'accumulateur

Mot d'état du programme

Registre de pointeur de pile

Registre de pointeur de données

Registre des priorités d'interruption

Registre des masques d'interruption

Registre du mode minuterie/compteur

Contrôle de minuterie/registre d'état

Minuterie 0 (octet de poids fort)

Minuterie 0 (octet de poids faible)

Minuterie 1 (octet de poids fort)

Minuterie 1 (octet de poids faible)

Registre de contrôle de l'émetteur-récepteur

Tampon de l'émetteur-récepteur

Registre de contrôle de puissance

Note. Les registres dont les noms sont marqués d'un (*) permettent d'adresser des bits individuels.

2.4. Accumulateur et registres généraux

L'accumulateur (A) est la source de l'opérande et l'emplacement du résultat lors de l'exécution d'opérations arithmétiques, logiques et d'un certain nombre d'opérations de transfert de données. De plus, les opérations de décalage, la vérification du zéro, la génération d'un indicateur de parité, etc. ne peuvent être effectuées qu'à l'aide de l'accumulateur.

L'utilisateur dispose de quatre banques de 8 registres à usage général R0 à R7 (Fig. 9). Cependant, il est possible d'utiliser les registres d'une seule des quatre banques, sélectionnée à l'aide du bit de registre PSW.

2.5. Registre des mots d'état du programme et ses indicateurs

Lorsque de nombreuses instructions sont exécutées dans l'ALU, un certain nombre d'attributs d'opération (drapeaux) sont générés, qui sont enregistrés dans le registre des mots d'état du programme (PSW). Dans le tableau 2 fournit une liste de drapeaux PSW, donne leurs noms symboliques et décrit les conditions de leur formation.

Tableau 2

Format Word de statut du programme PSW

Nom et objectif

Portez le drapeau. Définir et réinitialiser par matériel ou logiciel lors de l'exécution d'opérations arithmétiques et logiques

Drapeau de transport auxiliaire. Activé et effacé uniquement par le matériel lorsque les instructions d'ajout et de soustraction sont exécutées et signale un report ou un emprunt dans le bit 3

Indicateur 0. Peut être défini, effacé ou vérifié par le programme en tant qu'indicateur spécifié par l'utilisateur.

Sélection d'une banque de registre. Définir et réinitialiser par logiciel pour sélectionner une banque de registres de travail (tableau 3)

Drapeau de débordement. Définir et réinitialiser par le matériel lors de l'exécution d'opérations arithmétiques

Non utilisé

Drapeau de parité. Régler et réinitialiser par le matériel à chaque cycle et fixer le nombre impair/pair d'un bit dans l'accumulateur, c'est-à-dire effectuer la parité

Tableau 3

Sélection d'une banque de registre de travail

Adresser les limites

L'indicateur PSW le plus « actif » est l'indicateur de report, qui est impliqué et modifié lors de nombreuses opérations, notamment l'addition, la soustraction et les décalages. De plus, l'indicateur de retenue (CY) fonctionne comme un « accumulateur booléen » dans les instructions de manipulation de bits. L'indicateur de débordement (OV) détecte le débordement arithmétique dans les opérations sur les entiers signés et permet d'utiliser l'arithmétique dans les codes complémentaires à deux. L'ALU ne contrôle pas les drapeaux de sélection de banque de registres (RS0, RS1), leur valeur est entièrement déterminée par le programme d'application et est utilisée pour sélectionner l'une des quatre banques de registres.

Sous forme d'octet, le registre PSW peut être représenté comme suit :

Dans les microprocesseurs dont l'architecture repose sur un accumulateur, la plupart des instructions opèrent sur l'accumulateur en utilisant un adressage implicite. L'Intel 8051 est différent. Bien que le processeur soit basé sur une batterie, il peut exécuter de nombreuses commandes sans sa participation. Par exemple, les données peuvent être transférées de n'importe quelle cellule RDM vers n'importe quel registre, n'importe quel registre peut être chargé avec un opérande immédiat, etc. De nombreuses opérations logiques peuvent être effectuées sans impliquer un accumulateur. De plus, les variables peuvent être incrémentées, décrémentées et vérifiées sans utiliser d'accumulateur. Les drapeaux et les bits de contrôle peuvent être vérifiés et modifiés de la même manière.

2.6. Registres de pointeurs

Le pointeur de pile (SP) 8 bits peut adresser n'importe quelle zone RDM. Son contenu est incrémenté avant que les données ne soient stockées sur la pile lors des instructions PUSH et CALL. Le contenu du SP est décrémenté après l'exécution des commandes POP et RET. Cette méthode d'adressage des éléments de la pile est appelée pré-incrémentation/post-décrémentation. Lors de l'initialisation du microcontrôleur, après le signal RST, le code 07H est automatiquement chargé dans le SP. Cela signifie qu'à moins que le programme d'application ne remplace la pile, le premier élément de données de la pile sera situé à l'emplacement RDM 08H.

Le registre de pointeur de données à deux octets DPTR est généralement utilisé pour capturer une adresse de 16 bits dans les opérations d'accès à la mémoire externe. Par commandes du microcontrôleur, le registre de pointeur de données peut être utilisé soit comme registre 16 bits, soit comme deux registres indépendants 8 bits (DPH et DPL).

2.7. Registres de fonctions spéciales

Les registres, symboliquement nommés IP, IE, TMOD, TCON, SCON et PCON, sont utilisés pour verrouiller et modifier par programme les bits de contrôle et d'état des circuits d'interruption, de la minuterie/compteur, de l'émetteur-récepteur série et de la gestion de l'alimentation. Leur organisation sera décrite en détail dans les sections 1.8 à 1.12, en considérant les fonctionnalités du microcontrôleur dans différents modes.

2.8. Dispositif de contrôle et de synchronisation

Un résonateur à quartz connecté aux broches externes du microcontrôleur contrôle le fonctionnement de l'oscillateur interne, qui génère à son tour des signaux de synchronisation. L'unité de contrôle (CU), sur la base de signaux de synchronisation, génère un cycle machine d'une durée fixe égale à 12 périodes génératrices. La plupart des instructions du microcontrôleur sont exécutées en un seul cycle machine. Certaines instructions qui fonctionnent sur des mots de 2 octets ou accèdent à la mémoire externe prennent deux cycles machine. Seules les instructions de division et de multiplication nécessitent quatre cycles machine. Sur la base de ces caractéristiques de fonctionnement du dispositif de contrôle, le temps d'exécution des programmes d'application est calculé.

Dans le circuit du microcontrôleur, un registre d'instructions (IR) est adjacent au dispositif de commande. Sa fonction est de stocker le code de la commande en cours d'exécution.

Signaux d'entrée et de sortie du dispositif de contrôle et de synchronisation :

1. PSEN – résolution de la mémoire du programme,

2. ALE-la fixation d'adresse active le signal de sortie,

3. PROG – signal de programmation,

4. EA – blocage du travail avec la mémoire interne,

5. VPP – tension de programmation,

6. RST – signal de réinitialisation générale,

7. VPD – puissance de sortie de sauvegarde de la mémoire de source externe,

8. XTAL – entrées de connexion résonateur à quartz.

2.9. Ports d'entrée/sortie parallèles

Les quatre ports (P0-P3) sont conçus pour entrer ou sortir des informations octet par octet. Chaque port contient un registre à verrouillage contrôlé, un tampon d'entrée et un pilote de sortie.

Les pilotes de sortie des ports P0 et P2, ainsi que le tampon d'entrée du port P0, sont utilisés lors de l'accès à la mémoire externe. Dans ce cas, via le port P0 en mode multiplexage temporel, l'octet de poids faible de l'adresse est d'abord émis, puis l'octet de données est émis ou reçu. Le port P2 génère l'octet de poids fort de l'adresse dans les cas où la largeur de l'adresse est de 16 bits.

Toutes les broches du port P3 peuvent être utilisées pour implémenter les fonctions alternatives répertoriées dans le tableau. 4. Ces fonctions peuvent être activées en écrivant 1 dans les bits correspondants du registre à verrouillage (P3.0-P3.7) du port P3.

Tableau 4

Fonctions alternatives du port P3

Nom et objectif

En lisant. Un signal actif de bas niveau est généré par le matériel lors de l'accès à la mémoire de données externe

Enregistrer. Un signal actif de bas niveau est généré par le matériel lors de l'accès à la mémoire de données externe

Entrée minuterie/compteur 1 ou entrée test

Entrée minuterie/compteur 0 ou entrée test

Entrée de demande d'interruption 1. Détecte un niveau bas ou un signal de coupure

Entrée de demande d'interruption 0. Détecte un niveau bas ou un signal de coupure

Sortie de l'émetteur du port série en mode UART. Sortie d'horloge en mode registre à décalage

Entrée du récepteur du port série en mode UART. Entrée/sortie de données en mode registre à décalage

Le port 0 est bidirectionnel et les ports 1 à 3 sont quasi-bidirectionnels. Chaque ligne de port peut être utilisée indépendamment pour l'entrée ou la sortie.

Sur la base du signal RST, les unités sont automatiquement écrites dans les registres à verrouillage de tous les ports, les configurant ainsi pour le mode d'entrée.

Tous les ports peuvent être utilisés pour organiser l’entrée/sortie d’informations via des lignes de transmission bidirectionnelles. Toutefois, les ports P0 et P2 ne peuvent pas être utilisés à cet effet si le système dispose d'une mémoire externe avec laquelle la communication est organisée à travers un bus commun d'adresses/données partagées fonctionnant en mode multiplexage temporel.

L'accès aux ports d'E/S est possible à l'aide de commandes qui opèrent sur un octet, un bit individuel ou une combinaison arbitraire de bits. De plus, dans les cas où le port est à la fois un opérande et la destination du résultat, le dispositif de contrôle met automatiquement en œuvre un mode spécial appelé « lecture-modification-écriture ». Ce mode d'accès implique l'entrée de signaux non pas à partir des broches externes du port, mais à partir de son registre à verrouillage, ce qui élimine une lecture incorrecte des informations précédemment émises. Ce mécanisme d'accès aux ports est implémenté dans les commandes :




Haut