Autor Tópico: Comunicação RS xxx por software  (Lida 4467 vezes)

Description:

0 Membros e 1 Visitante estão vendo este tópico.

Offline Blackmore

  • CNCMASTER
  • ******
  • Posts: 1568
  • Sexo: Masculino
  • Profissão: Projetista Mecânico/Automação
Comunicação RS xxx por software
« Online: 10 de Março de 2009, 10:56 »
Pessoal, bom dia.

Gostaria de saber dos mais conhecedores em pic, como fazer a rotina (ou protocolo) para comunicação RS232 e RS485 através de software, ou seja, quero fazer com que um devido PIC que não tenha USART envie e receba informações por serial.
A idéia é enviar um sinal do AD de um PIC12F675 para um host qualquer.
Pode ser em Assembly ou C, depois farei os devidos testes.
Agradeço qualquer ajuda neste assunto!

abrax!

Offline EDSONCAN

  • Novato
  • *
  • Posts: 69
    • Projetos eletronicos consultoria
Re: Comunicação RS xxx por software
« Resposta #1 Online: 10 de Março de 2009, 11:42 »
O CCS faz isso automaticamente
Syntax:
 #use rs232 (options)
FORCE_SW
 Will generate software serial I/O routines even when the UART pins are specified.
 
Edson

Offline Blackmore

  • CNCMASTER
  • ******
  • Posts: 1568
  • Sexo: Masculino
  • Profissão: Projetista Mecânico/Automação
Re: Comunicação RS xxx por software
« Resposta #2 Online: 10 de Março de 2009, 12:06 »
EDSONCAN

essa função não seria para se utilizar um PIC que tenha USART?
Vou procurar no livro de programação mas acho que seria apenas para utilizar em um PIC que tenha serial.

abrax!

Offline EDSONCAN

  • Novato
  • *
  • Posts: 69
    • Projetos eletronicos consultoria
Re: Comunicação RS xxx por software
« Resposta #3 Online: 10 de Março de 2009, 12:39 »
Essa função e para qualquer pic, com ou sem usart.
Edson

Offline plancton81

  • Fuso
  • **
  • Posts: 185
  • Sexo: Masculino
Re: Comunicação RS xxx por software
« Resposta #4 Online: 10 de Março de 2009, 13:01 »
Oi Blackmore,

Veja se esse exemplo serve para você, está em assembly.

Já fiz alguns códigos baseados nesse e funcionou legal.

Abraço!


Offline Blackmore

  • CNCMASTER
  • ******
  • Posts: 1568
  • Sexo: Masculino
  • Profissão: Projetista Mecânico/Automação
Re: Comunicação RS xxx por software
« Resposta #5 Online: 10 de Março de 2009, 13:59 »
obrigado pelas postagens!   :D

abrax!

Offline kaoalex

  • Fuso
  • **
  • Posts: 128
    • DMSQUARE
Re: Comunicação RS xxx por software
« Resposta #6 Online: 10 de Março de 2009, 19:01 »
Código em C.

Código: [Selecionar]
#include <12F675.h>
#device ADC=8
#fuses INTRC_IO,NOWDT,NOPUT,NOPROTECT,NOCPD,NOMCLR
#use delay(clock=4000000)
//xmit => TX ; rcv => RX
#use rs232(baud=9600, xmit=PIN_A5, rcv=PIN_A4)

#define GP0 PIN_A0
#define GP1 PIN_A1
#define GP2 PIN_A2
#define GP3 PIN_A3
#define GP4 PIN_A4
#define GP5 PIN_A5
#ROM 0x3ff = {0x3420} //USAR VALOR DE FÁBRICA PARA O OSCILADOR INTERNO

void main()
{
   unsigned int temp=0;
   char n;
   disable_interrupts(GLOBAL);

   //DEFINIÇÃO DE PORTAS ANALÓGICAS/////////////////////////////////////////////
   setup_adc(ADC_CLOCK_INTERNAL);
   setup_adc_ports(sAN0); //Define GP0 analógica
   /////////////////////////////////////////////////////////////////////////////

   // PRINTF
   // \r retorno de linha
   //\n nova linha
   // \f manda limpar o terminal

   printf("\f\r\nExemplo de Serial + ADC 8 bits\n\n");
   printf("\r\nDigite \"R\" para ler voltagem\n");

   set_adc_channel(0);

   while(1)
   {

   if (kbhit())
      {  // se recebeu um dado, devolve
         n=getc();
         
         if(n == 'R')
            {
            temp = read_adc();

            delay_ms(1000);

            printf("\rLeitura ADC em bits= %d\n",temp);
            }
         else
            {
            printf("\r\nLetra\n = %c",n);
            }
      }
   }
}

Offline Blackmore

  • CNCMASTER
  • ******
  • Posts: 1568
  • Sexo: Masculino
  • Profissão: Projetista Mecânico/Automação
Re: Comunicação RS xxx por software
« Resposta #7 Online: 10 de Março de 2009, 19:28 »
kaoalex

isso é que é ser direto hein?  ;D  muito obrigado!   :D

abrax!

Fabio Edir

  • Visitante
Re: Comunicação RS xxx por software
« Resposta #8 Online: 08 de Maio de 2009, 08:09 »
Caro blackmore

Nesse link há uma porção de arquivos, bibliotecas prontas para uso em C com microcontroladores PIC.

http://www.editoraerica.com.br/download.asp?cod=9352&editora=Microcontroladores

Há duas rotinas rs232.c  e usart.c, vc acrescenta no diretório do CCS e depois chama essas funções no cabeçalho do programa.

Eu usei isso no PIC 12F.... não lebro agora o restante, mas que possui apenas 8 pinos e funcionou perfeitamente.

Espero ter ajudado.

Att.

 

/** * */