Aula de programação C – 20

20. PRÁTICA 20: COMUNICAÇÃO SERIAL ENTRE PLACAS – LEITURA (SEM PONTE)

Referencial Teórico: Comunicação Serial – USART; Registadores USART.

Objetivo: Preparar um dispositivo para comunicação no barramento e protocolo SERIAL RS-232.

Materiais: Utilizar botão e led presentes na placa. A prática necessita da ligação física entre placas.

20.1 Arquivo Principal

#include "iniciog.h"
#include "pratica.h"

void main(){

	configura_portas();
	configura_serial();

	while(1){
		ler_serial();
	}
}

20.2 Arquivo Secundário

// acrescentar ao iniciog.h ou arquivo pratica.h

// definicoes

// tx - rc6 - p25 - md41 - h10
// rx - rc7 - p26 - md42 - h15

//#define PIN_C6 PIN_A3 //6 // TX // MD41 // h10
//#define PIN_C7 PIN_A5 //7 // RX // MD42 // h15
//#define TX PIN_A3
//#define RX PIN_A5

unsigned char dado_recebido[] = {"        "};

unsigned char n_dado;

void configura_serial(){
	OpenUSART(USART_TX_INT_OFF		//desabilita interrupção de transmissão
				& USART_RX_INT_OFF	//desabilita interrupção de recepção
				& USART_ASYNCH_MODE	//modo assíncrono
				& USART_EIGHT_BIT		//transmissão e recepção em 8 bits
				& USART_BRGH_HIGH,	//Baud Rate em alta velocidade
				156);					//SPBRG p/ 19200 bps
}

void ler_serial(){
	for (n_dado=0; n_dado<=5;n_dado++)
		{
			while(!DataRdyUSART());
			dado_recebido[n_dado] = getcUSART();
		}
		putsUSART(dado_recebido);
}