User: alciro    User
 Original    Translate to:  Deutsch  English  Français  中文  
 

Microcontroladores 8051

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

} 
Loading
copyright © 2007-2024  www.alciro.org  All rights reserved.         
Share |