Le registre qui contrôle le mode de fonctionnement du port série est SCON, qui est le registre de contrôle du port série ; SCON est utilisé pour contrôler la sélection, la réception et la transmission des méthodes de communication série, et indique l'état du port série. peut être soit adressable par octet, soit adressable par bit, l'adresse d'octet est "98H" et les bits d'adresse sont "98H ~ 9FH".
L'environnement d'exploitation de ce tutoriel : système Windows 10, ordinateur DELL G3.
SCON (Serial Control Register), qui est utilisé pour contrôler la sélection. des méthodes de communication série. Réception et envoi, indiquant l'état du port série. SCON peut être adressable par octet ou par bit. Son adresse d'octet est 98H et les bits d'adresse sont 98H ~ 9FH.
Structure :
Mode de fonctionnement (SM0 SM1)
(1) Mode 0 (SM0 SM1:0 0) : Le mode de fonctionnement 0 du port série est le mode E/S du registre à décalage , Il peut être connecté à un registre à décalage externe, à un port d'E/S d'extension ou à un périphérique d'E/S synchrone externe. Opération d'envoi : lors de l'exécution d'une instruction "MOVSBUF,A", l'opération d'envoi est lancée, l'impulsion de décalage est émise par TXD et les données dans SBUF sont sérialisées par RXD. Après l'envoi de données 8 bits, TI=1 est automatiquement défini et une interruption est demandée. Pour continuer l'envoi, TI doit être effacé par une instruction. Opération de réception : REN est le bit de contrôle d’activation de la réception du port série. Lorsque REN=0, la réception est interdite ; lorsque REN=1, la réception est autorisée. Lorsque le logiciel définit REN sur "1", il commence à entrer des données depuis le port RXD au débit fosc/12 bauds. Lorsque des données de 8 bits sont reçues, l'indicateur d'interruption RI est défini sur "1". Avant de recevoir à nouveau des données, RI doit être remis à 0 par logiciel.
(2) Mode 1 (SM0 SM1:0 1) : Le port série est une interface asynchrone universelle 10 bits. Une trame d'informations de données envoyées ou reçues est composée de 10 bits, dont 1 bit de démarrage "0", 8 bits de données et 1 bit d'arrêt "1". Envoyer des données : les données sont émises depuis le port TXD. Lorsque les données sont écrites dans le tampon d'envoi SBUF, l'émetteur commence à envoyer. Après avoir envoyé une trame de données, définissez l'indicateur d'interruption TI = 1, demandez une interruption et informez la CPU que les données suivantes peuvent être envoyées. Recevoir des données : définissez d'abord REN = 1 (autoriser la réception de données), le port série reçoit des données de RXD, lorsque l'échantillon passe de 1 à 0, il est confirmé que le bit de départ est "0" et une trame de données commence à être reçue Lorsqu'une trame de données est terminée, définissez l'indicateur d'interruption RI = 1, demandez une interruption et informez la CPU de prendre les données reçues de SBUF. (3) Mode 2 (SM0 SM1:1 0) : Le port série est une interface de communication asynchrone 11 bits. L'envoi ou la réception d'une trame d'informations comprend 1 bit de démarrage "0", 8 bits de données, 1 bit programmable et 1 bit d'arrêt "1". Envoi de données : avant l'envoi, réglez TB8 sur « bit de parité » ou « bit d'identification de données » par logiciel selon le protocole de communication, puis écrivez les données à envoyer dans SBUF pour démarrer l'émetteur. Le processus de transmission est démarré en exécutant n'importe quelle instruction avec SBUF comme registre de destination, en chargeant des données de 8 bits dans SBUF, et en chargeant également TB8 dans le 9ème bit du registre à décalage de transmission, puis en commençant à partir de TXD (P3.1) Le port génère une trame de données. Réception de données : définissez d'abord REN=1 pour permettre au port série de recevoir des données, puis effacez également RI sur "0". Ensuite, sur la base de l'état de SM2 et de l'état du RB8 reçu, il est décidé si le port série définit RI=1 après l'arrivée des informations et demande une interruption pour notifier à la CPU de recevoir les données. Lorsque SM2=0, que RB8 soit « 0 » ou « 1 », RI=1 est défini et ce port série recevra les informations envoyées. Lorsque SM2=1 et RB8=1, cela signifie que dans le cas d'une communication multi-machines, les informations reçues sont une « trame d'adresse ». A ce moment, définissez RI=1, et le port série recevra l'adresse envoyée. Lorsque SM2=1 et RB8=0, cela signifie que dans le cas d'une communication multi-machines, l'information reçue est une "trame de données", mais elle n'est pas envoyée à l'esclave. A ce moment, RI n'est pas réglé sur ". 1", donc les informations reçues dans SBUF La trame de données sera perdue. (4) Mode 3 (SM0 SM1:1 1) : Il s'agit d'un mode de communication asynchrone 11 bits avec un débit en bauds variable, à l'exception de la différence de débit en bauds, les autres modes sont les mêmes que le mode 2. Pour plus de connaissances connexes, veuillez visiter la rubriqueFAQ
!Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!