7.2.3. Beispiel UART-Konfiguration
Angenommen, Sie haben die Konfiguration des UART-Bit Übertragung von Daten im Modus 1 (8-Bit-UART) mit einer Geschwindigkeit von 9600 Baud, 1 Stopp. Haben Sie die folgenden Schritte befolgen:
Konfiguration 1, Timer 1
Die TMOD Register soll Autoreload Modus und Timer.
MSB | | | | | | | LSB |
GATE | C / T | M1 | M0 | GATE | C / T | M1 | M0 |
0 | 0 | 1 | 0 | x | x | x | x |
Timer 1 | Timer 0 |
- GATE = 0 Internal Control
- C / T = 0-Modus Timer
- M1, M0 = 1, 0 8-Bit Counter Auto-Recharge
Im Datensatz TCOM Flaggenstaatkontrolle von TR1. TR1 Bit startet den Timer und ermöglicht den UART zu arbeiten, so ist es am besten, dieses Bit am Ende der Konfiguration als Kontrolle verwendet zu starten oder zu stoppen Kommunikation zu ermöglichen.
2 ° Stellen Sie die Übertragungsgeschwindigkeit.
Nach der Häufigkeit des Mikrocontrollers setzt den Wert der Zähler TL1 und TH1-Register. Mit Blick auf die Übertragungsgeschwindigkeit Tabelle in Absatz 7.1, für 9600 Baud mit einem Kristall von 11.0592 MHz Zählerwert FDH.
3 º UART Einstellungen
In SCON Register gesetzt UART-Modus 1 ermöglicht den Empfang mit REN = 1, legt den Zustand Fahnen TB8, Tb8, 0 und TI unterbrechen Flan, RI auf 0 setzen.
MSB | | | | | | | LSB |
SM0 | SM1 | SM2 | REN | TB8 | Tb8 | IT | RI |
0 | 1 | 0 | 1 | 0 | 0 | 0 | 0
|
- SM0, SM1, SM2 = 0, 1, 0 Mode 1 8-Bit-UART
- REM = 1 ermöglicht den Empfang
- TB8, Tb8 = 0, 0 nicht genutzt in diesem
- TI = 0 Übertragung Flagge
- RI = 0 Erhalte Flagge
Konfigurationsbeispiel in Assembler.
;-----------------------------------
; Iniciar el puerto serie
;-----------------------------------
InitSerial: ORL TMOD,#00100000B ; Timer 1 en modo 2 (auto recarga)
MOV TL1,#0FDH ; Velocidad de 9600 Bauds
MOV TH1,#0FDH
MOV SCOM,#50H ; Configuración de la UART en modo 2
SETB TR1 ; Arrancar el Timer1 y la UART
RET
C. Beispiel für die Konfiguration
//---------------------------------------
/ / Start des seriellen Ports
//---------------------------------------
InitSerial void (void) {
TMOD | = 0x20 / / Timer 1 im Modus 2 (Autoreload)
TL1 = 0xFD / / 9600 Baud-Rate
TH1 = 0xFD;
SCON = 0x50, / / UART Setup-Modus 2
TR1 = 1, / / Start Timer1 und UART
}