|
|
|
![]() |
Modulo RS 232
|
|
|
|
|
Questo modulo permette di collegare i nostri PIC alla seriale del nostro PC adattandone i livelli.
Con questo modulo potremo comandare robot da computer o fare interfacce per comandare gli elettrodomestici di casa tramite un pic.
A voi la fantasia di fare quello che pių vi aggrada.
|
|
Qui sotto troverete tutto l'occorrente per procedere alla realizzazione dell'interfaccia RS232.Le dimensioni sono talmente contenute che da una basetta standard da 70 x 100 ne ho ricavate due.
_____________________________________________________________________________
Un listato di esempio
Per mettervi in condizioni di testare il funzionamento del modulo, il buon Nicola ha messo a disposizione delle routine e ha creato il sorgente che voi dovrete compilare.
Per prima cosa collegherete il modulo RS232 alla demoboard 16F876 (l'877 va bene lo stesso).
Il collegamento va fatto come illustrato nella foto in alto a destra di questa pagina.Il filo viola, corrispondente al pin 12 del Max 232 vā collegato a RC7 del PIC e il filo bianco, corrispondente al pin11 del MAX 232 vā collegato al pin RC6 del PIC.
Il connettore DB9 dovrete collegarlo alla com 1 del vostro PC servendovi di un cavo prolunga per seriale (non invertente)
Potete scaricare le routine cliccando qui: ROUTINE.zip.
Dovrete scompattarle e metterle nella cartella include del vostro compilatore.
Eccoci ora arrivati al listato del sorgente:
// ---------------------------------------------------------------
// File: TUart.c -
// Autore: Nicola Sellitto snico_one@yahoo.it -
// Versione: 0.1 -// Data: 16 Maggio 2003 -
// Descrizione: Esempio di comunicazione seriale con il PC -
// Verifiche: Prove eseguite con 16F876 20Mhz -
// Note: Vedere Uart.c per le routine di gestione seriale -
// ---------------------------------------------------------------
#include <pic.h>
#include "delay.c"
#include "macro.h"
#include "ascii.c"
#include "uart.c"
main(void) {
char c;
unsigned char clock;
unsigned long baudrate;
char string[5];
unsigned char rc;
ADCON0 = 0;
ADCON1 = 7;
PORTB = 0x00; // Azzera linee PortA
PORTB = 0x00; // Azzera linee PortB
PORTC = 0x00; // Azzera linea PortC
TRISA = 0x00; // Imposta linee PortA come output
TRISB = 0x00; // Imposta linee PortB come output
TRISC = 0x80; // Imposta linee PortC come output
// tranne RC7/Rx come input
DelayMs(250);
DelayMs(250);
DelayMs(250);
DelayMs(250);
// Inizializza la seriale
clock = 20; //inserire qui il valore del quarzo
baudrate = 9600;
rc = UartInit(clock, baudrate, UART_CFG_BITSTOP_1);
int2dec(rc, string);
DelayMs(250);
UartPutch('-');
UartPutch('-');
UartPuts(string);
UartPutch('-');
UartPutch('-');
UartPuts("Test seriale v0.2");
while (TRUE)
{
c = UartGetch();
UartPutch(c);
}
}
Il sorgente appena messo lo dovete compilare e inserire nel pic.Sul lato del pc, invece, dovrete lanciare "iperterminal" settarlo per com 1, 9600 baud , nessun controllo di flusso.Dopo aver lanciato iperterminal e avviata la sessione, potete accendere la demoboard con il modulo RS232 collegato.Dopo 2 o 3 secondi dall'accensione, all'interno della finestra dell'iperteminal vi apparirāLa scritta "Test seriale v0.2".Da questo momento quello che scrivete sulla tastiera vi apparirā in quella finestra.Cosa vuol dire????Il programma inserito nel pic non fa altro che ritrasmettere quello che riceve da PC.
|