ELEMANIA
PIC16F690 - Programmazione di una porta
Operazioni necessarie per la programmazione e l'utilizzo di una porta del PIC

Tralasciando per adesso, come si è già detto, l'utilizzo delle porte del PIC come ingressi analogici per il convertitore AD interno, limitiamoci a considerare l'utilizzo delle porte per l'invio in uscita o la lettura in ingresso di valori digitali binari.

In generale per programmare i pin di una porta per la lettura (input) digitale, bisogna effettuare le seguenti operazioni:

  1. programmare i bit della porta come digitali (quando essi siano condivisi con gli ingressi analogici del convertitore AD), modificando il contenuto dei registri ANSEL e ANSELH (questa operazione non è necessaria per i pin che non sono internamente connessi al convertitore AD);

  2. programmare la direzione (input) dei bit, agendo sul contenuto dei registri TRISA, TRISB e TRISC associati a ciascuna porta;

  3. leggere i valori digitali presenti sui pin della porta attraverso i registri PORTA, PORTB e PORTC.

Invece per programmare i pin di una porta per la scrittura (output) digitale, la sequenza di operazioni da compiere è la seguente:

  1. programmare i bit della porta come digitali (quando essi siano condivisi con gli ingressi analogici del convertitore AD), modificando il contenuto dei registri ANSEL e ANSELH (questa operazione non è necessaria per i pin che non sono internamente connessi al convertitore AD);

  2. preparare il valore da inviare in uscita scrivendolo sul registro corrispondente alla porta (PORTA, PORTB o PORTC a seconda dei casi);

  3. programmare la direzione (output) dei bit, agendo sul contenuto dei registri TRISA, TRISB e TRISC associati a ciascuna porta;

Si osservi l'inversione dei punti 2 e 3 nelle sequenze di lettura e scrittura. Infatti quando si scrive su una porta è importante che i bit da inviare in uscita siano pronti (cioè scritti sui registri PORTA, PORTB o PORTC) prima che i pin vengano programmati come output (con TRISA, TRISB, TRISC): in caso contrario (cioè se si programma prima il registro TRISx e poi si scrive la porta) i valori presenti in uscita prima della scrittura del registro PORTx non sono corretti.

Nel caso in cui alcuni pin di una stessa porta debbano essere usati come input e altri come output, è opportuno procedere alla scrittura del registro PORTx (con i valori desiderati in uscita) prima della programmazione del registri TRISx. Dopodiché si procederà a una lettura del registro PORTx per recuperare i valori dei pin programmati come input.

Occorre inoltre tener conto che, prima di utilizzare il PIC, è in generale sempre necessario settare i bit di configurazione in modo opportuno. Infatti molti pin associati alle porte sono utilizzati per scopi differenti ed occorre dunque, prima di procedere all'uso degli stessi, predisporne il funzionamento desiderato all'avvio del PIC.

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it