PICmicro Cult – Gestione di una connessione RS232 2/2

picmicro RS232

LCDPRINT un programma d’esempio per l’utilizzo del nostro miniterminale

LCDPRINT.ZIP

Da questo link potrete scaricare un semplice programma d’esempio per l’uso del nostro miniterminale RS232. Il programma di chiama LCDPRINT e funziona in ambiente MS/DOS o prompt MS/DOS sotto Windows 95/98/ME. Non è assolutamente in grado di funzionare sotto Windows NT/2000/XP.
LCDPRINT permette di visualizzare messaggi sul nostro miniterminali nel modo più semplice. Basta digitare dal prompt di MS/DOS il comando LCDPRINT seguito dal numero di porta seriale a cui e’ connesso il nostro miniterminale e la stringa da visualizzare tra doppi apici.
Se vogliamo visualizzare ad esempio la scritta “Ciao a tutti” sul miniterminale connesso alla porta COM2 dovremo digitare:
LCDPRINT /COM2 “Ciao a tutti !”
Le applicazioni possibili per questo semplice programma sono molte. Lo potremmo usare ad esempio per visualizzare dei messaggi durante boot di Windows 95 inserendo il comando all’interno del file AUTOEXEC.BAT.

Spunti per un po’ di esercitazioni

La nostra applicazione d’esempio è stata sviluppata nel modo più semplice possibile per permettere a chiunque di capirne il funzionamento senza perdersi in centinaia di linee di codice. Questo comporta ovviamente una serie di limitazioni nelle funzionalità che questo miniterminale è in grado di dare.
Chi volesse fare un po’ di esercizio può tentare di ampliare il numero di caratteri di controllo riconosciuto dal miniterminale quali ad esempio il Carriage Return, il New Line o il Backspace.

Chiunque abbia voglia di realizzare questi esercizi può inviare direttamente all’autore all’indirizzo sergio@tanzilli.com il proprio lavoro per una eventuale pubblicazione tra gli esempi del corso.

Un altro esempio con l’interfaccia RS232

Vediamo ora un altro esempio di utilizzo della RS232. In questo caso realizzeremo un circuito che sfrutta anche le capacita trasmissive messe a disposizione dalla subroutine TxChar.

Si tratta in pratica di una evoluzione del circuito già presentato in una delle lezioni precedenti con 4 led e 4 switch a cui abbiamo aggiunto ora una interfaccia RS232 per poter comandare i quattro led e leggere da PC lo stato dei quattro switch.
Nella figura seguente viene riportato lo schema elettrico completo:

Dai seguenti link potete scaricare il sorgente del firmware per il PICmicro ed il semplice programma per MS/DOS RS232IO con cui e’ possibile inviare dal PC i comandi di accensione dei singoli led e leggere lo stato corrente dei quattro switch.

rs232io.asm

rs232io.zip

Protocollo di comunicazione con il PC

Come già detto il nostro circuito è dotato di quattro LED denominati LED1, LED2, LED3 e LED4 e quattro pulsanti denominato SWITCH1, SWITCH2, SWITCh2 e SWITCH4.
Tramite un semplice protocollo possiamo decidere quale dei quattro led accendere oppure leggere lo stato di uno qualsiasi dei quattro pulsanti.
Il protocollo consiste in una serie di codici di controllo che il PC può trasmettere al nostro circuito tramite la seriale. La velocità di trasferimento e’ la solita 9600 baud, 8 data bit, 1 stop bit, no parity.

Comandi di accensione LED

Possiamo accendere ogni singolo LED inviando dal PC i seguenti comandi:

Comandi di spegnimento LED

Possiamo spegnere ogni singolo LED inviando dal PC i seguenti comandi:

Lettura stato pulsanti

Per leggere lo stato di tutti e quattro i pulsanti basta inviare un unico comando:

Quando il PIC riceve questo comando dalla RS232 legge lo stato dei bit RB4, RB5, RB6 ed RB7 ed invia un unico codice al PC che riflette lo stato dei quattro pulsanti. Di questo codice solo i bit 0,1,2,3 indicano lo stato dei pulsanti secondo la seguente tabella.

Per cui se ad esempio solo lo SWITCH 1 risulta premuto il codice di risposta sarà 01h (00000001 binario). Se risultano premuti sia lo SWITCH 2 che il 4 il codice di risposta 0Ah (00001010 binario).

Programma di prova

Il programma di prova RS232IO.EXE consente di provare il circuito immediatamente. Il programma funziona in ambiente MS/DOS o prompt MS/DOS sotto Win 95/98.
Ipotizziando di aver collegato alla COM2 il nostro circuito, per accendere il LED 1 sarà sufficiente digitare:

RS232IO /COM2 /LED1=ON

Se ora vogliamo spegnere il LED 1 ed accendere il LED 4 potremo digitare:

RS232IO /COM2 /LED1=OFF /LED4=ON

Se ora vogliamo accendere solo il LED 3 senza modificare lo stato degli altri led:

RS232IO /COM2 /LED3=ON 

Possiamo anche richiedere lo stato corrente dei singoli switch con un unico comando:

RS232IO /COM2 /SWITCH

Il programma risponderà con qualcosa del genere:

Switch 1: off
Switch 2: off
Switch 3: ---> Active
Switch 4: off

Ad indicare che solo lo SWITCH 3 risulta premuto.

Contributi dei lettori a questa lezione

Salve,
Sto imparando a programmare il 16f84 con il vostro corso online (per il quale vi ringrazio)..
nella lezione in cui spiegate come stabilire una connessione seriale mi sono fatto un programma
in Visual Basic (molto “rozzo” pero’ funzionante) e ho pensato che potesse essere utile a tutti
quelli che come me stanno cercando di imparare. Personalmente credo che nelle applicazioni
di prova sia estremamente utile controllare l’esecuzione del proprio programma impegnando
due soli pin del pic.. Oltre al mio ne ho trovato anche uno gratuito fatto molto bene ..

Potete scaricare da qui http://daniloxyt.altervista.org/PicCommand.zip

Danilo

STAMPA

Leave a Reply