Mhen_7

Parte 1: Esquemático para comunicação serial

Nessa parte é apresentado o circuito montado que implementa a comunicação serial pelo do padrão RS232.

Na figura abaixo é mostrado o circuito montado ulizando o MAX232

http://parati.dca.fee.unicamp.br/media/Attachments/courseEA079_1S2010/Mjos_6/max232.jpg

Figura 1: Esquemático das ligações dos componentes e entre dispositivos.

O amplificador do microfone foi acrescido ao circuito respeitando o Esquemático do circuito do amplificador e Ligações e soquetes do circuito do amplificador.

Após a montagem da placa, passamos para a fase de configuração dos dispositivos a partir do ambiente Processor Expert, e os passos dela serão descritas a seguir.

http://parati.dca.fee.unicamp.br/media/Attachments/courseEA079_1S2010/Mjos_6/components.jpg

Figura 2: Biblioteca de componentes do *Processor Expert*.

  • Uma vez já inserido o ASI no projeto, foi preciso configurá-lo para atender nossas especificações. A Figura 3 mostra o ambiente de configuração do SCI.
http://parati.dca.fee.unicamp.br/media/Attachments/courseEA079_1S2010/Mjos_6/processor.jpg

Figura 3: Ambiente de configuração do SCI.

Como visto, o modo de dados foi definido com sendo de 8 bits, apenas 1 bit de parada, ativou a transmissão e recepção de dados e foi definido uma taxa de transmissão de 9600 baud. ) Para testar o funcionamento da interface serial, foi escrito um programa que recebe um caractere oriundo do hyperterminal, através do conector DB9, e reenvia este dado de volta para o hyperterminal. O código implementado encontra-se abaixo.:

Void main (void){
Byte dado,erro;
For(;;){
Erro = 0;
    While (!erro){
    Erro = AS1_GetCharsInRxBuf;
    }
    Erro = AS1_RecvChar(&dado);
    Erro = AS1_SendChar(dado);
    }
}

O programa basicamente testa o bit RDRF do registrador de estado SCIS1 para verificar algum caractere foi recebido no buffer de Rx. Quando o registrador de dados do receptor encontra-se cheio, a flag RDRF é setada e o microcontrolador já pode acessar este registrador para tratar o dado recebido. Em seguida, a função RecvChar envia para uma variável escolhida pelo usuário o dado recebido. Neste programa, o dado não recebe nenhum tipo de tratamento e é reenviado para o hyperterminal através da função SendChar.