Premetto che ho lavorato solo con il uC 18F452 della microchip. Quello che usi te è un po' vecchio, ma le funzioni basilari dovrebbero essere le medesime. Quindi non so se quello che ti dirò sarà corretto al 100%...
Se vai nel sito della microchip puoi scaricare il manuale specifico per il tuo uControllore. Lì puoi capire come funziona nei minimi dettagli; in più è presente la lista, spiegata, di tutti i comandi assembly che riconosce.
In più puoi scaricare il loro compilatore gratuito "MPLab" col quale scrivere il programma in "PICC" o "Assemby".
Dopo questa premessa vorrei sapere una cosa: hai sostituito il uC dello schema con il PIC16F84? Come mai? Lo sai vero che adesso devi cambiare leggermente il ciruito?
Comunque arrivando a come cambiare lo stato dei pin d'uscita devi sapere su che PORT vuoi posizionare le uscite, devi renderle digitali (solo se hanno la possibilità di ricevere anche dati analogici), sapere il loro indirizzo esadecimale e predisporli per l'output. [Per esempio prendo i pin 7-8-9, rispettivamente RB1-2-3] A questo punto all'interno del tuo programma (quello che risiede nel uC) dovrai aggiungere queste line per l'inizializzazione:
codice:
TRISB=0x00 //Configura tutto il PORTB in uscita
mentre nella parte di programma in cui devi modificare lo stato dell'output scrivi
codice:
RB1=0; //Pin 7 = 0
RB1=1; //Pin 7 = 1
RB2=0; //Pin 8 = 0
RB2=1; //Pin 8 = 1
RB3=0; //Pin 9 = 0
RB3=1; //Pin 9 = 1
Questo lo puoi scrivere in "PICC" se hai già un header in cui assegni ad ogni parola il corrispondente indirizzo.
in Assembly, invece, la parte di inizializzazione sarà
codice:
MOVLW 0x00 ;Scrive 0 nel registro W
MOVWF 86h ;Copia ciò che c'è in W all'indirizzo esadecimale 86 (TRISB)
E poi
codice:
BCF 06h, 1 ;Bit Clear File -> Azzera il bit 1 all'indirizzo 06h (RB1)
BSF 06h, 1 ;Bit Set File -> Pone a 1 il bit 1 all'ndirizzo 06h (RB1)
BCF 06h, 2 ;Bit Clear File -> Azzera il bit 2 all'indirizzo 06h (RB2)
BSF 06h, 2 ;Bit Set File -> Pone a 1 il bit 2 all'ndirizzo 06h (RB2)
BCF 06h, 3 ;Bit Clear File -> Azzera il bit 3 all'indirizzo 06h (RB3)
BSF 06h, 3 ;Bit Set File -> Pone a 1 il bit 3 all'ndirizzo 06h (RB3)
(in assembly il ";" serve per iniziare il commento mentre in PICC va messo alla fine di ogni stringa.)
Ovvio che dal lato PC dovrai avere un programma che manda in seriale un dato al PIC, il quale lo riceve, lo interpreta e da il comando in out.
Spero di essere stato chiaro.
Ciao