Você está na página 1de 20

Portas I/O Digitais

Curso Engenharia de Controle e Automação

1
Alex Vidigal Bastos
www.decom.ufop.br/alex/
alexvbh@gmail.com
Agenda
• Introdução
• Sentido do Fluxo de Dados da porta
• Controle de entrada dos pinos das portas

2
Introdução
• São portas de entrada e saída de dados , cujos valores
alternam entre “0” e “1”;

• O PIC18F4550 tem 5 grupos de portas disponíveis (A, B, C, D,


E);

• Os pinos associados a elas são multiplexados;

• Cada porta tem três registradores associados à configuração;

3
Pinagem do PIC18F4550

4
Distribuição dos pinos no microcontrolador PIC18F4550
Introdução
• Registrador TRIS: configura o sentido do fluxo de dados
de uma determinada porta;

• Registrador PORT: escreve e lê o nível dos pinos


associados a uma porta;

• Registrador LAT: armazena o valor do último comando de


escrita;

5
Sentido do fluxo de dados da
porta
• O sentido do fluxo de uma determinada porta é configurado
pelo registrador TRIS;

• Tem 8 bits, sendo cada elemento correspondente à


configuração de um determinado pino de I∕O, sendo:
• 0 – saída (output)
• 1 – entrada (input)

• O Maplab C18 suporta comandos de acesso simultâneo dos 8


bits do registrador TRIS, como também de um único bit;
6
TRISA, TRISB, TRISC, TRISD,
TRISE
Sintaxe:

• TRISx = valor
• Valor = TRISx

• Sendo:

• x = nome da porta (letra maiúscula)


• valor = valor de 8 bits (0 – saídae 1 – entrada)
7

TRISB = 0b00000001;
TRISA, TRISB, TRISC, TRISD,
TRISE

8
TRISA, TRISB, TRISC, TRISD,
TRISE

9
TRISA, TRISB, TRISC, TRISD,
TRISE
• Exemplos:

• TRISA: 0b00000011 ∕∕ RA0 e RA1 – entrada RA2 até RA7


saída

• TRISB: 0b11110000 ∕∕ RB0 e RB3 – saída RB4 até RB7


entrada

• TRISE: 0b00000000 ∕∕ RE0 e RE7 – saída


10
TRISAbits, TRISBbits, TRISCbits,
TRISD bits, TRISE bits
• Essas estrutura permitem o acesso a um único bit;
Sintaxe:

• TRISxbits.TRISxy = valor_bit
• Valor_bit = TRISxbits.TRISxy

• Sendo:
• x = nome da porta (letra maiúscula);
• y = número do pino;
• valor = 0 – saída e 1 – entrada) 11
TRISAbits, TRISBbits, TRISCbits,
TRISD bits, TRISE bits
• Exemplos:

• TRISAbits.TRISA5 = 1 ∕ ∕ RA5 - entrada

• TRISBbits.TRISB3 = 0; ∕ ∕ RB3 – saída

• TRISEbits.TRISE4 = 0; ∕ ∕ RE4 - saída

12
Controle do Estado dos pinos
das portas
• O status dos pinos da portas é armazenado no registrador
PORT;

• Possui um tamanho de 8 bits, sendo responsável pelas


operações de escrita e leitura dos pinos relacionados às
portas. Sendo 0 – Vss e 1 – Vcc;

13
PORTA, PORTB, PORTC,
PORTD, PORTE
• Para um comando de leitura, o registrador PORT realiza a
leitura dos estados dos pinos e para um comando de escrita, o
valor é enviado para a porta LAT que vai modificar os níveis
dos pinos I∕O configurados como saída.

Sintaxe:
• PORTx = valor
• Valor = PORTx

• Sendo:
• x = nome da porta (letra maiúscula)
14
• valor = valor de 8 bits (0 – saídae 1 – entrada)
PORTA, PORTB, PORTC,
PORTD, PORTE
• Suponha que todos os pinos da porta B estejam configurados
como saída (TRISB = 00x0), então podemos selecionar os
pinos na porta do PIC, conforme abaixo:

• PORTB = 0b00100101;

15
PORTA, PORTB, PORTC,
PORTD, PORTE

16
PORTA, PORTB, PORTC,
PORTD, PORTE
• Exemplos:

• TRISD = 0b0000000 ∕∕ RD0 e RD7 –saída


• TRISEbits.TRISE1 = 0; ∕∕RE1 - saída

• PORTD = 0b01010010∕∕ RB0 e RB3 – saída RB4 até RB7


entrada
• PORTEbits.RE1 = ~PORTEbits.RE1 ∕∕ Inverte o estado do
pino RE1 17
PORTAbits, PORTBbits, PORTCbits,
PORTDbits, PORTEbits
• Essas estrutura permitem o acesso a um único bit do
registrador PORT;
Sintaxe:

• PORTxbits.PORTxy = valor_bit
• Valor_bit = PORTxbits.PORTxy

• Sendo:
• x = nome da porta (letra maiúscula);
• y = número do pino; 18
• valor = 0 – saída e 1 – entrada)
Exercícios

• Exercícios

19
Perguntas

Você também pode gostar