necesitamos leer los datos de un módulo serial MLX90615 (sensor de termómetro IR), para que funcione con el sistema usart, la hoja de datos del módulo se encuentra en este enlace:
Como no hay una biblioteca mlx90615 en Proteus, simulamos el sensor con otro micro que envía el código similar al sensor en Proteus.
pero el problema es que no pudimos comunicarnos entre dos mikros en el software mikroc y en Proteus.
estamos trabajando en una comunicación simple entre dos mikros, uno está enviando el carácter "Z" y el receptor envía el carácter recibido después de leer en la línea RX.
el transmisor está aquí:
// main function: entry point of program
int main (void)
{
UART1_Init(9600); // Initialize UART module at 9600 bps
Delay_ms(100); // Wait for UART module to stabilize
while (1)
{
// If the previous data has been shifted out, send next data:
if (UART_Tx_Idle() == 1) {
UART_Write(0x5A);
}
}
return 0;
}
y el receptor está aquí:
char uart_rd;
// main function: entry point of program
int main (void)
{
UART1_Init(9600); // Initialize UART module at 9600 bps
Delay_ms(100); // Wait for UART module to stabilize
UART1_Write_Text("Init");
UART1_Write(13);UART1_Write(10);
while (1)
{if (UART1_Data_Ready()) { // If data is received,
uart_rd = UART1_Read(); // read the received data,
UART1_Write(uart_rd); // and send data via UART
}
}
return 0;
}
Entonces, en Proteus, el receptor Micro debe enviar el carácter "Z" en la línea TX, pero el terminal virtual en Proteus no muestra nada.
los archivos de simulación están aquí:
enlace Imagen muchas gracias.