Tutorial Prático RS232[]
Transcript of Tutorial Prático RS232[]
5/7/2018 Tutorial Prático RS232[www.denteazultecnologia.com.br] - slidepdf.com
http://slidepdf.com/reader/full/tutorial-pratico-rs232wwwdenteazultecnologiacombr 1/7
Dente Azul Tecnologia [www.denteazul.com.br]
1
Tutorial Prático RS232
Às vezes é necessário simular a comunicação RS232 antes de montar o circuito, este tutorial aborda
como realizar esta simulação no PROTEUS usando o compilador PIC C. O projeto mostrado a seguir
lançará mão do uso de uma interrupção externa para ler o estado das chaves SW1, SW2, SW3 e enviar
esta informação para o computador utilizando o canal de comunicação RS232 .
Para que seu projeto tenha êxito é necessário que os programas a seguir estejam devidamente
instalados em seu computador:
Virtual Serial Ports Drivers;
HyperTerminal.
NOTA: Estes programas são os responsáveis por simular o uso das portas ou canais de comunicação
RS232 por onde seus dados estarão trafegando. É possível também usar programas similares a estes
desde que as condições e configurações sejam obedecidas.
Após instalar os programas citados monte o circuito mostrado na figura a seguir:
Após montado o circuito acima, vá até o compilador PIC C e crie um projeto novo em PIC Wizard usando
o PIC16F877A, e em Interrupts escolha a interrupção externa e digite o seguinte código:
#include <16F877A.h>#device adc=8
RA0/AN02
RA1/AN13
RA2/AN2/VREF-/CVREF4
RA4/T0CKI/C1OUT6
RA5/AN4/SS/C2OUT7
RE0/AN5/RD8
RE1/AN6/WR9
RE2/AN7/CS10
OSC1/CLKIN13
OSC2/CLKOUT
14
RC1/T1OSI/CCP216
RC2/CCP117
RC3/SCK/SCL18
RD0/PSP019
RD1/PSP120
RB7/PGD40
RB6/PGC39
RB538
RB437
RB3/PGM36
RB2 35RB1
34RB0/INT
33
RD7/PSP730
RD6/PSP629
RD5/PSP528
RD4/PSP427
RD3/PSP322
RD2/PSP221
RC7/RX/DT26
RC6/TX/CK25
RC5/SDO24
RC4/SDI/SDA23
RA3/AN3/VREF+5
RC0/T1OSO/T1CKI15
MCLR/Vpp/THV1
U1
PIC16F877A
C1
33pF
C2
33pF
X1CRYSTAL
R1
1k
GND
ERROR
TXD3
RXD2
CTS8
RTS7
DSR6
DTR4
DCD1
RI9
P1
COMPIM
R410k
SW1
SW-SPST
R51k
SW2
SW-SPST
R61k
SW3
SW-SPST
R71k
D0 D1 D2
D0
D1D2
5/7/2018 Tutorial Prático RS232[www.denteazultecnologia.com.br] - slidepdf.com
http://slidepdf.com/reader/full/tutorial-pratico-rs232wwwdenteazultecnologiacombr 2/7
Dente Azul Tecnologia [www.denteazul.com.br]
2
#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz)
#FUSES PUT //Power Up Timer
#FUSES NOPROTECT //Code not protected from reading #FUSES NODEBUG //No Debug mode for ICD
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#FUSES WRT_50% //Lower half of Program Memory is Write Protected
#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
//Declaração das variáveis que irão receber o valor inteiro do estado dos pinos D0, D1 e D2.
int d0;int d1;
int d2;
//Função da interrupção externa
#int_EXT
void EXT_isr(void)
{
//as variáveis serão correpondentes ao estado dos pinos D0, D1 e D2 respectivamente
d0 = input(PIN_D0);
d1 = input(PIN_D1);
d2 = input(PIN_D2);
//Envio da informação através do RS232
printf("Mode Chave 1: [%d]\n\rMode Chave 2: [%d]\n\rMode Chave 3: [%d]\n\r", d0, d1, d2);
}
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
//Ativação das interrupções globais e da interrupção externa
enable_interrupts(INT_EXT);
enable_interrupts(GLOBAL);
//Definindo que a ocorrência da interrupção externa se dará na borda de descida (high to low)
ext_int_edge(H_TO_L);
//Inicio do envio de dados através do canal de comunicação RS232
printf("\n\r\n\r\n\r\n\r******* TESTE RS232 ******\n\r");
5/7/2018 Tutorial Prático RS232[www.denteazultecnologia.com.br] - slidepdf.com
http://slidepdf.com/reader/full/tutorial-pratico-rs232wwwdenteazultecnologiacombr 3/7
Dente Azul Tecnologia [www.denteazul.com.br]
3
while(1);
}
Após instalar os programas citados siga os seguintes passos:
1º Passo: Abra o programa Virtual Serial Port Driver e clique em Add pairs como mostra a figura abaixo:
2º Passo: Verifique se as portas COM1 e COM2 foram adicionadas no local indicado pela figura abaixo:
3º Passo: Abra o HyperTerminal e crie uma nova conexão com o nome portCOM1 como mostra a figuraabaixo:
5/7/2018 Tutorial Prático RS232[www.denteazultecnologia.com.br] - slidepdf.com
http://slidepdf.com/reader/full/tutorial-pratico-rs232wwwdenteazultecnologiacombr 4/7
Dente Azul Tecnologia [www.denteazul.com.br]
4
4º Passo: No campo Conectar-se usando escolha a opção COM1.
5º Passo: Nas Propriedades de COM1 escolha 9600 no campo Bits por segundo.
6º Passo: Vá em File e posteriormente em Properties.
5/7/2018 Tutorial Prático RS232[www.denteazultecnologia.com.br] - slidepdf.com
http://slidepdf.com/reader/full/tutorial-pratico-rs232wwwdenteazultecnologiacombr 5/7
Dente Azul Tecnologia [www.denteazul.com.br]
5
7º Passo: Vá na aba Settings e clique sobre o botão ASCII Setup...
8º Passo: Marque a caixa Echo typed characters locally
5/7/2018 Tutorial Prático RS232[www.denteazultecnologia.com.br] - slidepdf.com
http://slidepdf.com/reader/full/tutorial-pratico-rs232wwwdenteazultecnologiacombr 6/7
Dente Azul Tecnologia [www.denteazul.com.br]
6
9º Passo: Abra o HyperTerminal novamente e crie uma outra conexão com o nome portCOM2 comomostra a figura abaixo (siga as mesmas configurações da portCOM1).
10º Passo: Faça o teste de conexão escrevendo um texto em qualquer janela e verifique que o mesmo
texto estará sendo ecoado para a outra janela do HyperTerminal. Isto ocorrerá durante a simulação,
mas a COM1 será o canal de comunicação estabelecido no PROTEUS. Após feito o teste feche a janela
portCOM1.
11º Passo: Volte à simulação criada no PROTEUS e dê um clique duplo sobre o conector DB9, configure o
campo Physical port como COM1 e deixe o restante como mostra a figura abaixo:
5/7/2018 Tutorial Prático RS232[www.denteazultecnologia.com.br] - slidepdf.com
http://slidepdf.com/reader/full/tutorial-pratico-rs232wwwdenteazultecnologiacombr 7/7
Dente Azul Tecnologia [www.denteazul.com.br]
7
12º Passo: Dê play na simulação e veja o resultado: