Você está na página 1de 12

COMUNICAO ENTRE PC E

MICROCONTROLADOR

UMA DAS FORMAS MAIS COMUNS DE UM PIC SE
COMUNICAR COM UM OUTRO MICROCONTROLADOR,
USANDO O SCI (SERIAL COMMUNICATION
INTERFACE), POIS NECESSITA APENAS DE 3 FIOS, TX,
RX E GROUND.

O SCI NO FOI IMPLEMENTADO NO PIC, MAS PODE SER
SIMULADO POR SOFTWARE.



O PROTOCOLO SIMPLES, QUANDO O
MICROCONTROLADOR NO EST TRANSMITINDO,
MANTEM A LINHA EM NVEL ALTO. QUANDO INICIAR
A TRANSMISSO, MANDA O LINHA EM NIVEL BAIXO
POR DETERMINADO TEMPO, CARACTERIZANDO O
START BIT E LOGO APS VOLTA ALTO/BAIXO
CARACTERIZANDO (1 E 0 TRANSMITIDOS DATA
FRAME) E FINALMENTE ACRESCENDO UM STOP BIT.

O TS REPRESENTAM OS TEMPOS DE START E STOP
BITS QUE VARIA DA TAXA DE TRANSMISSO.




AS TAXAS DE TRANSMISSO MAIS CONHECIDAS SO
(BAUD)

2400, 4800,9600,19200,38400,57600 (BITS POR SEGUNDO,
INCLUINDO O START E STOP BIT.

PINOS UTILIZADOS PARA COMUNICAO DE
DADOS

COMO FOI VISTTO, A COMUNICAO PODE SER FEITA
POR HARDWARE OU SOFTWARE.

HARDWARE USA O HARDWARE INTERNO DO
MICROCONTROLADOR PARA FRAZER A
COMUNICAO SERIAL


SOFTWARE USA O SOFTWARE PARA FAZER A
COMUNICAO SERIAL

LIGAO ENTRE OS MICROCONTROLADORES



LIGAO ENTRE O MICROCONTROLADOR DE O PC

Pin designations on RS232 connector

1. CD (Carrier Detect)
2. RXD (Receive Data)
3. TXD (Transmit Data)
4. DTR (Data terminal Ready)
5. GND (Ground)
6. DSR (Data Set Ready)
7. RTS (Request To Send)
8. CTS (Clear To Send)
9. RI (Ring Indicator)




PARA ESTE TIPO DE CONEXO, UM CIRCUITO DEVE
SER COLOCADO ENTRE O MICROCONTROLADOR E O
PC, ISTO PQ O MICROCONTROLADOR TRABALHA COM
0V E 5V; E O PC TRABALHA COM -12V E +12V.
ESTE CIRCUITO SIMPLES DE MONTAR, POR SE
TRATAR DE UM INTEGRADO.
NO MERCADO, OS MAIS COMUNS SO O ICL232 (ICL) E
MAX232 (MAXIM)


BASTAM APENAS 4 CAPACITORES DE 10uF/16V















ESQUEMA COMPLETO DA LIGAO

















COMANDOS DE TRANSMISSO SERIAL PARA O PIC
USANDO O PICBASIC PRO DIGIMOK

PARA A EXECUO DOS COMANDOS DO BASIC, SER
NECESSRIA A INCLUSO DAS SEGUINTES
BIBLIOTECAS.

"UART.BAS" - SE SEU MICROCONTROLADOR J TEM COMUNICAO
SERIAL POR HARDWARE
"UARTPlus.BAS" - SE SEU MICROCONTROLADOR NO TEM COMUNICAO
SERIAL POR HARDWARE

COMANDO FUNO SINTAXE
SerInit baud
Inicializa a serial
por Hardaware
(N,8,1)
SerInit
_38400_BAUD_20MHZ
SerInit
_19200_BAUD_20MHZ
Serout par


P S : j inclui o 13 e
10 na sada.
Manda o parmetro
pela serial
Serout hello
SeroutByte (a+1)

Serout
PC6,_19200_20_Mhz_SOFT
,55
Serin()
Recebe um byte
pela serial
a = Serin()
a = Serin PC7,
_19200_20_Mhz_SOFT
Seroutcar()

P S : j inclui o 13 e
10 na sada.
Manda um byte
pela serial
Seroutcar(65)
Seroutendl()
Mandar
ENTER+LINE
FEED
seroutendl
seroutNum16()

P S : j inclui o 13 e
10 na sada.
Manda WORD pela
serial
seroutNum16(44444)
Seroutfloat()

P S : j inclui o 13 e
10 na sada.
Manda FLOAT
pela serial
Seroutfloat(x) x tipo
float
InputString(String s1)
Recebe uma string
pela serial
InputString(s1)


TERMINAL DE COMUNICAO SERIAL PARA PC














TERMINAL DE COMUNICAO DO PROTEUS









LIGAO BSICA ENTRE UM PIC16F877 E O TERMINAL



Include "16F877.INC" 'Programme pour PICPIC16F876
Include "UART.BAS" 'utilise l'UART (5V-RS232)

debut:
SerInit _38400_BAUD_20MHZ 'Initialise l'UART
boucle:
looping:
Serout "HELLO WORLD!!!"

seroutnum16(2222)

seroutcar(65)

Seroutendl()

Pause 100 rem important avant stop
goto looping
End

Colocar cristal do processador a 20Mhz




EXECUO DO PROGRAMA



Include "16F877.INC" 'Programme pour PICPIC16F876
Include "UART.BAS" 'utilise l'UART (5V-RS232)

debut:
SerInit _38400_BAUD_20MHZ 'Initialise l'UART
boucle:
looping:
Serout "HELLO WORLD!!!"

seroutnum16(2222)

seroutcar(65)

Seroutendl()

Pause 100 rem important avant stop
goto looping
End
PROGRAMA I COM ENTRADA DE DADOS




Include "16F877.INC" 'Programme pour PICPIC16F876
Include "UART.BAS" 'utilise l'UART (5V-RS232)

debut:
SerInit _38400_BAUD_20MHZ 'Initialise l'UART
boucle:
looping:
Serout "HELLO WORLD!!!"

seroutnum16(2222)

seroutcar(65)

Seroutendl()

Pause 100 rem important avant stop
goto looping
End










PROGRAMA II COM ENTRADA DE DADOS




Include "16F877.INC" 'Programme pour PICPIC16F876
Include "UART.BAS" 'utilise l'UART (5V-RS232)

byte dado

debut:

SerInit _38400_BAUD_20MHZ 'Initialise l'UART


boucle:
looping:
Serout "Tecle algo"
dado=serin()

Serout "Voce teclou "
Seroutcar dado
Seroutendl()

Serout "Codigo ASCII ",dado
goto looping
End