7.2.3. Exemple de configuration UART
Supposons que vous ayez à configurer l'UART pour transmettre des données en mode 1 (8 bits UART) avec une vitesse de 9600 bauds, 1 bit d'arrêt. A suivre les étapes suivantes:
Configuration 1, TIMER 1
Le registre TMOD est réglé sur Auto Reload mode et le temporisateur.
MSB | | | | | | | LSB |
GATE | C / T | M1 | M0 | GATE | C / T | M1 | M0 |
0 | 0 | 1 | 0 | x | x | x | x |
Timer 1 | Minuteur de 0 |
- GATE = 0 contrôle interne
- C / T = 0 mode Minuterie
- M1, M0 = 1, 0 8 bits Auto Counter-recharge
Dans le record de contrôle TCOM État du pavillon du TR1. peu TR1 démarre le minuteur et permet à l'UART de travailler, il est donc préférable de permettre ce bit à la fin de la configuration utilisée comme contrôle pour démarrer ou arrêter des communications.
2 ° Régler la vitesse de communication.
Selon la fréquence du microcontrôleur définit la valeur des compteurs de TL1 et TH1 registres. En regardant le tableau vitesse de communication dans le paragraphe 7.1, pour 9600 bauds avec un cristal de 11,0592 MHz valeur du compteur est FDH.
3 º Les UART
En SCON registre est mis en mode UART 1 permet la réception avec REN = 1, définit l'indicateur de l'état TB8, Rb8, 0 et TI flan interrompre, RI à 0.
MSB | | | | | | | LSB |
SM0 | SM1 | SM2 | REN | TB8 | Rb8 | IT | RI |
0 | 1 | 0 | 1 | 0 | 0 | 0 | 0
|
- SM0, SM1, SM2 = 0, 1, 0 Mode 1-bit 8 UART
- REM 1 = Permet la réception de
- TB8, Rb8 = 0, 0 non utilisé de cette façon
- TI = 0 Drapeau de transmission
- 0 = RI reçoivent un drapeau
Exemple de configuration en assembleur.
;-----------------------------------
; 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
Exemple de configuration C.
//---------------------------------------
/ / Démarre le port série
//---------------------------------------
void InitSerial (void) {
TMOD | = 0x20 / / Timer 1 en mode 2 (rechargement automatique)
TL1 = 0xFD / / un débit de 9600
TH1 = 0xFD;
SCON = 0x50, / / Setup UART mode 2
TR1 = 1, / / Start Timer1 et UART
}