ELEMANIA
PIC16F690 - Lettura di una porta
Lettura di 8 switch

Consideriamo un caso semplice. Supponiamo che gli 8 bit di PORTC siano collegati con 8 switch, di cui vogliamo leggere i valori.

Le operazioni necessarie per la lettura sono le seguenti:

        BANKSEL TRISC
        MOVLW b'11111111' ; programma tutti i bit di TRISC in input
        MOVWF TRISC ;

        BANKSEL PORTC
        MOVF PORTC, W ; trasferisce in W il contenuto di PORTC

 

Lettura di un pulsante

Supponiamo ora che il pin RA2 sia collegato con un pulsante, la cui pressione deve comandare l'esecuzione di determinate operazioni:

Si osservi che il pulsante fornisce un valore basso se premuto e alto se rilasciato (sfruttando la resistenza di weak pull-up su PORTA). La sequenza di operazioni per la lettura del pulsante è la seguente:

        BANKSEL TRISA
        BSF TRISA,2 ; Set a uno del bit 2 di PORTA (programmato come input)

        BANKSEL PORTA
loop
        BTFSC PORTA, 2     
        GOTO loop

        ; qui devono essere messe le istruzioni da eseguire dopo la pressione del pulsante

L'istruzione BTFSC testa il bit 2 (RA2) di PORTA. Se questo bit è a uno, viene eseguita l'istruzione immediatamente successiva e dunque si torna a loop. Quando il bit diventa zero (perché è stato premuto il pulsante collegato a RA2), il programma esce dal ciclo e prosegue con la prima istruzione dopo GOTO.

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it