Welches Register steuert die Funktionsweise der seriellen Schnittstelle?
Das Register, das den Arbeitsmodus der seriellen Schnittstelle steuert, ist das SCON-Steuerregister, das zur Steuerung der Auswahl, des Empfangs und der Übertragung serieller Kommunikationsmethoden verwendet wird und den Status der seriellen Schnittstelle anzeigt kann entweder byteadressierbar oder bitadressierbar sein, die Byteadresse ist „98H“ und die Adressbits sind „98H~9FH“.
Die Betriebsumgebung dieses Tutorials: Windows 10-System, DELL G3-Computer.
Welches Register steuert den Arbeitsmodus der seriellen Schnittstelle? Das Register, das den Arbeitsmodus der seriellen Schnittstelle steuert, ist SCON
SCON (Serial Control Register), ein Steuerregister für die serielle Schnittstelle, das zur Steuerung der Auswahl verwendet wird der seriellen Kommunikationsmethoden Empfangen und Senden, die den Status des seriellen Ports anzeigen. SCON kann entweder byteadressierbar oder bitadressierbar sein. Seine Byteadresse ist 98H und die Adressbits sind 98H~9FH.
Struktur:
Arbeitsmodus (SM0 SM1)
(1) Modus 0 (SM0 SM1:0 0): Der Arbeitsmodus 0 der seriellen Schnittstelle ist der Schieberegister-E/A-Modus , Es kann an ein externes Schieberegister, einen Erweiterungs-E/A-Port oder ein externes synchrones E/A-Gerät angeschlossen werden. Sendevorgang: Beim Ausführen einer „MOVSBUF,A“-Anweisung wird der Sendevorgang gestartet, der Schiebeimpuls wird von TXD ausgegeben und die Daten in SBUF werden von RXD serialisiert. Nach dem Senden von 8-Bit-Daten wird automatisch TI=1 gesetzt und ein Interrupt angefordert. Um mit dem Senden fortzufahren, muss TI durch eine Anweisung freigegeben werden. Empfangsvorgang: REN ist das Steuerbit für die Empfangsfreigabe der seriellen Schnittstelle. Bei REN=0 ist der Empfang verboten; bei REN=1 ist der Empfang erlaubt. Wenn die Software REN auf „1“ setzt, beginnt sie mit der Eingabe von Daten vom RXD-Port mit der Baudrate fosc/12. Wenn 8-Bit-Daten empfangen werden, wird das Interrupt-Flag RI auf „1“ gesetzt. Bevor erneut Daten empfangen werden, muss RI per Software auf 0 zurückgesetzt werden.
(2) Modus 1 (SM0 SM1:0 1): Der serielle Port ist eine universelle asynchrone 10-Bit-Schnittstelle. Ein Rahmen gesendeter oder empfangener Dateninformationen besteht aus 10 Bits, einschließlich 1 Startbit „0“, 8 Datenbits und 1 Stoppbit „1“. Daten senden: Daten werden vom TXD-Port ausgegeben. Wenn die Daten in den Sendepuffer SBUF geschrieben werden, wird der Sender mit dem Senden begonnen. Setzen Sie nach dem Senden eines Datenrahmens das Interrupt-Flag TI = 1, beantragen Sie einen Interrupt und benachrichtigen Sie die CPU, dass die nächsten Daten gesendet werden können. Daten empfangen: Stellen Sie zunächst REN = 1 ein (Empfang von Daten zulassen). Wenn ein Datenrahmen abgeschlossen ist, setzen Sie das Interrupt-Flag RI=1, beantragen Sie einen Interrupt und benachrichtigen Sie die CPU, die empfangenen Daten von SBUF zu übernehmen. (3) Modus 2 (SM0 SM1:1 0): Der serielle Port ist eine asynchrone 11-Bit-Kommunikationsschnittstelle. Das Senden oder Empfangen eines Informationsrahmens umfasst 1 Startbit „0“, 8 Datenbits, 1 programmierbares Bit und 1 Stoppbit „1“. Senden von Daten: Stellen Sie TB8 vor dem Senden zunächst per Software entsprechend dem Kommunikationsprotokoll auf „Paritätsbit“ oder „Datenidentifikationsbit“ ein und schreiben Sie dann die zu sendenden Daten in SBUF, um den Sender zu starten. Der Übertragungsprozess wird gestartet, indem ein beliebiger Befehl mit SBUF als Zielregister ausgeführt wird, 8-Bit-Daten in SBUF geladen werden und TB8 auch in das 9. Bit des Übertragungsschieberegisters geladen wird, und dann von TXD (P3.1) aus gestartet wird gibt einen Datenrahmen aus. Daten empfangen: Setzen Sie zuerst REN=1, um den seriellen Port zum Empfangen von Daten zu aktivieren, und setzen Sie außerdem RI auf „0“. Anschließend wird basierend auf dem Status von SM2 und dem Status des empfangenen RB8 entschieden, ob der serielle Port nach Eintreffen der Informationen RI = 1 setzt und einen Interrupt beantragt, um die CPU über den Empfang der Daten zu informieren. Wenn SM2=0 ist, ist RI=1 gesetzt, unabhängig davon, ob RB8 „0“ oder „1“ ist, und dieser serielle Port empfängt die gesendeten Informationen. Wenn SM2 = 1 und RB8 = 1, bedeutet dies, dass bei der Kommunikation mit mehreren Maschinen die empfangenen Informationen „Adressrahmen“ sind. Stellen Sie zu diesem Zeitpunkt RI = 1 ein und die serielle Schnittstelle empfängt die gesendete Adresse. Wenn SM2 = 1 und RB8 = 0, bedeutet dies, dass es sich bei der Kommunikation mit mehreren Maschinen um einen „Datenrahmen“ handelt, der jedoch nicht an den Slave gesendet wird. Zu diesem Zeitpunkt ist RI nicht auf „ gesetzt. 1", daher gehen die empfangenen Informationen im SBUF verloren. Der Datenrahmen geht verloren. (4) Modus 3 (SM0 SM1:1 1): Es handelt sich um einen asynchronen 11-Bit-Kommunikationsmodus mit variabler Baudrate. Bis auf den Unterschied in der Baudrate sind die anderen Modi dieselben wie Modus 2. Weitere Informationen zu diesem Thema finden Sie in der Spalte „FAQ“!
Das obige ist der detaillierte Inhalt vonWelches Register steuert die Funktionsweise der seriellen Schnittstelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Das Register, das die Offset-Adresse im Codesegment speichert, ist: das Befehlszeigerregister. Das Befehlszeigerregister IP wird verwendet, um die Ausführungssequenz von Befehlen im Programm zu steuern. Während des normalen Betriebs enthält IP die Offset-Adresse des nächsten Befehls (Byte), der von der BIU abgerufen werden soll Einmal aus dem Speicher, wird die IP automatisch um 1 erhöht, um die sequentielle Ausführung von Anweisungen sicherzustellen.

Die Go-Sprache optimiert die Leistung, indem sie die direkte Steuerung von CPU-Registern durch Assembleranweisungen ermöglicht: Register sind temporäre Orte in der CPU, an denen Daten gespeichert werden. Die Go-Sprache stellt Assembleranweisungen über das ASM-Paket bereit, mit denen auf x86- und ARM-Register zugegriffen werden kann. Assembleranweisungen vermeiden den Speicherzuweisungsaufwand von Iteratoren und verbessern die Schleifenleistung. Bei der Verwendung von Montageanleitungen ist aufgrund von Plattform- und Systemabhängigkeiten, potenziellen Programmabsturzrisiken und dem Prinzip „Nur bei Bedarf verwenden“ Vorsicht geboten.

In der Programmiersprache C gibt es vier Speicherklassen, nämlich: autoexternstaticregister. Das Schlüsselwort der Registervariablen lautet register. Der Wert einer Registervariablen wird im Register der CPU gespeichert und nicht im Speicher, wo gewöhnliche Variablen gespeichert sind. Register sind temporäre Speichereinheiten in der CPU. Sie ermöglichen Registervariablen schnellere Zugriffszeiten als gewöhnliche Variablen. Beispiel 1 Das Folgende ist die Registerspeicherklasse des C-Programms: Demonstration #include<stdio.h>main(){ registerinti;&

Die Go-Sprache ermöglicht den Zugriff auf und Operationen an Registern durch Assembler-Inlining. Die Programmleistung kann durch die Verwendung von Registern wie Ganzzahlregistern, Gleitkommaregistern und Vektorregistern erheblich verbessert werden. Anhand einer praktischen Falldemonstration der Optimierung ganzzahliger Multiplikationsoperationen zeigt dieser Artikel, wie Register für effiziente Low-Level-Operationen verwendet werden, um schnellere Go-Anwendungen zu erstellen.

Das Register, das den Arbeitsmodus der seriellen Schnittstelle steuert, ist das Steuerregister der seriellen Schnittstelle. Es dient zur Steuerung der Modusauswahl, des Empfangs und der Übertragung der seriellen Kommunikation und zeigt den Status der seriellen Schnittstelle an Sowohl die byteadressierte als auch die bitadressierte Adresse ist „98H“ und die Adressbits sind „98H~9FH“.

Es wird als „Register“ bezeichnet. Register sind kleine Speicherbereiche, die zum Speichern von Daten innerhalb der CPU verwendet werden. Sie werden zum vorübergehenden Speichern von Daten und Operationsergebnissen verwendet, die an Operationen beteiligt sind. Die Funktion des Registers besteht darin, Binärcodes zu speichern, die aus Flip-Flops mit Speicherfunktionen bestehen. Ein Flip-Flop kann 1-Bit-Binärcode speichern. Daher benötigt ein Register, das n-Bit-Binärcodes speichert, n Flip-Flops.

Die Go-Sprache bietet eine begrenzte Kontrolle über Register und ermöglicht so Optimierungen auf niedriger Ebene. Assembleranweisungen (MOVQ, MOVL, MOVB, ADDQ, SUBQ) können zur Steuerung von Registern verwendet werden, sie müssen jedoch mit Vorsicht verwendet werden, um zu vermeiden, dass Registerverweise im Garbage-Collection-Mechanismus beschädigt werden. Darüber hinaus erfordert die Verwendung von Assembleranweisungen Kenntnisse der Assemblersprache und ist plattformabhängig.

Die Go-Sprache kann Register nicht direkt steuern. Die Go-Sprache ist in ihrer Fähigkeit, auf Register zuzugreifen, eingeschränkt, da das Designziel der Go-Sprache darin besteht, eine sicherere und benutzerfreundlichere Programmierumgebung bereitzustellen, anstatt direkt auf Hardware zuzugreifen. Obwohl die Register nicht direkt gesteuert werden können, stehen einige Mechanismen zur Interaktion mit der Hardware zur Verfügung. Entwickler können diese Schnittstellen verwenden, um mit externen Geräten zu kommunizieren und deren Verhalten zu steuern. Die Go-Sprache bietet auch einige Low-Level-Programmierfunktionen, um die Einschränkungen des Typsystems zu umgehen und direkt auf den Speicher zuzugreifen.