¿Como hacer doble comunicacion serial en mikroc con pic18f25k22?

Estoy haciendo un codigo para realizar dos comunicaciones seriales en este micro pero en la simulacion solo una funciona correctamente la Uart2 pero la otra envia pero no logra recibir la tecla pulsada!! que puedo hacer ?
Código:
void main() {

 
UART1_Init(9600); //Inicio del módulo USART.
UART2_Init(9600); //Inicio del módulo USART.



//delay_ms(20);
//Se transmite el texto: de bienvenida.
 UART1_Write_Text("Bienvenido :");
 UART1_Write(13); //Se transmite el ASCII del ENTER.
 UART1_Write(10); //Se transmite el ASCII del retroceso del carro.
 //Se trasmite el texto de pulsar tecla.
 UART1_Write_Text("Pulse una tecla!...");//95
 UART1_Write(13); //Se transmite el ASCII del ENTER.
 UART1_Write(10); //Se transmite el ASCII del retroceso del carro.



// delay_ms(20);
 //Se transmite el texto: de bienvenida.
 UART2_Write_Text("Bienvenido al simulador:");
 UART2_Write(13); //Se transmite el ASCII del ENTER.
 UART2_Write(10); //Se transmite el ASCII del retroceso del carro.
 //Se trasmite el texto de pulsar tecla.
 UART2_Write_Text("Pulse una tecla!...");//95
 UART2_Write(13); //Se transmite el ASCII del ENTER.
 UART2_Write(10);

 while(1)//Bucle infinito.
 {
 //La sentencia if evalúa si un dato está listo para leer.
 if(UART1_Data_Ready()==1)
 {
 //Se lee el DATO del bufer.
 DATO = UART1_Read();
 //Se imprime el texto de realimentación.
 UART1_Write_Text("hA PRESIONADO: ");
 UART1_Write(DATO); //Se transmite el DATO recibido.
 UART1_Write(13); //Se transmite el ASCII del ENTER.
 UART1_Write(10); //Se transmite el ASCII del retroceso del carro.
 }            
  if(UART2_Data_Ready()==1)
 {
 //Se lee el DATO del bufer.
 DATO1 = UART2_Read();
 //Se imprime el texto de realimentación.
 UART2_Write_Text("Usted pulso la tecla: ");
 UART2_Write(DATO1); //Se transmite el DATO recibido.
 UART2_Write(13); //Se transmite el ASCII del ENTER.
 UART2_Write(10); //Se transmite el ASCII del retroceso del carro.
 }


}         }
...
 
Atrás
Arriba